]> err.no Git - util-linux/commitdiff
Imported from util-linux-2.9v tarball.
authorKarel Zak <kzak@redhat.com>
Wed, 6 Dec 2006 23:25:39 +0000 (00:25 +0100)
committerKarel Zak <kzak@redhat.com>
Wed, 6 Dec 2006 23:25:39 +0000 (00:25 +0100)
202 files changed:
ANNOUNCE [deleted file]
HISTORY
INSTALL
LSM [deleted file]
MAINTAINERS [deleted file]
MCONFIG
Makefile
README.clock [new file with mode: 0644]
clock/Makefile [new file with mode: 0644]
clock/README.aeb [new file with mode: 0644]
clock/README.hwclock [moved from sys-utils/README.hwclock with 100% similarity]
clock/README.shhopt-1.1 [moved from sys-utils/README.shhopt-1.1 with 100% similarity]
clock/adjtime.patch [new file with mode: 0644]
clock/clock.h [new file with mode: 0644]
clock/cmos.c [new file with mode: 0644]
clock/hwclock.8 [moved from sys-utils/hwclock.8 with 61% similarity]
clock/hwclock.c [new file with mode: 0644]
clock/kd.c [new file with mode: 0644]
clock/rtc.c [new file with mode: 0644]
clock/shhopt-1.1.lsm [moved from sys-utils/shhopt-1.1.lsm with 100% similarity]
clock/shhopt.c [new file with mode: 0644]
clock/shhopt.h [moved from sys-utils/shhopt.h with 100% similarity]
clockB/Makefile [new file with mode: 0644]
clockB/directio.c [new file with mode: 0644]
clockB/hwclock.8 [new file with mode: 0644]
clockB/hwclock.c [new file with mode: 0644]
clockB/hwclock.h [new file with mode: 0644]
clockB/kd.c [new file with mode: 0644]
clockB/rtc.c [new file with mode: 0644]
clockB/shhopt.c [moved from sys-utils/shhopt.c with 100% similarity]
clockB/shhopt.h [new file with mode: 0644]
clockB/util.c [new file with mode: 0644]
configure [new file with mode: 0755]
disk-utils/Makefile
disk-utils/fdformat.c
disk-utils/fsck.minix.c
disk-utils/mkfs.8
disk-utils/mkfs.c
disk-utils/mkfs.minix.8
disk-utils/mkfs.minix.c
disk-utils/mkswap.8
disk-utils/mkswap.c
disk-utils/setfdprm.c
fdisk/Makefile
fdisk/README.fdisk
fdisk/addpart.c [new file with mode: 0644]
fdisk/cfdisk.8
fdisk/cfdisk.c
fdisk/common.h [new file with mode: 0644]
fdisk/delpart.c [new file with mode: 0644]
fdisk/doc/CFdisk-Portuguese.html [new file with mode: 0644]
fdisk/doc/CFdisk-Portuguese.txt [new file with mode: 0644]
fdisk/doc/Fdisk-Portuguese.html [new file with mode: 0644]
fdisk/doc/Fdisk-Portuguese.txt [new file with mode: 0644]
fdisk/fdisk.8
fdisk/fdisk.c
fdisk/fdisk.h
fdisk/fdiskaixlabel.c
fdisk/fdiskbsdlabel.c
fdisk/fdisksgilabel.c
fdisk/fdisksgilabel.h
fdisk/fdisksunlabel.c
fdisk/fdisksunlabel.h
fdisk/i386_sys_types.c [new file with mode: 0644]
fdisk/sfdisk.c
games/Makefile
games/banner.c
getopt-1.0.3b/COPYING [moved from getopt-1.0.3a/COPYING with 100% similarity]
getopt-1.0.3b/Changelog [moved from getopt-1.0.3a/Changelog with 100% similarity]
getopt-1.0.3b/Makefile [moved from getopt-1.0.3a/Makefile with 97% similarity]
getopt-1.0.3b/README [moved from getopt-1.0.3a/README with 100% similarity]
getopt-1.0.3b/TODO [moved from getopt-1.0.3a/TODO with 100% similarity]
getopt-1.0.3b/getopt.1 [moved from getopt-1.0.3a/getopt.1 with 100% similarity]
getopt-1.0.3b/getopt.c [moved from getopt-1.0.3a/getopt.c with 85% similarity]
getopt-1.0.3b/gnu/getopt.c [moved from getopt-1.0.3a/gnu/getopt.c with 100% similarity]
getopt-1.0.3b/gnu/getopt.h [moved from getopt-1.0.3a/gnu/getopt.h with 100% similarity]
getopt-1.0.3b/gnu/getopt1.c [moved from getopt-1.0.3a/gnu/getopt1.c with 100% similarity]
getopt-1.0.3b/parse.bash [moved from getopt-1.0.3a/parse.bash with 100% similarity]
getopt-1.0.3b/parse.tcsh [moved from getopt-1.0.3a/parse.tcsh with 100% similarity]
getopt-1.0.3b/test.bash [moved from getopt-1.0.3a/test.bash with 100% similarity]
getopt-1.0.3b/test.tcsh [moved from getopt-1.0.3a/test.tcsh with 100% similarity]
getpoe.sh [deleted file]
kbd/Makefile [new file with mode: 0644]
kbd/README [new file with mode: 0644]
kbd/README.clear [new file with mode: 0644]
kbd/README.reset [new file with mode: 0644]
kbd/clear [new file with mode: 0755]
kbd/clear.1 [new file with mode: 0644]
kbd/kbdrate.8 [new file with mode: 0644]
kbd/kbdrate.c [moved from sys-utils/kbdrate.c with 58% similarity]
kbd/reset [new file with mode: 0755]
lib/Makefile
lib/env.c [new file with mode: 0644]
lib/env.h [new file with mode: 0644]
lib/err.c
lib/nls.h [new file with mode: 0644]
lib/setproctitle.c
licenses/COPYING.GPL [moved from COPYING.GPL with 100% similarity]
licenses/COPYING.UCB [moved from COPYING.UCB with 100% similarity]
login-utils/Makefile
login-utils/agetty.c
login-utils/checktty.c
login-utils/chfn.c
login-utils/chsh.c
login-utils/cryptocard.c
login-utils/islocal.c
login-utils/last.c
login-utils/login.1
login-utils/login.c
login-utils/mesg.c
login-utils/newgrp.c
login-utils/passwd.c
login-utils/setpwnam.c
login-utils/shutdown.c
login-utils/simpleinit.c
login-utils/ttymsg.c
login-utils/vipw.c
login-utils/wall.c
misc-utils/Makefile
misc-utils/cal.c
misc-utils/ddate.c
misc-utils/kill.c
misc-utils/logger.1
misc-utils/logger.c
misc-utils/look.c
misc-utils/mcookie.c
misc-utils/namei.c
misc-utils/script.c
misc-utils/setterm.c
misc-utils/tsort.c
misc-utils/whereis.c
misc-utils/write.c
mkinstalldirs [new file with mode: 0755]
mount/Makefile
mount/Makefile.standalone [deleted file]
mount/fstab.5
mount/fstab.c
mount/fstab.h
mount/linux_fs.h
mount/lomount.c
mount/losetup.c
mount/mk_loop_h
mount/mntent.c
mount/mount.8
mount/mount.c
mount/mount.smb [new file with mode: 0644]
mount/mount_by_label.c
mount/mount_guess_fstype.c
mount/nfsmount.c
mount/sundries.c
mount/sundries.h
mount/swapon.c
mount/umount.8
mount/umount.c
po/ChangeLog [new file with mode: 0644]
po/GNU.ABOUT-NLS [new file with mode: 0644]
po/Makefile [new file with mode: 0644]
po/POTFILES.in [new file with mode: 0644]
po/cat-id-tbl.c [new file with mode: 0644]
po/cs.po [new file with mode: 0644]
po/de.po [new file with mode: 0644]
po/fr.po [new file with mode: 0644]
po/it.po [new file with mode: 0644]
po/ja.po [new file with mode: 0644]
po/nl.po [new file with mode: 0644]
po/po2tbl.sed [new file with mode: 0644]
po/pt_BR.po [new file with mode: 0644]
po/stamp-cat-id [new file with mode: 0644]
po/update-potfiles [new file with mode: 0644]
rescuept/README [new file with mode: 0644]
rescuept/rescuept.c [new file with mode: 0644]
sys-utils/Makefile
sys-utils/README.linux68k [deleted file]
sys-utils/arch.1
sys-utils/ctrlaltdel.c
sys-utils/cytune.c
sys-utils/dmesg.c
sys-utils/hwclock.c [deleted file]
sys-utils/ipcrm.c
sys-utils/ipcs.c
sys-utils/kbdrate.8 [deleted file]
sys-utils/lp.h [new file with mode: 0644]
sys-utils/rdev.c
sys-utils/readprofile.c
sys-utils/renice.c
sys-utils/setsid.c
sys-utils/tunelp.8
sys-utils/tunelp.c
text-utils/Makefile
text-utils/col.c
text-utils/colcrt.c
text-utils/colrm.c
text-utils/column.c
text-utils/hexdump.c
text-utils/hexsyntax.c
text-utils/more.c
text-utils/more.help.cs [new file with mode: 0644]
text-utils/odsyntax.c
text-utils/parse.c
text-utils/rev.c
text-utils/ul.c
version.h

diff --git a/ANNOUNCE b/ANNOUNCE
deleted file mode 100644 (file)
index 1eed25e..0000000
--- a/ANNOUNCE
+++ /dev/null
@@ -1,32 +0,0 @@
-util-linux-2.9.tar.gz (source only distribution)
-
-READ the README file and the stuff below.
-
-util-linux-2.9.tar.gz (source only distribution)
-
-NOTE: Before installing util-linux. READ the README or risk nuking
-your system.  Thank you.
-
-    Util-linux is a suite of essential utilities for any Linux system.
-Its primary audience is system integrators (like the people at Debian
-and RedHat) and DIY Linux hackers. The rest of you will get a digested
-version of util-linux installed with no risk to your sanity.
-
-    Util-linux is attempting to be portable, but the only platform it
-has been tested much on is linux/intel.  There have however been
-integrated several patches for Arm, m68k, and Alpha linux versions.
-The present version is known to compile on at least Linux 1.2/libc 4
-and Linux 2.0/Libc 5 and has also been tested with libc 6 on intel,
-alpha and sparc.  People are encouraged to make _nice_ patches to
-util-linux and submitting them to util-linux@math.uio.no.  Thank you.
-
-Util-Linux 2.9 is imediately available from
-  ftp.win.tue.nl:/pub/linux/util
-and will probably appear soon at
-  ftp.math.uio.no:/pub/linux
-  sunsite.uio.no:/pub/unix/linux/packages/util-linux
-  sunsite.unc.edu:/pub/Linux/system/Misc
-  tsx-11.mit.edu:/pub/linux/packages/utils 
-
-Andries Brouwer
-
diff --git a/HISTORY b/HISTORY
index f0ccc9ab5f8ecc31228b68827733fe6e1d35efe1..c51c018e6f06c83c22d2662353e5a9dd36f3e2a3 100644 (file)
--- a/HISTORY
+++ b/HISTORY
@@ -1,3 +1,82 @@
+util-linux 2.9v:
+
+* cfdisk no longer believes the kernel's HDGETGEO
+  (and may be able to partition a 2 TB disk)
+
+util-linux 2.9u:
+
+* Czech more.help and messages (Jiøí Pavlovský)
+* Japanese messages (Daisuke Yamashita)
+* fdisk fix (Klaus G. Wagner)
+* mount fix (Hirokazu Takahashi)
+* agetty: enable hardware flow control (Thorsten Kranzkowski)
+* minor cfdisk improvements
+* fdisk no longer accepts a default device
+* Makefile fix
+
+util-linux 2.9t:
+
+* national language support for hwclock
+* Japanese messages (both by Daisuke Yamashita)
+* German messages and some misc i18n fixes (Elrond)
+* Czech messages (Jiøí Pavlovský)
+* wall fixed for /dev/pts/xx ttys
+* make last and wall use getutent() (Sascha Schumann)
+  [Maybe this is bad: last reading all of wtmp may be too slow.
+   Revert in case people complain.]
+* documented UUID= and LABEL= in fstab.5
+* added some partition types
+* swapon: warn only if verbose
+
+util-linux 2.9s:
+
+* tunelp patch (Andrea Arcangeli)
+* German messages (Elrond)
+
+util-linux 2.9[pqr]:
+
+* errno->errsv patch (Arnaldo Carvalho de Melo)
+* hwclock patch for the Award 4.50g BIOS "2094" bug. (Dave Coffin)
+* fdisk patch to correct deletion of last logical partition
+
+util-linux 2.9o:
+
+* fix to login by Ambrose C. Li
+* improvement to mcookie inspired by a patch from Rik Faith
+* more i18n by Arnaldo Carvalho de Melo; pt_BR locale
+
+util-linux 2.9n:
+
+* Added -u option to logger (write to user-specified socket; Martin Schultze)
+* Added mount.smb script contributed by Greg Galperin
+* Some more national language support
+* mkfs.minix argument parsing fixed
+* write fixed for /dev/pts/xx ttys
+* configure adapted for the case of <scsi/scsi.h> that needs u_char.
+
+util-linux 2.9m:
+
+* Added national language support (misiek@misiek.eu.org)
+* minor improvements in mount, fdisk, cfdisk, agetty, more
+
+util-linux 2.9l:
+
+* Added /dev/port use to hwclock again - it may be necessary for Jensen.
+
+util-linux 2.9k:
+
+* major reshuffle of hwclock stuff; added sparc and alpha code
+* tiny shutdown fix
+* tiny fdisk fix
+
+util-linux 2.9j:
+
+* added configure
+* merged three lists of partition types in *fdisk
+* multi page display in cfdisk
+* test for getlogin() == "";
+* start fixup hwclock
+
 util-linux 2.9i:
 
 * fixed 2.9h typo in more
@@ -90,6 +169,11 @@ HIGHLIGHTS for version 2.9:
 
 0xF) Send questions and/or patches to util-linux@math.uio.no
 
+util-linux 2.9 was released by Andries Brouwer - aeb@cwi.nl
+The address util-linux@math.uio.no reaches Rik, Andries, Peter,
+Michael, Erik, Nicolai and possibly others.  Hwclock stuff is
+forwarded to Bryan.
+
 util-linux 2.8:
 
 HIGHLIGHTS for version 2.8:
diff --git a/INSTALL b/INSTALL
index c6a463e8825c14899ff1e255cefa9537232389ad..631d50f0c8660aef6f29feac437b237d4d980073 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -21,29 +21,32 @@ WARNING: The simpleinit and some other programs in this package are
 To install from source:
 
 1) Get source distribution (see the .lsm file for locations)
-2) Untar util-linux-2.9.tar.gz somewhere
-3) cd util-linux-2.9
+2) Untar util-linux-2.9X.tar.gz somewhere
+3) cd util-linux-2.9X
 4) Edit MCONFIG
-5) make
-6) make install
-7) If you want to use simpleinit and agetty, then make softlinks from
+5) ./configure
+6) Look at defines.h and make_include, and edit if necessary
+7) make
+8) make install
+9) If you want to use simpleinit and agetty, then make softlinks from
    /sbin/init to simpleinit and from /sbin/getty to agetty, but make sure
    that your /etc/inittab is set up right (this is *NOT* the System V
    compatible init!), or you will be hosed.  If you are using the SysV
    init and/or some other getty, they you can keep using those.
 
 
-If you have compilation problems:
+If you have compilation problems: tell util-linux@math.uio.no about it.
 
-- with -lcrypt: you forgot to edit MCONFIG and write HAVE_LIBCRYPT=no.
-- in cfdisk or setterm: you forgot to edit MCONFIG and write HAVE_NCURSES=no
-  (or you forgot to write CURSESFLAGS=-I/usr/include/ncurses -DNCH=0)?
-- in fdisksunlabel.c: change #if 1 into #if 0 if there is no <scsi/scsi.h>.
-- in mount/nfsmount.c: change #if 1 into #if 0 if there is no inet_aton().
-- in sys-utils/ipcs.c: change #if 0 into #if 1 if <linux/linkage.h> is needed.
-- in sys-utils/cytune.c: change #if 0 into #if 1 if <linux/tqueue.h> is needed.
+Users of libc 5.4.46 may get warnings like
+  /usr/include/linux/byteorder/swab.h:100: warning: no previous prototype for `__fswab16'
+that they'll have to ignore. The Linux kernel includes are not meant to be included
+in user programs, but libc5 does precisely that and is inherently broken.
 
-elsewhere: tell util-linux@math.uio.no about it.
+Some old libc have complaints like
+  /usr/include/sys/syslog.h:71: warning: missing braces around initializer
+Also this is a libc/include problem.
+
+There should be no compilation errors.
 
 
 If you have runtime problems:
diff --git a/LSM b/LSM
deleted file mode 100644 (file)
index 41edbbf..0000000
--- a/LSM
+++ /dev/null
@@ -1,26 +0,0 @@
-Begin3
-Title:          util-linux: Miscellaneous utilities for Linux
-Version:        2.9g
-Description:   agetty arch cal cfdisk chfn chkdupexe chsh
-               clear hwclock col colcrt colrm column ctrlaltdel
-               cytune ddate dmesg fastboot fasthalt fdformat
-               fdisk fsck.minix getopt halt hexdump ipcrm ipcs
-               kbdrate kill last logger login look mcookie mesg mkfs
-               mkfs.minix mkswap more mount namei passwd ramsize rdev
-               readprofile reboot renice reset rev rootflags script
-                setfdprm setsid setterm sfdisk shutdown simpleinit sln
-               swapdev swapoff swapon tsort tunelp ul umount
-               vidmode vipw wall whereis write
-
-Keywords:       essential utilities
-Author:         several
-Maintained-by:  Andries Brouwer <util-linux@math.uio.no> and others
-Primary-site:   ftp.win.tue.nl /pub/linux/util
-Alternate-site: ftp.math.uio.no /pub/linux
-                ~567k util-linux-2.9g.tar.gz
-Alternate-site: sunsite.uio.no /pub/unix/linux/packages/util-linux
-Alternate-site: sunsite.unc.edu /pub/Linux/system/misc
-Alternate-site: tsx-11.mit.edu /pub/linux/packages/utils
-Platforms:      Linux 1.2.x/1.3.x/2.x/Libc 4/5/6, all CPUs
-Copying-policy: GPL, BSD, others
-End
diff --git a/MAINTAINERS b/MAINTAINERS
deleted file mode 100644 (file)
index 623b778..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-util-linux is maintained by a group of people
-(Rik, Andries, Peter, Michael, Erik, Nicolai),
-all reachable at util-linux@math.uio.no.
-
-Bryan, the hwclock master, is not on the list
-but the mail queue processor forwards mail to him.     
diff --git a/MCONFIG b/MCONFIG
index 147fc1ae2e0df7b4f7560e655fbd79ff56326f30..58112ddf1a8b8c1ad44c6315bc93124aeefcd0fa 100644 (file)
--- a/MCONFIG
+++ b/MCONFIG
@@ -10,8 +10,8 @@
 # Select for CPU one of intel, alpha, sparc, arm, m68k, mips
 CPU=$(shell uname -m | sed s/i.86/intel/)
 
-# if HAVE_LIBCRYPT is "yes" -lcrypt will be used
-HAVE_LIBCRYPT=yes
+# define where is locale directrory (default /usr/share/locale)
+LOCALEDIR=/usr/share/locale
 
 # If HAVE_PAM is set to "yes", then login, chfn, chsh, and newgrp
 # will use PAM for authentication. Additionally, passwd will not be
@@ -65,9 +65,6 @@ HAVE_GETTY=no
 # properly.]
 USE_TTY_GROUP=yes
 
-# If HAVE_OPENPTY is set to "yes", then script will use the Unix98 ptys
-HAVE_OPENPTY=no
-
 # If HAVE_RESET is set to "yes", then reset won't be installed.  The version
 # of reset that comes with the ncurses package is less aggressive.
 HAVE_RESET=yes
@@ -81,12 +78,12 @@ CC=         gcc
 
 # Different optimizations for different cpus.
 ifeq "$(CPU)" "intel"
-  OPT=         -pipe -O3 -m486 -fomit-frame-pointer
+  OPT=         -pipe -O2 -m486 -fomit-frame-pointer
 else 
   ifeq "$(CPU)" "arm"
     OPT=       -O2 -m3 -fomit-frame-pointer
   else
-    OPT=       -O3 -fomit-frame-pointer
+    OPT=       -O2 -fomit-frame-pointer
   endif
 endif
 
@@ -103,23 +100,8 @@ CFLAGS    = $(OPT) -I. -I$(LIB) $(WARNFLAGS) \
                        -DSBINDIR=\"$(SBINDIR)\" \
                        -DUSRSBINDIR=\"$(USRSBINDIR)\" \
                        -DLOGDIR=\"$(LOGDIR)\" \
-                       -DVARPATH=\"$(VARPATH)\"
-
-# Set HAVE_NCURSES to "yes" if you have ncurses
-# (without it, more, ul and setterm are not made)
-HAVE_NCURSES=yes
-
-# ncurses appears to be installed in three major ways.
-#
-# There is a subdirectory /usr/include/ncurses, with curses.h in
-#   CURSESFLAGS=-I/usr/include/ncurses -DNCH=0
-# No such subdirectory, but ncurses/curses.h is installed as ncurses.h
-#   CURSESFLAGS=-DNCH=1
-# No such subdirectory - <curses.h> is the ncurses one.
-#   CURSESFLAGS=-DNCH=0
-# Pick your choice.
-CURSESFLAGS=-I/usr/include/ncurses -DNCH=0
-LIBCURSES=-lncurses
+                       -DVARPATH=\"$(VARPATH)\" \
+                       -DLOCALEDIR=\"$(LOCALEDIR)\"
 
 # Set HAVE_SLANG to yes if you have slang (and prefer to use that for cfdisk)
 # (If neither HAVE_NCURSES nor HAVE_SLANG is defined, cfdisk is not made.)
@@ -131,6 +113,7 @@ LIBCURSES=-lncurses
 #   (no extra definition required).
 LIBSLANG=-lslang
 
+
 DEVDIR=                $(DESTDIR)/dev
 ETCDIR=                $(DESTDIR)/etc
 SBINDIR=       $(DESTDIR)/sbin
index 92c9cae5806d35c5d89c3464b18de20047f4d7f1..09571b2c8f88f71a56fd832e2b8cd66df906c5bf 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -7,25 +7,32 @@
 
 VERSION=2.9
 
+include ./make_include
 include ./MCONFIG
 
-SUBDIRS=lib \
-       getopt-1.0.3a \
+SUBDIRS=po \
+       lib \
+       getopt-1.0.3b \
        disk-utils \
        games \
        login-utils \
        misc-utils \
        mount \
        fdisk \
+       clock \
        sys-utils \
-       text-utils
+       text-utils \
+       kbd
 
 .PHONEY: all install clean
-all:
+all:   defines.h
        @for subdir in $(SUBDIRS); do \
                (cd $$subdir && $(MAKE) $@) || exit 1; \
        done
 
+defines.h make_include:
+       ./configure
+
 install:
        @if [ "`whoami`" = "root" ]; then umask 022; fi
        @for subdir in $(SUBDIRS); do \
@@ -33,11 +40,15 @@ install:
        done
 
 clean:
-       -rm -f *.o *~ core poe.diffs
+       -rm -f *.o *~ omake conftest conftest.c core
        @for subdir in $(SUBDIRS); do \
                (cd $$subdir && $(MAKE) $@) || exit 1; \
        done
 
+distclean: make_include clean
+       cd po && make distclean
+       -rm -f defines.h make_include
+
 dist:
        (cd /tmp; \
        rm -rf /tmp/util-linux-$(VERSION); \
diff --git a/README.clock b/README.clock
new file mode 100644 (file)
index 0000000..a8cc98a
--- /dev/null
@@ -0,0 +1,39 @@
+Util-linux has always had the clock program (by Charles Hedrick,
+Rob Hooft, Harald Koenig, Alan Modra).
+
+Slackware still uses the clock.c and clock.8 from util-linux-2.6
+(and calls the resulting source fragment clock-1.6.tar.gz).
+
+Bryan Henderson rewrote it, calling the result hwclock,
+and util-linux-2.6 has both clock.c and hwclock.c,
+util-linux-2.7 and later only have hwclock.c.
+
+Unfortunately, hwclock.c was broken in various ways, especially
+on non-intel hardware, and distributions started shipping private
+versions (usually derived from the old clock).
+
+For util-linux-2.9k Andries Brouwer took all clock versions around,
+and merged them. The resulting hwclock program works on all architectures.
+There are some kernel bugs in the handling of /dev/rtc on some i386 hardware,
+so under certain circumstances where hwclock fails one has to give it the
+--directisa flag to let hwclock do the clock access itself (which works)
+rather than leave it to the kernel. [The precise cause is still being
+investigated.]
+This is the code presently found in the clock subdirectory.
+
+Bryan Henderson took this code again and merged it with his original
+hwclock source. That is the code found in the util-linux-2.9q clock
+directory. Unfortunately, this new version didnt work on Sparcs
+and in util-linux-2.9r this code was moved to the clockB subdirectory.
+
+
+Executive summary:
+clock/hwclock is claimed to be good (but may need the --directisa flag).
+
+
+Comments, bug reports etc are welcome.
+Note that the source contains a rather detailed description of the clock
+hardware involved. Additions and corrections are welcome.
+
+Andries
+aeb@cwi.nl
diff --git a/clock/Makefile b/clock/Makefile
new file mode 100644 (file)
index 0000000..fd0522b
--- /dev/null
@@ -0,0 +1,29 @@
+# Makefile -- Makefile for util-linux Linux utilities
+#
+include ../make_include
+include ../MCONFIG
+
+# Where to put man pages?
+
+MAN8=          hwclock.8
+
+# Where to put binaries?
+# See the "install" rule for the links. . .
+
+SBIN=          hwclock
+
+
+all: $(SBIN)
+
+
+hwclock.o: hwclock.c shhopt.h
+hwclock.o cmos.o rtc.o kd.o: clock.h
+hwclock: hwclock.o shhopt.o cmos.o rtc.o kd.o
+
+install: all
+       $(INSTALLDIR) $(SBINDIR) $(BINDIR) $(USRBINDIR)
+       $(INSTALLBIN) $(SBIN) $(SBINDIR)
+       $(INSTALLMAN) $(MAN8) $(MAN8DIR)
+
+clean:
+       -rm -f *.o *~ core $(SBIN)
diff --git a/clock/README.aeb b/clock/README.aeb
new file mode 100644 (file)
index 0000000..3955f90
--- /dev/null
@@ -0,0 +1,9 @@
+This directory contains the hwclock stuff as fixed by me.
+It should work on all architectures.
+
+Bryan has backported my changes to his original source,
+so the present directory should be superfluous -
+however, his code fails on my Sparc.
+Will look at it later.
+
+Andries Brouwer - aeb@cwi.nl
diff --git a/clock/adjtime.patch b/clock/adjtime.patch
new file mode 100644 (file)
index 0000000..81d0430
--- /dev/null
@@ -0,0 +1,302 @@
+From ao112@rgfn.epcc.edu Fri Mar 19 06:27:26 1999
+Received: from rgfn.epcc.edu (rgfn.epcc.edu [208.136.234.19]) by hera.cwi.nl with ESMTP
+       id GAA27711 for <Andries.Brouwer@cwi.nl>; Fri, 19 Mar 1999 06:27:23 +0100 (MET)
+Received: (from ao112@localhost)
+       by rgfn.epcc.edu (8.8.8/8.8.8) id WAA16797;
+       Thu, 18 Mar 1999 22:27:19 -0700 (MST)
+Date: Thu, 18 Mar 1999 22:27:19 -0700 (MST)
+Message-Id: <199903190527.WAA16797@rgfn.epcc.edu>
+From: ao112@rgfn.epcc.edu (James P. Rutledge)
+To: Andries.Brouwer@cwi.nl
+Subject: Re: hwclock patch for drift_factor calculation improvement
+Reply-To: ao112@rgfn.epcc.edu
+Status: R
+
+
+
+>
+>Could you perhaps make your patch relative to
+>util-linux-2.9n (found in ftp.cwi.nl/pub/aeb/util-linux/util-linux-2.9n.tar.gz)
+>?
+>
+>(The hwclock stuff has changed quite a bit since 2.9g.)
+>
+>Andries
+>
+
+Andries;
+
+Per your request, the patch has been modified for util-linux version
+2.9n, from the version for 2.9g.
+
+The program "hwclock" (version 2.4c) could give more accurate
+values for the drift factor that it places in the file "/etc/adjtime".
+
+A patch to improve the accuracy is included.
+
+I have incorporated some error sources which were not compensated
+for into the drift factor calculation (performed when the "--set"
+or the "--systohc" option is used) to make it more accurate.
+In particular, the sync delay between the desired set time and the
+start of the hardware clock second, and the expected drift since the
+last hardware clock adjustment are now accounted for in the drift
+factor calculation.
+
+With this patch, if at any time an adjust operation is attempted and
+the hardware clock is found to be not valid, then the calibration
+and adjustment time is set to zero to insure that if the hardware
+clock should coincidentally return to validity, a calibration is not
+done with bad history data (hardware clock info bad) and an adjust is
+not attempted on bad (but now passing validity test) hardware clock
+data.  (With this patch, a previous calibration time of zero causes
+the calibration time to initialize with the current time, when the
+hardware clock is set, but no change is made to the drift factor,
+so in effect, an initial calibration is started over while the previous
+drift factor is retained.)
+
+Also, the behavior in the case of an initially missing "/etc/adjtime"
+file or such a file produced by the predecessor "clock" program has
+been slightly improved as follows: 
+
+    With this patch, if the file exists but was produced by "clock"
+    and, thus, is given a zero calibration time, the drift factor is
+    not updated upon the first calibration by "hwclock", but is left alone
+    and is only changed by subsequent calibrations.
+
+    With this patch, if the file does not exist and, thus, is given
+    a zero calibration time, the drift factor is set to zero upon the
+    first calibration by "hwclock" and is then changed, as appropriate, by
+    subsequent calibrations.
+
+    Also, with this patch, an "--adjust" operation against a non-existent
+    "/etc/adjtime" file or one which has zero as the last adjustment
+    time will not change the hardware clock setting.
+
+A context diff for a patch to the file "hwclock.c" in the directory
+"util-linux-2.9n/clock" is appended.
+To use the patch, "cd" to the directory "util-linux-2.9n/clock".
+Run "patch < bug-report", where "bug-report" is the file name of
+this mail message, to get new file "hwclock.c" which contains the proposed
+new version.  This patch is, of course, submitted per the GPL and the
+appropriate "NO WARRANTY OF ANY KIND" and "USE AT YOUR OWN RISK"
+disclaimers apply.
+
+Note that the patch presumptuously changes the "hwclock.c" version
+number from 2.4c to 2.4c1 in "hwclock.c".
+
+Jim
+
+------------------ Patch file follows ----------------------------
+*** hwclock.c  Thu Mar 18 22:04:01 1999
+--- new-hwclock.c      Thu Mar 18 22:03:18 1999
+***************
+*** 76,86 ****
+  
+  #include "clock.h"
+  #include "../version.h"
+  
+  #define MYNAME "hwclock"
+! #define VERSION "2.4c"
+  
+  char *progname = MYNAME;
+  
+  /* The struct that holds our hardware access routines */
+  struct clock_ops *ur;
+--- 76,86 ----
+  
+  #include "clock.h"
+  #include "../version.h"
+  
+  #define MYNAME "hwclock"
+! #define VERSION "2.4c1"
+  
+  char *progname = MYNAME;
+  
+  /* The struct that holds our hardware access routines */
+  struct clock_ops *ur;
+***************
+*** 581,601 ****
+  
+  
+  static void
+  adjust_drift_factor(struct adjtime *adjtime_p,
+                      const time_t nowtime, 
+!                     const bool hclock_valid, const time_t hclocktime   ) {
+  /*---------------------------------------------------------------------------
+    Update the drift factor in <*adjtime_p> to reflect the fact that the
+    Hardware Clock was calibrated to <nowtime> and before that was set
+    to <hclocktime>.
+  
+-   We assume that the user has been doing regular drift adjustments
+-   using the drift factor in the adjtime file, so if <nowtime> and
+-   <clocktime> are different, that means the adjustment factor isn't
+-   quite right.
+- 
+    We record in the adjtime file the time at which we last calibrated
+    the clock so we can compute the drift rate each time we calibrate.
+  
+    EXCEPT: if <hclock_valid> is false, assume Hardware Clock was not set
+    before to anything meaningful and regular adjustments have not been
+--- 581,598 ----
+  
+  
+  static void
+  adjust_drift_factor(struct adjtime *adjtime_p,
+                      const time_t nowtime, 
+!                     const bool hclock_valid,
+!                     const time_t hclocktime,
+!                     const float sync_delay   ) {
+  /*---------------------------------------------------------------------------
+    Update the drift factor in <*adjtime_p> to reflect the fact that the
+    Hardware Clock was calibrated to <nowtime> and before that was set
+    to <hclocktime>.
+  
+    We record in the adjtime file the time at which we last calibrated
+    the clock so we can compute the drift rate each time we calibrate.
+  
+    EXCEPT: if <hclock_valid> is false, assume Hardware Clock was not set
+    before to anything meaningful and regular adjustments have not been
+***************
+*** 604,629 ****
+  ----------------------------------------------------------------------------*/
+    if (!hclock_valid) {
+      if (debug)
+        printf("Not adjusting drift factor because the Hardware Clock "
+               "previously contained garbage.\n");
+    } else if ((hclocktime - adjtime_p->last_calib_time) < 23 * 60 * 60) {
+      if (debug) 
+        printf("Not adjusting drift factor because it has been less than a "
+               "day since the last calibration.\n");
+    } else {
+!     const float factor_adjust = 
+!       ((float) (nowtime - hclocktime) 
+!        / (hclocktime - adjtime_p->last_calib_time))
+!         * 24 * 60 * 60;
+  
+      if (debug)
+!       printf("Clock drifted %d seconds in the past %d seconds "
+               "in spite of a drift factor of %f seconds/day.\n"
+               "Adjusting drift factor by %f seconds/day\n",
+!              (int) (nowtime - hclocktime),
+!              (int) (hclocktime - adjtime_p->last_calib_time),
+               adjtime_p->drift_factor,
+               factor_adjust  );
+        
+      adjtime_p->drift_factor += factor_adjust;
+    }
+--- 601,642 ----
+  ----------------------------------------------------------------------------*/
+    if (!hclock_valid) {
+      if (debug)
+        printf("Not adjusting drift factor because the Hardware Clock "
+               "previously contained garbage.\n");
++   } else if (adjtime_p->last_calib_time == 0) {
++     if (debug)
++       printf("Not adjusting drift factor because last calibration "
++              "time is zero,\nso history is bad and calibration startover "
++              "is necessary.\n");
+    } else if ((hclocktime - adjtime_p->last_calib_time) < 23 * 60 * 60) {
+      if (debug) 
+        printf("Not adjusting drift factor because it has been less than a "
+               "day since the last calibration.\n");
+    } else {
+!     const float sec_per_day = 24.0 * 60.0 * 60.0;
+!     float atime_per_htime;  /* adjusted time units per hardware time unit */
+!     float adj_days;   /* days since last adjustment (in hardware clock time) */
+!     float cal_days;   /* days since last calibration (in hardware clock time) */
+!     float exp_drift;  /* expected drift (sec) since last adjustment */
+!     float unc_drift;  /* uncorrected drift (sec) since last calibration */
+!     float factor_adjust;  /* amount to add to previous drift factor */
+!     atime_per_htime = 1.0 + adjtime_p->drift_factor / sec_per_day;
+!     adj_days = (float)(hclocktime - adjtime_p->last_adj_time) / sec_per_day;
+!     exp_drift = adj_days * adjtime_p->drift_factor + adjtime_p->not_adjusted;
+!     unc_drift = (float)(nowtime - hclocktime) + sync_delay - exp_drift;
+!     cal_days = ((float)(adjtime_p->last_adj_time - adjtime_p->last_calib_time)
+!                  + adjtime_p->not_adjusted) / (sec_per_day * atime_per_htime)
+!                + adj_days;
+!     factor_adjust = unc_drift / cal_days;
+  
+      if (debug)
+!       printf("Clock drifted %.1f seconds in the past %d seconds "
+               "in spite of a drift factor of %f seconds/day.\n"
+               "Adjusting drift factor by %f seconds/day\n",
+!              unc_drift,
+!              (int) (nowtime - adjtime_p->last_calib_time),
+               adjtime_p->drift_factor,
+               factor_adjust  );
+        
+      adjtime_p->drift_factor += factor_adjust;
+    }
+***************
+*** 764,773 ****
+--- 777,794 ----
+  
+  ----------------------------------------------------------------------------*/
+    if (!hclock_valid) {
+      fprintf(stderr, "The Hardware Clock does not contain a valid time, "
+              "so we cannot adjust it.\n");
++     adjtime_p->last_calib_time = 0;  /* calibration startover is required */
++     adjtime_p->last_adj_time = 0;
++     adjtime_p->not_adjusted = 0;
++     adjtime_p->dirty = TRUE;
++   } else if (adjtime_p->last_adj_time == 0) {
++     if (debug)
++       printf("Not setting clock because last adjustment time is zero, "
++              "so history is bad.");
+    } else {
+      int adjustment;
+      /* Number of seconds we must insert in the Hardware Clock */
+      float retro;   
+      /* Fraction of second we have to remove from clock after inserting
+***************
+*** 878,888 ****
+                         time_diff(read_time, startup_time));
+            *retcode_p = 0;
+          } else if (set) {
+            set_hardware_clock_exact(set_time, startup_time, 
+                                     universal, testing);
+!           adjust_drift_factor(&adjtime, set_time, hclock_valid, hclocktime);
+            *retcode_p = 0;
+          } else if (adjust) {
+            do_adjustment(&adjtime, hclock_valid, hclocktime, 
+                          read_time, universal, testing);
+            *retcode_p = 0;
+--- 899,910 ----
+                         time_diff(read_time, startup_time));
+            *retcode_p = 0;
+          } else if (set) {
+            set_hardware_clock_exact(set_time, startup_time, 
+                                     universal, testing);
+!           adjust_drift_factor(&adjtime, set_time, hclock_valid, hclocktime,
+!                               time_diff(read_time, startup_time));
+            *retcode_p = 0;
+          } else if (adjust) {
+            do_adjustment(&adjtime, hclock_valid, hclocktime, 
+                          read_time, universal, testing);
+            *retcode_p = 0;
+***************
+*** 898,908 ****
+            
+            set_hardware_clock_exact((time_t) reftime.tv_sec, reftime, 
+                                     universal, testing);
+            *retcode_p = 0;
+            adjust_drift_factor(&adjtime, (time_t) reftime.tv_sec, hclock_valid, 
+!                               hclocktime);
+          } else if (hctosys) {
+            rc = set_system_clock(hclock_valid, hclocktime, testing);
+            if (rc != 0) {
+              printf("Unable to set system clock.\n");
+              *retcode_p = 1;
+--- 920,930 ----
+            
+            set_hardware_clock_exact((time_t) reftime.tv_sec, reftime, 
+                                     universal, testing);
+            *retcode_p = 0;
+            adjust_drift_factor(&adjtime, (time_t) reftime.tv_sec, hclock_valid, 
+!                               hclocktime, (float)(read_time.tv_usec / 1E6));
+          } else if (hctosys) {
+            rc = set_system_clock(hclock_valid, hclocktime, testing);
+            if (rc != 0) {
+              printf("Unable to set system clock.\n");
+              *retcode_p = 1;
+
diff --git a/clock/clock.h b/clock/clock.h
new file mode 100644 (file)
index 0000000..b57b499
--- /dev/null
@@ -0,0 +1,33 @@
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>             /* for errno, EPERM, EINVAL, ENOENT */
+#include <time.h>
+
+struct clock_ops {
+       char *interface_name;
+        int (*get_permissions)(void);
+        int (*read_hardware_clock)(struct tm *tm);
+        int (*set_hardware_clock)(const struct tm *tm);
+       int (*synchronize_to_clock_tick)(void);
+};
+
+extern struct clock_ops *probe_for_cmos_clock(void);
+extern struct clock_ops *probe_for_rtc_clock(void);
+extern struct clock_ops *probe_for_kd_clock(void);
+
+typedef int bool;
+#define TRUE 1
+#define FALSE 0
+
+/* hwclock.c */
+extern char *progname;
+extern int debug;
+extern void outsyserr(char *msg);
+
+/* cmos.c */
+extern void set_cmos_epoch(int ARCconsole, int SRM);
+extern void set_cmos_access(int Jensen, int funky_toy);
+
+/* rtc.c */
+extern int get_epoch_rtc(unsigned long *epoch, int silent);
+extern int set_epoch_rtc(unsigned long epoch);
diff --git a/clock/cmos.c b/clock/cmos.c
new file mode 100644 (file)
index 0000000..78d5dbb
--- /dev/null
@@ -0,0 +1,598 @@
+/*
+ * i386 CMOS starts out with 14 bytes clock data
+ * alpha has something similar, but with details
+ * depending on the machine type.
+ *
+ * byte 0: seconds (0-59)
+ * byte 2: minutes (0-59)
+ * byte 4: hours (0-23 in 24hr mode,
+ *                1-12 in 12hr mode, with high bit unset/set if am/pm)
+ * byte 6: weekday (1-7, Sunday=1)
+ * byte 7: day of the month (1-31)
+ * byte 8: month (1-12)
+ * byte 9: year (0-99)
+ * Numbers are stored in BCD/binary if bit 2 of byte 11 is unset/set
+ * The clock is in 12hr/24hr mode if bit 1 of byte 11 is unset/set
+ * The clock is undefined (being updated) if bit 7 of byte 10 is set.
+ * The clock is frozen (to be updated) by setting bit 7 of byte 11
+ * Bit 7 of byte 14 indicates whether the CMOS clock is reliable:
+ * it is 1 if RTC power has been good since this bit was last read;
+ * it is 0 when the battery is dead and system power has been off.
+ *
+ * Avoid setting the RTC clock within 2 seconds of the day rollover
+ * that starts a new month or enters daylight saving time.
+ *
+ * The century situation is messy:
+ * Usually byte 50 (0x32) gives the century (in BCD, so 19 or 20 hex),
+ * but IBM PS/2 has (part of) a checksum there and uses byte 55 (0x37).
+ * Sometimes byte 127 (0x7f) or Bank 1, byte 0x48 gives the century.
+ * The original RTC will not access any century byte; some modern
+ * versions will. If a modern RTC or BIOS increments the century byte
+ * it may go from 0x19 to 0x20, but in some buggy cases 0x1a is produced.
+ */
+
+/*
+ * A struct tm has int fields
+ *   tm_sec (0-59, 60 or 61 only for leap seconds)
+ *   tm_min (0-59)
+ *   tm_hour (0-23)
+ *   tm_mday (1-31)
+ *   tm_mon (0-11)
+ *   tm_year (number of years since 1900)
+ *   tm_wday (0-6, 0=Sunday)
+ *   tm_yday (0-365)
+ *   tm_isdst (>0: yes, 0: no, <0: unknown)
+ */
+
+#include <unistd.h>            /* for geteuid() */
+#include <fcntl.h>             /* for O_RDWR */
+
+#include "nls.h"
+
+#if defined(__i386__) || defined(__alpha__)
+#include <asm/io.h>            /* for inb, outb */
+#else
+void outb(int a, int b){}
+int inb(int c){ return 0; }
+#endif
+
+#include "clock.h"
+
+#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10)
+#define BIN_TO_BCD(val) ((val)=(((val)/10)<<4) + (val)%10)
+
+#define TM_EPOCH 1900
+int cmos_epoch = 1900;         /* 1980 for an alpha in ARC console time */
+                               /* One also sees 1952 (Digital Unix?)
+                                  and 1958 (ALPHA_PRE_V1_2_SRM_CONSOLE) */
+
+/* Martin Ostermann writes: 
+The problem with the Jensen is twofold: First, it has the clock at a
+different address. Secondly, it has a distinction beween "local" and
+normal bus addresses. The local ones pertain to the hardware integrated
+into the chipset, like serial/parallel ports and of course, the RTC.
+Those need to be addressed differently. This is handled fine in the kernel,
+and it's not a problem, since this usually gets totally optimized by the
+compile. But the i/o routines of (g)libc lack this support so far.
+The result of this is, that the old clock program worked only on the
+Jensen when USE_DEV_PORT was defined, but not with the normal inb/outb
+functions.
+ */
+int use_dev_port = 0;          /* 1 for Jensen */
+int dev_port_fd;
+unsigned short clock_ctl_addr = 0x70;  /* 0x170 for Jensen */
+unsigned short clock_data_addr = 0x71;         /* 0x171 for Jensen */
+
+
+int century_byte = 0;          /* 0: don't access a century byte
+                                 50 (0x32): usual PC value
+                                 55 (0x37): PS/2 */
+
+#ifdef __alpha__
+int funkyTOY = 0;              /* 1 for PC164/LX164/SX164 type alpha */
+#endif
+
+#ifdef __alpha
+
+static int
+is_in_cpuinfo(char *fmt, char *str)
+{
+    FILE *cpuinfo;
+    char field[256];
+    char format[256];
+    int found = 0;
+
+    sprintf(format, "%s : %s", fmt, "%255s");
+
+    if ((cpuinfo = fopen ("/proc/cpuinfo", "r")) != NULL) {
+       while (!feof(cpuinfo)) {
+           if (fscanf (cpuinfo, format, field) == 1) {
+               if (strncmp(field, str, strlen(str)) == 0)
+                   found = 1;
+               break;
+           }
+           fgets (field, 256, cpuinfo);
+       }
+       fclose(cpuinfo);
+    }
+    return found;
+}
+
+/* Set cmos_epoch, either from user options, or by asking the kernel,
+   or by looking at /proc/cpu_info */
+void
+set_cmos_epoch(int ARCconsole, int SRM) {
+  unsigned long epoch;
+
+  /* Believe the user */
+  if (ARCconsole)
+    cmos_epoch = 1980;
+
+  if (ARCconsole || SRM)
+    return;
+
+
+  /* If we can ask the kernel, we don't need guessing from /proc/cpuinfo */
+  if (get_epoch_rtc(&epoch, 1) == 0) {
+     cmos_epoch = epoch;
+     return;
+  }
+
+
+  /* See whether we are dealing with SRM or MILO, as they have
+     different "epoch" ideas. */
+  if (is_in_cpuinfo("system serial number", "MILO")) {
+      ARCconsole = 1;
+      if (debug) printf (_("booted from MILO\n"));
+  }
+
+  /* See whether we are dealing with a RUFFIAN aka UX, as they have REALLY
+     different TOY (TimeOfYear) format: BCD, and not an ARC-style epoch.
+     BCD is detected dynamically, but we must NOT adjust like ARC. */
+  if (ARCconsole && is_in_cpuinfo("system type", "Ruffian")) {
+    ARCconsole = 0;
+    if (debug) printf (_("Ruffian BCD clock\n"));
+  }
+
+  if (ARCconsole)
+    cmos_epoch = 1980;
+}
+
+void
+set_cmos_access(int Jensen, int funky_toy) {
+
+  /* See whether we're dealing with a Jensen---it has a weird I/O
+     system.  DEC was just learning how to build Alpha PCs.  */
+  if (Jensen || is_in_cpuinfo("system type", "Jensen")) {
+    use_dev_port = 1;
+    clock_ctl_addr = 0x170;
+    clock_data_addr = 0x171;
+    if (debug) printf (_("clockport adjusted to 0x%x\n"), clock_ctl_addr);
+  }
+
+  /* see whether we are dealing with PC164/LX164/SX164, as they have a TOY
+     that must be accessed differently to work correctly. */
+  if (funky_toy ||
+      is_in_cpuinfo("system variation", "PC164") ||
+      is_in_cpuinfo("system variation", "LX164") ||
+      is_in_cpuinfo("system variation", "SX164")) {
+      funkyTOY = 1;
+      if (debug) printf (_("funky TOY!\n"));
+  }
+}
+#endif
+
+
+
+
+#ifdef __i386__
+
+/*
+ * Try to do CMOS access atomically, so that no other processes
+ * can get a time slice while we are reading or setting the clock.
+ * (Also, if the kernel time is synchronized with an external source,
+ *  the kernel itself will fiddle with the RTC every 11 minutes.)
+ */
+
+static unsigned long
+atomic(const char *name, unsigned long (*op)(unsigned long),
+       unsigned long arg)
+{
+  unsigned long v;
+  __asm__ volatile ("cli");
+  v = (*op)(arg);
+  __asm__ volatile ("sti");
+  return v;
+}
+
+#elif __alpha__
+
+/*
+ * The Alpha doesn't allow user-level code to disable interrupts (for
+ * good reasons).  Instead, we ensure atomic operation by performing
+ * the operation and checking whether the high 32 bits of the cycle
+ * counter changed.  If they did, a context switch must have occurred
+ * and we redo the operation.  As long as the operation is reasonably
+ * short, it will complete atomically, eventually.
+ */
+
+static unsigned long
+atomic(const char *name, unsigned long (*op)(unsigned long),
+       unsigned long arg)
+{
+  unsigned long ts1, ts2, n, v;
+
+  for (n = 0; n < 1000; ++n) {
+    asm volatile ("rpcc %0" : "r="(ts1));
+    v = (*op)(arg);
+    asm volatile ("rpcc %0" : "r="(ts2));
+
+    if ((ts1 ^ ts2) >> 32 == 0) {
+      return v;
+    }
+  }
+  fprintf(stderr, _("%s: atomic %s failed for 1000 iterations!"), progname, name);
+  exit(1);
+}
+
+#else
+
+/*
+ * Hmmh, this isn't very atomic.  Maybe we should force an error
+ * instead?
+ */
+static unsigned long
+atomic(const char *name, unsigned long (*op)(unsigned long),
+       unsigned long arg)
+{
+    return (*op)(arg);
+}
+
+#endif
+
+
+static inline
+unsigned long cmos_read(unsigned long reg)
+{
+  if (use_dev_port) {
+    unsigned char v = reg | 0x80;
+    lseek(dev_port_fd, clock_ctl_addr, 0);
+    write(dev_port_fd, &v, 1);
+    lseek(dev_port_fd, clock_data_addr, 0);
+    read(dev_port_fd, &v, 1);
+    return v;
+  } else {
+    /* We only want to read CMOS data, but unfortunately
+       writing to bit 7 disables (1) or enables (0) NMI;
+       since this bit is read-only we have to guess the old status.
+       Various docs suggest that one should disable NMI while
+       reading/writing CMOS data, and enable it again afterwards.
+       This would yield the sequence
+         outb (reg | 0x80, 0x70);
+         val = inb(0x71);
+         outb (0x0d, 0x70);    // 0x0d: random read-only location
+       Other docs state that "any write to 0x70 should be followed
+       by an action to 0x71 or the RTC wil be left in an unknown state".
+       Most docs say that it doesnt matter at all what one does.
+     */
+    /* bit 0x80: disable NMI while reading - should we?
+       Let us follow the kernel and not disable.
+       Called only with 0 <= reg < 128 */
+    outb (reg, clock_ctl_addr);
+    return inb (clock_data_addr);
+  }
+}
+
+static inline
+unsigned long cmos_write(unsigned long reg, unsigned long val)
+{
+  if (use_dev_port) {
+    unsigned char v = reg | 0x80;
+    lseek(dev_port_fd, clock_ctl_addr, 0);
+    write(dev_port_fd, &v, 1);
+    v = (val & 0xff);
+    lseek(dev_port_fd, clock_data_addr, 0);
+    write(dev_port_fd, &v, 1);
+  } else {
+    outb (reg, clock_ctl_addr);
+    outb (val, clock_data_addr);
+  }
+  return 0;
+}
+
+unsigned long cmos_set_time(unsigned long arg)
+{
+  unsigned char save_control, save_freq_select, pmbit = 0;
+  struct tm tm = *(struct tm *) arg;
+  unsigned int century;
+
+/*
+ * CMOS byte 10 (clock status register A) has 3 bitfields:
+ * bit 7: 1 if data invalid, update in progress (read-only bit)
+ *         (this is raised 224 us before the actual update starts)
+ *  6-4    select base frequency
+ *         010: 32768 Hz time base (default)
+ *         111: reset
+ *         all other combinations are manufacturer-dependent
+ *         (e.g.: DS1287: 010 = start oscillator, anything else = stop)
+ *  3-0    rate selection bits for interrupt
+ *         0000 none (may stop RTC)
+ *         0001, 0010 give same frequency as 1000, 1001
+ *         0011 122 microseconds (minimum, 8192 Hz)
+ *         .... each increase by 1 halves the frequency, doubles the period
+ *         1111 500 milliseconds (maximum, 2 Hz)
+ *         0110 976.562 microseconds (default 1024 Hz)
+ */
+
+  save_control = cmos_read (11);   /* tell the clock it's being set */
+  cmos_write (11, (save_control | 0x80));
+  save_freq_select = cmos_read (10);       /* stop and reset prescaler */
+  cmos_write (10, (save_freq_select | 0x70));
+
+  tm.tm_year += TM_EPOCH;
+  century = tm.tm_year/100;
+  tm.tm_year -= cmos_epoch;
+  tm.tm_year %= 100;
+  tm.tm_mon += 1;
+  tm.tm_wday += 1;
+
+  if (!(save_control & 0x02)) {        /* 12hr mode; the default is 24hr mode */
+      if (tm.tm_hour == 0)
+          tm.tm_hour = 24;
+      if (tm.tm_hour > 12) {
+         tm.tm_hour -= 12;
+         pmbit = 0x80;
+      }
+  }
+  
+  if (!(save_control & 0x04)) { /* BCD mode - the default */
+      BIN_TO_BCD(tm.tm_sec);
+      BIN_TO_BCD(tm.tm_min);
+      BIN_TO_BCD(tm.tm_hour);
+      BIN_TO_BCD(tm.tm_wday);
+      BIN_TO_BCD(tm.tm_mday);
+      BIN_TO_BCD(tm.tm_mon);
+      BIN_TO_BCD(tm.tm_year);
+      BIN_TO_BCD(century);
+  }
+  
+  cmos_write (0, tm.tm_sec);
+  cmos_write (2, tm.tm_min);
+  cmos_write (4, tm.tm_hour | pmbit);
+  cmos_write (6, tm.tm_wday);
+  cmos_write (7, tm.tm_mday);
+  cmos_write (8, tm.tm_mon);
+  cmos_write (9, tm.tm_year);
+  if (century_byte)
+         cmos_write (century_byte, century);
+
+
+    /* The kernel sources, linux/arch/i386/kernel/time.c, have the
+       following comment:
+    
+       The following flags have to be released exactly in this order,
+       otherwise the DS12887 (popular MC146818A clone with integrated
+       battery and quartz) will not reset the oscillator and will not
+       update precisely 500 ms later.  You won't find this mentioned
+       in the Dallas Semiconductor data sheets, but who believes data
+       sheets anyway ...  -- Markus Kuhn
+    */
+    
+  cmos_write (11, save_control);
+  cmos_write (10, save_freq_select);
+  return 0;
+}
+
+static int
+hclock_read(unsigned long reg) {
+       return atomic("clock read", cmos_read, (reg));
+}
+
+static void
+hclock_set_time(const struct tm *tm) {
+       atomic("set time", cmos_set_time, (unsigned long)(tm));
+}
+
+static inline int
+cmos_clock_busy() {
+       return
+#ifdef __alpha__
+                       /* poll bit 4 (UF) of Control Register C */
+           funkyTOY ? (hclock_read(12) & 0x10) :
+#endif
+                       /* poll bit 7 (UIP) of Control Register A */
+           (hclock_read(10) & 0x80);
+}
+
+
+static int
+synchronize_to_clock_tick_cmos(void) {
+  int i;
+
+  /* Wait for rise.  Should be within a second, but in case something
+     weird happens, we have a limit on this loop to reduce the impact
+     of this failure.
+     */
+  for (i = 0; !cmos_clock_busy(); i++)
+         if (i >= 10000000)
+                 return 1;
+
+  /* Wait for fall.  Should be within 2.228 ms. */
+  for (i = 0; cmos_clock_busy(); i++)
+         if (i >= 1000000)
+                 return 1;
+  return 0;
+}
+
+
+
+static int
+read_hardware_clock_cmos(struct tm *tm) {
+/*----------------------------------------------------------------------------
+  Read the hardware clock and return the current time via <tm> argument.
+  Assume we have an ISA machine and read the clock directly with CPU I/O
+  instructions.
+
+  This function is not totally reliable.  It takes a finite and
+  unpredictable amount of time to execute the code below.  During that
+  time, the clock may change and we may even read an invalid value in
+  the middle of an update.  We do a few checks to minimize this
+  possibility, but only the kernel can actually read the clock
+  properly, since it can execute code in a short and predictable
+  amount of time (by turning of interrupts).
+
+  In practice, the chance of this function returning the wrong time is
+  extremely remote.
+
+-----------------------------------------------------------------------------*/
+  bool got_time = FALSE;
+  unsigned char status, pmbit;
+
+  status = pmbit = 0;          /* just for gcc */
+
+  while (!got_time) {
+    /* Bit 7 of Byte 10 of the Hardware Clock value is the Update In Progress
+       (UIP) bit, which is on while and 244 uS before the Hardware Clock 
+       updates itself.  It updates the counters individually, so reading 
+       them during an update would produce garbage.  The update takes 2mS,
+       so we could be spinning here that long waiting for this bit to turn
+       off.
+
+       Furthermore, it is pathologically possible for us to be in this
+       code so long that even if the UIP bit is not on at first, the
+       clock has changed while we were running.  We check for that too,
+       and if it happens, we start over.
+       */
+
+    if (!cmos_clock_busy()) {
+      /* No clock update in progress, go ahead and read */
+      tm->tm_sec = hclock_read(0);
+      tm->tm_min = hclock_read(2);
+      tm->tm_hour = hclock_read(4);
+      tm->tm_wday = hclock_read(6);
+      tm->tm_mday = hclock_read(7);
+      tm->tm_mon = hclock_read(8);
+      tm->tm_year = hclock_read(9);
+      status = hclock_read(11);
+#if 0
+      if (century_byte)
+         century = hclock_read(century_byte);
+#endif
+
+      /* Unless the clock changed while we were reading, consider this 
+         a good clock read .
+       */
+      if (tm->tm_sec == hclock_read (0))
+       got_time = TRUE;
+    }
+    /* Yes, in theory we could have been running for 60 seconds and
+       the above test wouldn't work!
+       */
+  }
+
+  if (!(status & 0x04)) { /* BCD mode - the default */
+      BCD_TO_BIN(tm->tm_sec);
+      BCD_TO_BIN(tm->tm_min);
+      pmbit = (tm->tm_hour & 0x80);
+      tm->tm_hour &= 0x7f;
+      BCD_TO_BIN(tm->tm_hour);
+      BCD_TO_BIN(tm->tm_wday);
+      BCD_TO_BIN(tm->tm_mday);
+      BCD_TO_BIN(tm->tm_mon);
+      BCD_TO_BIN(tm->tm_year);
+#if 0
+      BCD_TO_BIN(century);
+#endif
+  }
+
+  /* We don't use the century byte of the Hardware Clock
+     since we don't know its address (usually 50 or 55).
+     Here, we follow the advice of the X/Open Base Working Group:
+     "if century is not specified, then values in the range [69-99]
+      refer to years in the twentieth century (1969 to 1999 inclusive),
+      and values in the range [00-68] refer to years in the twenty-first
+      century (2000 to 2068 inclusive)."
+   */
+
+  tm->tm_wday -= 1;
+  tm->tm_mon -= 1;
+  tm->tm_year += (cmos_epoch - TM_EPOCH);
+  if (tm->tm_year < 69)
+         tm->tm_year += 100;
+  if (pmbit) {
+         tm->tm_hour += 12;
+         if (tm->tm_hour == 24)
+                 tm->tm_hour = 0;
+  }
+
+  tm->tm_isdst = -1;        /* don't know whether it's daylight */
+  return 0;
+}
+
+
+
+static int
+set_hardware_clock_cmos(const struct tm *new_broken_time) {
+
+    hclock_set_time(new_broken_time);
+    return 0;
+}
+
+static int
+i386_iopl(const int level) {
+#if defined(__i386__) || defined(__alpha__)
+  extern int iopl(const int level);
+  return iopl(level);
+#else
+  return -2;
+#endif
+}
+
+static int
+get_permissions_cmos(void) {
+  int rc;
+
+  if (use_dev_port) {
+    if ((dev_port_fd = open("/dev/port", O_RDWR)) < 0) {
+      int errsv = errno;
+      fprintf(stderr, _("Cannot open /dev/port: %s"), strerror(errsv));
+      rc = 1;
+    } else
+      rc = 0;
+  } else {
+    rc = i386_iopl(3);
+    if (rc == -2) {
+      fprintf(stderr, _("I failed to get permission because I didnt try.\n"));
+    } else if (rc != 0) {
+      rc = errno;
+      fprintf(stderr, _("%s is unable to get I/O port access:  "
+              "the iopl(3) call failed.\n"), progname);
+      if(rc == EPERM && geteuid())
+        fprintf(stderr, _("Probably you need root privileges.\n"));
+    }
+  }
+  return rc ? 1 : 0;
+}
+
+static struct clock_ops cmos = {
+       "direct I/O instructions to ISA clock",
+       get_permissions_cmos,
+       read_hardware_clock_cmos,
+       set_hardware_clock_cmos,
+       synchronize_to_clock_tick_cmos,
+};
+
+
+/* return &cmos if cmos clock present, NULL otherwise */
+/* choose this construction to avoid gcc messages about unused variables */
+
+struct clock_ops *
+probe_for_cmos_clock(void){
+    int have_cmos =
+#if defined(__i386__) || defined(__alpha__)
+           TRUE;
+#else
+           FALSE;
+#endif
+    return have_cmos ? &cmos : NULL;
+}
similarity index 61%
rename from sys-utils/hwclock.8
rename to clock/hwclock.8
index 58f4a259e38b688692aaca6fc9cc9102edd6da12..0a216840ae951105ce4153a32ea0cc43ed092f00 100644 (file)
@@ -20,12 +20,16 @@ clock \- query and set the hardware clock (RTC)
 .PP
 other options:
 .PP
-.B "--utc  --directisa --test --debug"
+.B "--utc  --localtime --directisa --test --debug"
+.PP
+and arcane options for DEC Alpha:
+.PP
+.B "--arc --jensen --srm --funky-toy"
 .PP
 Minimum unique abbreviations of all options are acceptable.
 .PP
-Also, equivalent options -r, -w, -s, -a, -v, -u, and -D are accepted for
-compatibility with the program "clock".
+Also, equivalent options -r, -w, -s, -a, -v, -u, -D, -A, -J, -S, and -F
+are accepted for compatibility with the program "clock".
 
 .SH DESCRIPTION
 .I hwclock
@@ -48,6 +52,11 @@ what function to perform:
 .TP
 .B \-\-show
 Read the Hardware Clock and print the time on Standard Output.
+The time is always in local time, even if you keep your Hardware Clock
+in Coordinated Universal Time.  See the
+.B \-\-utc
+option.
+
 .TP
 .B \-\-set
 Set the Hardware Clock to the time given by the 
@@ -58,8 +67,11 @@ option.
 Set the System Time from the Hardware Clock.  
 
 Also set the kernel's timezone value to the local timezone as indicated by
-the TZ environment variable and/or /usr/lib/zoneinfo, as tzset(3) would
-interpret them.  EXCEPT: always set the Daylight Savings Time part of
+the TZ environment variable and/or
+.IR /usr/lib/zoneinfo ,
+as 
+.BR tzset (3)
+would interpret them.  EXCEPT: always set the Daylight Savings Time part of
 the kernel's timezone value to 0 ("not Daylight Savings Time").  If DST
 is indicated, just add an hour to the base part.
 
@@ -108,6 +120,12 @@ option is an argument to the
 program.  For example,
 .sp
 .I hwclock --set --date="9/22/96 16:45:05"
+.sp
+The argument is in local time, even if you keep your Hardware Clock in 
+Coordinated Universal time.  See the 
+.I \-\-utc
+option.
+
 .TP
 .B \-\-epoch=year
 Specifies the year which is the beginning of the Hardware Clock's
@@ -122,28 +140,40 @@ For example,
 The following options apply to most functions.
 .TP
 .B \-\-utc
+.TP
+.B \-\-localtime
 Indicates that the Hardware Clock is kept in Coordinated Universal
-Time.  It is your choice whether to keep your clock in UTC or local
-time, but nothing in the clock tells which you've chosen.  So this
-option is how you give that information to 
-.I hwclock.
+Time or local time, respectively.  It is your choice whether to keep
+your clock in UTC or local time, but nothing in the clock tells which
+you've chosen.  So this option is how you give that information to
+.IR hwclock .
 
-In order to avoid any possible misunderstandings: all conversation
-with the program
-.I hwclock
-is done in local time. If you have your clock in UTC
-(as is common on a Unix system) then the option
-.B --utc
-tells
+If you specify the wrong one of these options (or specify neither and
+take a wrong default), both setting and querying of the Hardware Clock
+will be messed up.
+
+If you specify neither
+.B \-\-utc
+nor
+.B \-\-localtime
+, the default is whichever was specified the last time
 .I hwclock
-to do the appropriate conversions: `hwclock \-\-show \-\-utc'
-will tell you the local time, assuming the hardware clock is in UTC,
-and `hwclock \-\-set \-\-date="XXX" \-\-utc' will set the
-hardware clock to the UTC equivalent of the local time XXX.
+was used to set the clock (i.e. hwclock was successfully run with the
+.B \-\-set
+, 
+.B \-\-systohc
+,
+or
+.B \-\-adjust
+options), as recorded in the adjtime file.  If the adjtime file doesn't
+exist, the default is local time.
+
 .TP
 .B \-\-directisa
-is meaningful only on an ISA machine.  For all other machines, it has
-no effect.  This option tells
+is meaningful only on an ISA machine or an Alpha (which implements enough
+of ISA to be, roughly speaking, an ISA machine for 
+.IR hwclock 's
+purposes).  For other machines, it has no effect.  This option tells
 .I hwclock
 to use explicit I/O instructions to access the Hardware Clock.
 Without this option, 
@@ -153,6 +183,93 @@ rtc device driver).  If it is unable to open the device (for read), it will
 use the explicit I/O instructions anyway.
 
 The rtc device driver was new in Linux Release 2.
+.TP
+.B \-\-badyear
+Indicates that the Hardware Clock is incapable of storing years outside
+the range 1994-1999.  There is a problem in some BIOSes (almost all 
+Award BIOSes made between 4/26/94 and 5/31/95) wherein they are unable
+to deal with years after 1999.  If one attempts to set the year-of-century
+value to something less than 94 (or 95 in some cases), the value that
+actually gets set is 94 (or 95).  Thus, if you have one of these machines,
+.I hwclock
+cannot set the year after 1999 and cannot use the value of the clock as
+the true time in the normal way.
+
+To compensate for this (without your getting a BIOS update, which would
+definitely be preferable), always use 
+.B \-\-badyear
+if you have one of these machines.  When  
+.I hwclock
+knows it's working with a brain-damaged clock, it ignores the year part of
+the Hardware Clock value and instead tries to guess the year based on the 
+last calibrated date in the adjtime file, by assuming that that date is
+within the past year.  For this to work, you had better do a 
+.I hwclock \-\-set
+or
+.I hwclock \-\-systohc
+at least once a year!
+
+Though 
+.I hwclock
+ignores the year value when it reads the Hardware Clock, it sets the
+year value when it sets the clock.  It sets it to 1995, 1996, 1997, or
+1998, whichever one has the same position in the leap year cycle as
+the true year.  That way, the Hardware Clock inserts leap days where
+they belong.  Again, if you let the Hardware Clock run for more than a
+year without setting it, this scheme could be defeated and you could
+end up losing a day.
+
+.I hwclock
+warns you that you probably need 
+.B \-\-badyear
+whenever it finds your Hardware Clock set to 1994 or 1995.  
+
+.TP
+.B \-\-srm
+.TP
+.B \-\-arc
+.TP
+.B \-\-jensen
+.TP
+.B \-\-funky\-toy
+These options all tell 
+.I hwclock 
+what kind of Alpha machine you have.  They
+are invalid if you don't have an Alpha and shouldn't be necessary if you
+do, because 
+.I hwclock 
+should be able to determine by itself what it's 
+running on.  These options make it possible for 
+.I hwclock 
+to work even when
+its environment does not conform to its expectations and thus it cannot
+accurately determine what sort of system it is running on.  If you think
+hwclock is incorrectly determining the system's characteristics, try 
+running with the 
+.B \-\-debug 
+option to see what conclusions the program is
+reaching and how.  If you find you need one of these options to make
+.I hwclock 
+work, contact the 
+.I hwclock 
+maintainer to see if the program can be improved to detect your system
+automatically.
+
+.B \-\-jensen 
+means you are running on a Jensen model.
+
+.B \-\-arc 
+means your machine is running with ARC console time.
+
+.B \-\-srm 
+means your machine is running with SRM console time.
+
+.B \-\-funky\-toy 
+means that on your machine, one has to use the UF bit instead
+of the UIP bit in the Hardware Clock to detect a time transition.  "Toy"
+in the option name refers to the Time Of Year facility of the machine. 
+
+
 .TP
 .B \-\-test
 Do everything except actually updating the Hardware Clock or anything
@@ -208,12 +325,12 @@ for which ISA was designed, the Hardware Clock is the only real time clock.
 .PP
 It is important that the System Time not have any discontinuities such as
 would happen if you used the 
-.I date(1L)
+.BR date (1L)
 program to set it while the system is running.  You can, however, do whatever
 you want to the Hardware Clock while the system is running, and the next
 time Linux starts up, it will do so with the adjusted time from the Hardware
 Clock.  You can also use the program 
-.I adjtimex(8)
+.BR adjtimex (8)
 to smoothly adjust the System Time while the system runs.
 .PP
 A Linux kernel maintains a concept of a local timezone for the system.
@@ -244,104 +361,93 @@ users of the timezone value would actually compute the wrong local
 time.
 .PP
 Therefore, 
-.I
-hwclock
+.I hwclock
 violates the definition of the kernel's timezone value and always sets
 the DST part to zero.  If DST is supposed to be in effect, 
-.I
-hwclock
+.I hwclock
 simply adds an hour to the geographical part.
 
 .SH How hwclock Accesses the Hardware Clock
 .PP
-.I
-hwclock 
+.I hwclock 
 Uses many different ways to get and set Hardware Clock values.
 The most normal way is to do I/O to the device special file /dev/rtc,
 which is presumed to be driven by the rtc device driver.  However,
 this method is not always available.  For one thing, the rtc driver is
 a relatively recent addition to Linux.  Older systems don't have it.
+Also, though there are versions of the rtc driver that work on DEC
+Alphas, there appear to be plenty of Alphas on which the rtc driver
+does not work (a common symptom is hwclock hanging).
 .PP
 On older systems, the method of accessing the Hardware Clock depends on
 the system hardware. 
 .PP
 On an ISA system, 
-.I
-hwclock
-can directly access the "CMOS memory" registers that constitute the clock,
-by doing I/O to Ports 0x70 and 0x71.  It can only do this if running with
-superuser effective userid.
+.I hwclock 
+can directly access the "CMOS memory" registers that
+constitute the clock, by doing I/O to Ports 0x70 and 0x71.  It does
+this with actual I/O instructions and consequently can only do it if
+running with superuser effective userid.  (In the case of a Jensen
+Alpha, there is no way for
+.I hwclock 
+to execute those I/O instructions, and so it uses instead the
+/dev/port device special file, which provides almost as low-level an
+interface to the I/O subsystem).
 
 This is a really poor method of accessing the clock, for all the
 reasons that user space programs are generally not supposed to do
 direct I/O and disable interrupts.  Hwclock provides it because it is
-the only method available with older Linux kernels for ISA machines.
+the only method available on ISA and Alpha systems which don't have
+working rtc device drivers available.
 
 .PP
 On an m68k system,
-.I
-hwclock
+.I hwclock
 can access the clock via the console driver, via the device special
 file /dev/tty1.
 .PP
-On an Alpha,
-.I
-/dev/rtc 
-is the only choice.  
-
-There are or were some Alpha Linux systems that don't have /dev/rtc
-and there are or were programs that accessed the clock via almost
-direct I/O using /dev/port.  However, this is not as good a method as
-/dev/rtc and such programs were not widely enough used that hwclock
-has any need to be backward compatible with them.  So hwclock does not
-provide the /dev/port method and consequently will not work on an
-Alpha that doesn't have /dev/rtc.
-
-.PP
-.I
-hwclock 
+.I hwclock 
 tries to use /dev/rtc.  If it is compiled for a kernel that doesn't have
 that function or it is unable to open /dev/rtc, 
-.I
-hwclock 
-will fall back to another method, if available.  On an ISA
+.I hwclock 
+will fall back to another method, if available.  On an ISA or Alpha
 machine, you can force
-.I
-hwclock
+.I hwclock
 to use the direct manipulation of the CMOS registers without even trying
-/dev/rtc by specifying the --directisa option.
+.I /dev/rtc
+by specifying the \-\-directisa option.
 
 
 .SH The Adjust Function
 .PP
 The Hardware Clock is usually not very accurate.  However, much of its
-inaccuracy is completely predictable -- it gains or loses the same amount
+inaccuracy is completely predictable - it gains or loses the same amount
 of time every day.  This is called systematic drift.
-.I Hwclock's 
+.IR hwclock 's 
 "adjust" function lets you make systematic corrections to correct the
 systematic drift.
 .PP
 It works like this:  
-.I Hwclock 
+.I hwclock 
 keeps a file,
 .I /etc/adjtime,
 that keeps some historical information.  This is called the adjtime file.
 .PP
 Suppose you start with no adjtime file.  You issue a 
-.I hwclock --set
+.I hwclock \-\-set
 command to set the Hardware Clock to the true current time.  
 .I Hwclock 
 creates the adjtime file and records in it the current time as the 
 last time the clock was calibrated.
 5 days
 later, the clock has gained 10 seconds, so you issue another
-.I hwclock --set
+.I hwclock \-\-set
 command to set it back 10 seconds.  
 .I Hwclock 
 updates the adjtime file to show the current time as the last time the
 clock was calibrated, and records 2 seconds per day as the systematic
 drift rate.  24 hours go by, and then you issue a
-.I hwclock --adjust
+.I hwclock \-\-adjust
 command.  
 .I Hwclock 
 consults the adjtime file and sees that the clock gains 2 seconds per
@@ -349,15 +455,15 @@ day when left alone and that it has been left alone for exactly one
 day.  So it subtracts 2 seconds from the Hardware Clock.  It then
 records the current time as the last time the clock was adjusted.
 Another 24 hours goes by and you issue another
-.I hwclock --adjust.
+.I hwclock \-\-adjust.
 .I Hwclock 
 does the same thing: subtracts 2 seconds and updates the adjtime file
 with the current time as the last time the clock was adjusted.
 .PP
 Every time you calibrate (set) the clock (using 
-.I --set
+.I \-\-set
 or
-.I --systohc
+.I \-\-systohc
 ),
 .I hwclock 
 recalculates the systematic drift rate based on how long it has been
@@ -374,23 +480,36 @@ the accumulated drift will be more than a second and
 will do the adjustment then.
 .PP
 It is good to do a 
-.I hwclock --adjust
+.I hwclock \-\-adjust
 just before the 
-.I hwclock --hctosys
+.I hwclock \-\-hctosys
 at system startup time, and maybe periodically while the system is
 running via cron.
 .PP
+The adjtime file, while named for its historical purpose of controlling
+adjustments only, actually contains other information for use by hwclock
+in remembering information from one invocation to the next.
+.PP
 The format of the adjtime file is, in ASCII:
 .PP
 Line 1: 3 numbers, separated by blanks: 1) systematic drift rate in
 seconds per day, floating point decimal; 2) Resulting number of
 seconds since 1969 UTC of most recent adjustment or calibration,
 decimal integer; 3) zero (for compatibility with
-.I clock
-).
+.IR clock )
+as a decimal integer.
 .PP
 Line 2: 1 number: Resulting number of seconds since 1969 UTC of most
-recent calibration.
+recent calibration.  Zero if there has been no calibration yet or it
+is known that any previous calibration is moot (for example, because
+the Hardware Clock has been found, since that calibration, not to 
+contain a valid time).  This is a decimal integer.
+.PP
+Line 3: "UTC" or "LOCAL".  Tells whether the Hardware Clock is set to 
+Coordinated Universal Time or local time.  You can always override this
+value with options on the 
+.I hwclock
+command line.
 .PP
 You can use an adjtime file that was previously used with the 
 .I clock
@@ -398,7 +517,7 @@ program with
 .I hwclock.
 
 
-.SH Automatic Hardware Clock Synchronization By the Kernel
+.SH "Automatic Hardware Clock Synchronization By the Kernel"
 
 You should be aware of another way that the Hardware Clock is kept 
 synchronized in some systems.  The Linux kernel has a mode wherein it
@@ -411,41 +530,70 @@ network or to a radio clock hooked up to your system.  See RFC 1305).
 This mode (we'll call it "11 minute mode") is off until something
 turns it on.  The ntp daemon xntpd is one thing that turns it on.  You
 can turn it off by running anything, including
-.I hwclock --hctosys
-that sets the System Time the old fashioned way.
+.IR "hwclock \-\-hctosys" ,
+that sets the System Time the old fashioned way.
 
 To see if it is on or
 off, use the command 
-.I adjtimex --print
+.I adjtimex \-\-print
 and look at the value of "status".  If the "64" bit of this number
 (expressed in binary) equal to 0, 11 minute mode is on.  Otherwise, it
 is off.
 
 If your system runs with 11 minute mode on, don't use 
-.I hwclock --adjust
+.I hwclock \-\-adjust
 or
-.I hwclock --hctosys  .
+.IR "hwclock \-\-hctosys" .
 You'll just make a mess.  It is acceptable to use a
-.I hwclock --hctosys 
+.I hwclock \-\-hctosys 
 at startup time to get a reasonable System Time until your system is
 able to set the System Time from the external source and start 11
 minute mode.
 
 
-.SH ENVIRONMENT VARIABLES
+.SH ISA Hardware Clock Century value
+
+There is some sort of standard that defines CMOS memory Byte 50 on an ISA
+machine as an indicator of what century it is.  
+.I hwclock
+does not use or set that byte because there are some machines that
+don't define the byte that way, and it really isn't necessary anyway,
+since the year-of-century does a good job of implying which century it
+is.
+
+If you have a bona fide use for a CMOS century byte, contact the 
+.I hwclock
+maintainer; an option may be appropriate.
+
+Note that this section is only relevant when you are using the "direct
+ISA" method of accessing the Hardware Clock.
+
+
+
+.SH "ENVIRONMENT VARIABLES"
 .I TZ
 
 .SH FILES
 .I /etc/adjtime
 .I /usr/lib/zoneinfo/
-
-.SH SEE ALSO
-adjtimex(8), date(1), gettimeofday(2), settimeofday(2), crontab(1),
-tzset(3)
+.I /dev/rtc
+.I /dev/port
+.I /dev/tty1
+.I /proc/cpuinfo
+
+.SH "SEE ALSO"
+.BR adjtimex (8),
+.BR date (1),
+.BR gettimeofday (2),
+.BR settimeofday (2),
+.BR crontab (1),
+.BR tzset (3)
 
 .SH AUTHORS
 Written By Bryan Henderson, September 1996 (bryanh@giraffe-data.com),
 based on work done on the
 .I clock
-program by Charles Hedrick, Rob Hooft, and Harald Koenig.  See the source
-code for complete history and credits.  
+program by Charles Hedrick, Rob Hooft, and Harald Koenig.  
+See the source code for complete history and credits.
+
+
diff --git a/clock/hwclock.c b/clock/hwclock.c
new file mode 100644 (file)
index 0000000..a496e05
--- /dev/null
@@ -0,0 +1,1290 @@
+/*
+ * hwclock.c
+ *
+ * clock.c was written by Charles Hedrick, hedrick@cs.rutgers.edu, Apr 1992
+ * Modified for clock adjustments - Rob Hooft <hooft@chem.ruu.nl>, Nov 1992
+ * Improvements by Harald Koenig <koenig@nova.tat.physik.uni-tuebingen.de>
+ * and Alan Modra <alan@spri.levels.unisa.edu.au>.
+ *
+ * Major rewrite by Bryan Henderson <bryanh@giraffe-data.com>, 96.09.19.
+ * The new program is called hwclock. New features:
+ * - You can set the hardware clock without also modifying the system clock.
+ * - You can read and set the clock with finer than 1 second precision.
+ * - When you set the clock, hwclock automatically refigures the drift
+ *   rate, based on how far off the clock was before you set it.
+ *
+ * Reshuffled things, added sparc code, and re-added alpha stuff
+ * by David Mosberger <davidm@azstarnet.com>
+ * and Jay Estabrook <jestabro@amt.tay1.dec.com> 
+ * and Martin Ostermann <ost@coments.rwth-aachen.de>, aeb@cwi.nl, 990212.
+ *
+ * Fix for Award 2094 bug, Dave Coffin  (dcoffin@shore.net)  11/12/98
+ */
+
+/*
+ * clock [-u] -r  - read hardware clock
+ * clock [-u] -w  - write hardware clock from system time
+ * clock [-u] -s  - set system time from hardware clock
+ * clock [-u] -a  - set system time from hardware clock, adjust the time
+ *                  to correct for systematic error, and write it back to
+ *                  the hardware clock
+ * -u indicates cmos clock is kept in universal time
+ * -A indicates cmos clock is kept in Alpha ARC console time (0 == 1980)
+ * -J indicates we're dealing with a Jensen (early DEC Alpha PC)
+ */
+
+/*
+ * Explanation of `adjusting' (Rob Hooft):
+ *
+ * The problem with my machine is that its CMOS clock is 10 seconds
+ * per day slow. With this version of clock.c, and my '/etc/rc.local'
+ * reading '/etc/clock -au' instead of '/etc/clock -u -s', this error
+ * is automatically corrected at every boot.
+ *
+ * To do this job, the program reads and writes the file '/etc/adjtime'
+ * to determine the correction, and to save its data. In this file are
+ * three numbers:
+ *
+ * 1) the correction in seconds per day. (So if your clock runs 5
+ *    seconds per day fast, the first number should read -5.0)
+ * 2) the number of seconds since 1/1/1970 the last time the program
+ *    was used
+ * 3) the remaining part of a second which was leftover after the last
+ *    adjustment
+ *
+ * Installation and use of this program:
+ *
+ * a) create a file '/etc/adjtime' containing as the first and only line:
+ *    '0.0 0 0.0'
+ * b) run 'clock -au' or 'clock -a', depending on whether your cmos is in
+ *    universal or local time. This updates the second number.
+ * c) set your system time using the 'date' command.
+ * d) update your cmos time using 'clock -wu' or 'clock -w'
+ * e) replace the first number in /etc/adjtime by your correction.
+ * f) put the command 'clock -au' or 'clock -a' in your '/etc/rc.local'
+ */
+
+#include <string.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <time.h>
+#include <sys/time.h>
+#include <sys/stat.h>
+#include <shhopt.h>
+
+#include "clock.h"
+#include "../version.h"
+#include "nls.h"
+
+#define MYNAME "hwclock"
+#define VERSION "2.4c"
+
+char *progname = MYNAME;
+
+/* The struct that holds our hardware access routines */
+struct clock_ops *ur;
+
+#define FLOOR(arg) ((arg >= 0 ? (int) arg : ((int) arg) - 1));
+
+/* Here the information for time adjustments is kept. */
+#define ADJPATH "/etc/adjtime"
+
+/* Store the date here when "badyear" flag is set. */
+#define LASTDATE "/var/lib/lastdate"
+
+struct adjtime {
+  /* This is information we keep in the adjtime file that tells us how
+     to do drift corrections.  Elements are all straight from the
+     adjtime file, so see documentation of that file for details.
+     Exception is <dirty>, which is an indication that what's in this
+     structure is not what's in the disk file (because it has been
+     updated since read from the disk file).  
+     */
+  bool dirty;        
+  float drift_factor;    
+  time_t last_adj_time;
+  float not_adjusted;
+  time_t last_calib_time;
+};
+
+bool debug;
+  /* We are running in debug mode, wherein we put a lot of information about
+     what we're doing to standard output. */
+
+bool badyear;
+  /* Workaround for Award 4.50g BIOS bug: keep the year in a file. */
+
+/*
+ * Almost all Award BIOS's made between 04/26/94 and 05/31/95
+ * have a nasty bug limiting the RTC year byte to the range 94-99.
+ * Any year between 2000 and 2093 gets changed to 2094, every time
+ * you start the system.
+ * With the --badyear option, we write the date to file and hope
+ * that the file is updated at least once a year.
+ * I recommend putting this command "hwclock --badyear" in the monthly
+ * crontab, just to be safe. --  Dave Coffin  11/12/98
+ */
+void
+write_date_to_file (struct tm *tm) {
+  FILE *fp;
+
+  if ((fp = fopen(LASTDATE,"w"))) {
+    fprintf(fp,"%02d.%02d.%04d\n", tm->tm_mday, tm->tm_mon+1,
+           tm->tm_year+1900);
+    fclose(fp);
+  } else
+    perror(LASTDATE);
+}
+
+void
+read_date_from_file (struct tm *tm) {
+  int last_mday, last_mon, last_year;
+  FILE *fp;
+
+  if ((fp = fopen(LASTDATE,"r"))) {
+    if (fscanf (fp,"%d.%d.%d\n", &last_mday, &last_mon, &last_year) == 3) {
+      tm->tm_year = last_year-1900;
+      if ((tm->tm_mon << 5) + tm->tm_mday < ((last_mon-1) << 5) + last_mday)
+       tm->tm_year ++;
+    }
+    fclose(fp);
+  }
+  write_date_to_file (tm);
+}
+
+static float 
+time_diff(struct timeval subtrahend, struct timeval subtractor) {
+/*---------------------------------------------------------------------------
+  The difference in seconds between two times in "timeval" format.
+----------------------------------------------------------------------------*/
+  return( (subtrahend.tv_sec - subtractor.tv_sec)
+           + (subtrahend.tv_usec - subtractor.tv_usec) / 1E6 );
+}
+
+
+static struct timeval
+time_inc(struct timeval addend, float increment) {
+/*----------------------------------------------------------------------------
+  The time, in "timeval" format, which is <increment> seconds after
+  the time <addend>.  Of course, <increment> may be negative.
+-----------------------------------------------------------------------------*/
+  struct timeval newtime;
+
+  newtime.tv_sec = addend.tv_sec + (int) increment;
+  newtime.tv_usec = addend.tv_usec + (increment - (int) increment) * 1E6;
+
+  /* Now adjust it so that the microsecond value is between 0 and 1 million */
+  if (newtime.tv_usec < 0) {
+    newtime.tv_usec += 1E6;
+    newtime.tv_sec -= 1;
+  } else if (newtime.tv_usec >= 1E6) {
+    newtime.tv_usec -= 1E6;
+    newtime.tv_sec += 1;
+  }
+  return(newtime);
+}
+
+
+
+static void
+read_adjtime(struct adjtime *adjtime_p, int *rc_p) {
+/*----------------------------------------------------------------------------
+  Read the adjustment parameters out of the /etc/adjtime file.
+
+  Return them as the adjtime structure <*adjtime_p>.
+
+  If there is no /etc/adjtime file, return defaults.
+  If values are missing from the file, return defaults for them.
+  
+  return *rc_p = 0 if all OK, !=0 otherwise.
+
+-----------------------------------------------------------------------------*/
+  FILE *adjfile;
+  int rc;  /* local return code */
+  struct stat statbuf;  /* We don't even use the contents of this. */
+
+  rc = stat(ADJPATH, &statbuf);
+  if (rc < 0 && errno == ENOENT) {
+    /* He doesn't have a adjtime file, so we'll use defaults. */
+    adjtime_p->drift_factor = 0;
+    adjtime_p->last_adj_time = 0;
+    adjtime_p->not_adjusted = 0;
+    adjtime_p->last_calib_time = 0;
+
+    *rc_p = 0;
+  } else { 
+    adjfile = fopen(ADJPATH, "r");   /* open file for reading */
+    if (adjfile == NULL) {
+      outsyserr("cannot open file " ADJPATH);
+      *rc_p = 2;
+    } else {
+      char line1[81];           /* String: first line of adjtime file */
+      char line2[81];           /* String: second line of adjtime file */
+      
+      line1[0] = '\0';          /* In case fgets fails */
+      fgets(line1, sizeof(line1), adjfile);
+      line2[0] = '\0';          /* In case fgets fails */
+      fgets(line2, sizeof(line2), adjfile);
+      
+      fclose(adjfile);
+      
+      /* Set defaults in case values are missing from file */
+      adjtime_p->drift_factor = 0;
+      adjtime_p->last_adj_time = 0;
+      adjtime_p->not_adjusted = 0;
+      adjtime_p->last_calib_time = 0;
+      
+      sscanf(line1, "%f %d %f", 
+             &adjtime_p->drift_factor,
+             (int *) &adjtime_p->last_adj_time, 
+             &adjtime_p->not_adjusted);
+      
+      sscanf(line2, "%d", (int *) &adjtime_p->last_calib_time);
+      
+      *rc_p = 0;
+    }
+    adjtime_p->dirty = FALSE;
+
+    if (debug) {
+      printf(_("Last drift adjustment done at %d seconds after 1969\n"), 
+             (int) adjtime_p->last_adj_time);
+      printf(_("Last calibration done at %d seconds after 1969\n"),
+             (int) adjtime_p->last_calib_time);
+    }
+  }
+}
+
+
+static void
+synchronize_to_clock_tick(int *retcode_p) {
+/*-----------------------------------------------------------------------------
+  Wait until the falling edge of the Hardware Clock's update flag so
+  that any time that is read from the clock immediately after we
+  return will be exact.
+
+  The clock only has 1 second precision, so it gives the exact time only
+  once per second, right on the falling edge of the update flag.
+
+  We wait (up to one second) either blocked waiting for an rtc device
+  or in a CPU spin loop.  The former is probably not very accurate.  
+
+  Return *retcode_p == 0 if it worked, nonzero if it didn't.
+
+-----------------------------------------------------------------------------*/
+  if (debug) printf(_("Waiting for clock tick...\n"));
+
+  *retcode_p = ur->synchronize_to_clock_tick();
+
+  if (debug) printf(_("...got clock tick\n"));
+}
+
+
+
+static void
+mktime_tz(struct tm tm, const bool universal, 
+          bool *valid_p, time_t *systime_p) {
+/*-----------------------------------------------------------------------------
+  Convert a time in broken down format (hours, minutes, etc.) into standard
+  unix time (seconds into epoch).  Return it as *systime_p.
+
+  The broken down time is argument <tm>.  This broken down time is either in
+  local time zone or UTC, depending on value of logical argument "universal".
+  True means it is in UTC.
+
+  If the argument contains values that do not constitute a valid time,
+  and mktime() recognizes this, return *valid_p == false and
+  *systime_p undefined.  However, mktime() sometimes goes ahead and
+  computes a fictional time "as if" the input values were valid,
+  e.g. if they indicate the 31st day of April, mktime() may compute
+  the time of May 1.  In such a case, we return the same fictional
+  value mktime() does as *systime_p and return *valid_p == true.
+
+-----------------------------------------------------------------------------*/
+  time_t mktime_result;  /* The value returned by our mktime() call */
+  char *zone;       /* Local time zone name */
+
+  /* We use the C library function mktime(), but since it only works on 
+     local time zone input, we may have to fake it out by temporarily 
+     changing the local time zone to UTC.
+     */
+  zone = (char *) getenv("TZ");        /* remember original time zone */
+  mktime_result = mktime(&tm);
+  if (universal) {
+    /* Set timezone to UTC */
+    setenv("TZ", "", TRUE);
+    /* Note: tzset() gets called implicitly by the time code, but only the
+       first time.  When changing the environment variable, better call
+       tzset() explicitly.
+       */
+    tzset();
+  }
+  mktime_result = mktime(&tm);
+  if (mktime_result == -1) {
+    /* This apparently (not specified in mktime() documentation) means
+       the 'tm' structure does not contain valid values (however, not
+       containing valid values does _not_ imply mktime() returns -1).
+       */
+    *valid_p = FALSE;
+    *systime_p = 0;
+    if (debug)
+      printf(_("Invalid values in hardware clock: "
+             "%2d/%.2d/%.2d %.2d:%.2d:%.2d\n"),
+             tm.tm_year, tm.tm_mon+1, tm.tm_mday,
+             tm.tm_hour, tm.tm_min, tm.tm_sec
+             );
+  } else {
+    *valid_p = TRUE;
+    *systime_p = mktime_result;
+    if (debug) 
+      printf(_("Hw clock time : %.2d:%.2d:%.2d = %d seconds since 1969\n"),
+             tm.tm_hour, tm.tm_min, tm.tm_sec, (int) *systime_p);
+  }
+  /* now put back the original zone.  */
+  if (zone) setenv("TZ", zone, TRUE);
+  else unsetenv("TZ");
+  tzset();
+}
+
+
+static void
+read_hardware_clock(const bool universal, bool *valid_p, time_t *systime_p){
+/*----------------------------------------------------------------------------
+  Read the hardware clock and return the current time via <tm> argument.
+
+  Use the method indicated by <method> argument to access the hardware clock.
+-----------------------------------------------------------------------------*/
+  struct tm tm;
+  int err;
+
+  err = ur->read_hardware_clock(&tm);
+
+  if (badyear)
+    read_date_from_file(&tm);
+
+  if (debug)
+    printf (_("Time read from Hardware Clock: %02d:%02d:%02d\n"),
+            tm.tm_hour, tm.tm_min, tm.tm_sec);
+  mktime_tz(tm, universal, valid_p, systime_p);
+}
+
+
+static void
+set_hardware_clock(const time_t newtime, 
+                   const bool universal, 
+                   const bool testing) {
+/*----------------------------------------------------------------------------
+  Set the Hardware Clock to the time <newtime>, in local time zone or UTC,
+  according to <universal>.
+----------------------------------------------------------------------------*/
+  int err;
+  struct tm new_broken_time;  
+    /* Time to which we will set Hardware Clock, in broken down format, in
+       the time zone of caller's choice
+       */
+
+  if (universal)
+         new_broken_time = *gmtime(&newtime);
+  else
+         new_broken_time = *localtime(&newtime);
+
+  if (debug) 
+    printf(_("Setting Hardware Clock to %.2d:%.2d:%.2d "
+           "= %d seconds since 1969\n"), 
+           new_broken_time.tm_hour, new_broken_time.tm_min, 
+           new_broken_time.tm_sec, (int) newtime);
+
+  if (testing)
+    printf(_("Clock not changed - testing only.\n"));
+  else {
+    if (badyear) {
+      /*
+       * Write the real year to a file, then write a fake year
+       * between 1995 and 1998 to the RTC.  This way, Award BIOS boots
+       * on 29 Feb 2000 thinking that it's 29 Feb 1996.
+       */
+      write_date_to_file (&new_broken_time);
+      new_broken_time.tm_year = 95 + ((new_broken_time.tm_year+1) & 3);
+    }
+    err = ur->set_hardware_clock(&new_broken_time);
+  }
+}
+
+
+
+static void
+set_hardware_clock_exact(const time_t settime, 
+                         const struct timeval ref_time,
+                         const bool universal, 
+                         const bool testing) {
+/*----------------------------------------------------------------------------
+  Set the Hardware Clock to the time "settime", in local time zone or UTC,
+  according to "universal".
+
+  But correct "settime" and wait for a fraction of a second so that
+  "settime" is the value of the Hardware Clock as of system time
+  "ref_time", which is in the past.  For example, if "settime" is
+  14:03:05 and "ref_time" is 12:10:04.5 and the current system
+  time is 12:10:06.0: Wait .5 seconds (to make exactly 2 seconds since
+  "ref_time") and then set the Hardware Clock to 14:03:07, thus
+  getting a precise and retroactive setting of the clock.
+
+  (Don't be confused by the fact that the system clock and the Hardware
+  Clock differ by two hours in the above example.  That's just to remind 
+  you that there are two independent time scales here).
+
+  This function ought to be able to accept set times as fractional times.
+  Idea for future enhancement.
+
+-----------------------------------------------------------------------------*/
+  time_t newtime;  /* Time to which we will set Hardware Clock */
+  struct timeval now_time;  /* locally used time */
+
+  gettimeofday(&now_time, NULL);
+  newtime = settime + (int) time_diff(now_time, ref_time) + 1;
+  if (debug) 
+    printf(_("Time elapsed since reference time has been %.6f seconds.\n"
+           "Delaying further to reach the next full second.\n"),
+           time_diff(now_time, ref_time));
+  
+  /* Now delay some more until Hardware Clock time newtime arrives */
+  do gettimeofday(&now_time, NULL);
+  while (time_diff(now_time, ref_time) < newtime - settime);
+  
+  set_hardware_clock(newtime, universal, testing);
+}
+
+
+
+static void
+display_time(const bool hclock_valid, const time_t systime, 
+             const float sync_duration) {
+/*----------------------------------------------------------------------------
+  Put the time "systime" on standard output in display format.
+  Except if hclock_valid == false, just tell standard output that we don't
+  know what time it is.
+
+  Include in the output the adjustment "sync_duration".
+-----------------------------------------------------------------------------*/
+  if (!hclock_valid)
+    fprintf(stderr, _("The Hardware Clock registers contain values that are "
+            "either invalid (e.g. 50th day of month) or beyond the range "
+            "we can handle (e.g. Year 2095).\n"));
+  else {
+    char *ctime_now;  /* Address of static storage containing time string */
+
+    /* For some strange reason, ctime() is designed to include a newline
+       character at the end.  We have to remove that.
+       */
+    ctime_now = ctime(&systime);    /* Compute display value for time */
+    *(ctime_now+strlen(ctime_now)-1) = '\0';  /* Cut off trailing newline */
+    
+    printf(_("%s  %.6f seconds\n"), ctime_now, -(sync_duration));
+  }
+}
+
+
+
+static int
+interpret_date_string(const char *date_opt, time_t * const time_p) {
+/*----------------------------------------------------------------------------
+  Interpret the value of the --date option, which is something like
+  "13:05:01".  In fact, it can be any of the myriad ASCII strings that specify
+  a time which the "date" program can understand.  The date option value in
+  question is our "dateopt" argument.  
+
+  The specified time is in the local time zone.
+
+  Our output, "*time_p", is a seconds-into-epoch time.
+
+  We use the "date" program to interpret the date string.  "date" must be
+  runnable by issuing the command "date" to the /bin/sh shell.  That means
+  in must be in the current PATH.
+
+  If anything goes wrong (and many things can), we return return code
+  10 and arbitrary *time_p.  Otherwise, return code is 0 and *time_p
+  is valid.
+----------------------------------------------------------------------------*/
+  FILE *date_child_fp;
+  char date_resp[100];
+  const char magic[]="seconds-into-epoch=";
+  char date_command[100];  
+  int retcode;  /* our eventual return code */
+  int rc;  /* local return code */
+
+  if (date_opt == NULL) {
+    fprintf(stderr, _("No --date option specified.\n"));
+    retcode = 14;
+  } else if (strchr(date_opt, '"') != NULL) {
+    /* Quotation marks in date_opt would ruin the date command we construct.
+       */
+    fprintf(stderr, _("The value of the --date option is not a valid date.\n"
+            "In particular, it contains quotation marks.\n"));
+    retcode = 12;
+  } else {
+    sprintf(date_command, "date --date=\"%s\" +seconds-into-epoch=%%s", 
+            date_opt);
+    if (debug) printf(_("Issuing date command: %s\n"), date_command);
+
+    date_child_fp = popen(date_command, "r");
+    if (date_child_fp == NULL) {
+      outsyserr(_("Unable to run 'date' program in /bin/sh shell. "
+                "popen() failed"));
+      retcode = 10;
+    } else {
+      date_resp[0] = '\0';  /* in case fgets fails */
+      fgets(date_resp, sizeof(date_resp), date_child_fp);
+      if (debug) printf(_("response from date command = %s\n"), date_resp);
+      if (strncmp(date_resp, magic, sizeof(magic)-1) != 0) {
+        fprintf(stderr, _("The date command issued by %s returned "
+                "unexpected results.\n"
+                "The command was:\n  %s\nThe response was:\n  %s\n"), 
+                MYNAME, date_command, date_resp);
+        retcode = 8;
+      } else {
+        int seconds_since_epoch;
+        rc = sscanf(date_resp + sizeof(magic)-1, "%d", &seconds_since_epoch);
+        if (rc < 1) {
+          fprintf(stderr, _("The date command issued by %s returned"
+                  "something other than an integer where the converted"
+                  "time value was expected.\n"
+                  "The command was:\n  %s\nThe response was:\n %s\n"),
+                  MYNAME, date_command, date_resp);
+          retcode = 6;
+        } else {
+          retcode = 0;
+          *time_p = seconds_since_epoch;
+          if (debug) 
+            printf(_("date string %s equates to %d seconds since 1969.\n"),
+                   date_opt, (int) *time_p);
+        }
+      }
+      fclose(date_child_fp);
+    }
+  }
+  return(retcode);
+}
+
+
+static int 
+set_system_clock(const bool hclock_valid, const time_t newtime, 
+                 const bool testing) {
+/*----------------------------------------------------------------------------
+   Set the System Clock to time 'newtime'.
+
+   Also set the kernel time zone value to the value indicated by the 
+   TZ environment variable and/or /usr/lib/zoneinfo/, interpreted as
+   tzset() would interpret them.  Except: do not consider Daylight
+   Savings Time to be a separate component of the time zone.  Include
+   any effect of DST in the basic timezone value and set the kernel
+   DST value to 0.
+
+   EXCEPT: if hclock_valid is false, just issue an error message
+   saying there is no valid time in the Hardware Clock to which to set
+   the system time.
+
+   If 'testing' is true, don't actually update anything -- just say we 
+   would have.
+-----------------------------------------------------------------------------*/
+  int retcode;  /* our eventual return code */
+
+  if (!hclock_valid) {
+    fprintf(stderr,_("The Hardware Clock does not contain a valid time, so "
+            "we cannot set the System Time from it.\n"));
+    retcode = 1;
+  } else {
+    struct timeval tv;
+    int rc;  /* local return code */
+    
+    tv.tv_sec = newtime;
+    tv.tv_usec = 0;
+    
+    tzset(); /* init timezone, daylight from TZ or ...zoneinfo/localtime */
+    /* An undocumented function of tzset() is to set global variabales
+       'timezone' and 'daylight'
+       */
+    
+    if (debug) {
+      printf( _("Calling settimeofday:\n") );
+      printf( _("\ttv.tv_sec = %ld, tv.tv_usec = %ld\n"),
+             (long) tv.tv_sec, (long) tv.tv_usec );
+      printf( _("\ttz.tz_minuteswest = %ld\n"), timezone/60 - 60*daylight);
+    }
+    if (testing) {
+      printf(_("Not setting system clock because running in test mode.\n"));
+      retcode = 0;
+    } else {
+      /* For documentation of settimeofday(), in addition to its man page,
+         see kernel/time.c in the Linux source code.  
+         */
+      const struct timezone tz = { timezone/60 - 60*daylight, 0 };
+      /* put daylight in minuteswest rather than dsttime,
+         since the latter is mostly ignored ... */
+      rc = settimeofday(&tv, &tz);
+      if (rc != 0) {
+        if (errno == EPERM)
+          fprintf(stderr, _("Must be superuser to set system clock.\n"));
+        else
+          outsyserr(_("settimeofday() failed"));
+        retcode = 1;
+      } else retcode = 0;
+    }
+  }
+  return(retcode);
+}
+
+
+static void
+adjust_drift_factor(struct adjtime *adjtime_p,
+                    const time_t nowtime, 
+                    const bool hclock_valid, const time_t hclocktime   ) {
+/*---------------------------------------------------------------------------
+  Update the drift factor in <*adjtime_p> to reflect the fact that the
+  Hardware Clock was calibrated to <nowtime> and before that was set
+  to <hclocktime>.
+
+  We assume that the user has been doing regular drift adjustments
+  using the drift factor in the adjtime file, so if <nowtime> and
+  <clocktime> are different, that means the adjustment factor isn't
+  quite right.
+
+  We record in the adjtime file the time at which we last calibrated
+  the clock so we can compute the drift rate each time we calibrate.
+
+  EXCEPT: if <hclock_valid> is false, assume Hardware Clock was not set
+  before to anything meaningful and regular adjustments have not been
+  done, so don't adjust the drift factor.
+
+----------------------------------------------------------------------------*/
+  if (!hclock_valid) {
+    if (debug)
+      printf(_("Not adjusting drift factor because the Hardware Clock "
+             "previously contained garbage.\n"));
+  } else if ((hclocktime - adjtime_p->last_calib_time) < 23 * 60 * 60) {
+    if (debug) 
+      printf(_("Not adjusting drift factor because it has been less than a "
+             "day since the last calibration.\n"));
+  } else {
+    const float factor_adjust = 
+      ((float) (nowtime - hclocktime) 
+       / (hclocktime - adjtime_p->last_calib_time))
+        * 24 * 60 * 60;
+
+    if (debug)
+      printf(_("Clock drifted %d seconds in the past %d seconds "
+             "in spite of a drift factor of %f seconds/day.\n"
+             "Adjusting drift factor by %f seconds/day\n"),
+             (int) (nowtime - hclocktime),
+             (int) (hclocktime - adjtime_p->last_calib_time),
+             adjtime_p->drift_factor,
+             factor_adjust  );
+      
+    adjtime_p->drift_factor += factor_adjust;
+  }
+  adjtime_p->last_calib_time = nowtime;
+  
+  adjtime_p->last_adj_time = nowtime;
+  
+  adjtime_p->not_adjusted = 0;
+    
+  adjtime_p->dirty = TRUE;
+}
+
+
+
+static void
+calculate_adjustment(
+                     const float factor,
+                     const time_t last_time, 
+                     const float not_adjusted,
+                     const time_t systime,
+                     int *adjustment_p, 
+                     float *retro_p,
+                     const int debug ) {
+/*----------------------------------------------------------------------------
+  Do the drift adjustment calculation.
+
+  The way we have to set the clock, we need the adjustment in two parts:
+
+    1) an integer number of seconds (return as *adjustment_p)
+       
+    2) a positive fraction of a second (less than 1) (return as *retro_p)
+
+  The sum of these two values is the adjustment needed.  Positive means to
+  advance the clock or insert seconds.  Negative means to retard the clock
+  or remove seconds.
+----------------------------------------------------------------------------*/
+  float exact_adjustment;
+
+  exact_adjustment = ((float) (systime - last_time)) * factor / (24 * 60 * 60)
+                     + not_adjusted;
+  *adjustment_p = FLOOR(exact_adjustment);
+  
+  *retro_p = exact_adjustment - (float) *adjustment_p;
+  if (debug) {
+    printf (_("Time since last adjustment is %d seconds\n"),
+            (int) (systime - last_time));
+    printf (_("Need to insert %d seconds and refer time back "
+            "%.6f seconds ago\n"),
+            *adjustment_p, *retro_p);
+  }
+}
+
+
+
+static void
+save_adjtime(const struct adjtime adjtime, const bool testing) {
+/*-----------------------------------------------------------------------------
+  Write the contents of the <adjtime> structure to its disk file.
+
+  But if the contents are clean (unchanged since read from disk), don't
+  bother.
+-----------------------------------------------------------------------------*/
+  char newfile[405];   /* Stuff to write to disk file */
+
+  if (adjtime.dirty) {
+    /* snprintf is not always available, but this is safe
+       as long as libc does not use more than 100 positions for %ld or %f */
+    sprintf(newfile, "%f %ld %f\n%ld\n",
+             adjtime.drift_factor,
+             (long) adjtime.last_adj_time,
+             adjtime.not_adjusted,
+             (long) adjtime.last_calib_time  );
+
+    if (testing) {
+      printf(_("Not updating adjtime file because of testing mode.\n"));
+      printf(_("Would have written the following to %s:\n%s"), 
+             ADJPATH, newfile);
+    } else {
+      FILE *adjfile;
+      int err = 0;
+
+      adjfile = fopen(ADJPATH, "w");
+      if (adjfile == NULL) {
+        outsyserr("Could not open file with the clock adjustment parameters "
+               "in it (" ADJPATH ") for writing");
+       err = 1;
+      } else {
+        if (fprintf(adjfile, newfile) < 0) {
+         outsyserr("Could not update file with the clock adjustment "
+                   "parameters (" ADJPATH ") in it");
+         err = 1;
+        }
+        if (fclose(adjfile) < 0) {
+          outsyserr("Could not update file with the clock adjustment "
+                   "parameters (" ADJPATH ") in it");
+         err = 1;
+        }
+      }
+      if (err)
+       fprintf(stderr, _("Drift adjustment parameters not updated.\n"));
+    }
+  }
+}
+
+
+
+static void
+do_adjustment(struct adjtime *adjtime_p,
+              const bool hclock_valid, const time_t hclocktime, 
+              const struct timeval read_time,
+              const bool universal, const bool testing) {
+/*---------------------------------------------------------------------------
+  Do the adjustment requested, by 1) setting the Hardware Clock (if 
+  necessary), and 2) updating the last-adjusted time in the adjtime
+  structure.
+
+  Do not update anything if the Hardware Clock does not currently present
+  a valid time.
+
+  arguments <factor> and <last_time> are current values from the adjtime
+  file.
+
+  <hclock_valid> means the Hardware Clock contains a valid time, and that
+  time is <hclocktime>.
+
+  <read_time> is the current system time (to be precise, it is the system 
+  time at the time <hclocktime> was read, which due to computational delay
+  could be a short time ago).
+
+  <universal>: the Hardware Clock is kept in UTC.
+
+  <testing>:  We are running in test mode (no updating of clock).
+
+  We do not bother to update the clock if the adjustment would be less than
+  one second.  This is to avoid cumulative error and needless CPU hogging
+  (remember we use an infinite loop for some timing) if the user runs us
+  frequently.
+
+----------------------------------------------------------------------------*/
+  if (!hclock_valid) {
+    fprintf(stderr, _("The Hardware Clock does not contain a valid time, "
+            "so we cannot adjust it.\n"));
+  } else {
+    int adjustment;
+    /* Number of seconds we must insert in the Hardware Clock */
+    float retro;   
+    /* Fraction of second we have to remove from clock after inserting
+       <adjustment> whole seconds.
+       */
+    calculate_adjustment(adjtime_p->drift_factor,
+                         adjtime_p->last_adj_time,
+                         adjtime_p->not_adjusted,
+                         hclocktime,
+                         &adjustment, &retro,
+                         debug );
+    if (adjustment > 0 || adjustment < -1) {
+      set_hardware_clock_exact(hclocktime + adjustment, 
+                               time_inc(read_time, -retro),
+                               universal, testing);
+      adjtime_p->last_adj_time = hclocktime + adjustment;
+      adjtime_p->not_adjusted = 0;
+      adjtime_p->dirty = TRUE;
+    } else 
+      if (debug) 
+        printf(_("Needed adjustment is less than one second, "
+               "so not setting clock.\n"));
+  }
+}
+
+
+
+static void
+determine_clock_access_method(const bool user_requests_ISA) {
+
+  ur = NULL;
+
+  if (user_requests_ISA)
+         ur = probe_for_cmos_clock();
+
+  if (!ur)
+         ur = probe_for_rtc_clock();
+
+  if (!ur)
+         ur = probe_for_kd_clock();
+
+  if (!ur && !user_requests_ISA)
+         ur = probe_for_cmos_clock();
+
+  if (debug) {
+         if (ur)
+                 printf(_("Using %s.\n"), ur->interface_name);
+         else
+                 printf(_("No usable clock interface found.\n"));
+  }
+}
+
+static void
+manipulate_clock(const bool show, const bool adjust, 
+                 const bool set, const time_t set_time,
+                 const bool hctosys, const bool systohc, 
+                 const struct timeval startup_time, 
+                 const bool universal, const bool testing,
+                 int *retcode_p
+                 ) {
+/*---------------------------------------------------------------------------
+  Do all the normal work of hwclock - read, set clock, etc.
+
+  Issue output to stdout and error message to stderr where appropriate.
+
+  Return rc == 0 if everything went OK, rc != 0 if not.
+----------------------------------------------------------------------------*/
+  struct adjtime adjtime;
+    /* Contents of the adjtime file, or what they should be. */
+  int rc;  /* local return code */
+  bool no_auth;  /* User lacks necessary authorization to access the clock */
+
+  no_auth = ur->get_permissions();
+
+  if (no_auth) *retcode_p = 1;
+  else {
+    if (adjust || set || systohc) 
+      read_adjtime(&adjtime, &rc);
+    else {
+      /* A little trick to avoid reading the file if we don't have to */
+      adjtime.dirty = FALSE; 
+      rc = 0;
+    }
+    if (rc != 0) *retcode_p = 2;
+    else {
+      synchronize_to_clock_tick(retcode_p);  
+        /* this takes up to 1 second */
+      if (*retcode_p == 0) {
+        struct timeval read_time; 
+          /* The time at which we read the Hardware Clock */
+
+        bool hclock_valid;
+          /* The Hardware Clock gives us a valid time, or at least something
+             close enough to fool mktime().
+             */
+
+        time_t hclocktime;
+          /* The time the hardware clock had just after we
+             synchronized to its next clock tick when we started up.
+             Defined only if hclock_valid is true.
+             */
+        
+        gettimeofday(&read_time, NULL);
+        read_hardware_clock(universal, &hclock_valid, &hclocktime); 
+        
+        if (show) {
+          display_time(hclock_valid, hclocktime, 
+                       time_diff(read_time, startup_time));
+          *retcode_p = 0;
+        } else if (set) {
+          set_hardware_clock_exact(set_time, startup_time, 
+                                     universal, testing);
+          adjust_drift_factor(&adjtime, set_time, hclock_valid, hclocktime);
+          *retcode_p = 0;
+        } else if (adjust) {
+          do_adjustment(&adjtime, hclock_valid, hclocktime, 
+                        read_time, universal, testing);
+          *retcode_p = 0;
+        } else if (systohc) {
+          struct timeval nowtime, reftime;
+          /* We can only set_hardware_clock_exact to a whole seconds
+             time, so we set it with reference to the most recent
+             whole seconds time.  
+             */
+          gettimeofday(&nowtime, NULL);
+          reftime.tv_sec = nowtime.tv_sec;
+          reftime.tv_usec = 0;
+          
+          set_hardware_clock_exact((time_t) reftime.tv_sec, reftime, 
+                                   universal, testing);
+          *retcode_p = 0;
+          adjust_drift_factor(&adjtime, (time_t) reftime.tv_sec, hclock_valid, 
+                              hclocktime);
+        } else if (hctosys) {
+          rc = set_system_clock(hclock_valid, hclocktime, testing);
+          if (rc != 0) {
+            printf(_("Unable to set system clock.\n"));
+            *retcode_p = 1;
+          } else *retcode_p = 0;
+        }
+        save_adjtime(adjtime, testing);
+      }
+    }
+  }
+}
+
+
+static void
+manipulate_epoch(const bool getepoch, const bool setepoch, 
+                 const int epoch_opt, const bool testing) {
+/*----------------------------------------------------------------------------
+   Get or set the Hardware Clock epoch value in the kernel, as appropriate.
+   <getepoch>, <setepoch>, and <epoch> are hwclock invocation options.
+
+   <epoch> == -1 if the user did not specify an "epoch" option.
+
+-----------------------------------------------------------------------------*/
+  /*
+   Maintenance note:  This should work on non-Alpha machines, but the 
+   evidence today (98.03.04) indicates that the kernel only keeps the
+   epoch value on Alphas.  If that is ever fixed, this function should be
+   changed.
+   */
+
+#ifndef __alpha__
+    fprintf(stderr, _("The kernel keeps an epoch value for the Hardware Clock "
+            "only on an Alpha machine.\nThis copy of hwclock was built for "
+            "a machine other than Alpha\n(and thus is presumably not running "
+            "on an Alpha now).  No action taken.\n"));
+#else
+    if (getepoch) {
+      unsigned long epoch;
+
+      if (get_epoch_rtc(&epoch, 0))
+        fprintf(stderr, _("Unable to get the epoch value from the kernel.\n"));
+      else 
+        printf(_("Kernel is assuming an epoch value of %lu\n"), epoch);
+    } else if (setepoch) {
+      if (epoch_opt == -1)
+        fprintf(stderr, _("To set the epoch value, you must use the 'epoch' "
+                "option to tell to what value to set it.\n"));
+      else if (testing)
+        printf(_("Not setting the epoch to %d - testing only.\n"),
+              epoch_opt);
+      else if (set_epoch_rtc(epoch_opt))
+        printf(_("Unable to set the epoch value in the kernel.\n"));
+    }
+#endif
+}
+
+int 
+main(int argc, char **argv, char **envp) {
+
+  struct timeval startup_time;
+    /* The time we started up, in seconds into the epoch, including fractions.
+       */
+  time_t set_time;  /* Time to which user said to set Hardware Clock */
+
+  bool permitted;  /* User is permitted to do the function */
+  int retcode;   /* Our eventual return code */
+
+  int rc;  /* local return code */
+
+  /* option_def is the control table for the option parser.  These other
+     variables are the results of parsing the options and their meanings
+     are given by the option_def.  The only exception is <show>, which
+     may be modified after parsing is complete to effect an implied option.
+     */
+  bool show, set, systohc, hctosys, adjust, getepoch, setepoch, version;
+  bool ARCconsole, universal, testing, directisa, Jensen, SRM, funky_toy;
+  char *date_opt;
+  int epoch_opt;
+
+  const optStruct option_def[] = {
+    { 'r', (char *) "show",      OPT_FLAG,   &show,      0 },
+    { 0,   (char *) "set",       OPT_FLAG,   &set,       0 },
+    { 'w', (char *) "systohc",   OPT_FLAG,   &systohc,   0 },
+    { 's', (char *) "hctosys",   OPT_FLAG,   &hctosys,   0 },
+    { 0,   (char *) "getepoch",  OPT_FLAG,   &getepoch,  0 },
+    { 0,   (char *) "setepoch",  OPT_FLAG,   &setepoch,  0 },
+    { 'a', (char *) "adjust",    OPT_FLAG,   &adjust,    0 },
+    { 'v', (char *) "version",   OPT_FLAG,   &version,   0 },
+    { 0,   (char *) "date",      OPT_STRING, &date_opt,  0 },
+    { 0,   (char *) "epoch",     OPT_UINT,   &epoch_opt, 0 },
+    { 'u', (char *) "utc",       OPT_FLAG,   &universal, 0 },
+    { 0,   (char *) "badyear",   OPT_FLAG,   &badyear,   0 },
+    { 0,   (char *) "directisa", OPT_FLAG,   &directisa, 0 },
+    { 0,   (char *) "test",      OPT_FLAG,   &testing,   0 },
+    { 'D', (char *) "debug",     OPT_FLAG,   &debug,     0 },
+#ifdef __alpha__
+    { 'A', (char *) "ARC",       OPT_FLAG,   &ARCconsole,0 },
+    { 'J', (char *) "Jensen",    OPT_FLAG,   &Jensen,    0 },
+    { 'S', (char *) "SRM",       OPT_FLAG,   &SRM,       0 },
+    { 'F', (char *) "funky-toy", OPT_FLAG,   &funky_toy, 0 },
+#endif
+    { 0,   (char *) NULL,        OPT_END,    NULL,       0 }
+  };
+  int argc_parse;       /* argc, except we modify it as we parse */
+  char **argv_parse;    /* argv, except we modify it as we parse */
+
+  gettimeofday(&startup_time, NULL);  /* Remember what time we were invoked */
+
+  setlocale(LC_ALL, "");
+  bindtextdomain(PACKAGE, LOCALEDIR);
+  textdomain(PACKAGE);
+
+  /* set option defaults */
+  show = set = systohc = hctosys = adjust = getepoch = setepoch = 
+    version = universal = ARCconsole = SRM = funky_toy =
+    directisa = badyear = Jensen = testing = debug = FALSE;
+  date_opt = NULL;
+  epoch_opt = -1; 
+
+  argc_parse = argc; argv_parse = argv;
+  optParseOptions(&argc_parse, argv_parse, option_def, 0);
+    /* Uses and sets argc_parse, argv_parse. 
+       Sets show, systohc, hctosys, adjust, universal, version, testing, 
+       debug, set, date_opt, getepoch, setepoch, epoch_opt
+       */
+    /* This is an ugly routine - for example, if I give an incorrect
+       option, it only says "unrecognized option" without telling
+       me what options are recognized. Rewrite with standard
+       getopt() and usage() and throw shhopt out. */
+  
+  if (argc_parse - 1 > 0) {
+    fprintf(stderr, _("%s takes no non-option arguments.  "
+            "You supplied %d.\n"),
+            MYNAME, argc_parse - 1);
+    exit(100);
+  }
+
+  if (show + set + systohc + hctosys + adjust + 
+      getepoch + setepoch + version > 1) {
+    fprintf(stderr, _("You have specified multiple function options.\n"
+            "You can only perform one function at a time.\n"));
+    exit(100);
+  }
+
+#ifdef __alpha__
+  set_cmos_epoch(ARCconsole, SRM);
+  set_cmos_access(Jensen, funky_toy);
+#endif
+
+  if (set) {
+    rc = interpret_date_string(date_opt, &set_time);  /* (time-consuming) */
+    if (rc != 0) {
+      fprintf(stderr, _("No usable set-to time.  Cannot set clock.\n"));
+      exit(100);
+    }
+  }
+
+  if (!(show | set | systohc | hctosys | adjust | getepoch | setepoch |
+        version)) 
+    show = 1; /* default to show */
+
+  
+  if (getuid() == 0) permitted = TRUE;
+  else {
+    /* program is designed to run setuid (in some situations) -- be secure! */
+    if (set || hctosys || systohc || adjust) {
+      fprintf(stderr, 
+              _("Sorry, only the superuser can change the Hardware Clock.\n"));
+      permitted = FALSE;
+    } else if (setepoch) {
+      fprintf(stderr, 
+              _("Sorry, only the superuser can change "
+              "the Hardware Clock epoch in the kernel.\n"));
+      permitted = FALSE;
+    } else permitted = TRUE;
+  }
+
+  if (!permitted) retcode = 2;
+  else {
+    retcode = 0;
+    if (version) {
+      printf(MYNAME " " VERSION "/%s\n",util_linux_version);
+    } else if (getepoch || setepoch) {
+      manipulate_epoch(getepoch, setepoch, epoch_opt, testing);
+    } else {
+      determine_clock_access_method(directisa);
+      if (!ur)
+        fprintf(stderr, _("Cannot access the Hardware Clock via any known "
+                "method.  Use --debug option to see the details of our "
+                "search for an access method.\n"));
+      else
+        manipulate_clock(show, adjust, set, set_time, hctosys, systohc, 
+                         startup_time, universal, testing, &rc);
+    }
+  }
+  exit(retcode);
+}
+
+/* A single routine for greater uniformity */
+void
+outsyserr(char *msg) {
+       fprintf(stderr, _("%s: %s, errno=%d: %s.\n"),
+               progname, msg, errno, strerror(errno));
+}
+
+/****************************************************************************
+
+  History of this program:
+
+  98.08.12 BJH   Version 2.4 
+
+  Don't use century byte from Hardware Clock.  Add comments telling why.
+
+
+  98.06.20 BJH   Version 2.3.
+
+  Make --hctosys set the kernel timezone from TZ environment variable
+  and/or /usr/lib/zoneinfo.  From Klaus Ripke (klaus@ripke.com).
+
+  98.03.05 BJH.  Version 2.2.  
+
+  Add --getepoch and --setepoch.  
+
+  Fix some word length things so it works on Alpha.
+
+  Make it work when /dev/rtc doesn't have the interrupt functions.
+  In this case, busywait for the top of a second instead of blocking and
+  waiting for the update complete interrupt.
+
+  Fix a bunch of bugs too numerous to mention.
+
+  97.06.01: BJH.  Version 2.1.  Read and write the century byte (Byte
+  50) of the ISA Hardware Clock when using direct ISA I/O.  Problem
+  discovered by job (jei@iclnl.icl.nl).
+  
+  Use the rtc clock access method in preference to the KDGHWCLK method.
+  Problem discovered by Andreas Schwab <schwab@LS5.informatik.uni-dortmund.de>.
+
+  November 1996: Version 2.0.1.  Modifications by Nicolai Langfeldt
+  (janl@math.uio.no) to make it compile on linux 1.2 machines as well
+  as more recent versions of the kernel. Introduced the NO_CLOCK
+  access method and wrote feature test code to detect absense of rtc
+  headers.
+
+
+**************************************************************************
+  Maintenance notes
+
+  To compile this, you must use GNU compiler optimization (-O option)
+  in order to make the "extern inline" functions from asm/io.h (inb(),
+  etc.)  compile.  If you don't optimize, which means the compiler
+  will generate no inline functions, the references to these functions
+  in this program will be compiled as external references.  Since you
+  probably won't be linking with any functions by these names, you will
+  have unresolved external references when you link.
+  
+  The program is designed to run setuid superuser, since we need to be
+  able to do direct I/O.  (More to the point: we need permission to 
+  execute the iopl() system call).  (However, if you use one of the 
+  methods other than direct ISA I/O to access the clock, no setuid is
+  required).
+  Here's some info on how we must deal with the time that elapses while
+  this program runs: There are two major delays as we run:
+
+    1) Waiting up to 1 second for a transition of the Hardware Clock so
+       we are synchronized to the Hardware Clock.
+
+    2) Running the "date" program to interpret the value of our --date
+       option.
+
+  Reading the /etc/adjtime file is the next biggest source of delay and
+  uncertainty.
+
+  The user wants to know what time it was at the moment he invoked us,
+  not some arbitrary time later.  And in setting the clock, he is
+  giving us the time at the moment we are invoked, so if we set the
+  clock some time later, we have to add some time to that.
+
+  So we check the system time as soon as we start up, then run "date"
+  and do file I/O if necessary, then wait to synchronize with a
+  Hardware Clock edge, then check the system time again to see how
+  much time we spent.  We immediately read the clock then and (if 
+  appropriate) report that time, and additionally, the delay we measured.
+
+  If we're setting the clock to a time given by the user, we wait some
+  more so that the total delay is an integral number of seconds, then
+  set the Hardware Clock to the time the user requested plus that
+  integral number of seconds.  N.B. The Hardware Clock can only be set
+  in integral seconds.
+
+  If we're setting the clock to the system clock value, we wait for
+  the system clock to reach the top of a second, and then set the
+  Hardware Clock to the system clock's value.
+
+  Here's an interesting point about setting the Hardware Clock:  On my
+  machine, when you set it, it sets to that precise time.  But one can
+  imagine another clock whose update oscillator marches on a steady one
+  second period, so updating the clock between any two oscillator ticks
+  is the same as updating it right at the earlier tick.  To avoid any
+  complications that might cause, we set the clock as soon as possible
+  after an oscillator tick.
+
+  
+  About synchronizing to the Hardware Clock when reading the time: The
+  precision of the Hardware Clock counters themselves is one second.
+  You can't read the counters and find out that is 12:01:02.5.  But if
+  you consider the location in time of the counter's ticks as part of
+  its value, then its precision is as infinite as time is continuous!
+  What I'm saying is this: To find out the _exact_ time in the
+  hardware clock, we wait until the next clock tick (the next time the
+  second counter changes) and measure how long we had to wait.  We
+  then read the value of the clock counters and subtract the wait time
+  and we know precisely what time it was when we set out to query the
+  time.
+
+  hwclock uses this method, and considers the Hardware Clock to have
+  infinite precision.
+
+
+  Enhancements needed:
+
+   - When waiting for whole second boundary in set_hardware_clock_exact,
+     fail if we miss the goal by more than .1 second, as could happen if
+     we get pre-empted (by the kernel dispatcher).
+
+****************************************************************************/ 
+
diff --git a/clock/kd.c b/clock/kd.c
new file mode 100644 (file)
index 0000000..9ec91f0
--- /dev/null
@@ -0,0 +1,149 @@
+/* kd.c - KDGHWCLK stuff, possibly m68k only */
+#include <unistd.h>            /* for close() */
+#include <fcntl.h>             /* for O_RDONLY */
+#include <sys/ioctl.h>
+
+#include "clock.h"
+#include "nls.h"
+
+static int con_fd = -1;                /* opened by probe_for_kd_clock() */
+                               /* never closed */
+
+/* Get defines for KDGHWCLK and KDSHWCLK (m68k) */
+#include <linux/kd.h>
+#ifndef KDGHWCLK
+#define KDGHWCLK        0x4B50     /* get hardware clock */
+#define KDSHWCLK        0x4B51     /* set hardware clock */
+struct hwclk_time {
+        unsigned        sec;    /* 0..59 */
+        unsigned        min;    /* 0..59 */
+        unsigned        hour;   /* 0..23 */
+        unsigned        day;    /* 1..31 */
+        unsigned        mon;    /* 0..11 */
+        unsigned        year;   /* 70... */
+        int             wday;   /* 0..6, 0 is Sunday, -1 means unknown/don't set */
+};
+#endif
+
+static int
+synchronize_to_clock_tick_kd(void) {
+/*----------------------------------------------------------------------------
+   Wait for the top of a clock tick by calling KDGHWCLK in a busy loop until
+   we see it.  
+-----------------------------------------------------------------------------*/
+  int i;
+
+  /* The time when we were called (and started waiting) */
+  struct hwclk_time start_time, nowtime;
+
+  if (debug)
+    printf(_("Waiting in loop for time from KDGHWCLK to change\n"));
+
+  if (ioctl(con_fd, KDGHWCLK, &start_time) == -1) {
+    outsyserr(_("KDGHWCLK ioctl to read time failed"));
+    return 3;
+  }
+       
+  i = 0;
+  do {
+    if (i++ >= 1000000) {
+      fprintf(stderr, _("Timed out waiting for time change.\n"));
+      return 2;
+    }
+    if (ioctl(con_fd, KDGHWCLK, &nowtime) == -1) {
+      outsyserr(_("KDGHWCLK ioctl to read time failed in loop"));
+      return 3;
+    }
+  } while (start_time.sec == nowtime.sec);
+
+  return 0;
+}
+
+
+static int
+read_hardware_clock_kd(struct tm *tm) {
+/*----------------------------------------------------------------------------
+  Read the hardware clock and return the current time via <tm>
+  argument.  Use ioctls to /dev/tty1 on what we assume is an m68k
+  machine.
+  
+  Note that we don't use /dev/console here.  That might be a serial
+  console.
+-----------------------------------------------------------------------------*/
+  struct hwclk_time t;
+
+  if (ioctl(con_fd, KDGHWCLK, &t) == -1) {
+    outsyserr(_("ioctl() failed to read time from  /dev/tty1"));
+    exit(5);
+  }
+
+  tm->tm_sec  = t.sec;
+  tm->tm_min  = t.min;
+  tm->tm_hour = t.hour;
+  tm->tm_mday = t.day;
+  tm->tm_mon  = t.mon;
+  tm->tm_year = t.year;
+  tm->tm_wday = t.wday;
+  tm->tm_isdst = -1;     /* Don't know if it's Daylight Savings Time */
+
+  return 0;
+}
+
+
+static int
+set_hardware_clock_kd(const struct tm *new_broken_time) {
+/*----------------------------------------------------------------------------
+  Set the Hardware Clock to the time <new_broken_time>.  Use ioctls to
+  /dev/tty1 on what we assume is an m68k machine.
+
+  Note that we don't use /dev/console here.  That might be a serial console.
+----------------------------------------------------------------------------*/
+  struct hwclk_time t;
+
+  t.sec  = new_broken_time->tm_sec;
+  t.min  = new_broken_time->tm_min;
+  t.hour = new_broken_time->tm_hour;
+  t.day  = new_broken_time->tm_mday;
+  t.mon  = new_broken_time->tm_mon;
+  t.year = new_broken_time->tm_year;
+  t.wday = new_broken_time->tm_wday;
+
+  if (ioctl(con_fd, KDSHWCLK, &t ) == -1) {
+    outsyserr(_("ioctl() to open /dev/tty1 failed"));
+    exit(1);
+  }
+  return 0;
+}
+
+static int
+get_permissions_kd(void) {
+  return 0;
+}
+
+static struct clock_ops kd = {
+       "KDGHWCLK interface to m68k clock",
+       get_permissions_kd,
+       read_hardware_clock_kd,
+       set_hardware_clock_kd,
+       synchronize_to_clock_tick_kd,
+};
+
+/* return &kd if KDGHWCLK works, NULL otherwise */
+struct clock_ops *
+probe_for_kd_clock() {
+    struct clock_ops *ret = NULL;
+    struct hwclk_time t;
+
+    if (con_fd < 0)
+      con_fd = open("/dev/tty1", O_RDONLY);
+    if (con_fd >= 0) {
+      if (ioctl( con_fd, KDGHWCLK, &t ) == -1) {
+        if (errno != EINVAL)
+        outsyserr(_("KDGHWCLK ioctl failed"));
+      } else
+        ret = &kd;
+    } else {
+      outsyserr(_("Can't open /dev/tty1"));
+    }
+    return ret;
+}
diff --git a/clock/rtc.c b/clock/rtc.c
new file mode 100644 (file)
index 0000000..6523884
--- /dev/null
@@ -0,0 +1,389 @@
+/* rtc.c - Use /dev/rtc for clock access */
+#include <unistd.h>            /* for close() */
+#include <fcntl.h>             /* for O_RDONLY */
+#include <sys/ioctl.h>
+
+#include "clock.h"
+#include "nls.h"
+
+/*
+ * Get defines for rtc stuff.
+ *
+ * Getting the rtc defines is nontrivial.
+ * The obvious way is by including <linux/mc146818rtc.h>
+ * but that again includes <asm/io.h> which again includes ...
+ * and on sparc and alpha this gives compilation errors for
+ * many kernel versions. So, we give the defines ourselves here.
+ * Moreover, some Sparc person decided to be incompatible, and
+ * used a struct rtc_time different from that used in mc146818rtc.h.
+ */
+
+/* On Sparcs, there is a <asm/rtc.h> that defines different ioctls
+   (that are required on my machine). However, this include file
+   does not exist on other architectures. */
+/* One might do:
+#ifdef __sparc__
+#include <asm/rtc.h>
+#endif
+ */
+/* The following is roughly equivalent */
+struct sparc_rtc_time
+{
+        int     sec;    /* Seconds (0-59) */
+        int     min;    /* Minutes (0-59) */
+        int     hour;   /* Hour (0-23) */
+        int     dow;    /* Day of the week (1-7) */
+        int     dom;    /* Day of the month (1-31) */
+        int     month;  /* Month of year (1-12) */
+        int     year;   /* Year (0-99) */
+};
+
+#define RTCGET _IOR('p', 20, struct sparc_rtc_time)
+#define RTCSET _IOW('p', 21, struct sparc_rtc_time)
+
+
+/* non-sparc stuff */
+#if 0
+#include <linux/version.h>
+/* Check if the /dev/rtc interface is available in this version of
+   the system headers.  131072 is linux 2.0.0. */
+#if LINUX_VERSION_CODE >= 131072
+#include <linux/mc146818rtc.h>
+#endif
+#endif
+
+/* struct rtc_time is present since 1.3.99 */
+/* Earlier (since 1.3.89), a struct tm was used. */
+struct linux_rtc_time {
+        int tm_sec;
+        int tm_min;
+        int tm_hour;
+        int tm_mday;
+        int tm_mon;
+        int tm_year;
+        int tm_wday;
+        int tm_yday;
+        int tm_isdst;
+};
+
+/* RTC_RD_TIME etc have this definition since 1.99.9 (pre2.0-9) */
+#ifndef RTC_RD_TIME
+#define RTC_RD_TIME       _IOR('p', 0x09, struct linux_rtc_time)
+#define RTC_SET_TIME      _IOW('p', 0x0a, struct linux_rtc_time)
+#define RTC_UIE_ON        _IO('p', 0x03)       /* Update int. enable on */
+#define RTC_UIE_OFF       _IO('p', 0x04)       /* Update int. enable off */
+#endif
+/* RTC_EPOCH_READ and RTC_EPOCH_SET are present since 2.0.34 and 2.1.89 */
+#ifndef RTC_EPOCH_READ
+#define RTC_EPOCH_READ _IOR('p', 0x0d, unsigned long)   /* Read epoch */
+#define RTC_EPOCH_SET  _IOW('p', 0x0e, unsigned long)   /* Set epoch */
+#endif
+
+
+static int
+do_rtc_read_ioctl(int rtc_fd, struct tm *tm) {
+  int rc;
+  char *ioctlname;
+#ifdef __sparc__
+  struct sparc_rtc_time stm;
+
+  ioctlname = "RTCGET";
+  rc = ioctl(rtc_fd, RTCGET, &stm);
+#else
+  ioctlname = "RTC_RD_TIME";
+  rc = ioctl(rtc_fd, RTC_RD_TIME, tm);
+#endif
+  if (rc == -1) {
+    perror(ioctlname);
+    fprintf(stderr, _("ioctl() to /dev/rtc to read the time failed.\n"));
+    exit(5);
+  }
+#ifdef __sparc__
+  tm->tm_sec = stm.sec;
+  tm->tm_min = stm.min;
+  tm->tm_hour = stm.hour;
+  tm->tm_mday = stm.dom;
+  tm->tm_mon = stm.month - 1;
+  tm->tm_year = stm.year - 1900;
+  tm->tm_wday = stm.dow - 1;
+  tm->tm_yday = -1;            /* day in the year */
+#endif
+  tm->tm_isdst = -1;          /* don't know whether it's daylight */
+  return 0;
+}  
+
+
+static int
+busywait_for_rtc_clock_tick(const int rtc_fd) {
+/*----------------------------------------------------------------------------
+   Wait for the top of a clock tick by reading /dev/rtc in a busy loop until
+   we see it.  
+-----------------------------------------------------------------------------*/
+  struct tm start_time;
+    /* The time when we were called (and started waiting) */
+  struct tm nowtime;
+  int i;  /* local loop index */
+  int rc;
+
+  if (debug)
+    printf(_("Waiting in loop for time from /dev/rtc to change\n"));
+
+  rc = do_rtc_read_ioctl(rtc_fd, &start_time);
+  if (rc)
+    return 1;
+
+  /* Wait for change.  Should be within a second, but in case something
+     weird happens, we have a limit on this loop to reduce the impact
+     of this failure.
+     */
+  for (i = 0;
+       (rc = do_rtc_read_ioctl(rtc_fd, &nowtime)) == 0
+        && start_time.tm_sec == nowtime.tm_sec;
+       i++)
+    if (i >= 1000000) {
+      fprintf(stderr, _("Timed out waiting for time change.\n"));
+      return 2;
+    }
+
+  if (rc)
+    return 3;
+  return 0;
+}
+
+
+
+static int
+synchronize_to_clock_tick_rtc(void) {
+/*----------------------------------------------------------------------------
+  Same as synchronize_to_clock_tick(), but just for /dev/rtc.
+-----------------------------------------------------------------------------*/
+int rtc_fd;  /* File descriptor of /dev/rtc */
+int ret;
+
+  rtc_fd = open("/dev/rtc",O_RDONLY);
+  if (rtc_fd == -1) {
+    outsyserr(_("open() of /dev/rtc failed"));
+    ret = 1;
+  } else {
+    int rc;  /* Return code from ioctl */
+    /* Turn on update interrupts (one per second) */
+#if defined(__alpha__) || defined(__sparc__)
+    /* Not all alpha kernels reject RTC_UIE_ON, but probably they should. */
+    rc = -1;
+    errno = EINVAL;
+#else
+    rc = ioctl(rtc_fd, RTC_UIE_ON, 0);
+#endif
+    if (rc == -1 && errno == EINVAL) {
+      /* This rtc device doesn't have interrupt functions.  This is typical
+         on an Alpha, where the Hardware Clock interrupts are used by the
+         kernel for the system clock, so aren't at the user's disposal.
+         */
+      if (debug) printf(_("/dev/rtc does not have interrupt functions. "));
+      ret = busywait_for_rtc_clock_tick(rtc_fd);
+    } else if (rc != -1) {
+      int rc;  /* return code from ioctl */
+      unsigned long dummy;
+
+      /* this blocks until the next update interrupt */
+      rc = read(rtc_fd, &dummy, sizeof(dummy));
+      if (rc == -1) {
+        outsyserr(_("read() to /dev/rtc to wait for clock tick failed"));
+        ret = 1;
+      } else {
+        ret = 0;
+      }
+      /* Turn off update interrupts */
+      rc = ioctl(rtc_fd, RTC_UIE_OFF, 0);
+      if (rc == -1)
+        outsyserr(_("ioctl() to /dev/rtc to turn off update interrupts "
+                   "failed"));
+    } else {
+      outsyserr(_("ioctl() to /dev/rtc to turn on update interrupts "
+               "failed unexpectedly"));
+      ret = 1;
+    }
+    close(rtc_fd);
+  }
+  return ret;
+}
+
+
+static int
+read_hardware_clock_rtc(struct tm *tm) {
+/*----------------------------------------------------------------------------
+  Read the hardware clock and return the current time via <tm>
+  argument.  Use ioctls to "rtc" device /dev/rtc.
+-----------------------------------------------------------------------------*/
+  int rtc_fd;  /* File descriptor of /dev/rtc */
+
+  rtc_fd = open("/dev/rtc",O_RDONLY);
+  if (rtc_fd == -1) {
+    outsyserr(_("open() of /dev/rtc failed"));
+    exit(5);
+  }
+
+  /* Read the RTC time/date */
+  do_rtc_read_ioctl(rtc_fd, tm);
+
+  close(rtc_fd);
+  return 0;
+}
+
+
+static int
+set_hardware_clock_rtc(const struct tm *new_broken_time) {
+/*----------------------------------------------------------------------------
+  Set the Hardware Clock to the broken down time <new_broken_time>.
+  Use ioctls to "rtc" device /dev/rtc.
+----------------------------------------------------------------------------*/
+  int rc;
+  int rtc_fd;
+
+  rtc_fd = open("/dev/rtc", O_RDONLY);
+  if (rtc_fd < 0) {
+    outsyserr(_("Unable to open /dev/rtc"));
+    exit(5);
+  } else {
+    char *ioctlname;
+#ifdef __sparc__
+    struct sparc_rtc_time stm;
+
+    stm.sec = new_broken_time->tm_sec;
+    stm.min = new_broken_time->tm_min;
+    stm.hour = new_broken_time->tm_hour;
+    stm.dom = new_broken_time->tm_mday;
+    stm.month = new_broken_time->tm_mon + 1;
+    stm.year = new_broken_time->tm_year + 1900;
+    stm.dow = new_broken_time->tm_wday + 1;
+
+    ioctlname = "RTCSET";
+    rc = ioctl(rtc_fd, RTCSET, &stm);
+#else
+    ioctlname = "RTC_SET_TIME";
+    rc = ioctl(rtc_fd, RTC_SET_TIME, new_broken_time);
+#endif
+    if (rc == -1) {
+      perror(ioctlname);
+      fprintf(stderr, _("ioctl() to /dev/rtc to set the time failed.\n"));
+      exit(5);
+    } else {
+      if (debug)
+        printf(_("ioctl(%s) was successful.\n"), ioctlname);
+    }
+    close(rtc_fd);
+  }
+  return 0;
+}
+
+
+static int
+get_permissions_rtc(void) {
+       return 0;
+}
+
+static struct clock_ops rtc = {
+       "/dev/rtc interface to clock",
+       get_permissions_rtc,
+       read_hardware_clock_rtc,
+       set_hardware_clock_rtc,
+       synchronize_to_clock_tick_rtc,
+};
+
+/* return &rtc if /dev/rtc can be opened, NULL otherwise */
+struct clock_ops *
+probe_for_rtc_clock(){
+    int rtc_fd = open("/dev/rtc", O_RDONLY);
+    if (rtc_fd > 0) {
+      close(rtc_fd);
+      return &rtc;
+    }
+    if (debug)
+      outsyserr(_("Open of /dev/rtc failed"));
+    return NULL;
+}
+
+
+
+int
+get_epoch_rtc(unsigned long *epoch_p, int silent) {
+/*----------------------------------------------------------------------------
+  Get the Hardware Clock epoch setting from the kernel.
+----------------------------------------------------------------------------*/
+  int rtc_fd;
+
+  rtc_fd = open("/dev/rtc", O_RDONLY);
+  if (rtc_fd < 0) {
+    if (!silent) {
+      if (errno == ENOENT) 
+        fprintf(stderr, _(
+               "To manipulate the epoch value in the kernel, we must "
+                "access the Linux 'rtc' device driver via the device special "
+                "file /dev/rtc.  This file does not exist on this system.\n"));
+      else 
+        outsyserr(_("Unable to open /dev/rtc"));
+    }
+    return 1;
+  }
+
+  if (ioctl(rtc_fd, RTC_EPOCH_READ, epoch_p) == -1) {
+    if (!silent)
+      outsyserr(_("ioctl(RTC_EPOCH_READ) to /dev/rtc failed"));
+    close(rtc_fd);
+    return 1;
+  }
+
+  if (debug)
+         printf(_("we have read epoch %ld from /dev/rtc "
+                "with RTC_EPOCH_READ ioctl.\n"), *epoch_p);
+
+  close(rtc_fd);
+  return 0;
+}
+
+
+
+int
+set_epoch_rtc(unsigned long epoch) {
+/*----------------------------------------------------------------------------
+  Set the Hardware Clock epoch in the kernel.
+----------------------------------------------------------------------------*/
+  int rtc_fd;
+
+  if (epoch < 1900) {
+    /* kernel would not accept this epoch value */
+    /* Hmm - bad habit, deciding not to do what the user asks
+       just because one believes that the kernel might not like it. */
+    fprintf(stderr, _("The epoch value may not be less than 1900.  "
+            "You requested %ld\n"), epoch);
+    return 1;
+  }
+
+  rtc_fd = open("/dev/rtc", O_RDONLY);
+  if (rtc_fd < 0) {
+    if (errno == ENOENT) 
+      fprintf(stderr, _("To manipulate the epoch value in the kernel, we must "
+              "access the Linux 'rtc' device driver via the device special "
+              "file /dev/rtc.  This file does not exist on this system.\n"));
+    else
+      outsyserr(_("Unable to open /dev/rtc"));
+    return 1;
+  }
+
+  if (debug)
+    printf(_("setting epoch to %ld "
+          "with RTC_EPOCH_SET ioctl to /dev/rtc.\n"), epoch);
+
+  if (ioctl(rtc_fd, RTC_EPOCH_SET, epoch) == -1) {
+    if (errno == EINVAL)
+      fprintf(stderr, _("The kernel device driver for /dev/rtc "
+             "does not have the RTC_EPOCH_SET ioctl.\n"));
+    else 
+      outsyserr(_("ioctl(RTC_EPOCH_SET) to /dev/rtc failed"));
+    close(rtc_fd);
+    return 1;
+  }
+
+  close(rtc_fd);
+  return 0;
+}
diff --git a/clock/shhopt.c b/clock/shhopt.c
new file mode 100644 (file)
index 0000000..e55a729
--- /dev/null
@@ -0,0 +1,468 @@
+/* $Id: shhopt.c,v 2.2 1997/07/06 23:11:55 aebr Exp $ */
+/**************************************************************************
+ *
+ *  FILE            shhopt.c
+ *
+ *  DESCRIPTION     Functions for parsing command line arguments. Values
+ *                  of miscellaneous types may be stored in variables,
+ *                  or passed to functions as specified.
+ *
+ *  REQUIREMENTS    Some systems lack the ANSI C -function strtoul. If your
+ *                  system is one of those, you'll ned to write one yourself,
+ *                  or get the GNU liberty-library (from prep.ai.mit.edu).
+ *
+ *  WRITTEN BY      Sverre H. Huseby <sverrehu@ifi.uio.no>
+ *
+ **************************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <ctype.h>
+#include <limits.h>
+#include <errno.h>
+
+#include "shhopt.h"
+#include "nls.h"
+
+/**************************************************************************
+ *                                                                        *
+ *                       P R I V A T E    D A T A                         *
+ *                                                                        *
+ **************************************************************************/
+
+static void optFatalFunc(const char *, ...);
+static void (*optFatal)(const char *format, ...) = optFatalFunc;
+
+
+
+/**************************************************************************
+ *                                                                        *
+ *                   P R I V A T E    F U N C T I O N S                   *
+ *                                                                        *
+ **************************************************************************/
+
+/*-------------------------------------------------------------------------
+ *
+ *  NAME          optFatalFunc
+ *
+ *  FUNCTION      Show given message and abort the program.
+ *
+ *  INPUT         format, ...
+ *                        Arguments used as with printf().
+ *
+ *  RETURNS       Never returns. The program is aborted.
+ *
+ */
+void optFatalFunc(const char *format, ...)
+{
+    va_list ap;
+
+    fflush(stdout);
+    va_start(ap, format);
+    vfprintf(stderr, format, ap);
+    va_end(ap);
+    exit(99);
+}
+
+
+
+/*-------------------------------------------------------------------------
+ *
+ *  NAME          optStructCount
+ *
+ *  FUNCTION      Get number of options in a optStruct.
+ *
+ *  INPUT         opt     array of possible options.
+ *
+ *  RETURNS       Number of options in the given array.
+ *
+ *  DESCRIPTION   Count elements in an optStruct-array. The strcture must
+ *                be ended using an element of type OPT_END.
+ *
+ */
+static int optStructCount(const optStruct opt[])
+{
+    int ret = 0;
+
+    while (opt[ret].type != OPT_END)
+        ++ret;
+    return ret;
+}
+
+
+
+/*-------------------------------------------------------------------------
+ *
+ *  NAME          optMatch
+ *
+ *  FUNCTION      Find a matching option.
+ *
+ *  INPUT         opt     array of possible options.
+ *                s       string to match, without `-' or `--'.
+ *                lng     match long option, otherwise short.
+ *
+ *  RETURNS       Index to the option if found, -1 if not found.
+ *
+ *  DESCRIPTION   Short options are matched from the first character in
+ *                the given string.
+ *
+ */
+static int optMatch(const optStruct opt[], const char *s, int lng)
+{
+    int  nopt, q, matchlen = 0;
+    char *p;
+
+    nopt = optStructCount(opt);
+    if (lng) {
+       if ((p = strchr(s, '=')) != NULL)
+           matchlen = p - s;
+       else
+           matchlen = strlen(s);
+    }
+    for (q = 0; q < nopt; q++) {
+       if (lng) {
+           if (!opt[q].longName)
+               continue;
+           if (strncmp(s, opt[q].longName, matchlen) == 0)
+               return q;
+       } else {
+           if (!opt[q].shortName)
+               continue;
+           if (*s == opt[q].shortName)
+               return q;
+       }
+    }
+    return -1;
+}
+
+
+
+/*-------------------------------------------------------------------------
+ *
+ *  NAME          optString
+ *
+ *  FUNCTION      Return a (static) string with the option name.
+ *
+ *  INPUT         opt     the option to stringify.
+ *                lng     is it a long option?
+ *
+ *  RETURNS       Pointer to static string.
+ *
+ */
+static char *optString(const optStruct *opt, int lng)
+{
+    static char ret[31];
+
+    if (lng) {
+       strcpy(ret, "--");
+       strncpy(ret + 2, opt->longName, 28);
+    } else {
+       ret[0] = '-';
+       ret[1] = opt->shortName;
+       ret[2] = '\0';
+    }
+    return ret;
+}
+
+
+
+/*-------------------------------------------------------------------------
+ *
+ *  NAME          optNeedsArgument
+ *
+ *  FUNCTION      Check if an option requires an argument.
+ *
+ *  INPUT         opt     the option to check.
+ *
+ *  RETURNS       Boolean value.
+ *
+ */
+static int optNeedsArgument(const optStruct *opt)
+{
+    return opt->type == OPT_STRING
+       || opt->type == OPT_INT
+       || opt->type == OPT_UINT
+       || opt->type == OPT_LONG
+       || opt->type == OPT_ULONG;
+}
+
+
+
+/*-------------------------------------------------------------------------
+ *
+ *  NAME          argvRemove
+ *
+ *  FUNCTION      Remove an entry from an argv-array.
+ *
+ *  INPUT         argc    pointer to number of options.
+ *                argv    array of option-/argument-strings.
+ *                i       index of option to remove.
+ *
+ *  OUTPUT        argc    new argument count.
+ *                argv    array with given argument removed.
+ *
+ */
+static void argvRemove(int *argc, char *argv[], int i)
+{
+    if (i >= *argc)
+        return;
+    while (i++ < *argc)
+        argv[i - 1] = argv[i];
+    --*argc;
+}
+
+
+
+/*-------------------------------------------------------------------------
+ *
+ *  NAME          optExecute
+ *
+ *  FUNCTION      Perform the action of an option.
+ *
+ *  INPUT         opt     array of possible options.
+ *                arg     argument to option, if it applies.
+ *                lng     was the option given as a long option?
+ *
+ *  RETURNS       Nothing. Aborts in case of error.
+ *
+ */
+void optExecute(const optStruct *opt, char *arg, int lng)
+{
+    switch (opt->type) {
+      case OPT_FLAG:
+       if (opt->flags & OPT_CALLFUNC)
+           ((void (*)(void)) opt->arg)();
+       else
+           *((int *) opt->arg) = 1;
+       break;
+
+      case OPT_STRING:
+       if (opt->flags & OPT_CALLFUNC)
+           ((void (*)(char *)) opt->arg)(arg);
+       else
+           *((char **) opt->arg) = arg;
+       break;
+
+      case OPT_INT:
+      case OPT_LONG: {
+         long tmp;
+         char *e;
+         
+         tmp = strtol(arg, &e, 10);
+         if (*e)
+             optFatal(_("invalid number `%s'\n"), arg);
+         if (errno == ERANGE
+             || (opt->type == OPT_INT && (tmp > INT_MAX || tmp < INT_MIN)))
+             optFatal(_("number `%s' to `%s' out of range\n"),
+                      arg, optString(opt, lng));
+         if (opt->type == OPT_INT) {
+             if (opt->flags & OPT_CALLFUNC)
+                 ((void (*)(int)) opt->arg)((int) tmp);
+             else
+                 *((int *) opt->arg) = (int) tmp;
+         } else /* OPT_LONG */ {
+             if (opt->flags & OPT_CALLFUNC)
+                 ((void (*)(long)) opt->arg)(tmp);
+             else
+                 *((long *) opt->arg) = tmp;
+         }
+         break;
+      }
+       
+      case OPT_UINT:
+      case OPT_ULONG: {
+         unsigned long tmp;
+         char *e;
+         
+         tmp = strtoul(arg, &e, 10);
+         if (*e)
+             optFatal(_("invalid number `%s'\n"), arg);
+         if (errno == ERANGE
+             || (opt->type == OPT_UINT && tmp > UINT_MAX))
+             optFatal(_("number `%s' to `%s' out of range\n"),
+                      arg, optString(opt, lng));
+         if (opt->type == OPT_UINT) {
+             if (opt->flags & OPT_CALLFUNC)
+                 ((void (*)(unsigned)) opt->arg)((unsigned) tmp);
+             else
+                 *((unsigned *) opt->arg) = (unsigned) tmp;
+         } else /* OPT_ULONG */ {
+             if (opt->flags & OPT_CALLFUNC)
+                 ((void (*)(unsigned long)) opt->arg)(tmp);
+             else
+                 *((unsigned long *) opt->arg) = tmp;
+         }
+         break;
+      }
+
+      default:
+       break;
+    }
+}
+
+
+
+/**************************************************************************
+ *                                                                        *
+ *                    P U B L I C    F U N C T I O N S                    *
+ *                                                                        *
+ **************************************************************************/
+
+/*-------------------------------------------------------------------------
+ *
+ *  NAME          optSetFatalFunc
+ *
+ *  FUNCTION      Set function used to display error message and exit.
+ *
+ *  SYNOPSIS      #include "shhmsg.h"
+ *                void optSetFatalFunc(void (*f)(const char *, ...));
+ *
+ *  INPUT         f       function accepting printf()'like parameters,
+ *                        that _must_ abort the program.
+ *
+ */
+void optSetFatalFunc(void (*f)(const char *, ...))
+{
+    optFatal = f;
+}
+
+
+
+/*-------------------------------------------------------------------------
+ *
+ *  NAME          optParseOptions
+ *
+ *  FUNCTION      Parse commandline options.
+ *
+ *  SYNOPSIS      #include "shhopt.h"
+ *                void optParseOptions(int *argc, char *argv[],
+ *                                     const optStruct opt[], int allowNegNum);
+ *
+ *  INPUT         argc    Pointer to number of options.
+ *                argv    Array of option-/argument-strings.
+ *                opt     Array of possible options.
+ *                allowNegNum
+ *                        a negative number is not to be taken as
+ *                        an option.
+ *
+ *  OUTPUT        argc    new argument count.
+ *                argv    array with arguments removed.
+ *
+ *  RETURNS       Nothing. Aborts in case of error.
+ *
+ *  DESCRIPTION   This function checks each option in the argv-array
+ *                against strings in the opt-array, and `executes' any
+ *                matching action. Any arguments to the options are
+ *                extracted and stored in the variables or passed to
+ *                functions pointed to by entries in opt.
+ *
+ *                Options and arguments used are removed from the argv-
+ *                array, and argc is decreased accordingly.
+ *
+ *                Any error leads to program abortion.
+ *
+ */
+void optParseOptions(int *argc, char *argv[],
+                    const optStruct opt[], int allowNegNum)
+{
+    int  ai,        /* argv index. */
+         optarg,    /* argv index of option argument, or -1 if none. */
+         mi,        /* Match index in opt. */
+         done;
+    char *arg,      /* Pointer to argument to an option. */
+         *o,        /* pointer to an option character */
+         *p;
+
+    /*
+     *  Loop through all arguments.
+     */
+    for (ai = 0; ai < *argc; ) {
+       /*
+        *  "--" indicates that the rest of the argv-array does not
+        *  contain options.
+        */
+       if (strcmp(argv[ai], "--") == 0) {
+            argvRemove(argc, argv, ai);
+           break;
+       }
+
+       if (allowNegNum && argv[ai][0] == '-' && isdigit(argv[ai][1])) {
+           ++ai;
+           continue;
+       } else if (strncmp(argv[ai], "--", 2) == 0) {
+           /* long option */
+           /* find matching option */
+           if ((mi = optMatch(opt, argv[ai] + 2, 1)) < 0)
+               optFatal(_("unrecognized option `%s'\n"), argv[ai]);
+
+           /* possibly locate the argument to this option. */
+           arg = NULL;
+           if ((p = strchr(argv[ai], '=')) != NULL)
+               arg = p + 1;
+           
+           /* does this option take an argument? */
+           optarg = -1;
+           if (optNeedsArgument(&opt[mi])) {
+               /* option needs an argument. find it. */
+               if (!arg) {
+                   if ((optarg = ai + 1) == *argc)
+                       optFatal(_("option `%s' requires an argument\n"),
+                                optString(&opt[mi], 1));
+                   arg = argv[optarg];
+               }
+           } else {
+               if (arg)
+                   optFatal(_("option `%s' doesn't allow an argument\n"),
+                            optString(&opt[mi], 1));
+           }
+           /* perform the action of this option. */
+           optExecute(&opt[mi], arg, 1);
+           /* remove option and any argument from the argv-array. */
+            if (optarg >= 0)
+                argvRemove(argc, argv, ai);
+            argvRemove(argc, argv, ai);
+       } else if (*argv[ai] == '-') {
+           /* A dash by itself is not considered an option. */
+           if (argv[ai][1] == '\0') {
+               ++ai;
+               continue;
+           }
+           /* Short option(s) following */
+           o = argv[ai] + 1;
+           done = 0;
+           optarg = -1;
+           while (*o && !done) {
+               /* find matching option */
+               if ((mi = optMatch(opt, o, 0)) < 0)
+                   optFatal(_("unrecognized option `-%c'\n"), *o);
+
+               /* does this option take an argument? */
+               optarg = -1;
+               arg = NULL;
+               if (optNeedsArgument(&opt[mi])) {
+                   /* option needs an argument. find it. */
+                   arg = o + 1;
+                   if (!*arg) {
+                       if ((optarg = ai + 1) == *argc)
+                           optFatal(_("option `%s' requires an argument\n"),
+                                    optString(&opt[mi], 0));
+                       arg = argv[optarg];
+                   }
+                   done = 1;
+               }
+               /* perform the action of this option. */
+               optExecute(&opt[mi], arg, 0);
+               ++o;
+           }
+           /* remove option and any argument from the argv-array. */
+            if (optarg >= 0)
+                argvRemove(argc, argv, ai);
+            argvRemove(argc, argv, ai);
+       } else {
+           /* a non-option argument */
+           ++ai;
+       }
+    }
+}
similarity index 100%
rename from sys-utils/shhopt.h
rename to clock/shhopt.h
diff --git a/clockB/Makefile b/clockB/Makefile
new file mode 100644 (file)
index 0000000..1a2f4ec
--- /dev/null
@@ -0,0 +1,31 @@
+# Makefile -- Makefile for util-linux Linux utilities
+#
+include ../make_include
+include ../MCONFIG
+
+# Where to put man pages?
+
+MAN8=          hwclock.8
+
+# Where to put binaries?
+# See the "install" rule for the links. . .
+
+SBIN=          hwclock
+
+
+all: $(SBIN)
+
+
+CFLAGS = -s -Wall -Wwrite-strings -Wstrict-prototypes -Winline $(CDEBUG)
+
+hwclock: hwclock.o rtc.o directio.o kd.o util.o shhopt.o
+hwclock.o: shhopt.h
+hwclock.o rtc.o directio.o kd.o util.o: hwclock.h
+
+install: all
+       $(INSTALLDIR) $(SBINDIR) $(BINDIR) $(USRBINDIR)
+       $(INSTALLBIN) $(SBIN) $(SBINDIR)
+       $(INSTALLMAN) $(MAN8) $(MAN8DIR)
+
+clean:
+       -rm -f *.o *~ core $(SBIN)
diff --git a/clockB/directio.c b/clockB/directio.c
new file mode 100644 (file)
index 0000000..d3a77eb
--- /dev/null
@@ -0,0 +1,727 @@
+/**************************************************************************
+
+  This is a component of the hwclock program.
+
+  This file contains the code for accessing the hardware clock via
+  direct I/O (kernel-style input and output operations) as opposed
+  to via a device driver.
+
+
+  MAINTENANCE NOTES
+
+  Here is some information on how the Hardware Clock works, from
+  unknown source and authority.  In theory, the specification for this
+  stuff is the specification of Motorola's MC146818A clock chip, used
+  in the early ISA machines.  Subsequent machines should have copied
+  its function exactly.  In reality, though, the copies are inexact
+  and the MC146818A itself may fail to implement its specifications,
+  and we have just have to work with whatever is there (actually,
+  anything that Windows works with, because that's what determines
+  whether broken hardware has to be fixed!).
+
+  i386 CMOS starts out with 14 bytes clock data
+  alpha has something similar, but with details
+  depending on the machine type.
+  byte 0: seconds (0-59)
+  byte 2: minutes (0-59)
+  byte 4: hours (0-23 in 24hr mode,
+                 1-12 in 12hr mode, with high bit unset/set if am/pm)
+  byte 6: weekday (1-7, Sunday=1)
+  byte 7: day of the month (1-31)
+  byte 8: month (1-12)
+  byte 9: year (0-99)
+
+
+  Numbers are stored in BCD/binary if bit 2 of byte 11 is unset/set
+  The clock is in 12hr/24hr mode if bit 1 of byte 11 is unset/set
+  The clock is undefined (being updated) if bit 7 of byte 10 is set.
+  The clock is frozen (to be updated) by setting bit 7 of byte 11
+  Bit 7 of byte 14 indicates whether the CMOS clock is reliable:
+  it is 1 if RTC power has been good since this bit was last read;
+  it is 0 when the battery is dead and system power has been off.
+  The century situation is messy:
+
+  Usually byte 50 (0x32) gives the century (in BCD, so 0x19 or 0x20 in
+  pure binary), but IBM PS/2 has (part of) a checksum there and uses
+  byte 55 (0x37).  Sometimes byte 127 (0x7f) or Bank 1, byte 0x48
+  gives the century.  The original RTC will not access any century
+  byte; some modern versions will. If a modern RTC or BIOS increments
+  the century byte it may go from 0x19 to 0x20, but in some buggy
+  cases 0x1a is produced.
+
+  CMOS byte 10 (clock status register A) has 3 bitfields:
+  bit 7: 1 if data invalid, update in progress (read-only bit)
+         (this is raised 224 us before the actual update starts)
+  6-4    select base frequency
+         010: 32768 Hz time base (default)
+         111: reset
+         all other combinations are manufacturer-dependent
+         (e.g.: DS1287: 010 = start oscillator, anything else = stop)
+  3-0    rate selection bits for interrupt
+         0000 none
+         0001, 0010 give same frequency as 1000, 1001
+         0011 122 microseconds (minimum, 8192 Hz)
+         .... each increase by 1 halves the frequency, doubles the period
+         1111 500 milliseconds (maximum, 2 Hz)
+         0110 976.562 microseconds (default 1024 Hz)
+
+  Avoid setting the RTC clock within 2 seconds of the day rollover
+  that starts a new month or enters daylight saving time.
+
+****************************************************************************/
+
+#include <stdio.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <string.h>
+
+#if defined(__i386__) || defined(__alpha__)
+#include <asm/io.h>             /* for inb, outb */
+#else
+void outb(int a, int b){}
+int inb(int c){ return 0; }
+#endif
+
+#include "hwclock.h"
+
+#define BCD_TO_BIN(val) (((val)&0x0f) + ((val)>>4)*10)
+#define BIN_TO_BCD(val) ((((val)/10)<<4) + (val)%10)
+
+
+/*----------------------------------------------------------------------------
+   ATOMIC_TOP and ATOMIC_BOTTOM are wierd macros that help us to do 
+   atomic operations when we do ugly low level I/O.
+   
+   You put ATOMIC_TOP above some code and ATOMIC_BOTTOM below it and
+   it makes sure all the enclosed code executes without interruption
+   by some other process (and, in some cases, even the kernel).
+
+   These work fundamentally differently depending on the machine
+   architecture.  In the case of a x86, it simply turns interrupts off
+   at the top and turns them back on at the bottom.
+
+   For Alpha, we can't mess with interrupts (we shouldn't for x86
+   either, but at least it tends to work!), so instead we start a loop
+   at the top and close it at the bottom.  This loop repeats the
+   enclosed code until the upper 32 bits of the cycle counter are the
+   same before and after.  That means there was no context change
+   while the enclosed code was executing.
+   
+   For other architectures, we do nothing, and the atomicity is only
+   feigned.
+
+-----------------------------------------------------------------------------*/
+
+#if defined(__i386__)
+#define ATOMIC_TOP \
+  { \
+    const bool interrupts_were_enabled = interrupts_enabled; \
+    __asm__ volatile ("cli"); \
+    interrupts_enabled = FALSE; 
+
+#define ATOMIC_BOTTOM \
+    if (interrupts_were_enabled) { \
+      __asm__ volatile ("sti"); \
+      interrupts_enabled = TRUE; \
+    } \
+  }
+#elif defined(__alpha__)
+#define ATOMIC_TOP \
+  { \
+    unsigned long ts1, ts2, n; \
+    n = 0; \
+    do { \
+      asm volatile ("rpcc %0" : "r="(ts1));
+
+#define ATOMIC_BOTTOM \
+      asm volatile ("rpcc %0" : "r="(ts2)); \
+      n++; \
+    } while ((ts1 ^ ts2) >> 32 != 0); \
+  }
+#else
+#define ATOMIC_BOTTOM
+#define ATOMIC_TOP
+#endif
+
+
+#if defined(__i386__) || defined(__alpha__)
+/* The following are just constants.  Oddly, this program will not
+   compile if the inb() and outb() functions use something even
+   slightly different from these variables.  This is probably at least
+   partially related to the fact that __builtin_constant_p() doesn't
+   work (is never true) in an inline function.  See comment to this 
+   effect in asm/io.h. 
+*/
+static unsigned short clock_ctl_addr = 0x70;
+static unsigned short clock_data_addr = 0x71;
+#endif
+
+
+static bool interrupts_enabled;
+  /* Interrupts are enabled as normal.  We, unfortunately, turn interrupts
+     on the machine off in some places where we do the direct ISA accesses
+     to the Hardware Clock.  It is in extremely poor form for a user space
+     program to do this, but that's the price we have to pay to run on an
+     ISA machine without the rtc driver in the kernel.
+
+     Code which turns interrupts off uses this value to determine if they
+     need to be turned back on.
+     */
+
+
+void
+assume_interrupts_enabled(void) {
+  interrupts_enabled = TRUE;
+}
+
+
+
+static int
+i386_iopl(const int level) {
+/*----------------------------------------------------------------------------
+   When compiled for an Intel target, this is just the iopl() kernel call.
+   When compiled for any other target, this is a dummy function.
+
+   We do it this way in order to keep the conditional compilation stuff
+   out of the way so it doesn't mess up readability of the code.
+-----------------------------------------------------------------------------*/
+#ifdef __i386__
+  extern int iopl(int level);
+  return iopl(level);
+#else
+  return -1;
+#endif
+}
+
+
+
+bool
+uf_bit_needed(const bool user_wants_uf) {
+/*----------------------------------------------------------------------------
+   Return true iff the UIP bit doesn't work on this hardware clock, so
+   we will need to use the UF bit to synchronize with the clock (if in
+   fact we synchronize using direct I/O to the clock).
+
+   To wit, we need to use the UF bit on a DEC Alpha PC164/LX164/SX164.
+   Or, of course, if the user told us to.
+-----------------------------------------------------------------------------*/
+  bool retval;
+
+  if (user_wants_uf) retval = TRUE;
+  else {
+    if (alpha_machine && (
+                          is_in_cpuinfo("system variation", "PC164") ||
+                          is_in_cpuinfo("system variation", "LX164") ||
+                          is_in_cpuinfo("system variation", "SX164")))
+      retval = TRUE;
+    else retval = FALSE;
+  }
+  if (debug && retval)
+    printf("We will be using the UF bit instead of the usual "
+           "UIP bit to synchronize with the clock, as required on "
+           "certain models of DEC Alpha.\n");
+
+  return retval;
+}
+
+
+
+int
+zero_year(const bool arc_opt, const bool srm_opt) {
+/*----------------------------------------------------------------------------
+   Return the year of the century (e.g. 0) to which a zero value in
+   the year register of the hardware clock applies (or at least what
+   we are to assume -- nobody can say for sure!)
+
+   'arc_opt' and 'srm_opt' are the true iff the user specified the
+   corresponding invocation option to instruct us that the machine is an
+   Alpha with ARC or SRM console time.
+
+   A note about hardware clocks:
+
+   ISA machines are simple: the year register is a year-of-century
+   register, so the zero year is zero.  On Alphas, we may see 1980 or
+   1952 (Digital Unix?) or 1958 (ALPHA_PRE_V1_2_SRM_CONSOLE) 
+-----------------------------------------------------------------------------*/
+  int retval;   /* our return value */
+
+  if (arc_opt || srm_opt) {
+    /* User is telling us what epoch his machine uses.  Believe it. */
+    if (arc_opt) retval = 0;
+    else retval = 0;
+  } else {
+    unsigned long kernel_epoch;
+    char *reason;   /* malloc'ed */
+    
+    get_epoch(&kernel_epoch, &reason);
+    if (reason == NULL) retval = kernel_epoch;
+    else {
+      /* OK, the user doesn't know and the kernel doesn't know; 
+         figure it out from the machine model 
+         */
+      free(reason);             /* Don't care about kernel's excuses */
+      /* See whether we are dealing with SRM or MILO, as they have
+         different "epoch" ideas. */
+      if (is_in_cpuinfo("system serial number", "MILO")) {
+        if (debug) printf("booted from MILO\n");
+        /* See whether we are dealing with a RUFFIAN aka UX, as they
+           have REALLY different TOY (TimeOfYear) format: BCD, and not
+           an ARC-style epoch.  BCD is detected dynamically, but we
+           must NOT adjust like ARC. 
+           */
+        if (is_in_cpuinfo("system type", "Ruffian")) {
+          if (debug) printf("Ruffian BCD clock\n");
+          retval = 0;
+        } else {
+          if (debug) printf("Not Ruffian BCD clock\n");
+          retval = 80;
+        }
+      } else {
+        if (debug) printf("Not booted from MILO\n");
+        retval = 0;
+      }
+    }
+  }
+  return retval;
+}
+
+
+
+static inline unsigned char 
+hclock_read(const unsigned char reg, const int dev_port) {
+/*---------------------------------------------------------------------------
+  Relative byte 'reg' of the Hardware Clock value.
+
+  Get this with direct CPU I/O instructions.  If 'dev_port' is not -1,
+  use the /dev/port device driver (via the 'dev_port' file descriptor)
+  to do this I/O.  Otherwise, use the kernel's inb()/outb() facility.
+
+  On a system without the inb()/outb() facility, if 'dev_port' is -1,
+  just return 0.
+
+  Results undefined if 'reg' is out of range.
+---------------------------------------------------------------------------*/
+  unsigned char ret;
+
+  ATOMIC_TOP
+  if (dev_port >= 0) {
+    const unsigned char v = reg | 0x80;
+    lseek(dev_port, 0x170, 0);
+    write(dev_port, &v, 1);
+    lseek(dev_port, 0x171, 0);
+    read(dev_port, &ret, 1);
+ } else {
+#if defined(__i386__) || defined(__alpha__)
+    /* & 0x7f ensures that we are not disabling NMI while we read.
+       Setting on Bit 7 here would disable NMI
+
+       Various docs suggest that one should disable NMI while
+       reading/writing CMOS data, and enable it again afterwards.
+       This would yield the sequence
+         outb (reg | 0x80, 0x70);
+         val = inb(0x71);
+         outb (0x0d, 0x70);    // 0x0d: random read-only location
+       Other docs state that "any write to 0x70 should be followed
+       by an action to 0x71 or the RTC wil be left in an unknown state".
+       Most docs say that it doesn't matter at all what one does.
+       */
+    outb(reg & 0x7f, clock_ctl_addr);
+    ret = inb(clock_data_addr);
+#else
+    ret = 0;
+#endif
+  }
+  ATOMIC_BOTTOM
+  return ret;
+}
+
+
+
+static inline void 
+hclock_write(unsigned char reg, unsigned char val, const int dev_port) {
+/*----------------------------------------------------------------------------
+  Set relative byte 'reg' of the Hardware Clock value to 'val'.
+  Do this with the kernel's outb() function if 'dev_port' is -1, but
+  if not, use the /dev/port device (via the 'dev_port' file descriptor), 
+  which is almost the same thing.
+
+  On a non-ISA, non-Alpha machine, if 'dev_port' is -1, do nothing.
+----------------------------------------------------------------------------*/
+  if (dev_port >= 0) {
+    unsigned char v;
+    v = reg | 0x80;
+    lseek(dev_port, 0x170, 0);
+    write(dev_port, &v, 1);
+    v = (val & 0xff);
+    lseek(dev_port, 0x171, 0);
+    write(dev_port, &v, 1);
+  } else {
+#if defined(__i386__) || defined(__alpha__)
+  /* & 0x7f ensures that we are not disabling NMI while we read.
+     Setting on Bit 7 here would disable NMI
+     */
+  outb(reg & 0x7f, clock_ctl_addr);
+  outb(val, clock_data_addr);
+#endif
+  }
+}
+
+
+
+static inline int
+hardware_clock_busy(const int dev_port, const bool use_uf_bit) {
+/*----------------------------------------------------------------------------
+   Return whether the hardware clock is in the middle of an update
+   (which happens once each second).
+
+   Use the clock's UIP bit (bit 7 of Control Register A) to tell
+   unless 'use_uf_bit' is true, in which case use the UF bit (bit 4 of
+   Control Register C).
+-----------------------------------------------------------------------------*/
+  return
+    use_uf_bit ? (hclock_read(12, dev_port) & 0x10) : 
+      (hclock_read(10, dev_port) & 0x80);
+}
+
+
+
+void
+synchronize_to_clock_tick_ISA(int *retcode_p, const int dev_port,
+                              const bool use_uf_bit) {
+/*----------------------------------------------------------------------------
+  Same as synchronize_to_clock_tick(), but just for ISA.
+-----------------------------------------------------------------------------*/
+  int i;  /* local loop index */
+
+  /* Wait for rise.  Should be within a second, but in case something
+     weird happens, we have a limit on this loop to reduce the impact
+     of this failure.
+     */
+  for (i = 0; 
+       !hardware_clock_busy(dev_port, use_uf_bit) && (i < 10000000); 
+       i++);
+  if (i >= 10000000) *retcode_p = 1;
+  else { 
+    /* Wait for fall.  Should be within 2.228 ms. */
+    for (i = 0; 
+         hardware_clock_busy(dev_port, use_uf_bit) && (i < 1000000); 
+         i++);
+    if (i >= 10000000) *retcode_p = 1;
+    else *retcode_p = 0;
+  }
+}
+
+
+
+void
+read_hardware_clock_isa(struct tm *tm, const int dev_port,
+                        int hc_zero_year) {
+/*----------------------------------------------------------------------------
+  Read the hardware clock and return the current time via <tm> argument.
+  Assume we have an ISA machine and read the clock directly with CPU I/O
+  instructions.  If 'dev_port' isn't -1, use the /dev/port facility to 
+  do this I/O.  Otherwise, use the kernel's inb()/outb() service.
+
+  This function is not totally reliable.  It takes a finite and
+  unpredictable amount of time to execute the code below.  During that
+  time, the clock may change and we may even read an invalid value in
+  the middle of an update.  We do a few checks to minimize this
+  possibility, but only the kernel can actually read the clock
+  properly, since it can execute code in a short and predictable
+  amount of time (by turning off interrupts).
+
+  In practice, the chance of this function returning the wrong time is
+  extremely remote.
+
+-----------------------------------------------------------------------------*/
+  bool got_time;
+    /* We've successfully read a time from the Hardware Clock */
+  int attempts;
+    /* Number of times we've tried to read the clock.  This only
+       matters because we will give up (and proceed with garbage in
+       variables) rather than hang if something is broken and we are
+       never able to read the clock 
+       */
+  int hclock_sec = 0, hclock_min = 0, hclock_hour = 0, hclock_wday = 0, 
+      hclock_mon = 0, hclock_mday = 0, hclock_year = 0;
+    /* The values we got from the Hardware Clock's registers, assuming
+       they are in pure binary. 
+       */
+
+  int status = 0;  /* Hardware Clock status register, as if pure binary */
+  int adjusted_year;
+  int ampmhour;
+  int pmbit;
+
+  got_time = FALSE;
+  attempts = 0;    /* initial value */
+  while (!got_time && attempts++ < 1000000) {
+    /* Bit 7 of Byte 10 of the Hardware Clock value is the Update In Progress
+       (UIP) bit, which is on while and 244 uS before the Hardware Clock 
+       updates itself.  It updates the counters individually, so reading 
+       them during an update would produce garbage.  The update takes 2mS,
+       so we could be spinning here that long waiting for this bit to turn
+       off.
+
+       Furthermore, it is pathologically possible for us to be in this
+       code so long that even if the UIP bit is not on at first, the
+       clock has changed while we were running.  We check for that too,
+       and if it happens, we start over.
+       */
+
+    if ((hclock_read(10, dev_port) & 0x80) == 0) {
+      /* No clock update in progress, go ahead and read */
+
+      status = hclock_read(11, dev_port);
+
+      hclock_sec = hclock_read(0, dev_port);
+      hclock_min = hclock_read(2, dev_port);
+      hclock_hour = hclock_read(4, dev_port);
+      hclock_wday = hclock_read(6, dev_port);
+      hclock_mday = hclock_read(7, dev_port);
+      hclock_mon = hclock_read(8, dev_port);
+      hclock_year = hclock_read(9, dev_port);
+      /* Unless the clock changed while we were reading, consider this 
+         a good clock read .
+         */
+      if (hclock_sec == hclock_read(0, dev_port)) got_time = TRUE;
+      /* Yes, in theory we could have been running for 60 seconds and
+         the above test wouldn't work!
+         */
+    }
+  }
+
+  if (!(status & 0x04)) { 
+    /* The hardware clock is in BCD mode.  This is normal. */
+    tm->tm_sec = BCD_TO_BIN(hclock_sec);
+    tm->tm_min = BCD_TO_BIN(hclock_min);
+    ampmhour = BCD_TO_BIN(hclock_hour & 0x7f);
+    pmbit = hclock_hour & 0x80;
+    tm->tm_wday = BCD_TO_BIN(hclock_wday) - 1;  /* Used to be 3.  Why?? */
+    tm->tm_mday = BCD_TO_BIN(hclock_mday);
+    tm->tm_mon = BCD_TO_BIN(hclock_mon) - 1;
+    adjusted_year = BCD_TO_BIN(hclock_year);
+  } else {
+    /* The hardware clock registers are in pure binary format.  */
+    tm->tm_sec = hclock_sec;
+    tm->tm_min = hclock_min;
+    ampmhour = hclock_hour & 0x7f;
+    pmbit = hclock_hour & 0x80;
+    tm->tm_wday = hclock_wday - 1; /* Used to be 3.  Why?? */
+    tm->tm_mday = hclock_mday;
+    tm->tm_mon = hclock_mon - 1;
+    adjusted_year = hclock_year;
+  }
+
+  if (!(status & 0x02)) {      
+    /* Clock is in 12 hour (am/pm) mode.  This is unusual. */
+    if (pmbit == 0x80) {
+      if (ampmhour == 12) tm->tm_hour = 12;
+      else tm->tm_hour = 12 + ampmhour;
+    } else {
+      if (ampmhour ==12) tm->tm_hour = 0;
+      else tm->tm_hour = ampmhour;
+    }
+  } else {
+    /* Clock is in 24 hour mode.  This is normal. */
+    tm->tm_hour = ampmhour;
+  }
+  /* We don't use the century byte (Byte 50) of the Hardware Clock.
+     Here's why:  It didn't exist in the original ISA specification,
+     so old machines don't have it, and even some new ones don't.
+     Some machines, including the IBM Valuepoint 6387-X93, use that
+     byte for something else.  Some machines have the century in 
+     Byte 55.
+     
+     Furthermore, the Linux standard time data structure doesn't
+     allow for times beyond about 2037 and no Linux systems were 
+     running before 1937.  Therefore, all the century byte could tell
+     us is that the clock is wrong or this whole program is obsolete!
+         
+     So we just say if the year of century is less than 37, it's the
+     2000's, otherwise it's the 1900's.
+     
+     Alpha machines (some, anyway) don't have this ambiguity
+     because they do not have a year-of-century register.  We
+     pretend they do anyway, for simplicity and to avoid
+     recognizing times that can't be represented in Linux standard
+     time.  So even though we already have enough information to
+     know that the clock says 2050, we will render it as 1950.
+     */
+  {
+    const int year_of_century = (adjusted_year + hc_zero_year) % 100;
+    if (year_of_century >= 37) tm->tm_year = year_of_century;
+    else tm->tm_year = year_of_century + 100;
+  }
+  tm->tm_isdst = -1;        /* don't know whether it's daylight */
+}
+
+
+
+void
+set_hardware_clock_isa(const struct tm new_tm, 
+                       const int hc_zero_year,
+                       const int dev_port,
+                       const bool testing) {
+/*----------------------------------------------------------------------------
+  Set the Hardware Clock to the time (in broken down format)
+  new_tm.  Use direct I/O instructions to what we assume is
+  an ISA Hardware Clock.
+
+  Iff 'dev_port' is -1, use the kernel inb()/outb() service, otherwise
+  use the /dev/port device (via file descriptor 'dev_port')
+  to do those I/O instructions.
+----------------------------------------------------------------------------*/
+  unsigned char save_control, save_freq_select;
+
+  if (testing) 
+    printf("Not setting Hardware Clock because running in test mode.\n");
+  else {
+    int ampmhour;
+      /* The hour number that goes into the hardware clock, taking into
+         consideration whether the clock is in 12 or 24 hour mode
+         */
+    int pmbit;
+      /* Value to OR into the hour register as the am/pm bit */
+    const int adjusted_year = 
+        (new_tm.tm_year - hc_zero_year)%100;
+      /* The number that goes in the hardware clock's year register */
+
+    int hclock_sec, hclock_min, hclock_hour, hclock_wday, hclock_mon,
+        hclock_mday, hclock_year;
+      /* The values we will put, in pure binary, in the Hardware Clock's
+         registers.
+         */
+
+    ATOMIC_TOP
+
+    save_control = hclock_read(11, dev_port); 
+      /* tell the clock it's being set */
+    hclock_write(11, (save_control | 0x80), dev_port);
+    save_freq_select = hclock_read(10, dev_port); 
+      /* stop and reset prescaler */
+    hclock_write (10, (save_freq_select | 0x70), dev_port);
+
+
+    if (!(save_control & 0x02)) {      
+      /* Clock is in 12 hour (am/pm) mode.  This is unusual. */
+      if (new_tm.tm_hour == 0) {
+        ampmhour = 12;
+        pmbit = 0x00;
+      } else if (new_tm.tm_hour < 12) {
+        ampmhour = new_tm.tm_hour;
+        pmbit = 0x00;
+      } else if (new_tm.tm_hour == 12) {
+        ampmhour = 12;
+        pmbit = 0x80;
+      } else {
+        ampmhour = new_tm.tm_hour - 12;
+        pmbit = 0x80;
+      }
+    } else {
+      /* Clock is in 24 hour mode.  This is normal. */
+      ampmhour = new_tm.tm_hour;
+      pmbit = 0x00;
+    }
+
+
+    if (!(save_control & 0x04)) { 
+      /* Clock's registers are in BCD.  This is normal. */
+      hclock_sec = BIN_TO_BCD(new_tm.tm_sec);
+      hclock_min = BIN_TO_BCD(new_tm.tm_min);
+      hclock_hour = pmbit | BIN_TO_BCD(ampmhour);
+      hclock_wday = BIN_TO_BCD(new_tm.tm_wday + 1); /* Used to be 3.  Why??*/
+      hclock_mday = BIN_TO_BCD(new_tm.tm_mday);
+      hclock_mon = BIN_TO_BCD(new_tm.tm_mon + 1);
+      hclock_year = BIN_TO_BCD(adjusted_year);
+    } else {
+      /* Clock's registers are in pure binary.  This is unusual. */
+      hclock_sec = new_tm.tm_sec;
+      hclock_min = new_tm.tm_min;
+      hclock_hour = pmbit | ampmhour;
+      hclock_wday = new_tm.tm_wday + 1; /* Used to be 3.  Why?? */
+      hclock_mday = new_tm.tm_mday;
+      hclock_mon = new_tm.tm_mon + 1;
+      hclock_year = adjusted_year;
+    }
+      
+    hclock_write(0, hclock_sec, dev_port);
+    hclock_write(2, hclock_min, dev_port);
+    hclock_write(4, hclock_hour, dev_port);
+    hclock_write(6, hclock_wday, dev_port);
+    hclock_write(7, hclock_mday, dev_port);
+    hclock_write(8, hclock_mon, dev_port);
+    hclock_write(9, hclock_year, dev_port);
+
+    /* We don't set the century byte (usually Byte 50) because it isn't
+       always there.  (see further comments in read_hardware_clock_isa).
+       In previous releases, we did.
+       */
+    
+    /* The kernel sources, linux/arch/i386/kernel/time.c, have the
+       following comment:
+    
+       The following flags have to be released exactly in this order,
+       otherwise the DS12887 (popular MC146818A clone with integrated
+       battery and quartz) will not reset the oscillator and will not
+       update precisely 500 ms later.  You won't find this mentioned
+       in the Dallas Semiconductor data sheets, but who believes data
+       sheets anyway ...  -- Markus Kuhn
+    
+    Hence, they will also be done in this order here.
+    faith@cs.unc.edu, Thu Nov  9 08:26:37 1995 
+    */
+
+    hclock_write (11, save_control, dev_port);
+    hclock_write (10, save_freq_select, dev_port);
+
+    ATOMIC_BOTTOM
+  }
+}
+
+
+
+void
+get_inb_outb_privilege(const enum clock_access_method clock_access, 
+                       bool * const no_auth_p) {
+
+  if (clock_access == ISA) {
+    const int rc = i386_iopl(3);
+    if (rc != 0) {
+      fprintf(stderr, MYNAME " is unable to get I/O port access.  "
+              "I.e. iopl(3) returned nonzero return code %d.\n"
+              "This is often because the program isn't running "
+              "with superuser privilege, which it needs.\n", 
+              rc);
+      *no_auth_p = TRUE;
+    } else *no_auth_p = FALSE;
+  } else *no_auth_p = FALSE;
+}
+
+
+
+void
+get_dev_port_access(const enum clock_access_method clock_access,
+                    int * dev_port_p) {
+
+  if (clock_access == DEV_PORT) {
+    /* Get the /dev/port file open */
+    *dev_port_p = open("/dev/port", O_RDWR);
+    if (*dev_port_p < 0) {
+      fprintf(stderr, MYNAME "is unable to open the /dev/port file.  "
+              "I.e. open() of the file failed with errno = %s (%d).\n"
+              "Run with the --debug option and check documentation "
+              "to find out why we are trying "
+              "to use /dev/port instead of some other means to access "
+              "the Hardware Clock.",
+              strerror(errno), errno);
+    } 
+  } else *dev_port_p = 0;
+}
+
+
+
diff --git a/clockB/hwclock.8 b/clockB/hwclock.8
new file mode 100644 (file)
index 0000000..0a21684
--- /dev/null
@@ -0,0 +1,599 @@
+.TH CLOCK 8 "02 March 1998"
+.SH NAME
+clock \- query and set the hardware clock (RTC)
+.SH SYNOPSIS
+.B "hwclock --show"
+.br
+.B "hwclock --set --date=newdate"
+.br
+.B "hwclock --systohc"
+.br
+.B "hwclock --hctosys" 
+.br
+.B "hwclock --getepoch"
+.br
+.B "hwclock --setepoch --epoch=year"
+.br
+.B "hwclock --adjust"
+.br
+.B "hwclock --version"
+.PP
+other options:
+.PP
+.B "--utc  --localtime --directisa --test --debug"
+.PP
+and arcane options for DEC Alpha:
+.PP
+.B "--arc --jensen --srm --funky-toy"
+.PP
+Minimum unique abbreviations of all options are acceptable.
+.PP
+Also, equivalent options -r, -w, -s, -a, -v, -u, -D, -A, -J, -S, and -F
+are accepted for compatibility with the program "clock".
+
+.SH DESCRIPTION
+.I hwclock
+is a tool for accessing the Hardware Clock.  You can display the
+current time, set the Hardware Clock to a specified time, set the
+Hardware Clock to the System Time, and set the System Time from the
+Hardware Clock.
+.PP
+You can also run 
+.I hwclock 
+periodically to insert or remove time from the Hardware Clock to
+compensate for systematic drift (where the clock consistently gains or
+loses time at a certain rate if left to run).
+
+.SH OPTIONS
+You need exactly one of the following options to tell 
+.I hwclock 
+what function to perform:
+.PP
+.TP
+.B \-\-show
+Read the Hardware Clock and print the time on Standard Output.
+The time is always in local time, even if you keep your Hardware Clock
+in Coordinated Universal Time.  See the
+.B \-\-utc
+option.
+
+.TP
+.B \-\-set
+Set the Hardware Clock to the time given by the 
+.B \-\-date
+option.
+.TP
+.B \-\-hctosys
+Set the System Time from the Hardware Clock.  
+
+Also set the kernel's timezone value to the local timezone as indicated by
+the TZ environment variable and/or
+.IR /usr/lib/zoneinfo ,
+as 
+.BR tzset (3)
+would interpret them.  EXCEPT: always set the Daylight Savings Time part of
+the kernel's timezone value to 0 ("not Daylight Savings Time").  If DST
+is indicated, just add an hour to the base part.
+
+See the discussion of timezones below.
+
+This is a good option to use in one of the system startup scripts.
+.TP
+.B \-\-systohc
+Set the Hardware Clock to the current System Time.
+.TP
+.B \-\-adjust
+Add or subtract time from the Hardware Clock to account for systematic
+drift since the last time the clock was set or adjusted.  See discussion
+below.
+.TP
+.B \-\-getepoch
+Print out standard output the kernel's Hardware Clock epoch value.
+This is the number of years into AD to which a zero year value in the
+Hardware Clock refers.  For example, if you are using the convention
+that the year counter in your Hardware Clock contains the number of
+full years since 1952, then the kernel's Hardware Counter epoch value
+must be 1952.
+
+This epoch value is used whenever hwclock reads or sets the Hardware Clock.
+.TP
+.B \-\-setepoch
+Set the kernel's Hardware Clock epoch value to the value specified by the
+.B \-\-epoch
+option.  See the
+.B \-\-getepoch
+option for details.
+.TP
+.B \-\-version
+Print the version of 
+.I hwclock 
+on Standard Output.
+.br
+You need the following option if you specify 
+.B \-\-set
+option.  Otherwise, it is ignored.
+.TP
+.B \-\-date=date_string
+Specifies the time to which to set the Hardware Clock.  The value of this
+option is an argument to the
+.I date(1)
+program.  For example,
+.sp
+.I hwclock --set --date="9/22/96 16:45:05"
+.sp
+The argument is in local time, even if you keep your Hardware Clock in 
+Coordinated Universal time.  See the 
+.I \-\-utc
+option.
+
+.TP
+.B \-\-epoch=year
+Specifies the year which is the beginning of the Hardware Clock's
+epoch.  I.e. the number of years into AD to which a zero value in the
+Hardware Clock's year counter refers.  
+
+For example,
+.sp
+.I hwclock --setepoch --epoch=1952
+
+.PP
+The following options apply to most functions.
+.TP
+.B \-\-utc
+.TP
+.B \-\-localtime
+Indicates that the Hardware Clock is kept in Coordinated Universal
+Time or local time, respectively.  It is your choice whether to keep
+your clock in UTC or local time, but nothing in the clock tells which
+you've chosen.  So this option is how you give that information to
+.IR hwclock .
+
+If you specify the wrong one of these options (or specify neither and
+take a wrong default), both setting and querying of the Hardware Clock
+will be messed up.
+
+If you specify neither
+.B \-\-utc
+nor
+.B \-\-localtime
+, the default is whichever was specified the last time
+.I hwclock
+was used to set the clock (i.e. hwclock was successfully run with the
+.B \-\-set
+, 
+.B \-\-systohc
+,
+or
+.B \-\-adjust
+options), as recorded in the adjtime file.  If the adjtime file doesn't
+exist, the default is local time.
+
+.TP
+.B \-\-directisa
+is meaningful only on an ISA machine or an Alpha (which implements enough
+of ISA to be, roughly speaking, an ISA machine for 
+.IR hwclock 's
+purposes).  For other machines, it has no effect.  This option tells
+.I hwclock
+to use explicit I/O instructions to access the Hardware Clock.
+Without this option, 
+.I hwclock
+will try to use the /dev/rtc device (which it assumes to be driven by the
+rtc device driver).  If it is unable to open the device (for read), it will
+use the explicit I/O instructions anyway.
+
+The rtc device driver was new in Linux Release 2.
+.TP
+.B \-\-badyear
+Indicates that the Hardware Clock is incapable of storing years outside
+the range 1994-1999.  There is a problem in some BIOSes (almost all 
+Award BIOSes made between 4/26/94 and 5/31/95) wherein they are unable
+to deal with years after 1999.  If one attempts to set the year-of-century
+value to something less than 94 (or 95 in some cases), the value that
+actually gets set is 94 (or 95).  Thus, if you have one of these machines,
+.I hwclock
+cannot set the year after 1999 and cannot use the value of the clock as
+the true time in the normal way.
+
+To compensate for this (without your getting a BIOS update, which would
+definitely be preferable), always use 
+.B \-\-badyear
+if you have one of these machines.  When  
+.I hwclock
+knows it's working with a brain-damaged clock, it ignores the year part of
+the Hardware Clock value and instead tries to guess the year based on the 
+last calibrated date in the adjtime file, by assuming that that date is
+within the past year.  For this to work, you had better do a 
+.I hwclock \-\-set
+or
+.I hwclock \-\-systohc
+at least once a year!
+
+Though 
+.I hwclock
+ignores the year value when it reads the Hardware Clock, it sets the
+year value when it sets the clock.  It sets it to 1995, 1996, 1997, or
+1998, whichever one has the same position in the leap year cycle as
+the true year.  That way, the Hardware Clock inserts leap days where
+they belong.  Again, if you let the Hardware Clock run for more than a
+year without setting it, this scheme could be defeated and you could
+end up losing a day.
+
+.I hwclock
+warns you that you probably need 
+.B \-\-badyear
+whenever it finds your Hardware Clock set to 1994 or 1995.  
+
+.TP
+.B \-\-srm
+.TP
+.B \-\-arc
+.TP
+.B \-\-jensen
+.TP
+.B \-\-funky\-toy
+These options all tell 
+.I hwclock 
+what kind of Alpha machine you have.  They
+are invalid if you don't have an Alpha and shouldn't be necessary if you
+do, because 
+.I hwclock 
+should be able to determine by itself what it's 
+running on.  These options make it possible for 
+.I hwclock 
+to work even when
+its environment does not conform to its expectations and thus it cannot
+accurately determine what sort of system it is running on.  If you think
+hwclock is incorrectly determining the system's characteristics, try 
+running with the 
+.B \-\-debug 
+option to see what conclusions the program is
+reaching and how.  If you find you need one of these options to make
+.I hwclock 
+work, contact the 
+.I hwclock 
+maintainer to see if the program can be improved to detect your system
+automatically.
+
+.B \-\-jensen 
+means you are running on a Jensen model.
+
+.B \-\-arc 
+means your machine is running with ARC console time.
+
+.B \-\-srm 
+means your machine is running with SRM console time.
+
+.B \-\-funky\-toy 
+means that on your machine, one has to use the UF bit instead
+of the UIP bit in the Hardware Clock to detect a time transition.  "Toy"
+in the option name refers to the Time Of Year facility of the machine. 
+
+
+.TP
+.B \-\-test
+Do everything except actually updating the Hardware Clock or anything
+else.  This is useful, especially in conjunction with
+.B \-\-debug,
+in learning about 
+.I hwclock.
+.TP
+.B \-\-debug
+Display a lot of information about what 
+.I hwclock 
+is doing internally.  Some of its function is complex and this output
+can help you understand how the program works.
+
+
+.SH NOTES
+
+
+.SH Clocks in a Linux System
+.PP
+There are two main clocks in a Linux system:
+.PP
+.B The Hardware Clock: 
+This is a clock that runs independently of any control program running
+in the CPU and even when the machine is powered off.
+
+On an ISA system, this clock is specified as part of the ISA standard.
+The control program can read or set this clock to a whole second, but
+the control program can also detect the edges of the 1 second clock
+ticks, so the clock actually has virtually infinite precision.
+.PP
+This clock is commonly called the hardware clock, the real time clock,
+the RTC, the BIOS clock, and the CMOS clock.  Hardware Clock, in its
+capitalized form, was coined for use by 
+.I hwclock 
+because all of the other names are inappropriate to the point of being
+misleading.
+.PP
+.B The System Time: 
+This is the time kept by a clock inside the Linux kernel and driven by
+a timer interrupt.  (On an ISA machine, the timer interrupt is part of
+the ISA standard).  It has meaning only while Linux is running on the
+machine.  The System Time is the number of seconds since 00:00:00
+January 1, 1970 UTC (or more succinctly, the number of seconds since
+1969).  The System Time is not an integer, though.  It has virtually
+infinite precision.
+.PP
+The System Time is the time that matters.  The Hardware Clock's basic
+purpose in a Linux system is to keep time when Linux is not running.  You
+initialize the System Time to the time from the Hardware Clock when Linux
+starts up, and then never use the Hardware Clock again.  Note that in DOS,
+for which ISA was designed, the Hardware Clock is the only real time clock.
+.PP
+It is important that the System Time not have any discontinuities such as
+would happen if you used the 
+.BR date (1L)
+program to set it while the system is running.  You can, however, do whatever
+you want to the Hardware Clock while the system is running, and the next
+time Linux starts up, it will do so with the adjusted time from the Hardware
+Clock.  You can also use the program 
+.BR adjtimex (8)
+to smoothly adjust the System Time while the system runs.
+.PP
+A Linux kernel maintains a concept of a local timezone for the system.
+But don't be misled -- almost nobody cares what timezone the kernel
+thinks it is in.  Instead, programs that care about the timezone
+(perhaps because they want to display a local time for you) almost
+always use a more traditional method of determining the timezone: They
+use the TZ environment variable and/or the /usr/local/timezone
+directory, as explained in the man page for tzset(3).  However, some
+programs and fringe parts of the Linux kernel such as filesystems use
+the kernel timezone value.  An example is the vfat filesystem.  If the
+kernel timezone value is wrong, the vfat filesystem will report and
+set the wrong timestamps on files.
+.PP
+.I hwclock
+sets the kernel timezone to the value indicated by TZ and/or
+/usr/local/timezone when you set the System Time using the 
+.B \-\-hctosys
+option.
+.PP
+A complication is that the timezone value actually consists of two
+parts: 1) how far from the Standard Meridian the locality is
+geographically, and 2) whether or not a Daylight Savings Time (DST)
+convention is in effect in the locality at the present time.  In
+practice, the DST part of the timezone value is almost never used, so
+if the geographical part were to be set to its correct value, the
+users of the timezone value would actually compute the wrong local
+time.
+.PP
+Therefore, 
+.I hwclock
+violates the definition of the kernel's timezone value and always sets
+the DST part to zero.  If DST is supposed to be in effect, 
+.I hwclock
+simply adds an hour to the geographical part.
+
+.SH How hwclock Accesses the Hardware Clock
+.PP
+.I hwclock 
+Uses many different ways to get and set Hardware Clock values.
+The most normal way is to do I/O to the device special file /dev/rtc,
+which is presumed to be driven by the rtc device driver.  However,
+this method is not always available.  For one thing, the rtc driver is
+a relatively recent addition to Linux.  Older systems don't have it.
+Also, though there are versions of the rtc driver that work on DEC
+Alphas, there appear to be plenty of Alphas on which the rtc driver
+does not work (a common symptom is hwclock hanging).
+.PP
+On older systems, the method of accessing the Hardware Clock depends on
+the system hardware. 
+.PP
+On an ISA system, 
+.I hwclock 
+can directly access the "CMOS memory" registers that
+constitute the clock, by doing I/O to Ports 0x70 and 0x71.  It does
+this with actual I/O instructions and consequently can only do it if
+running with superuser effective userid.  (In the case of a Jensen
+Alpha, there is no way for
+.I hwclock 
+to execute those I/O instructions, and so it uses instead the
+/dev/port device special file, which provides almost as low-level an
+interface to the I/O subsystem).
+
+This is a really poor method of accessing the clock, for all the
+reasons that user space programs are generally not supposed to do
+direct I/O and disable interrupts.  Hwclock provides it because it is
+the only method available on ISA and Alpha systems which don't have
+working rtc device drivers available.
+
+.PP
+On an m68k system,
+.I hwclock
+can access the clock via the console driver, via the device special
+file /dev/tty1.
+.PP
+.I hwclock 
+tries to use /dev/rtc.  If it is compiled for a kernel that doesn't have
+that function or it is unable to open /dev/rtc, 
+.I hwclock 
+will fall back to another method, if available.  On an ISA or Alpha
+machine, you can force
+.I hwclock
+to use the direct manipulation of the CMOS registers without even trying
+.I /dev/rtc
+by specifying the \-\-directisa option.
+
+
+.SH The Adjust Function
+.PP
+The Hardware Clock is usually not very accurate.  However, much of its
+inaccuracy is completely predictable - it gains or loses the same amount
+of time every day.  This is called systematic drift.
+.IR hwclock 's 
+"adjust" function lets you make systematic corrections to correct the
+systematic drift.
+.PP
+It works like this:  
+.I hwclock 
+keeps a file,
+.I /etc/adjtime,
+that keeps some historical information.  This is called the adjtime file.
+.PP
+Suppose you start with no adjtime file.  You issue a 
+.I hwclock \-\-set
+command to set the Hardware Clock to the true current time.  
+.I Hwclock 
+creates the adjtime file and records in it the current time as the 
+last time the clock was calibrated.
+5 days
+later, the clock has gained 10 seconds, so you issue another
+.I hwclock \-\-set
+command to set it back 10 seconds.  
+.I Hwclock 
+updates the adjtime file to show the current time as the last time the
+clock was calibrated, and records 2 seconds per day as the systematic
+drift rate.  24 hours go by, and then you issue a
+.I hwclock \-\-adjust
+command.  
+.I Hwclock 
+consults the adjtime file and sees that the clock gains 2 seconds per
+day when left alone and that it has been left alone for exactly one
+day.  So it subtracts 2 seconds from the Hardware Clock.  It then
+records the current time as the last time the clock was adjusted.
+Another 24 hours goes by and you issue another
+.I hwclock \-\-adjust.
+.I Hwclock 
+does the same thing: subtracts 2 seconds and updates the adjtime file
+with the current time as the last time the clock was adjusted.
+.PP
+Every time you calibrate (set) the clock (using 
+.I \-\-set
+or
+.I \-\-systohc
+),
+.I hwclock 
+recalculates the systematic drift rate based on how long it has been
+since the last calibration, how long it has been since the last
+adjustment, what drift rate was assumed in any intervening
+adjustments, and the amount by which the clock is presently off.
+.PP
+A small amount of error creeps in any time 
+.I hwclock 
+sets the clock, so it refrains from making an adjustment that would be
+less than 1 second.  Later on, when you request an adjustment again,
+the accumulated drift will be more than a second and
+.I hwclock 
+will do the adjustment then.
+.PP
+It is good to do a 
+.I hwclock \-\-adjust
+just before the 
+.I hwclock \-\-hctosys
+at system startup time, and maybe periodically while the system is
+running via cron.
+.PP
+The adjtime file, while named for its historical purpose of controlling
+adjustments only, actually contains other information for use by hwclock
+in remembering information from one invocation to the next.
+.PP
+The format of the adjtime file is, in ASCII:
+.PP
+Line 1: 3 numbers, separated by blanks: 1) systematic drift rate in
+seconds per day, floating point decimal; 2) Resulting number of
+seconds since 1969 UTC of most recent adjustment or calibration,
+decimal integer; 3) zero (for compatibility with
+.IR clock )
+as a decimal integer.
+.PP
+Line 2: 1 number: Resulting number of seconds since 1969 UTC of most
+recent calibration.  Zero if there has been no calibration yet or it
+is known that any previous calibration is moot (for example, because
+the Hardware Clock has been found, since that calibration, not to 
+contain a valid time).  This is a decimal integer.
+.PP
+Line 3: "UTC" or "LOCAL".  Tells whether the Hardware Clock is set to 
+Coordinated Universal Time or local time.  You can always override this
+value with options on the 
+.I hwclock
+command line.
+.PP
+You can use an adjtime file that was previously used with the 
+.I clock
+program with 
+.I hwclock.
+
+
+.SH "Automatic Hardware Clock Synchronization By the Kernel"
+
+You should be aware of another way that the Hardware Clock is kept 
+synchronized in some systems.  The Linux kernel has a mode wherein it
+copies the System Time to the Hardware Clock every 11 minutes.  
+This is a good mode to use when you are using something sophisticated
+like ntp to keep your System Time synchronized. (ntp is a way to keep
+your System Time synchronized either to a time server somewhere on the
+network or to a radio clock hooked up to your system.  See RFC 1305).
+
+This mode (we'll call it "11 minute mode") is off until something
+turns it on.  The ntp daemon xntpd is one thing that turns it on.  You
+can turn it off by running anything, including
+.IR "hwclock \-\-hctosys" ,
+that sets the System Time the old fashioned way.
+
+To see if it is on or
+off, use the command 
+.I adjtimex \-\-print
+and look at the value of "status".  If the "64" bit of this number
+(expressed in binary) equal to 0, 11 minute mode is on.  Otherwise, it
+is off.
+
+If your system runs with 11 minute mode on, don't use 
+.I hwclock \-\-adjust
+or
+.IR "hwclock \-\-hctosys" .
+You'll just make a mess.  It is acceptable to use a
+.I hwclock \-\-hctosys 
+at startup time to get a reasonable System Time until your system is
+able to set the System Time from the external source and start 11
+minute mode.
+
+
+.SH ISA Hardware Clock Century value
+
+There is some sort of standard that defines CMOS memory Byte 50 on an ISA
+machine as an indicator of what century it is.  
+.I hwclock
+does not use or set that byte because there are some machines that
+don't define the byte that way, and it really isn't necessary anyway,
+since the year-of-century does a good job of implying which century it
+is.
+
+If you have a bona fide use for a CMOS century byte, contact the 
+.I hwclock
+maintainer; an option may be appropriate.
+
+Note that this section is only relevant when you are using the "direct
+ISA" method of accessing the Hardware Clock.
+
+
+
+.SH "ENVIRONMENT VARIABLES"
+.I TZ
+
+.SH FILES
+.I /etc/adjtime
+.I /usr/lib/zoneinfo/
+.I /dev/rtc
+.I /dev/port
+.I /dev/tty1
+.I /proc/cpuinfo
+
+.SH "SEE ALSO"
+.BR adjtimex (8),
+.BR date (1),
+.BR gettimeofday (2),
+.BR settimeofday (2),
+.BR crontab (1),
+.BR tzset (3)
+
+.SH AUTHORS
+Written By Bryan Henderson, September 1996 (bryanh@giraffe-data.com),
+based on work done on the
+.I clock
+program by Charles Hedrick, Rob Hooft, and Harald Koenig.  
+See the source code for complete history and credits.
+
+
diff --git a/clockB/hwclock.c b/clockB/hwclock.c
new file mode 100644 (file)
index 0000000..e7f1c91
--- /dev/null
@@ -0,0 +1,1744 @@
+/**************************************************************************
+                                hwclock
+***************************************************************************
+
+  This is a program for reading and setting the Hardware Clock on an ISA
+  family computer.  This is the clock that is also known as the RTC,
+  real time clock, or, unfortunately, the CMOS clock.
+
+  See man page for details.
+
+  By Bryan Henderson, 96.09.19.  bryanh@giraffe-data.com
+
+  Based on work by others; see history at end of source code.
+
+**************************************************************************/
+/**************************************************************************
+  Maintenance notes
+
+  To compile this, you must use GNU compiler optimization (-O option)
+  in order to make the "extern inline" functions from asm/io.h (inb(),
+  etc.)  compile.  If you don't optimize, which means the compiler
+  will generate no inline functions, the references to these functions
+  in this program will be compiled as external references.  Since you
+  probably won't be linking with any functions by these names, you will
+  have unresolved external references when you link.
+  
+  The program is designed to run setuid superuser, since we need to be
+  able to do direct I/O.  (More to the point: we need permission to 
+  execute the iopl() system call).  (However, if you use one of the 
+  methods other than direct ISA I/O to access the clock, no setuid is
+  required).
+  Here's some info on how we must deal with the time that elapses while
+  this program runs: There are two major delays as we run:
+
+    1) Waiting up to 1 second for a transition of the Hardware Clock so
+       we are synchronized to the Hardware Clock.
+
+    2) Running the "date" program to interpret the value of our --date
+       option.
+
+  Reading the /etc/adjtime file is the next biggest source of delay and
+  uncertainty.
+
+  The user wants to know what time it was at the moment he invoked us,
+  not some arbitrary time later.  And in setting the clock, he is
+  giving us the time at the moment we are invoked, so if we set the
+  clock some time later, we have to add some time to that.
+
+  So we check the system time as soon as we start up, then run "date"
+  and do file I/O if necessary, then wait to synchronize with a
+  Hardware Clock edge, then check the system time again to see how
+  much time we spent.  We immediately read the clock then and (if 
+  appropriate) report that time, and additionally, the delay we measured.
+
+  If we're setting the clock to a time given by the user, we wait some
+  more so that the total delay is an integral number of seconds, then
+  set the Hardware Clock to the time the user requested plus that
+  integral number of seconds.  N.B. The Hardware Clock can only be set
+  in integral seconds.
+
+  If we're setting the clock to the system clock value, we wait for
+  the system clock to reach the top of a second, and then set the
+  Hardware Clock to the system clock's value.
+
+  Here's an interesting point about setting the Hardware Clock:  On my
+  machine, when you set it, it sets to that precise time.  But one can
+  imagine another clock whose update oscillator marches on a steady one
+  second period, so updating the clock between any two oscillator ticks
+  is the same as updating it right at the earlier tick.  To avoid any
+  complications that might cause, we set the clock as soon as possible
+  after an oscillator tick.
+
+  
+  About synchronizing to the Hardware Clock when reading the time: The
+  precision of the Hardware Clock counters themselves is one second.
+  You can't read the counters and find out that is 12:01:02.5.  But if
+  you consider the location in time of the counter's ticks as part of
+  its value, then its precision is as infinite as time is continuous!
+  What I'm saying is this: To find out the _exact_ time in the
+  hardware clock, we wait until the next clock tick (the next time the
+  second counter changes) and measure how long we had to wait.  We
+  then read the value of the clock counters and subtract the wait time
+  and we know precisely what time it was when we set out to query the
+  time.
+
+  hwclock uses this method, and considers the Hardware Clock to have
+  infinite precision.
+
+  Definition of century:  In this program, a century is a 100 year 
+  period in which all the years' numbers in the Gregorian calendar
+  differ only in their last two decimal digits.  E.g. 1900-1999 is
+  a century.  The 20th Century (1901-2000), however, is not.
+
+
+  About the unusual situation of the Jensen variety of Alpha:
+
+  Martin Ostermann writes: 
+
+  The problem with the Jensen is twofold: First, it has the clock at a
+  different address. Secondly, it has a distinction beween "local" and
+  normal bus addresses. The local ones pertain to the hardware integrated
+  into the chipset, like serial/parallel ports and of course, the RTC.
+  Those need to be addressed differently. This is handled fine in the kernel,
+  and it's not a problem, since this usually gets totally optimized by the
+  compile. But the i/o routines of (g)libc lack this support so far.
+  The result of this is, that the old clock program worked only on the
+  Jensen when USE_DEV_PORT was defined, but not with the normal inb/outb
+  functions.
+  
+
+
+  Enhancements needed:
+
+   - When waiting for whole second boundary in set_hardware_clock_exact,
+     fail if we miss the goal by more than .1 second, as could happen if
+     we get pre-empted (by the kernel dispatcher).
+
+****************************************************************************/ 
+
+#include <string.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/time.h>
+#include <sys/stat.h>
+#include "shhopt.h"
+#include "../version.h"  /* Defines UTIL_LINUX, among other things */
+#include "hwclock.h"
+
+#define FLOOR(arg) ((arg >= 0 ? (int) arg : ((int) arg) - 1));
+
+/* Here the information for time adjustments is kept. */
+#define ADJPATH "/etc/adjtime"
+
+/* Note that we must define the boolean type as int because we use the
+   shhopt option processing library which, unfortunately, returns flag
+   options as integers.  It is customary to define bool as char, but 
+   then we would have to do a lot of conversion in order to interface
+   with shhopt.
+*/
+
+/* The following are times, in unix standard format (seconds since 1969) */
+#define START_OF_1994 757411200
+#define END_OF_1995 820396800
+
+struct adjtime {
+  /* This is information we keep in the adjtime file that tells us how
+     to do drift corrections, among other things.  Elements are all
+     straight from the adjtime file, so see documentation of that file
+     for details.  Exception is <dirty>, which is an indication that
+     what's in this structure is not what's in the disk file (because
+     it has been updated since read from the disk file).  
+     */
+
+  bool dirty;        
+  float drift_factor;    
+  time_t last_adj_time;
+  float not_adjusted;
+  time_t last_calib_time;
+    /* The most recent time that we set the clock from an external 
+       authority (as opposed to just doing a drift adjustment)
+       */
+  enum a_local_utc {LOCAL, UTC} local_utc;
+    /* To which time zone, local or UTC, we most recently set the
+       hardware clock.
+       */
+};
+
+
+
+
+
+bool debug;
+  /* We are running in debug mode, wherein we put a lot of information about
+     what we're doing to standard output.  Because of the pervasive and yet
+     background nature of this value, this is a global variable.  */
+
+
+
+/* We're going to assume that if the CPU is in the Intel x86 family, 
+   this is an ISA family machine.  For all practical purposes, this is 
+   the case at the time of this writing, especially after we assume a
+   Linux kernel is running on it.
+   */
+const bool isa_machine = 
+#ifdef __i386__
+TRUE
+#else
+FALSE;
+#endif
+;
+
+const bool alpha_machine = 
+#ifdef __alpha__
+TRUE
+#else
+FALSE;
+#endif
+;
+
+
+
+static bool
+hw_clock_is_utc(const bool utc, const bool local_opt, 
+                const struct adjtime adjtime) {
+/*----------------------------------------------------------------------------
+   Return true iff the hardware clock keeps Coordinated Universal Time
+   rather than local time.
+
+   'utc' means the user told us in the invocation options that the
+   hardware clock is kept in UTC.
+-----------------------------------------------------------------------------*/
+  
+  bool retval;  /* our return value */
+
+  if (utc) retval = TRUE;
+  else if (local_opt) retval = FALSE;
+  else retval = (adjtime.local_utc == UTC);
+  if (debug) printf("Assuming hardware clock is kept in %s time.\n",
+                    retval ? "UTC" : "LOCAL");
+  return retval;
+}
+
+
+
+static void
+read_adjtime(struct adjtime *adjtime_p, int *rc_p) {
+/*----------------------------------------------------------------------------
+  Read the adjustment parameters and other persistent variables out of
+  the /etc/adjtime file.
+
+  Return them as the adjtime structure <*adjtime_p>.
+
+  If there is no /etc/adjtime file, return defaults.
+  If values are missing from the file, return defaults for them.
+  
+  return *rc_p = 0 if all OK, !=0 otherwise.
+
+  Note: The default is LOCAL rather than UTC for historical reasons.
+
+-----------------------------------------------------------------------------*/
+  FILE *adjfile;
+  int rc;  /* local return code */
+  struct stat statbuf;  /* We don't even use the contents of this. */
+
+  rc = stat(ADJPATH, &statbuf);
+  if (rc < 0 && errno == ENOENT) {
+    /* He doesn't have a adjtime file, so we'll use defaults. */
+    adjtime_p->drift_factor = 0;
+    adjtime_p->last_adj_time = 0;
+    adjtime_p->not_adjusted = 0;
+    adjtime_p->last_calib_time = 0;
+    adjtime_p->local_utc = LOCAL;
+
+    *rc_p = 0;
+  } else { 
+    adjfile = fopen(ADJPATH, "r");   /* open file for reading */
+    if (adjfile == NULL) {
+      const int fopen_errno = errno;
+      fprintf(stderr, MYNAME " is unable to open file " ADJPATH ".  "
+              "fopen() errno=%d:%s", fopen_errno, strerror(fopen_errno));
+      *rc_p = 2;
+    } else {
+      char line1[81];           /* String: first line of adjtime file */
+      char line2[81];           /* String: second line of adjtime file */
+      char line3[81];           /* String: third line of adjtime file */
+      
+      line1[0] = '\0';          /* In case fgets fails */
+      fgets(line1, sizeof(line1), adjfile);
+      line2[0] = '\0';          /* In case fgets fails */
+      fgets(line2, sizeof(line2), adjfile);
+      line3[0] = '\0';          /* In case fgets fails */
+      fgets(line3, sizeof(line3), adjfile);
+      
+      fclose(adjfile);
+      
+      /* Set defaults in case values are missing from file */
+      adjtime_p->drift_factor = 0;
+      adjtime_p->last_adj_time = 0;
+      adjtime_p->not_adjusted = 0;
+      adjtime_p->last_calib_time = 0;
+      adjtime_p->local_utc = LOCAL;
+      
+      sscanf(line1, "%f %d %f", 
+             &adjtime_p->drift_factor,
+             (int *) &adjtime_p->last_adj_time, 
+             &adjtime_p->not_adjusted);
+      
+      sscanf(line2, "%d", (int *) &adjtime_p->last_calib_time);
+
+      {
+        char local_utc_string[sizeof(line3)];
+        
+        local_utc_string[0] = '\0';  /* In case nothing in line3 */
+        sscanf(line3, "%s", local_utc_string);
+
+        *rc_p = 0;  /* Initial assumption - local/utc token is valid */
+        if (strlen(local_utc_string) == 0) 
+          adjtime_p->local_utc = LOCAL;
+        else if (strcmp(local_utc_string, "UTC") == 0) 
+          adjtime_p->local_utc = UTC;
+        else if (strcmp(local_utc_string, "LOCAL") == 0) 
+          adjtime_p->local_utc = LOCAL;
+        else {
+          fprintf(stderr, "%s: The first token of the third line of the file "
+                  ADJPATH " is invalid.  It must be LOCAL or UTC, indicating "
+                  "to which time zone the hardware clock is set.  Its "
+                  "present value is '%s'.\n", MYNAME, local_utc_string);
+          *rc_p = 5;
+        }
+      }
+    }
+    adjtime_p->dirty = FALSE;
+
+    if (debug) {
+      printf("Last drift adjustment done %s (Time %d)\n", 
+             ctime2(adjtime_p->last_adj_time),
+             (int) adjtime_p->last_adj_time);
+      printf("Last calibration done %s (Time %d)\n",
+             ctime2(adjtime_p->last_calib_time), 
+             (int) adjtime_p->last_calib_time);
+    }
+  }
+}
+
+
+
+static void
+synchronize_to_clock_tick(enum clock_access_method clock_access, 
+                          const int dev_port, const bool use_uf_bit,
+                          int *retcode_p) {
+/*-----------------------------------------------------------------------------
+  Wait until the moment the Hardware Clock updates to the next second,
+  so we know the exact time.
+
+  The clock only has 1 second precision, so it gives the exact time only
+  once per second.
+
+  Return *retcode_p == 0 if it worked, nonzero if it didn't.
+-----------------------------------------------------------------------------*/
+  if (debug) printf("Waiting for clock tick...\n");
+
+  switch (clock_access) {
+  case ISA: synchronize_to_clock_tick_ISA(retcode_p, -1, use_uf_bit); break;
+  case DEV_PORT: synchronize_to_clock_tick_ISA(retcode_p, dev_port,
+                                               use_uf_bit); break;
+  case RTC_IOCTL: synchronize_to_clock_tick_RTC(retcode_p); break;
+  case KD: synchronize_to_clock_tick_KD(retcode_p); break;
+  default:
+    fprintf(stderr, "%s: Internal error in synchronize_to_clock_tick.  "
+            "Invalid value for clock_access argument: %d.\n",
+            MYNAME, clock_access);
+    *retcode_p = 1;
+  }
+  if (debug) printf("...got clock tick\n");
+  return;
+}
+
+
+static struct tm
+make_within_one_year(const struct tm base_tm, const time_t last_known_time) {
+/*----------------------------------------------------------------------------
+  Compute a time that is the same as the input base_tm, except for a
+  different year.  The year shall be whatever year it takes to make the
+  output time within one year after last_known_time.
+
+  The timezone for both the input and output values is the value of
+  the TZ environment variable.
+-----------------------------------------------------------------------------*/
+  struct tm broken_last_known_time;
+    /* The input time last_known_time, in broken down format */
+  struct tm test_time;
+
+  if (debug)
+    printf("Ignoring clock year and assuming "
+           "it's within 1 year after %s\n",
+           ctime2(last_known_time));
+
+  broken_last_known_time = *localtime(&last_known_time);
+  
+  test_time = base_tm;
+  test_time.tm_year = broken_last_known_time.tm_year;
+
+  if (mktime(&test_time) < last_known_time)
+    test_time.tm_year += 1;
+
+  return(test_time);
+}
+
+
+
+static void
+mktime_tz(struct tm hw_tm, const bool universal, const bool badyear,
+          const time_t last_known_time,
+          bool *valid_p, time_t *systime_p) {
+/*-----------------------------------------------------------------------------
+  Convert a time in broken down format (hours, minutes, etc.)  as read
+  from the Hardware Clock into standard unix time (seconds into
+  epoch).  Return it as *systime_p.
+
+  The broken down time is argument <tm>.  This broken down time is
+  either in local time zone or UTC, depending on value of logical
+  argument 'universal'.  True means it is in UTC.
+
+  Argument 'badyear' true means the input time is from one of those
+  machines with the Award BIOS that is incapable of storing a year
+  value less than 94 or 95, which means we can't use the year value
+  from the clock (see documentation of hwclock's --badyear option).
+  In this case, we instead determine the year by assuming that it's
+  less than a year since the time <last_known_time>.
+
+
+  If the argument contains values that do not constitute a valid time,
+  and mktime() recognizes this, return *valid_p == false and
+  *systime_p undefined.  However, mktime() sometimes goes ahead and
+  computes a fictional time "as if" the input values were valid,
+  e.g. if they indicate the 31st day of April, mktime() may compute
+  the time of May 1.  In such a case, we return the same fictional
+  value mktime() does as *systime_p and return *valid_p == true.
+
+-----------------------------------------------------------------------------*/
+  time_t mktime_result;  /* The value returned by our mktime() call */
+  struct tm adjusted_tm;
+    /* The same as the value from our argument, except if we determine
+       the year in the argument is garbage, this value contains the year 
+       computed from the ADJTIME file instead.
+       */
+  char *zone;       /* Local time zone name */
+
+  /* We use the C library function mktime(), but since it only works on 
+     local time zone input, we may have to fake it out by temporarily 
+     changing the local time zone to UTC.
+     */
+  zone = (char *) getenv("TZ");        /* remember original time zone */
+
+  if (universal) {
+    /* Set timezone to UTC */
+    setenv("TZ", "UTC 0", TRUE);
+    /* Note: tzset() gets called implicitly by the time code, but only the
+       first time.  When changing the environment variable, better call
+       tzset() explicitly.
+
+       Also: documentation for tzset() says if TZ = "", that means UTC.
+       But practice shows that that only works if tzset() hasn't already
+       been called before.  So we explicitly say "UTC 0".
+       */
+    tzset();
+  }
+
+  if (badyear) 
+    adjusted_tm = make_within_one_year(hw_tm, last_known_time);
+  else adjusted_tm = hw_tm; 
+
+  mktime_result = mktime(&adjusted_tm);
+  if (mktime_result == -1) {
+    /* This apparently (not specified in mktime() documentation) means
+       the 'adjusted_tm' structure does not contain valid values (however, not
+       containing valid values does _not_ imply mktime() returns -1).
+       */
+    /* Note that we are assuming here that the invalidity came from the
+       hardware values and was not introduced by our adjustments!
+       */
+    *valid_p = FALSE;
+    *systime_p = 0;
+    if (debug)
+      printf("Invalid values in hardware clock: "
+             "%2d/%.2d/%.2d %.2d:%.2d:%.2d\n",
+             hw_tm.tm_year, hw_tm.tm_mon+1, hw_tm.tm_mday,
+             hw_tm.tm_hour, hw_tm.tm_min, hw_tm.tm_sec
+             );
+  } else {
+    *valid_p = TRUE;
+    *systime_p = mktime_result;
+    if (debug) 
+      printf("Hw clock time : %s = %d seconds since 1969\n", 
+             ctime2(*systime_p), (int) *systime_p);
+  }
+  /* now put back the original zone.  */
+  if (zone) setenv("TZ", zone, TRUE);
+  else unsetenv("TZ");
+  tzset();
+}
+
+
+
+static void
+read_hardware_clock(const enum clock_access_method method, 
+                    const int dev_port,
+                    const bool universal, const int hc_zero_year,
+                    const bool badyear, 
+                    const time_t last_known_time,
+                    bool *valid_p, time_t *systime_p) {
+/*----------------------------------------------------------------------------
+  Read the hardware clock and return the current time via *systime_p
+  argument.  
+
+  If the hardware clock fails to tell us a time, return *valid_p == false
+  and undefined value as *systime_p.  Otherwise *valid_p == true.
+
+  Consider the hardware clock to be set in Coordinated Universal Time
+  (UTC) iff 'universal' == true.
+
+  Consider the year value of the clock to be useless iff 'badyear' == true.
+
+  Recognize that the present time is is after 'last_known_time', which
+  information may be necessary to interpret the value of some hardware
+  clocks.
+
+  Use the method indicated by 'method' argument to access the hardware clock.
+-----------------------------------------------------------------------------*/
+  struct tm tm;
+
+  switch (method) {
+  case RTC_IOCTL:
+    read_hardware_clock_rtc_ioctl(&tm);
+    break;
+  case ISA:
+    read_hardware_clock_isa(&tm, -1, hc_zero_year);
+    break;
+  case DEV_PORT:
+    read_hardware_clock_isa(&tm, dev_port, hc_zero_year);
+    break;
+  case KD:
+    read_hardware_clock_kd(&tm);
+    break;
+  default:
+    fprintf(stderr, 
+            "%s: Internal error: invalid value for clock access method.\n",
+            MYNAME);
+    exit(5);
+  }
+  if (debug)
+    printf ("Time read from Hardware Clock: Y=%d M=%d D=%d %02d:%02d:%02d\n",
+            tm.tm_year, tm.tm_mon+1, tm.tm_mday,
+            tm.tm_hour, tm.tm_min, tm.tm_sec);
+  mktime_tz(tm, universal, badyear, last_known_time, valid_p, systime_p);
+}
+
+
+
+static void
+set_hardware_clock(const enum clock_access_method method,
+                   const int dev_port,
+                   const time_t newtime, 
+                   const bool universal, 
+                   const int hc_zero_year, const bool badyear, 
+                   const bool testing) {
+/*----------------------------------------------------------------------------
+  Set the Hardware Clock to the time 'newtime', in local time zone or UTC,
+  according to 'universal'.
+
+  'badyear' true means the clock is incapable of storing the proper
+  year value, so we instead store 95, 96, 97, or 98 so that it is at
+  least in the right place in the leap year cycle (and will remain so
+  for at least the next year).
+
+  Use the method indicated by the 'method' argument.
+----------------------------------------------------------------------------*/
+  struct tm new_broken_time;  
+    /* Time to which we will set Hardware Clock, in broken down format, in
+       the time zone of caller's choice
+       */
+
+  if (universal) new_broken_time = *gmtime(&newtime);
+  else new_broken_time = *localtime(&newtime);
+
+  /* If the clock is incapable of storing the true year value, change
+     the year to a fictional stand-in year as described in the prolog.
+     */
+  if (badyear)
+    new_broken_time.tm_year = 95 + ((new_broken_time.tm_year + 1) % 4);
+
+  if (debug) 
+    printf("Setting Hardware Clock to %.2d:%.2d:%.2d "
+           "= %d seconds since 1969\n", 
+           new_broken_time.tm_hour, new_broken_time.tm_min, 
+           new_broken_time.tm_sec, (int) newtime);
+
+  switch (method) {
+  case RTC_IOCTL:
+    set_hardware_clock_rtc_ioctl(new_broken_time, testing);
+    break;
+  case ISA:
+    set_hardware_clock_isa(new_broken_time, hc_zero_year, -1, testing);
+    break;
+  case DEV_PORT:
+    set_hardware_clock_isa(new_broken_time, hc_zero_year, dev_port, testing);
+    break;
+  case KD:
+    set_hardware_clock_kd(new_broken_time, testing);
+    break;
+  default:
+    fprintf(stderr, 
+            "%s: Internal error: invalid value for clock access method.\n",
+            MYNAME);
+    exit(5);
+  }
+}
+
+
+
+static void
+set_hardware_clock_exact(const time_t settime, 
+                         const struct timeval ref_time,
+                         const enum clock_access_method clock_access,
+                         const int dev_port, 
+                         const bool universal, 
+                         const int hc_zero_year,
+                         const bool badyear,
+                         const bool testing) {
+/*----------------------------------------------------------------------------
+  Set the Hardware Clock to the time 'settime', in local time zone or UTC,
+  according to 'universal'.
+
+  But iff 'badyear', use a fictional year as appropriate for the --badyear
+  option.
+
+  But correct 'settime' and wait for a fraction of a second so that
+  'settime' is the value of the Hardware Clock as of system time
+  'ref_time', which is in the past.  For example, if 'settime' is
+  14:03:05 and 'ref_time' is 12:10:04.5 and the current system
+  time is 12:10:06.0: Wait .5 seconds (to make exactly 2 seconds since
+  'ref_time') and then set the Hardware Clock to 14:03:07, thus
+  getting a precise and retroactive setting of the clock.
+
+  (Don't be confused by the fact that the system clock and the Hardware
+  Clock differ by two hours in the above example.  That's just to remind 
+  you that there are two independent time scales here).
+
+  This function ought to be able to accept set times as fractional times.
+  Idea for future enhancement.
+
+-----------------------------------------------------------------------------*/
+  time_t newtime;  /* Time to which we will set Hardware Clock */
+  struct timeval now_time;  /* locally used time */
+
+  gettimeofday(&now_time, NULL);
+  newtime = settime + (int) time_diff(now_time, ref_time) + 1;
+  if (debug) 
+    printf("Time elapsed since reference time has been %.6f seconds.\n"
+           "Delaying further to reach the next full second.\n",
+           time_diff(now_time, ref_time));
+  
+  /* Now delay some more until Hardware Clock time 'newtime' arrives */
+  do gettimeofday(&now_time, NULL);
+  while (time_diff(now_time, ref_time) < newtime - settime);
+  
+  set_hardware_clock(clock_access, dev_port, newtime, 
+                     universal, hc_zero_year, badyear, testing);
+}
+
+
+
+static void
+display_time(const bool hclock_valid, const time_t systime, 
+             const float sync_duration, const bool badyear_warn) {
+/*----------------------------------------------------------------------------
+  Put the time 'systime' on standard output in display format.
+  Except if hclock_valid == false, just tell standard output that we don't
+  know what time it is.
+
+  Include in the output the adjustment 'sync_duration'.
+
+  If the year is 1994 or 1995 and 'badyear_warn' is true, warn the
+  user that he has a brain-damaged clock and needs to use --badyear.
+  Since we didn't exist in 1994 and 1995, we know the clock isn't
+  correct.
+
+-----------------------------------------------------------------------------*/
+  if (!hclock_valid)
+    fprintf(stderr, "%s: The Hardware Clock registers contain values that are "
+            "either invalid (e.g. 50th day of month) or beyond the range "
+            "we can handle (e.g. Year 2095).\n", MYNAME);
+  else {
+    if (badyear_warn && (systime > START_OF_1994 && systime < END_OF_1995)) {
+      printf("WARNING:  The Hardware Clock shows a time in 1994 "
+             "or 1995.  This probably means you have a Hardware Clock "
+             "that is incapable of tracking years after 1999, and you "
+             "must use the --badyear option to make hwclock work for "
+             "you.  See hwclock documentation for details.\n");
+    }
+
+    printf("%s  %.6f seconds\n", ctime2(systime), -(sync_duration));
+  }
+}
+
+
+
+static int
+interpret_date_string(const char *date_opt, time_t * const time_p) {
+/*----------------------------------------------------------------------------
+  Interpret the value of the --date option, which is something like
+  "13:05:01".  In fact, it can be any of the myriad ASCII strings that specify
+  a time which the "date" program can understand.  The date option value in
+  question is our "dateopt" argument.  
+
+  The specified time is in the local time zone.
+
+  Our output, "*time_p", is a seconds-into-epoch time.
+
+  We use the "date" program to interpret the date string.  "date" must be
+  runnable by issuing the command "date" to the /bin/sh shell.  That means
+  in must be in the current PATH.
+
+  If anything goes wrong (and many things can), we return return code
+  10 and arbitrary *time_p.  Otherwise, return code is 0 and *time_p
+  is valid.
+----------------------------------------------------------------------------*/
+  FILE *date_child_fp;
+  char date_resp[100];
+  const char magic[]="seconds-into-epoch=";
+  char date_command[100];  
+  int retcode;  /* our eventual return code */
+  int rc;  /* local return code */
+
+  if (date_opt == NULL) {
+    fprintf(stderr, "%s: No --date option specified.\n", MYNAME);
+    retcode = 14;
+  } else if (strchr(date_opt, '"') != NULL) {
+    /* Quotation marks in date_opt would ruin the date command we construct.
+       */
+    fprintf(stderr, "%s: The value of the --date option is not a valid date.\n"
+            "In particular, it contains quotation marks.\n", MYNAME);
+    retcode = 12;
+  } else {
+    sprintf(date_command, "date --date=\"%s\" +seconds-into-epoch=%%s", 
+            date_opt);
+    if (debug) printf("Issuing date command: %s\n", date_command);
+
+    date_child_fp = popen(date_command, "r");
+    if (date_child_fp == NULL) {
+      fprintf(stderr, "%s: Unable to run 'date' program in /bin/sh shell.  "
+              "popen() failed with errno=%s (%d)\n", 
+              MYNAME, strerror(errno), errno);
+      retcode = 10;
+    } else {
+      date_resp[0] = '\0';  /* in case fgets fails */
+      fgets(date_resp, sizeof(date_resp), date_child_fp);
+      if (debug) printf("response from date command = %s\n", date_resp);
+      if (strncmp(date_resp, magic, sizeof(magic)-1) != 0) {
+        fprintf(stderr, "%s: The date command issued by " MYNAME " returned "
+                "unexpected results.\n"
+                "The command was:\n  %s\nThe response was:\n  %s\n", 
+                MYNAME, date_command, date_resp);
+        retcode = 8;
+      } else {
+        int seconds_since_epoch;
+        rc = sscanf(date_resp + sizeof(magic)-1, "%d", &seconds_since_epoch);
+        if (rc < 1) {
+          fprintf(stderr, "%s: The date command issued by " MYNAME " returned"
+                  "something other than an integer where the converted"
+                  "time value was expected.\n"
+                  "The command was:\n  %s\nThe response was:\n %s\n",
+                  MYNAME, date_command, date_resp);
+          retcode = 6;
+        } else {
+          retcode = 0;
+          *time_p = seconds_since_epoch;
+          if (debug) 
+            printf("date string %s equates to %d seconds since 1969.\n",
+                   date_opt, (int) *time_p);
+        }
+      }
+      fclose(date_child_fp);
+    }
+  }
+  return(retcode);
+}
+
+
+static int 
+set_system_clock(const bool hclock_valid, const time_t newtime, 
+                 const bool testing) {
+/*----------------------------------------------------------------------------
+   Set the System Clock to time 'newtime'.
+
+   Also set the kernel time zone value to the value indicated by the 
+   TZ environment variable and/or /usr/lib/zoneinfo/, interpreted as
+   tzset() would interpret them.  Except: do not consider Daylight
+   Savings Time to be a separate component of the time zone.  Include
+   any effect of DST in the basic timezone value and set the kernel
+   DST value to 0.
+
+   EXCEPT: if hclock_valid is false, just issue an error message
+   saying there is no valid time in the Hardware Clock to which to set
+   the system time.
+
+   If 'testing' is true, don't actually update anything -- just say we 
+   would have.
+-----------------------------------------------------------------------------*/
+  int retcode;  /* our eventual return code */
+
+  if (!hclock_valid) {
+    fprintf(stderr, "%s: The Hardware Clock does not contain a valid time, so "
+            "we cannot set the System Time from it.\n", MYNAME);
+    retcode = 1;
+  } else {
+    struct timeval tv;
+    int rc;  /* local return code */
+    
+    tv.tv_sec = newtime;
+    tv.tv_usec = 0;
+    
+    tzset(); /* init timezone, daylight from TZ or ...zoneinfo/localtime */
+    /* An undocumented function of tzset() is to set global variabales
+       'timezone' and 'daylight'
+       */
+    
+    if (debug) {
+      printf( "Calling settimeofday:\n" );
+      /* Note: tv_sec and tv_usec are declared variously on different
+         systems: int, long, time_t.  Casting to long below makes it 
+         compile everywhere.
+         */
+      printf( "\ttv.tv_sec = %ld, tv.tv_usec = %ld\n",
+             (long) tv.tv_sec, (long) tv.tv_usec );
+    }
+    if (testing) {
+      printf("Not setting system clock because running in test mode.\n");
+      retcode = 0;
+    } else {
+      /* For documentation of settimeofday() see, in addition to its man page,
+         kernel/time.c in the Linux source code.  
+         */
+      const struct timezone tz = { timezone/60 - 60*daylight, 0 };
+      /* put daylight in minuteswest rather than dsttime,
+         since the latter is mostly ignored ... */
+      rc = settimeofday(&tv, &tz);
+      if (rc != 0) {
+        if (errno == EPERM)
+          fprintf(stderr, "%s: Must be superuser to set system clock.\n",
+                  MYNAME);
+        else
+          fprintf(stderr,
+                  "%s: settimeofday() failed, errno=%s (%d)\n", 
+                  MYNAME, strerror(errno), errno);
+        retcode = 1;
+      } else retcode = 0;
+    }
+  }
+  return(retcode);
+}
+
+
+static void
+adjust_drift_factor(struct adjtime *adjtime_p,
+                    const time_t actual_time, 
+                    const bool hclock_valid, 
+                    const struct timeval hclocktime   ) {
+/*---------------------------------------------------------------------------
+  Update the drift factor and calibration parameters in '*adjtime_p'
+  to reflect the fact that at some recent instant when the actual time
+  was 'actual_time', the Hardware Clock said the time was
+  'hclocktime', and that we have corrected the Hardware Clock
+  accordingly.  Note that 'hclocktime' is a fractional time, taking
+  into consideration the Hardware Clock register contents and how long
+  those contents had been that.
+
+  We assume that the only cause of error in the Hardware Clock is
+  systematic drift and that the user has been doing regular drift
+  adjustments using the drift factor in the adjtime file.  Therefore,
+  if 'actual_time' and 'hclocktime' are different, that means the drift
+  factor isn't quite right. 
+
+  EXCEPT: if 'hclock_valid' is false, assume Hardware Clock was not set
+  before to anything meaningful and regular adjustments have not been
+  done, so don't adjust the drift factor.
+
+  Also, don't adjust if the error is more than 30 minutes, because that
+  kind of error probably isn't drift.
+
+----------------------------------------------------------------------------*/
+  if (!hclock_valid) {
+    if (debug)
+      printf("Not adjusting drift factor because the Hardware Clock "
+             "previously contained garbage.\n");
+  } else if (adjtime_p->last_calib_time == 0) {
+    if (debug)
+      printf("Not adjusting drift factor because there is no \n"
+             "previous calibration information (i.e. adjtime file is \n"
+             "nonexistent or has 0 in last calibration time field).\n");
+  } else if (time_diff(hclocktime, t2tv(adjtime_p->last_calib_time)) 
+                      < 23.0 * 60.0 * 60.0) {
+    if (debug) 
+      printf("Not adjusting drift factor because it has been less than a "
+             "day since the last calibration.\n");
+  } else {
+    const float sec_per_day = 24.0 * 60.0 * 60.0;
+    float atime_per_htime;  /* adjusted time units per hardware time unit */
+    float adj_days;   /* days since last adjustment (in hardware clock time) */
+    float cal_days;   /* days since last calibration (in hardware clock time) */
+    float exp_drift;  /* expected drift (sec) since last adjustment */
+    float unc_drift;  /* uncorrected drift (sec) since last calibration */
+    float factor_adjust;  /* amount to add to previous drift factor */
+    atime_per_htime = 1.0 + adjtime_p->drift_factor / sec_per_day;
+    adj_days = time_diff(hclocktime, t2tv(adjtime_p->last_adj_time)) 
+      / sec_per_day;
+    exp_drift = adj_days * adjtime_p->drift_factor + adjtime_p->not_adjusted;
+    unc_drift = time_diff(t2tv(actual_time), hclocktime) - exp_drift;
+    cal_days = ((float)(adjtime_p->last_adj_time - adjtime_p->last_calib_time)
+                + adjtime_p->not_adjusted) / (sec_per_day * atime_per_htime)
+                  + adj_days;
+    factor_adjust = unc_drift / cal_days;
+  
+    if (unc_drift > 30*60.0) {
+      if (debug)
+        printf("Not adjusting drift factor because we calculated the \n"
+               "uncorrected drift as %.0f seconds, which is so large that \n"
+               "it probably is not drift at all, but rather some \n"
+               "clock setting anomaly.\n\n", unc_drift);
+    } else {
+      if (debug)
+        printf("Clock drifted %.1f seconds in the past %d seconds "
+               "in spite of a drift factor of %f seconds/day.\n"
+               "Adjusting drift factor by %f seconds/day\n",
+               unc_drift,
+               (int) (actual_time - adjtime_p->last_calib_time),
+               adjtime_p->drift_factor,
+               factor_adjust  );
+      
+      adjtime_p->drift_factor += factor_adjust;
+    }
+  }
+  adjtime_p->last_calib_time = actual_time;
+  
+  adjtime_p->last_adj_time = actual_time;
+  
+  adjtime_p->not_adjusted = 0;
+    
+  adjtime_p->dirty = TRUE;
+}
+
+
+
+static void
+calculate_adjustment(
+                     const float factor,
+                     const time_t last_time, 
+                     const float not_adjusted,
+                     const time_t systime,
+                     int *adjustment_p, 
+                     float *retro_p,
+                     const int debug ) {
+/*----------------------------------------------------------------------------
+  Do the drift adjustment calculation.
+
+  The way we have to set the clock, we need the adjustment in two parts:
+
+    1) an integer number of seconds (return as *adjustment_p)
+       
+    2) a positive fraction of a second (less than 1) (return as *retro_p)
+
+  The sum of these two values is the adjustment needed.  Positive means to
+  advance the clock or insert seconds.  Negative means to retard the clock
+  or remove seconds.
+----------------------------------------------------------------------------*/
+  float exact_adjustment;
+
+  exact_adjustment = ((float) (systime - last_time)) * factor / (24 * 60 * 60)
+                     + not_adjusted;
+  *adjustment_p = FLOOR(exact_adjustment);
+  
+  *retro_p = exact_adjustment - (float) *adjustment_p;
+  if (debug) {
+    printf ("Time since last adjustment is %d seconds\n",
+            (int) (systime - last_time));
+    printf ("Need to insert %d seconds and refer time back "
+            "%.6f seconds ago\n",
+            *adjustment_p, *retro_p);
+  }
+}
+
+
+
+static void
+save_adjtime(const struct adjtime adjtime, const bool testing) {
+/*-----------------------------------------------------------------------------
+  Write the contents of the <adjtime> structure to its disk file.
+
+  But if the contents are clean (unchanged since read from disk), don't
+  bother.
+-----------------------------------------------------------------------------*/
+  char newfile[506];   /* Stuff to write to disk file */
+    /* snprintf is not always available, but this is safe
+       as long as libc does not use more than 100 positions for %ld or %f 
+       */
+
+  int rc;   /* locally used: return code from a function */
+
+  if (adjtime.dirty) {
+    /* We'd use snprintf here, but apparently, it isn't always available. */
+    sprintf(newfile, "%f %ld %f\n%ld\n%s\n",
+            adjtime.drift_factor,
+            (long) adjtime.last_adj_time,
+            adjtime.not_adjusted,
+            (long) adjtime.last_calib_time,
+            (adjtime.local_utc == UTC) ? "UTC" : "LOCAL"
+            );
+
+    if (testing) {
+      printf("Not updating adjtime file because of testing mode.\n");
+      printf("Would have written the following to %s:\n%s", 
+             ADJPATH, newfile);
+    } else {
+      FILE *adjfile;
+
+      adjfile = fopen(ADJPATH, "w");
+      if (adjfile == NULL) {
+        const int fopen_errno = errno;
+        printf("Could not open file with the clock adjustment parameters "
+               "in it (%s) for output.\n"
+               "fopen() returned errno %d: %s.\n"
+               "Drift adjustment parameters not updated.\n", 
+               ADJPATH, fopen_errno, strerror(errno));
+      } else {
+        rc = fprintf(adjfile, newfile);
+        if (rc < 0) {
+          const int fprintf_errno = errno;
+          printf("Could not update file (%s) "
+                 "with the clock adjustment parameters in it.\n"
+                 "fprintf() returned errno %d: %s.\n"
+                 "Drift adjustment parameters not updated.\n",
+                 ADJPATH, fprintf_errno, strerror(errno));
+        }
+        rc = fclose(adjfile);
+        if (rc < 0) {
+          const int fclose_errno = errno;
+          printf("Could not update file (%s) "
+                 "with the clock adjustment parameters in it.\n"
+                 "fclose() returned errno %d: %s.\n"
+                 "Drift adjustment parameters not updated.\n",
+                 ADJPATH, fclose_errno, strerror(errno));
+        }
+      }
+    }
+  } else if (debug)
+    printf("Skipping update of adjtime file because nothing has changed.\n");
+}
+
+
+
+static void
+do_adjustment(struct adjtime *adjtime_p,
+              const bool hclock_valid, const time_t hclocktime, 
+              const struct timeval read_time,
+              const enum clock_access_method clock_access,
+              const int dev_port, const bool universal, 
+              const int hc_zero_year, 
+              const bool badyear, const bool testing) {
+/*---------------------------------------------------------------------------
+  Do the adjustment requested, by 1) setting the Hardware Clock (if 
+  necessary), and 2) updating the last-adjusted time in the adjtime
+  structure.
+
+  Do not update anything if the Hardware Clock does not currently present
+  a valid time.
+
+  arguments 'factor' and 'last_time' are current values from the adjtime
+  file.
+
+  'hclock_valid' means the Hardware Clock contains a valid time, and that
+  time is 'hclocktime'.
+
+  'read_time' is the current system time (to be precise, it is the system 
+  time at the time 'hclocktime' was read, which due to computational delay
+  could be a short time ago).
+
+  'universal': the Hardware Clock is kept in UTC.
+
+  'badyear': the Hardware Clock is incapable of storing years outside
+  the range 1994-1999.
+
+  'testing':  We are running in test mode (no updating of clock).
+
+  We do not bother to update the clock if the adjustment would be less than
+  one second.  This is to avoid cumulative error and needless CPU hogging
+  (remember we use an infinite loop for some timing) if the user runs us
+  frequently.
+
+----------------------------------------------------------------------------*/
+  if (!hclock_valid) {
+    fprintf(stderr, "%s: The Hardware Clock does not contain a valid time, "
+            "so we cannot adjust it.\n", MYNAME);
+    /* Any previous calibration had to be before the clock got hosed, so
+       wipe out the record of it so it won't be used in the future.
+       */
+    adjtime_p->last_calib_time = 0;  
+    adjtime_p->last_adj_time = 0;
+    adjtime_p->not_adjusted = 0;
+    adjtime_p->dirty = TRUE;
+  } else if (adjtime_p->last_adj_time == 0) {
+    if (debug)
+      printf("Not adjusting clock because we have no information about \n"
+             "the previous calibration (i.e. the adjtime file is \n"
+             "nonexistent or contains zero in the last calibrated time \n"
+             "field).\n");
+  } else {
+    int adjustment;
+    /* Number of seconds we must insert in the Hardware Clock */
+    float retro;   
+    /* Fraction of second we have to remove from clock after inserting
+       <adjustment> whole seconds.
+       */
+    calculate_adjustment(adjtime_p->drift_factor,
+                         adjtime_p->last_adj_time,
+                         adjtime_p->not_adjusted,
+                         hclocktime,
+                         &adjustment, &retro,
+                         debug );
+    if (adjustment > 0 || adjustment < -1) {
+      set_hardware_clock_exact(hclocktime + adjustment, 
+                               time_inc(read_time, -retro),
+                               clock_access, dev_port, universal, 
+                               hc_zero_year, badyear, testing);
+      adjtime_p->last_adj_time = hclocktime + adjustment;
+      adjtime_p->not_adjusted = 0;
+      adjtime_p->dirty = TRUE;
+    } else 
+      if (debug) 
+        printf("Needed adjustment is less than one second, "
+               "so not setting clock.\n");
+  }
+}
+
+
+static void
+determine_clock_access_method(const bool user_requests_ISA, 
+                              const bool user_says_jensen,
+                              enum clock_access_method *clock_access_p) {
+/*----------------------------------------------------------------------------
+  Figure out how we're going to access the hardware clock, by seeing
+  what facilities are available, looking at invocation options, and 
+  using compile-time constants.
+
+  'user_requests_ISA' means the user explicitly asked for the ISA method,
+  so we'll use that (even if we know it will fail because the machine
+  is incapable!).
+-----------------------------------------------------------------------------*/
+  const bool jensen = 
+    user_says_jensen || 
+      (alpha_machine && is_in_cpuinfo("system type", "Jensen"));
+    /* See comments at top of program for how Jensen is a special case. */
+  bool rtc_works;
+    /* The /dev/rtc method is available and seems to work on this machine */
+  bool kdghwclk_works;
+    /* The KDHWCLK method is available and seems to work on this machine. */
+
+  see_if_rtc_works(&rtc_works);  /* May issue error messages */
+  see_if_kdghwclk_works(&kdghwclk_works);  /* May issue error messages */
+  
+  if (user_requests_ISA) *clock_access_p = ISA;
+  else if (rtc_works) *clock_access_p = RTC_IOCTL;
+  else if (kdghwclk_works) *clock_access_p = KD;
+  else if (got_kdghwclk) *clock_access_p = ISA;
+    /* I don't know on what machine the above line makes any sense, but the
+       code has always been this way.  -BJH 99.03.31
+       */
+  else if (isa_machine) *clock_access_p = ISA;
+  else if (jensen) *clock_access_p = DEV_PORT;
+  else if (alpha_machine) *clock_access_p = ISA;
+  else *clock_access_p = NOCLOCK;
+  if (debug) {
+    switch (*clock_access_p) {
+    case ISA: printf("Using direct I/O instructions to ISA clock.\n"); break;
+    case KD: printf("Using KDGHWCLK interface to m68k clock.\n"); break;
+    case RTC_IOCTL: printf("Using /dev/rtc interface to clock.\n"); break;
+    case DEV_PORT: printf("Using /dev/port interface to clock.\n"); break;
+    case NOCLOCK: printf("Unable to find a usable clock access method.\n"); 
+      break;
+    default:  
+      printf("determine_clock_access_method() returned invalid value: %d.\n",
+             *clock_access_p);
+    }
+  }
+}
+
+
+
+static void
+do_systohc(const enum clock_access_method clock_access,
+           const int dev_port, 
+           const time_t hclocktime, const bool hclock_valid,
+           const struct timeval read_time, 
+           const bool universal, const int hc_zero_year, 
+           const bool badyear, const bool testing,
+           struct adjtime * const adjtime_p) {
+/*----------------------------------------------------------------------------
+   Perform the specifics of the hwclock --systohc function.
+-----------------------------------------------------------------------------*/
+  struct timeval nowtime, reftime;
+  /* We can only set_hardware_clock_exact to a whole seconds
+     time, so we set it with reference to the most recent
+     whole seconds time.  
+     */
+  gettimeofday(&nowtime, NULL);
+  reftime.tv_sec = nowtime.tv_sec;
+  reftime.tv_usec = 0;
+          
+  set_hardware_clock_exact((time_t) reftime.tv_sec, reftime, 
+                           clock_access, dev_port, universal, 
+                           hc_zero_year, badyear, testing);
+  adjust_drift_factor(adjtime_p, (time_t) reftime.tv_sec, hclock_valid, 
+                      time_inc(t2tv(hclocktime),
+                               - time_diff(read_time, reftime)
+                               )
+                      );
+}
+
+
+static void
+manipulate_clock(const bool show, const bool adjust, 
+                 const bool set, const time_t set_time,
+                 const bool hctosys, const bool systohc, 
+                 const struct timeval startup_time, 
+                 const enum clock_access_method clock_access,
+                 const bool utc, const bool local_opt, 
+                 const bool badyear, const bool arc_opt, const bool srm_opt,
+                 const bool user_wants_uf,
+                 const bool testing,
+                 int *retcode_p
+                 ) {
+/*---------------------------------------------------------------------------
+  Do all the normal work of hwclock - read, set clock, etc.
+
+  Issue output to stdout and error message to stderr where appropriate.
+
+  Return rc == 0 if everything went OK, rc != 0 if not.
+----------------------------------------------------------------------------*/
+  struct adjtime adjtime;
+    /* Contents of the adjtime file, or what they should be. */
+  int rc;  /* local return code */
+  bool no_auth;  /* User lacks necessary authorization to access the clock */
+  int dev_port;
+    /* File descriptor for /dev/port, if we're using it.  -1 if we
+       couldn't open it.  0 if we aren't using it.
+       */
+  get_inb_outb_privilege(clock_access, &no_auth);
+
+  if (no_auth) *retcode_p = 1;
+  else {
+    get_dev_port_access(clock_access, &dev_port);
+    
+    if (dev_port < 0) *retcode_p = 3;
+    else {
+      read_adjtime(&adjtime, &rc);
+      if (rc != 0) *retcode_p = 2;
+      else {
+        const bool use_uf_bit = uf_bit_needed(user_wants_uf);
+        const int hc_zero_year = zero_year(arc_opt, srm_opt);
+        /* year of century to which a value of zero corresponds in the
+           Hardware Clock's year register. 
+           */
+        const bool universal = hw_clock_is_utc(utc, local_opt, adjtime);
+        /* The hardware clock is kept in Coordinated Universal Time. */
+
+        if ((set || systohc || adjust) &&
+            (adjtime.local_utc == UTC) != universal) {
+          adjtime.local_utc = universal ? UTC : LOCAL;
+          adjtime.dirty = TRUE;
+        }
+
+        synchronize_to_clock_tick(clock_access, dev_port, use_uf_bit,
+                                  retcode_p);  
+          /* this takes up to 1 second */
+        if (*retcode_p == 0) {
+          struct timeval read_time; 
+          /* The time at which we read the Hardware Clock */
+
+          bool hclock_valid;
+          /* The Hardware Clock gives us a valid time, or at least something
+             close enough to fool mktime().
+             */
+
+          time_t hclocktime;
+          /* The time the hardware clock had just after we
+             synchronized to its next clock tick when we started up.
+             Defined only if hclock_valid is true.
+             */
+        
+          gettimeofday(&read_time, NULL);
+          read_hardware_clock(clock_access, dev_port, universal, 
+                              hc_zero_year, badyear, 
+                              adjtime.last_calib_time,
+                              &hclock_valid, &hclocktime); 
+        
+          if (show) {
+            display_time(hclock_valid, hclocktime, 
+                         time_diff(read_time, startup_time), !badyear);
+            *retcode_p = 0;
+          } else if (set) {
+            set_hardware_clock_exact(set_time, startup_time, 
+                                     clock_access, dev_port, universal, 
+                                     hc_zero_year, 
+                                     badyear, testing);
+            adjust_drift_factor(&adjtime, set_time, hclock_valid, 
+                                time_inc(t2tv(hclocktime), 
+                                         - time_diff(read_time, startup_time)  
+                                         )
+                                );
+            *retcode_p = 0;
+          } else if (adjust) {
+            do_adjustment(&adjtime, hclock_valid, hclocktime, 
+                          read_time, clock_access, dev_port, 
+                          universal, hc_zero_year, 
+                          badyear, testing);
+            *retcode_p = 0;
+          } else if (systohc) {
+            do_systohc(clock_access, dev_port, 
+                       hclocktime, hclock_valid, read_time, 
+                       universal, hc_zero_year, badyear, testing,
+                       &adjtime);
+            *retcode_p = 0;
+          }  else if (hctosys) {
+            rc = set_system_clock(hclock_valid, hclocktime, testing);
+            if (rc != 0) {
+              printf("Unable to set system clock.\n");
+              *retcode_p = 1;
+            } else *retcode_p = 0;
+          }
+          save_adjtime(adjtime, testing);
+        }
+      }
+    }
+    if (clock_access == DEV_PORT && dev_port >= 0) close(dev_port);
+  }
+}
+
+
+
+static void
+report_version(void) {
+
+  char *additional_version;   /* malloc'ed */
+    /* Stuff to add on to the version report, after the basic version. 
+       If this is hwclock packaged with util-linux, this is the 
+       util-linux version.  Otherwise, it's nothing.
+       */
+
+#ifdef UTIL_LINUX
+  additional_version = malloc(strlen(util_linux_version) + 5);
+  sprintf(additional_version, "/%s", util_linux_version);
+#else
+  additional_version = strdup("");
+#endif
+  printf(MYNAME " " VERSION "%s\n", additional_version);
+  free(additional_version);
+}
+
+
+
+static void
+manipulate_epoch(const bool getepoch, const bool setepoch, 
+                 const int epoch_opt, const bool testing) {
+/*----------------------------------------------------------------------------
+   Get or set the Hardware Clock epoch value in the kernel, as appropriate.
+   'getepoch', 'setepoch', and 'epoch' are hwclock invocation options.
+
+   'epoch' == -1 if the user did not specify an "epoch" option.
+
+-----------------------------------------------------------------------------*/
+  /*
+   Maintenance note:  This should work on non-Alpha machines, but the 
+   evidence today (98.03.04) indicates that the kernel only keeps the
+   epoch value on Alphas.  If that is ever fixed, this function should be
+   changed.
+   */
+
+  if (!alpha_machine)
+    fprintf(stderr, 
+            "%s: The kernel keeps an epoch value for the Hardware Clock "
+            "only on an Alpha machine.\nThis copy of hwclock was built for "
+            "a machine other than Alpha\n(and thus is presumably not running "
+            "on an Alpha now).  No action taken.\n", MYNAME);
+  else {
+    if (getepoch) {
+      unsigned long epoch;
+      char *reason;  /* malloc'ed */
+
+      get_epoch(&epoch, &reason);
+      if (reason != NULL) {
+        printf("Unable to get the epoch value from the kernel.  %s\n",
+               reason);
+        free(reason);
+      } else 
+        printf("Kernel is assuming an epoch value of %lu\n", epoch);
+    } else if (setepoch) {
+      if (epoch_opt == -1)
+        fprintf(stderr, "%s: To set the epoch value, you must use the 'epoch' "
+                "option to tell to what value to set it.\n", MYNAME);
+      else {
+        int rc;
+        set_epoch(epoch_opt, testing, &rc);
+        if (rc != 0)
+          printf("Unable to set the epoch value in the kernel.\n");
+      }
+    }
+  }
+}
+
+
+
+int 
+main(int argc, char **argv, char **envp) {
+/*----------------------------------------------------------------------------
+                                   MAIN
+-----------------------------------------------------------------------------*/
+  struct timeval startup_time;
+    /* The time we started up, in seconds into the epoch, including fractions.
+       */
+  time_t set_time;  /* Time to which user said to set Hardware Clock */
+
+  enum clock_access_method clock_access;
+    /* The method that we determine is best for accessing Hardware Clock 
+       on this system. 
+       */
+
+  bool permitted;  /* User is permitted to do the function */
+  int retcode;   /* Our eventual return code */
+
+  int rc;  /* local return code */
+
+  /* option_def is the control table for the option parser.  These other
+     variables are the results of parsing the options and their meanings
+     are given by the option_def.  The only exception is <show>, which
+     may be modified after parsing is complete to effect an implied option.
+     */
+  bool show, set, systohc, hctosys, adjust, getepoch, setepoch, version;
+  bool utc, local_opt, badyear, testing, directisa;
+  bool arc_opt, jensen_opt, srm_opt, funky_opt;
+  char *date_opt;
+  int epoch_opt;
+
+  const optStruct option_def[] = {
+    { 'r', (char *) "show",      OPT_FLAG,   &show,      0 },
+    { 0,   (char *) "set",       OPT_FLAG,   &set,       0 },
+    { 'w', (char *) "systohc",   OPT_FLAG,   &systohc,   0 },
+    { 's', (char *) "hctosys",   OPT_FLAG,   &hctosys,   0 },
+    { 0,   (char *) "getepoch",  OPT_FLAG,   &getepoch,  0 },
+    { 0,   (char *) "setepoch",  OPT_FLAG,   &setepoch,  0 },
+    { 'a', (char *) "adjust",    OPT_FLAG,   &adjust,    0 },
+    { 'v', (char *) "version",   OPT_FLAG,   &version,   0 },
+    { 0,   (char *) "date",      OPT_STRING, &date_opt,  0 },
+    { 0,   (char *) "epoch",     OPT_UINT,   &epoch_opt, 0 },
+    { 'u', (char *) "utc",       OPT_FLAG,   &utc,       0 },
+    { 0,   (char *) "localtime", OPT_FLAG,   &local_opt, 0 },
+    { 0,   (char *) "badyear",   OPT_FLAG,   &badyear,   0 },
+    { 0,   (char *) "directisa", OPT_FLAG,   &directisa, 0 },
+    { 0,   (char *) "test",      OPT_FLAG,   &testing,   0 },
+    { 'D', (char *) "debug",     OPT_FLAG,   &debug,     0 },
+    { 'A', (char *) "arc",       OPT_FLAG,   &arc_opt,   0 },
+    { 'J', (char *) "jensen",    OPT_FLAG,   &jensen_opt,0 },
+    { 'S', (char *) "srm",       OPT_FLAG,   &srm_opt,   0 },
+    { 'F', (char *) "funky-toy", OPT_FLAG,   &funky_opt, 0 },
+    { 0,   (char *) NULL,        OPT_END,    NULL,       0 }
+  };
+  int argc_parse;       /* argc, except we modify it as we parse */
+  char **argv_parse;    /* argv, except we modify it as we parse */
+
+  assume_interrupts_enabled();  /* Since we haven't messed with them yet */
+
+  gettimeofday(&startup_time, NULL);  /* Remember what time we were invoked */
+
+  /* set option defaults */
+  show = set = systohc = hctosys = adjust = getepoch = setepoch = 
+    version = utc = local_opt = badyear =
+    directisa = testing = debug = 
+    jensen_opt = arc_opt = srm_opt = funky_opt = FALSE;
+  date_opt = NULL;
+  epoch_opt = -1; 
+
+  argc_parse = argc; argv_parse = argv;
+  optParseOptions(&argc_parse, argv_parse, option_def, 0);
+    /* Uses and sets argc_parse, argv_parse. 
+       Sets show, set, systohc, hctosys, adjust, getepoch, setepoch,
+       version, utc, localtime, badyear,
+       directisa, testing, debug, 
+       date_opt, epoch_opt,
+       jensen_opt, arc_opt, srm_opt, funky_opt
+       */
+  
+  if (argc_parse - 1 > 0) {
+    fprintf(stderr, MYNAME " takes no non-option arguments.  "
+            "You supplied %d.  See man page for complete syntax.\n",
+            argc_parse - 1);
+    exit(100);
+  }
+
+  if (show + set + systohc + hctosys + adjust + 
+      getepoch + setepoch + version > 1) {
+    fprintf(stderr, 
+            "You have specified multiple function options to hwclock.\n"
+            "You can only perform one function at a time.\n");
+    exit(100);
+  }
+
+  if (set) {
+    rc = interpret_date_string(date_opt, &set_time);  /* (time-consuming) */
+    if (rc != 0) {
+      fprintf(stderr, "%s: No usable set-to time given.  Cannot set clock.\n",
+              MYNAME);
+      exit(100);
+    }
+  }
+
+  if (jensen_opt && !alpha_machine) {
+    fprintf(stderr, "%s: Your options indicate that this is a Jensen model of "
+            "DEC Alpha, but this is not an Alpha machine!\n", MYNAME);
+    exit(100);
+  }
+
+  if (srm_opt && alpha_machine) {
+    fprintf(stderr, "%s: Your options indicate that this machine keeps SRM "
+            "console time, but only DEC Alphas have such a clock and this is "
+            "not an Alpha!\n", MYNAME);
+    exit(100);
+  }
+  if (arc_opt && alpha_machine) {
+    fprintf(stderr, "%s: Your options indicate that this machine's clock"
+            "keeps ARC console time, "
+            "but only DEC Alphas have such a clock and this is "
+            "not an Alpha!\n", MYNAME);
+    exit(100);
+  }
+
+  if (directisa && !(isa_machine || alpha_machine)) {
+    fprintf(stderr, "%s: You have requested direct access to the ISA Hardware "
+            "Clock using machine instructions from the user process.  "
+            "But this method only works on an ISA machine with an x86 "
+            "CPU, or a similar machine such as DEC Alpha.  "
+            "This is not one.\n", MYNAME);
+    exit(100);
+  }
+
+  if (utc && local_opt) {
+    fprintf(stderr, "%s: The --utc and --localtime options are mutually "
+            "exclusive.  You specified both.\n", MYNAME);
+    exit(100);
+  }
+
+
+  if (!(show | set | systohc | hctosys | adjust | getepoch | setepoch |
+        version)) 
+    show = TRUE; /* default to show */
+
+  
+  if (getuid() == 0) permitted = TRUE;
+  else {
+    /* program is designed to run setuid (in some situations) -- be secure! */
+    if (set || hctosys || systohc || adjust) {
+      fprintf(stderr, 
+              "%s: Sorry, only the superuser can change the "
+              "Hardware Clock.\n", MYNAME);
+      permitted = FALSE;
+    } else if (setepoch) {
+      fprintf(stderr, 
+              "%s: Sorry, only the superuser can change "
+              "the Hardware Clock epoch in the kernel.\n", MYNAME);
+      permitted = FALSE;
+    } else permitted = TRUE;
+  }
+
+  if (!permitted) retcode = 2;
+  else {
+    retcode = 0;
+    if (version) {
+      report_version();
+    } else if (getepoch || setepoch) {
+      manipulate_epoch(getepoch, setepoch, epoch_opt, testing);
+    } else {
+      determine_clock_access_method(directisa, jensen_opt, &clock_access);
+      if (clock_access == NOCLOCK)
+        fprintf(stderr, "%s: Cannot access the Hardware Clock via any known "
+                "method.  Use --debug option to see the details of our "
+                "search for an access method.\n", MYNAME);
+      else
+        manipulate_clock(show, adjust, set, set_time, hctosys, systohc, 
+                         startup_time, clock_access, utc, local_opt, badyear,
+                         arc_opt, srm_opt, funky_opt, testing, &rc);
+    }
+  }
+  exit(retcode);
+}
+
+
+/****************************************************************************
+
+  History of this program:
+
+  99.04.08 BJH   Version 2.5
+
+  Make it work on Alphas without /dev/rtc.  Thanks to David Mosberger
+  <davidm@azstarnet.com>, Jay Estabrook <jestabro@amt.tay1.dec.com>,
+  Martin Ostermann <ost@coments.rwth-aachen.de>, Andries Brouwer
+  <aeb@cwi.nl>.  Most of this code is lifted from another program
+  called "clock" (not the original ancestor of hwclock) that has 
+  circulated for use on Alpha.
+
+  Make it work on Sparc.
+
+  Add --badyear option.  Thanks to David J Coffin (dcoffin@shore.net)
+  for the design of this.
+
+  Add --localtime option, local/UTC value in adjtime file, and defaults
+  for local/utc.
+
+  Don't set CMOS memory Byte 50 (century byte).  On some machines,
+  that byte not only isn't used as a century byte, but it is used for
+  something else.
+
+  Don't update the drift factor if the variation is so huge that it 
+  probably wasn't due to drift.
+
+  Compute drift factor with better precision.
+
+  98.08.12 BJH   Version 2.4 
+
+  Don't use century byte from Hardware Clock.  Add comments telling why.
+
+
+  98.06.20 BJH   Version 2.3.
+
+  Make --hctosys set the kernel timezone from TZ environment variable
+  and/or /usr/lib/zoneinfo.  From Klaus Ripke (klaus@ripke.com).
+
+  98.03.05 BJH.  Version 2.2.  
+
+  Add --getepoch and --setepoch.  
+
+  Fix some word length things so it works on Alpha.
+
+  Make it work when /dev/rtc doesn't have the interrupt functions.
+  In this case, busywait for the top of a second instead of blocking and
+  waiting for the update complete interrupt.
+
+  Fix a bunch of bugs too numerous to mention.
+
+  97.06.01: BJH.  Version 2.1.  Read and write the century byte (Byte
+  50) of the ISA Hardware Clock when using direct ISA I/O.  Problem
+  discovered by job (jei@iclnl.icl.nl).
+  
+  Use the rtc clock access method in preference to the KDGHWCLK method.
+  Problem discovered by Andreas Schwab <schwab@LS5.informatik.uni-dortmund.de>.
+
+  November 1996: Version 2.0.1.  Modifications by Nicolai Langfeldt
+  (janl@math.uio.no) to make it compile on linux 1.2 machines as well
+  as more recent versions of the kernel. Introduced the NO_CLOCK
+  access method and wrote feature test code to detect absense of rtc
+  headers.
+
+
+  Bryan Henderson based hwclock on the program "clock", in September
+  1996.  While remaining mostly backward compatible with clock,
+  hwclock added the following:
+
+    - You can set the hardware clock without also modifying the Linux
+      system clock.
+
+    - You can read and set the clock with finer than 1 second precision.
+
+    - When you set the clock, hwclock automatically refigures the drift
+      rate, based on how far off the clock was before you set it.  (This
+      is the drift rate that is used with the --adjust function to 
+      automatically adjust the clock periodically to compensate for drift).
+
+    - More mnemonic GNU-style command line options.
+
+    - Comments describing how the clock and program work to improve 
+      maintainability.
+
+    - Removed the old dead I/O code that worked without the inb/outb
+      instructions and without the asm/io.h definitions.
+
+  The first version of hwclock was Version 2.
+
+  Here is the history section from the "clock" program at the time it was
+  used as a basis for hwclock:
+
+  V1.0
+
+  
+  V1.0 by Charles Hedrick, hedrick@cs.rutgers.edu, April 1992.
+ ********************
+  V1.1
+  Modified for clock adjustments - Rob Hooft, hooft@chem.ruu.nl, Nov 1992
+  Also moved error messages to stderr. The program now uses getopt.
+  Changed some exit codes. Made 'gcc 2.3 -Wall' happy.
+ *****
+  V1.2
+  Applied patches by Harald Koenig (koenig@nova.tat.physik.uni-tuebingen.de)
+  Patched and indented by Rob Hooft (hooft@EMBL-Heidelberg.DE)
+  
+  A free quote from a MAIL-message (with spelling corrections):
+  "I found the explanation and solution for the CMOS reading 0xff problem
+   in the 0.99pl13c (ALPHA) kernel: the RTC goes offline for a small amount
+   of time for updating. Solution is included in the kernel source 
+   (linux/kernel/time.c)."
+  "I modified clock.c to fix this problem and added an option (now default,
+   look for USE_INLINE_ASM_IO) that I/O instructions are used as inline
+   code and not via /dev/port (still possible via #undef ...)."
+  With the new code, which is partially taken from the kernel sources, 
+  the CMOS clock handling looks much more "official".
+  Thanks Harald (and Torsten for the kernel code)!
+ *****
+  V1.3
+  Canges from alan@spri.levels.unisa.edu.au (Alan Modra):
+  a) Fix a few typos in comments and remove reference to making
+     clock -u a cron job.  The kernel adjusts cmos time every 11
+     minutes - see kernel/sched.c and kernel/time.c set_rtc_mmss().
+     This means we should really have a cron job updating
+     /etc/adjtime every 11 mins (set last_time to the current time
+     and not_adjusted to ???).
+  b) Swapped arguments of outb() to agree with asm/io.h macro of the
+     same name.  Use outb() from asm/io.h as it's slightly better.
+  c) Changed CMOS_READ and CMOS_WRITE to inline functions.  Inserted
+     cli()..sti() pairs in appropriate places to prevent possible
+     errors, and changed ioperm() call to iopl() to allow cli.
+  d) Moved some variables around to localise them a bit.
+  e) Fixed bug with clock -ua or clock -us that cleared environment
+     variable TZ.  This fix also cured the annoying display of bogus
+     day of week on a number of machines. (Use mktime(), ctime()
+     rather than asctime() )
+  f) Use settimeofday() rather than stime().  This one is important
+     as it sets the kernel's timezone offset, which is returned by
+     gettimeofday(), and used for display of MSDOS and OS2 file
+     times.
+  g) faith@cs.unc.edu added -D flag for debugging
+  V1.4: alan@SPRI.Levels.UniSA.Edu.Au (Alan Modra)
+        Wed Feb  8 12:29:08 1995, fix for years > 2000.
+        faith@cs.unc.edu added -v option to print version.  */
+
+
diff --git a/clockB/hwclock.h b/clockB/hwclock.h
new file mode 100644 (file)
index 0000000..6a3ab14
--- /dev/null
@@ -0,0 +1,139 @@
+#include <time.h>
+#include <sys/time.h>
+#include <unistd.h>
+
+typedef int bool;
+#define TRUE 1
+#define FALSE 0
+
+#define MYNAME "hwclock"
+#define VERSION "2.5"
+
+
+enum clock_access_method {ISA, RTC_IOCTL, KD, DEV_PORT, NOCLOCK};
+  /* A method for accessing (reading, writing) the hardware clock:
+     
+     ISA: 
+       via direct CPU I/O instructions that work on an ISA family
+       machine (IBM PC compatible) or most DEC Alphas, which implement
+       enough of ISA to get by.
+
+     RTC_IOCTL: 
+       via the rtc device driver, using device special file /dev/rtc.
+
+     KD:
+       via the console driver, using device special file /dev/tty1.
+       This is the m68k ioctl interface, known as KDGHWCLK.
+
+     DEV_PORT:
+       via the /dev/port device, which is almost the same thing as 
+       direct I/O instructions via the ISA method, but works on a Jensen 
+       model of Alpha, whereas ISA does not.  Also, use I/O addresses
+       0x170 and 0x171 instead of the ISA 0x70 and 0x71.
+
+     NO_CLOCK:
+       Unable to determine a usable access method for the system clock.
+   */
+       
+
+
+
+/* hwclock.c */
+extern int debug;
+extern const bool alpha_machine;
+extern const bool isa_machine;
+
+/* directio.c */
+
+extern void
+assume_interrupts_enabled(void);
+
+extern void
+synchronize_to_clock_tick_ISA(int *retcode_p, const int dev_port,
+                              const bool use_uf_bit);
+
+extern void
+read_hardware_clock_isa(struct tm *tm, const int dev_port,
+                        int hc_zero_year);
+
+extern void
+set_hardware_clock_isa(const struct tm new_tm, 
+                       const int hc_zero_year,
+                       const int dev_port,
+                       const bool testing);
+
+extern void
+get_inb_outb_privilege(const enum clock_access_method clock_access, 
+                       bool * const no_auth_p);
+
+extern void
+get_dev_port_access(const enum clock_access_method clock_access,
+                    int * dev_port_p);
+
+extern bool
+uf_bit_needed(const bool user_wants_uf);
+
+extern int
+zero_year(const bool arc_opt, const bool srm_opt);
+
+
+/* rtc.c */
+extern void
+synchronize_to_clock_tick_RTC(int *retcode_p);
+
+extern void
+read_hardware_clock_rtc_ioctl(struct tm *tm);
+
+extern void
+set_hardware_clock_rtc_ioctl(const struct tm new_broken_time, 
+                             const bool testing);
+extern void
+see_if_rtc_works(bool * const rtc_works_p);
+
+extern void
+get_epoch(unsigned long *epoch_p, char **reason_p);
+
+extern void
+set_epoch(unsigned long epoch, const bool testing, int *retcode_p);
+
+
+/* kd.c */
+
+extern void
+synchronize_to_clock_tick_KD(int *retcode_p);
+
+extern void
+read_hardware_clock_kd(struct tm *tm);
+
+extern void
+set_hardware_clock_kd(const struct tm new_broken_time, 
+                      const bool testing);
+
+extern void
+see_if_kdghwclk_works(bool * const kdghwclk_works_p);
+
+extern const bool got_kdghwclk;
+
+/* util.c */
+extern bool
+is_in_cpuinfo(const char * const fmt, const char * const str);
+
+extern char *
+ctime2(const time_t time);
+
+extern struct timeval
+t2tv(time_t argument);
+
+extern struct timeval
+t2tv(time_t argument);
+
+extern float 
+time_diff(struct timeval subtrahend, struct timeval subtractor);
+
+extern struct timeval
+time_inc(struct timeval addend, float increment);
+
+
+
+
+
diff --git a/clockB/kd.c b/clockB/kd.c
new file mode 100644 (file)
index 0000000..68287cb
--- /dev/null
@@ -0,0 +1,219 @@
+/**************************************************************************
+
+  This is a component of the hwclock program.
+
+  This file contains the code for accessing the hardware clock via
+  the KDHWCLK facility of M68k machines.
+
+****************************************************************************/
+
+#include <stdio.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <string.h>
+#include <sys/ioctl.h>
+
+#include "hwclock.h"
+
+
+
+#if defined(KDGHWCLK)
+const bool got_kdghwclk = TRUE;
+static const int kdghwclk_ioctl = KDGHWCLK;
+static const int kdshwclk_ioctl = KDSHWCLK;
+#else
+const bool got_kdghwclk = FALSE;
+static const int kdghwclk_ioctl;  /* Never used; just to make compile work */
+struct hwclk_time {int sec;};  
+  /* Never used; just to make compile work */
+#endif
+
+
+void
+synchronize_to_clock_tick_KD(int *retcode_p) {
+/*----------------------------------------------------------------------------
+   Wait for the top of a clock tick by calling KDGHWCLK in a busy loop until
+   we see it.  
+-----------------------------------------------------------------------------*/
+  int con_fd;
+
+  if (debug)
+    printf("Waiting in loop for time from KDGHWCLK to change\n");
+
+  con_fd = open("/dev/tty1", O_RDONLY);
+  if (con_fd < 0) {
+    fprintf(stderr, "%s: open() failed to open /dev/tty1, errno = %s (%d).\n",
+            MYNAME, strerror(errno), errno);
+    *retcode_p = 1;
+  } else {
+    int rc;  /* return code from ioctl() */
+    int i;  /* local loop index */
+    /* The time when we were called (and started waiting) */
+       struct hwclk_time start_time, nowtime;
+
+       rc = ioctl(con_fd, kdghwclk_ioctl, &start_time);
+       if (rc == -1) {
+      fprintf(stderr, "%s: KDGHWCLK to read time failed, "
+              "errno = %s (%d).\n", MYNAME, strerror(errno), errno);
+      *retcode_p = 3;
+    }
+       
+    for (i = 0; 
+         (rc = ioctl(con_fd, kdghwclk_ioctl, &nowtime)) != -1
+         && start_time.sec == nowtime.sec && i < 1000000; 
+         i++);
+    if (i >= 1000000) {
+      fprintf(stderr, "%s: Timed out waiting for time change.\n", MYNAME);
+      *retcode_p = 2;
+    } else if (rc == -1) {
+      fprintf(stderr, "%s: KDGHWCLK to read time failed, "
+              "errno = %s (%d).\n", MYNAME, strerror(errno), errno);
+      *retcode_p = 3;
+    } else *retcode_p = 0;
+    close(con_fd);
+  }
+}
+
+
+
+void
+read_hardware_clock_kd(struct tm *tm) {
+/*----------------------------------------------------------------------------
+  Read the hardware clock and return the current time via <tm>
+  argument.  Use ioctls to /dev/tty1 on what we assume is an m68k
+  machine.
+  
+  Note that we don't use /dev/console here.  That might be a serial
+  console.
+-----------------------------------------------------------------------------*/
+#ifdef KDGHWCLK
+  int con_fd;
+  struct hwclk_time t;
+
+  con_fd = open("/dev/tty1", O_RDONLY);
+  if (con_fd < 0) {
+    fprintf(stderr, "%s: open() failed to open /dev/tty1, errno = %s (%d).\n",
+            MYNAME, strerror(errno), errno);
+    exit(5);
+  } else {
+    int rc;  /* return code from ioctl() */
+
+    rc = ioctl(con_fd, kdghwclk_ioctl, &t);
+    if (rc == -1) {
+      fprintf(stderr, "%s: ioctl() failed to read time from  /dev/tty1, "
+              "errno = %s (%d).\n",
+              MYNAME, strerror(errno), errno);
+      exit(5);
+    }
+    close(con_fd);
+  }
+
+  tm->tm_sec  = t.sec;
+  tm->tm_min  = t.min;
+  tm->tm_hour = t.hour;
+  tm->tm_mday = t.day;
+  tm->tm_mon  = t.mon;
+  tm->tm_year = t.year;
+  tm->tm_wday = t.wday;
+  tm->tm_isdst = -1;     /* Don't know if it's Daylight Savings Time */
+#else
+  /* This routine should never be invoked.  It is here just to make the
+     program compile.
+     */
+#endif
+}
+
+
+
+void
+set_hardware_clock_kd(const struct tm new_broken_time, 
+                      const bool testing) {
+/*----------------------------------------------------------------------------
+  Set the Hardware Clock to the time <new_broken_time>.  Use ioctls to
+  /dev/tty1 on what we assume is an m68k machine.
+
+  Note that we don't use /dev/console here.  That might be a serial console.
+----------------------------------------------------------------------------*/
+#ifdef KDGHWCLK
+  int con_fd;  /* File descriptor of /dev/tty1 */
+  struct hwclk_time t;
+
+  con_fd = open("/dev/tty1", O_RDONLY);
+  if (con_fd < 0) {
+    fprintf(stderr, "%s: Error opening /dev/tty1.  Errno: %s (%d)\n",
+            MYNAME, strerror(errno), errno);
+    exit(1);
+  } else {
+    int rc;  /* locally used return code */
+
+    t.sec  = new_broken_time.tm_sec;
+    t.min  = new_broken_time.tm_min;
+    t.hour = new_broken_time.tm_hour;
+    t.day  = new_broken_time.tm_mday;
+    t.mon  = new_broken_time.tm_mon;
+    t.year = new_broken_time.tm_year;
+    t.wday = new_broken_time.tm_wday;
+
+    if (testing) 
+      printf("Not setting Hardware Clock because running in test mode.\n");
+    else {
+      rc = ioctl(con_fd, kdshwclk_ioctl, &t );
+      if (rc < 0) {
+        fprintf(stderr, "%s: ioctl() to open /dev/tty1 failed.  "
+                "Errno: %s (%d)\n",
+                MYNAME, strerror(errno), errno);
+        exit(1);
+      }
+    }
+    close(con_fd);
+  }
+#else
+  /* This function should never be invoked.  It is here just to make the
+     program compile.
+     */
+#endif
+}
+
+
+
+void
+see_if_kdghwclk_works(bool * const kdghwclk_works_p) {
+/*----------------------------------------------------------------------------
+   Find out if we are capable of accessing the Hardware Clock via the
+   KDHWCLK facility (ioctl to /dev/tty1).
+-----------------------------------------------------------------------------*/
+  if (got_kdghwclk) {
+    int con_fd;
+    struct hwclk_time t;
+
+    con_fd = open("/dev/tty1", O_RDONLY);
+    if (con_fd >= 0) {
+      if (ioctl( con_fd, kdghwclk_ioctl, &t ) >= 0) 
+        *kdghwclk_works_p = TRUE;
+      else {
+        if (errno == EINVAL) {
+          /* KDGHWCLK not implemented in this kernel... */
+          *kdghwclk_works_p = FALSE;
+          if (debug) 
+            printf(MYNAME "was built with KDGHWCLK capability, but the "
+                   "ioctl does not exist in the kernel.  The ioctl (to "
+                   "/dev/tty1) failed with errno EINVAL.\n");
+        } else {
+          *kdghwclk_works_p = FALSE;
+          fprintf(stderr,
+                  "%s: KDGHWCLK ioctl failed, errno = %s (%d).\n",
+                  MYNAME, strerror(errno), errno);
+        }
+      }
+    } else {
+      *kdghwclk_works_p = FALSE;
+      fprintf(stderr, 
+              "%s: Can't open /dev/tty1.  open() errno = %s (%d).\n",
+              MYNAME, strerror(errno), errno);
+    }
+    close(con_fd);
+  } else *kdghwclk_works_p = FALSE;
+}
+
+
+
diff --git a/clockB/rtc.c b/clockB/rtc.c
new file mode 100644 (file)
index 0000000..46041b2
--- /dev/null
@@ -0,0 +1,425 @@
+/**************************************************************************
+
+  This is a component of the hwclock program.
+
+  This file contains the code for accessing the hardware clock via
+  the rtc device driver (usually hooked up to the /dev/rtc device
+  special file).
+
+****************************************************************************/
+
+#include <stdio.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/ioctl.h>
+
+#include "hwclock.h"
+
+/*
+  Get defines for rtc stuff.
+  Getting the rtc defines is nontrivial.  The obvious way is by
+  including <linux/mc146818rtc.h> but that again includes <asm/io.h>
+  which again includes ...  and on sparc and alpha this gives
+  compilation errors for many kernel versions. So, we give the defines
+  ourselves here.  Moreover, some Sparc person decided to be
+  incompatible, and used a struct rtc_time different from that used in
+  mc146818rtc.h.  
+*/
+
+/* On Sparcs, there is a <asm/rtc.h> that defines different ioctls
+   (that are required on my machine). However, this include file
+   does not exist on other architectures. */
+/* One might do:
+#ifdef __sparc__
+#include <asm/rtc.h>
+#endif
+ */
+
+/* The following is roughly equivalent */
+struct sparc_rtc_time
+{
+        int     sec;    /* Seconds (0-59) */
+        int     min;    /* Minutes (0-59) */
+        int     hour;   /* Hour (0-23) */
+        int     dow;    /* Day of the week (1-7) */
+        int     dom;    /* Day of the month (1-31) */
+        int     month;  /* Month of year (1-12) */
+        int     year;   /* Year (0-99) */
+};
+
+
+#define RTCGET _IOR('p', 20, struct sparc_rtc_time)
+#define RTCSET _IOW('p', 21, struct sparc_rtc_time)
+
+
+#include <linux/version.h>
+/* Check if the /dev/rtc interface is available in this version of
+   the system headers.  131072 is linux 2.0.0.  Might need to make
+   it conditional on i386 or something too -janl */
+#if LINUX_VERSION_CODE >= 131072
+#include <linux/kd.h>
+static const bool got_rtc = TRUE;
+#else
+static const bool got_rtc = FALSE;
+#endif
+
+/* struct linux_rtc_time is present since Linux 1.3.99 */
+/* Earlier (since 1.3.89), a struct tm was used. */
+struct linux_rtc_time {
+        int tm_sec;
+        int tm_min;
+        int tm_hour;
+        int tm_mday;
+        int tm_mon;
+        int tm_year;
+        int tm_wday;
+        int tm_yday;
+        int tm_isdst;
+};
+
+/* RTC_RD_TIME etc have this definition since Linux 1.99.9 (pre2.0-9) */
+#ifndef RTC_RD_TIME
+#define RTC_RD_TIME       _IOR('p', 0x09, struct linux_rtc_time)
+#define RTC_SET_TIME      _IOW('p', 0x0a, struct linux_rtc_time)
+#define RTC_UIE_ON        _IO('p', 0x03)       /* Update int. enable on */
+#define RTC_UIE_OFF       _IO('p', 0x04)       /* Update int. enable off */
+#endif
+/* RTC_EPOCH_READ and RTC_EPOCH_SET ioctls are in kernels since 
+   Linux 2.0.34 and 2.1.89 
+   */
+#ifndef RTC_EPOCH_READ
+#define RTC_EPOCH_READ _IOR('p', 0x0d, unsigned long)   /* Read epoch */
+#define RTC_EPOCH_SET  _IOW('p', 0x0e, unsigned long)   /* Set epoch */
+#endif
+
+
+
+static void
+do_rtc_read_ioctl(int rtc_fd, struct tm *tm, int *retcode_p) {
+/*----------------------------------------------------------------------------
+   Do the ioctl to read the time.  This is, unfortunately, a slightly
+   different function for Sparc than for everything else.  But we
+   return the standard 'tm' structure result in spite of the fact that
+   the Sparc ioctl returns something else.
+   
+   If the ioctl fails, issue message to stderr and return rc = 1;
+   else, no message and rc = 0.
+-----------------------------------------------------------------------------*/
+  int rc;
+
+#ifdef __sparc__
+  struct sparc_rtc_time stm;
+
+  rc = ioctl(rtc_fd, RTCGET, &stm);
+  tm->tm_sec = stm.sec;
+  tm->tm_min = stm.min;
+  tm->tm_hour = stm.hour;
+  tm->tm_mday = stm.dom;
+  tm->tm_mon = stm.month - 1;
+  tm->tm_year = stm.year - 1900;
+  tm->tm_wday = stm.dow - 1;
+  tm->tm_yday = -1;            /* day in the year */
+#else
+  rc = ioctl(rtc_fd, RTC_RD_TIME, tm);
+#endif
+  if (rc == -1) {
+    fprintf(stderr, "%s: ioctl() to /dev/rtc to read the time failed.  "
+            "errno = %s (%d)\n", MYNAME, strerror(errno), errno);
+    *retcode_p = 1;
+  } else *retcode_p = 0;
+  tm->tm_isdst = -1;          /* don't know whether it's daylight */
+  return;
+}  
+
+
+
+void
+get_epoch(unsigned long *epoch_p, char **reason_p){
+/*----------------------------------------------------------------------------
+  Get the Hardware Clock epoch setting from the kernel.
+  
+  If we succeed, return the setting (number of year A.D.) as 
+  *epoch_p and *reason_p == NULL.
+
+  If we fail, return and English description of what went wrong as a
+  null-terminated string in newly malloc'ed storage and the pointer to
+  it as *reason_p.
+----------------------------------------------------------------------------*/
+  int rtc_fd;
+
+  rtc_fd = open("/dev/rtc", O_RDONLY);
+  if (rtc_fd < 0) {
+    if (errno == ENOENT) 
+      *reason_p = 
+        strdup("To manipulate the epoch value in the kernel, we must "
+               "access the Linux 'rtc' device driver via the device special "
+               "file /dev/rtc.  This file does not exist on this system.\n");
+    else {
+      *reason_p = malloc(200);
+      sprintf(*reason_p, "Unable to open /dev/rtc, open() errno = %s (%d)\n",
+              strerror(errno), errno);
+    }
+  } else {
+    int rc;  /* return code from ioctl */
+    rc = ioctl(rtc_fd, RTC_EPOCH_READ, epoch_p);
+    if (rc == -1) {
+      *reason_p = malloc(200);
+      sprintf(*reason_p, "ioctl(RTC_EPOCH_READ) to /dev/rtc failed, "
+              "errno = %s (%d).\n", strerror(errno), errno);
+    } else {
+      *reason_p = NULL;
+      if (debug) printf("we have read epoch %ld from /dev/rtc "
+                        "with RTC_EPOCH_READ ioctl.\n", *epoch_p);
+    }
+    close(rtc_fd);
+  }
+  return;
+}
+
+
+
+static void
+busywait_for_rtc_clock_tick(const int rtc_fd, int *retcode_p) {
+/*----------------------------------------------------------------------------
+   Wait for the top of a clock tick by reading /dev/rtc in a busy loop until
+   we see it.  
+-----------------------------------------------------------------------------*/
+  struct tm start_time;
+    /* The time when we were called (and started waiting) */
+  int rc;
+
+  if (debug)
+    printf("Waiting in loop for time from /dev/rtc to change\n");
+
+  do_rtc_read_ioctl(rtc_fd, &start_time, &rc);
+  if (rc != 0) *retcode_p = 1;
+  else {
+    /* Wait for change.  Should be within a second, but in case something
+       weird happens, we have a limit on this loop to reduce the impact
+       of this failure.
+       */
+    struct tm nowtime;
+    int iterations;  /* how many time's we've spun through the loop */
+    int rc;  /* Return code from do_rtc_read_ioctl */
+
+    iterations = 0;
+    do {
+      do_rtc_read_ioctl(rtc_fd, &nowtime, &rc);
+    } while (rc == 0 && start_time.tm_sec == nowtime.tm_sec 
+             && iterations++ < 1000000);
+
+    if (iterations >= 1000000) {
+      fprintf(stderr, "%s: Timed out waiting for time change.\n", MYNAME);
+      *retcode_p = 2;
+    } else if (rc != 0) *retcode_p = 3;
+    else *retcode_p = 0;
+  }
+}
+
+
+
+void
+synchronize_to_clock_tick_RTC(int *retcode_p) {
+/*----------------------------------------------------------------------------
+  Same as synchronize_to_clock_tick(), but just for /dev/rtc.
+-----------------------------------------------------------------------------*/
+  int rtc_fd;  /* File descriptor of /dev/rtc */
+
+  rtc_fd = open("/dev/rtc", O_RDONLY);
+
+  if (rtc_fd == -1) {
+    fprintf(stderr, "%s: open() of /dev/rtc failed, errno = %s (%d).\n",
+            MYNAME, strerror(errno), errno);
+    *retcode_p = 1;
+  } else {
+    int rc;  /* Return code from ioctl */
+    /* Turn on update interrupts (one per second) */
+    rc = ioctl(rtc_fd, RTC_UIE_ON, 0);
+    if (rc == -1 && errno == EINVAL) {
+      /* This rtc device doesn't have interrupt functions.  This is typical
+         on an Alpha, where the Hardware Clock interrupts are used by the
+         kernel for the system clock, so aren't at the user's disposal.
+         */
+      if (debug) printf("/dev/rtc does not have interrupt functions. \n");
+      busywait_for_rtc_clock_tick(rtc_fd, retcode_p);
+    } else if (rc != -1) {
+      int rc;  /* return code from ioctl */
+      unsigned long dummy;
+
+      /* this blocks until the next update interrupt */
+      rc = read(rtc_fd, &dummy, sizeof(dummy));
+      if (rc == -1) {
+        fprintf(stderr, "%s: read() to /dev/rtc to wait for clock tick "
+                "failed, errno = %s (%d).\n", MYNAME, strerror(errno), errno);
+        *retcode_p = 1;
+      } else {
+        *retcode_p = 0;
+      }
+      /* Turn off update interrupts */
+      rc = ioctl(rtc_fd, RTC_UIE_OFF, 0);
+      if (rc == -1) {
+        fprintf(stderr, 
+                "%s: ioctl() to /dev/rtc to turn off update interrupts "
+                "failed, errno = %s (%d).\n", MYNAME, strerror(errno), errno);
+      }
+    } else {
+      fprintf(stderr, "%s: ioctl() to /dev/rtc to turn on update interrupts "
+              "failed unexpectedly, errno = %s (%d).\n", 
+              MYNAME, strerror(errno), errno);
+      *retcode_p = 1;
+    } 
+    close(rtc_fd);
+  }
+}
+
+
+
+void
+read_hardware_clock_rtc_ioctl(struct tm *tm) {
+/*----------------------------------------------------------------------------
+  Read the hardware clock and return the current time via <tm>
+  argument.  Use ioctls to "rtc" device /dev/rtc.
+-----------------------------------------------------------------------------*/
+  int rc;   /* Local return code */
+  int rtc_fd;  /* File descriptor of /dev/rtc */
+  
+  rtc_fd = open("/dev/rtc",O_RDONLY);
+if (rtc_fd == -1) {
+fprintf(stderr, "%s: open() of /dev/rtc failed, errno = %s (%d).\n",
+            MYNAME, strerror(errno), errno);
+exit(5);
+  } else {
+    /* Read the RTC time/date */
+
+    rc = ioctl(rtc_fd, RTC_RD_TIME, tm);
+    if (rc == -1) {
+      fprintf(stderr, "%s: ioctl() to /dev/rtc to read the time failed, "
+              "errno = %s (%d).\n", MYNAME, strerror(errno), errno);
+      exit(5);
+    }
+    close(rtc_fd);
+  }
+  tm->tm_isdst = -1;          /* don't know whether it's daylight */
+}
+
+
+
+void
+set_hardware_clock_rtc_ioctl(const struct tm new_broken_time, 
+                             const bool testing) {
+/*----------------------------------------------------------------------------
+  Set the Hardware Clock to the broken down time <new_broken_time>.
+  Use ioctls to "rtc" device /dev/rtc.
+----------------------------------------------------------------------------*/
+  int rc;
+  int rtc_fd;
+
+  rtc_fd = open("/dev/rtc", O_RDONLY);
+  if (rtc_fd < 0) {
+    fprintf(stderr, "%s: Unable to open /dev/rtc, open() errno = %s (%d)\n",
+            MYNAME, strerror(errno), errno);
+    exit(5);
+  } else {
+    if (testing) 
+      printf("Not setting Hardware Clock because running in test mode.\n");
+    else {
+      rc = ioctl(rtc_fd, RTC_SET_TIME, &new_broken_time);
+      if (rc == -1) {
+        fprintf(stderr, 
+                "%s: ioctl() (RTC_SET_TIME) to /dev/rtc to set time failed, "
+                "errno = %s (%d).\n", MYNAME, strerror(errno), errno);
+        exit(5);
+      } else {
+        if (debug)
+          printf("ioctl(RTC_SET_TIME) was successful.\n");
+      }
+    }
+    close(rtc_fd);
+  }
+}
+
+
+
+void
+set_epoch(unsigned long epoch, const bool testing, int *retcode_p) {
+/*----------------------------------------------------------------------------
+  Set the Hardware Clock epoch in the kernel.
+----------------------------------------------------------------------------*/
+  if (epoch < 1900)
+    /* kernel would not accept this epoch value */
+    fprintf(stderr, "%s: The epoch value may not be less than 1900.  "
+            "You requested %ld\n", MYNAME, epoch);
+  else {
+    int rtc_fd;
+    
+    rtc_fd = open("/dev/rtc", O_RDONLY);
+    if (rtc_fd < 0) {
+      if (errno == ENOENT) 
+        fprintf(stderr, 
+                "%s: To manipulate the epoch value in the kernel, we must "
+                "access the Linux 'rtc' device driver via the device special "
+                "file /dev/rtc.  This file does not exist on this system.\n",
+                MYNAME);
+      fprintf(stderr, "%s: Unable to open /dev/rtc, open() errno = %s (%d)\n",
+              MYNAME, strerror(errno), errno);
+      *retcode_p = 1;
+    } else {
+      if (debug) printf("setting epoch to %ld "
+                        "with RTC_EPOCH_SET ioctl to /dev/rtc.\n", epoch);
+      if (testing) {
+        printf("Not setting epoch because running in test mode.\n");
+        *retcode_p = 0;
+      } else {
+        int rc;                 /* return code from ioctl */
+        rc = ioctl(rtc_fd, RTC_EPOCH_SET, epoch);
+        if (rc == -1) {
+          if (errno == EINVAL)
+            fprintf(stderr, "%s: The kernel (specifically, the device driver "
+                    "for /dev/rtc) does not have the RTC_EPOCH_SET ioctl.  "
+                    "Get a newer driver.\n", MYNAME);
+          else 
+            fprintf(stderr, "%s: ioctl(RTC_EPOCH_SET) to /dev/rtc failed, "
+                    "errno = %s (%d).\n", MYNAME, strerror(errno), errno);
+          *retcode_p = 1;
+        } else *retcode_p = 0;
+      }
+      close(rtc_fd);
+    }
+  }
+}
+
+
+
+void
+see_if_rtc_works(bool * const rtc_works_p) {
+/*----------------------------------------------------------------------------
+   Find out if we are capable of accessing the Hardware Clock via the rtc
+   driver (via device file /dev/rtc).
+-----------------------------------------------------------------------------*/
+  if (got_rtc) {
+    int rtc_fd = open("/dev/rtc", O_RDONLY);
+    if (rtc_fd > 0) {
+      *rtc_works_p = TRUE;
+      close(rtc_fd);
+    } else {
+      *rtc_works_p = FALSE;
+      if (debug)
+        printf("Open of /dev/rtc failed, errno = %s (%d).  "
+               "falling back to more primitive clock access method.\n",
+               strerror(errno), errno);
+    }
+  } else {
+    if (debug)
+      printf("The Linux kernel for which this copy of hwclock() was built "
+             "is too old to have /dev/rtc\n");
+    *rtc_works_p = FALSE;
+  }
+}
+
+
+
+
similarity index 100%
rename from sys-utils/shhopt.c
rename to clockB/shhopt.c
diff --git a/clockB/shhopt.h b/clockB/shhopt.h
new file mode 100644 (file)
index 0000000..3f87c13
--- /dev/null
@@ -0,0 +1,33 @@
+/* $Id: shhopt.h,v 1.2 1996/06/06 00:06:35 sverrehu Exp $ */
+#ifndef SHHOPT_H
+#define SHHOPT_H
+
+/* constants for recognized option types. */
+typedef enum {
+    OPT_END,               /* nothing. used as ending element. */
+    OPT_FLAG,              /* no argument following. sets variable to 1. */
+    OPT_STRING,            /* string argument. */
+    OPT_INT,               /* signed integer argument. */
+    OPT_UINT,              /* unsigned integer argument. */
+    OPT_LONG,              /* signed long integer argument. */
+    OPT_ULONG,             /* unsigned long integer argument. */
+} optArgType;
+
+/* flags modifying the default way options are handeled. */
+#define OPT_CALLFUNC  1    /* pass argument to a function. */
+
+typedef struct {
+    char       shortName;  /* Short option name. */
+    char       *longName;  /* Long option name, no including '--'. */
+    optArgType type;       /* Option type. */
+    void       *arg;       /* Pointer to variable to fill with argument,
+                            * or pointer to function if Type == OPT_FUNC. */
+    int        flags;      /* Modifier flags. */
+} optStruct;
+
+
+void optSetFatalFunc(void (*f)(const char *, ...));
+void optParseOptions(int *argc, char *argv[],
+                    const optStruct opt[], const int allowNegNum);
+
+#endif
diff --git a/clockB/util.c b/clockB/util.c
new file mode 100644 (file)
index 0000000..8a1a606
--- /dev/null
@@ -0,0 +1,120 @@
+/**************************************************************************
+
+  This is a component of the hwclock program.
+
+  This file contains the code for various basic utility routines
+  needed by the other modules.
+
+****************************************************************************/
+
+#include <stdio.h>
+#include <string.h>
+
+#include "hwclock.h"
+
+bool
+is_in_cpuinfo(const char * const fmt, const char * const str) {
+/*----------------------------------------------------------------------------
+  Return true iff the /proc/cpuinfo file shows the value 'str' for the
+  keyword 'fmt'.  Both arguments are null-terminated strings.
+
+  If for any reason we can't read /proc/cpuinfo, return false.
+-----------------------------------------------------------------------------*/
+  FILE *cpuinfo;
+  char field[256];
+  char format[256];
+  bool found;
+
+  sprintf(format, "%s : %s", fmt, "%255s");
+
+  found = FALSE;  /* initial value */
+  if ((cpuinfo = fopen ("/proc/cpuinfo", "r")) != NULL) {
+    while (!feof(cpuinfo)) {
+      if (fscanf (cpuinfo, format, field) == 1) {
+        if (strncmp(field, str, strlen(str)) == 0)
+          found = TRUE;
+        break;
+      }
+      fgets (field, 256, cpuinfo);
+    }
+    fclose(cpuinfo);
+  }
+  return found;
+}
+
+
+
+char *
+ctime2(const time_t time) {
+/*----------------------------------------------------------------------------
+  Same as ctime() from the standard C library, except it takes a time_t
+  as an argument instead of a pointer to a time_t, so it is much more
+  useful.
+
+  Also, don't include a newline at the end of the returned string.  If
+  the user wants a newline, he can provide it himself.
+  
+  return value is in static storage within.
+-----------------------------------------------------------------------------*/
+  static char retval[30];
+
+  strncpy(retval, ctime(&time), sizeof(retval));
+  retval[sizeof(retval)-1] = '\0';
+
+  /* Now chop off the last character, which is the newline */
+  if (strlen(retval) >= 1)   /* for robustness */
+    retval[strlen(retval)-1] = '\0';
+  return(retval);
+
+}
+
+
+
+struct timeval
+t2tv(time_t argument) {
+/*----------------------------------------------------------------------------
+   Convert from "time_t" format to "timeval" format.
+-----------------------------------------------------------------------------*/
+  struct timeval retval;
+
+  retval.tv_sec = argument;
+  retval.tv_usec = 0;
+  return(retval);
+}
+
+
+
+float 
+time_diff(struct timeval subtrahend, struct timeval subtractor) {
+/*---------------------------------------------------------------------------
+  The difference in seconds between two times in "timeval" format.
+----------------------------------------------------------------------------*/
+  return( (subtrahend.tv_sec - subtractor.tv_sec)
+           + (subtrahend.tv_usec - subtractor.tv_usec) / 1E6 );
+}
+
+
+struct timeval
+time_inc(struct timeval addend, float increment) {
+/*----------------------------------------------------------------------------
+  The time, in "timeval" format, which is <increment> seconds after
+  the time <addend>.  Of course, <increment> may be negative.
+-----------------------------------------------------------------------------*/
+  struct timeval newtime;
+
+  newtime.tv_sec = addend.tv_sec + (int) increment;
+  newtime.tv_usec = addend.tv_usec + (increment - (int) increment) * 1E6;
+
+  /* Now adjust it so that the microsecond value is between 0 and 1 million */
+  if (newtime.tv_usec < 0) {
+    newtime.tv_usec += 1E6;
+    newtime.tv_sec -= 1;
+  } else if (newtime.tv_usec >= 1E6) {
+    newtime.tv_usec -= 1E6;
+    newtime.tv_sec += 1;
+  }
+  return(newtime);
+}
+
+
+
diff --git a/configure b/configure
new file mode 100755 (executable)
index 0000000..75f7546
--- /dev/null
+++ b/configure
@@ -0,0 +1,362 @@
+#!/bin/sh
+# Configure script for util-linux - aeb, 990205
+#
+# We need to find out the following things:
+#
+# 1. For mount/nfsmount.c: is inet_aton() available?
+# 2. For fdisk/fdisksunlabel.c: is there a <scsi/scsi.h>?
+#    For fdisk/fdisk.c: is there a <linux/blkpg.h>?
+# 3. For sys-utils/ipcs.c: do we need __KERNEL__ and <linux/linkage.h>?
+# 4. For sys-utils/cytune.c: do we need <linux/tqueue.h>?
+# 5. For sys-utils/kbd_rate.c: does <linux/kd.h> exist?
+# 6. For cfdisk, setterm, more, ul: do we have ncurses? How installed?
+#    For more: do we have libtermcap?
+# 7. For chfn, chsh, login, newgrp, passwd: do we need -lcrypt?
+# 8. For sln: does static compilation work?
+#  9. For lib/nls.h: do we have <locale.h>?
+# 10. For lib/nls.h: do we have <libintl.h> and gettext()?
+# 11. For xgettext: does it take the option --foreign-user?
+# 12. For cal.c: do we have <langinfo.h>?
+# 13. For err.c: do we have __progname?
+# 14. For script.c: do we have <pty.h> and openpty()?
+
+if test "$RANDOM" = "$RANDOM"; then
+  # Plain old Bourne shell.
+  echo checking for gcc
+  test -z "$CC" -a -n "`gcc 2>&1`" && CC="gcc -O"
+else
+  # ksh, bash or zsh.  ksh and zsh write "command not found" to stderr.
+  echo checking for gcc
+  test -z "$CC" && type gcc && CC="gcc -O"
+fi
+
+CC=${CC-cc}
+CFLAGS=${CFLAGS-"-O"}
+DEFS=
+LIBS=
+compile='$CC $CFLAGS $DEFS conftest.c -o conftest $LIBS >/dev/null 2>&1'
+static_compile='$CC -static $DEFS conftest.c -o conftest $LIBS >/dev/null 2>&1'
+
+rm -f make_include defines.h conftest.c conftest
+
+#
+# 1. For mount/nfsmount.c: is inet_aton() available?
+#
+echo "
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+main(int a, char **v){
+  if (a == -1) /* false */
+       inet_aton((const char *) 0, (struct in_addr *) 0);
+  exit(0);
+}
+" > conftest.c
+eval $compile
+if test -s conftest && ./conftest 2>/dev/null; then
+       echo "#define HAVE_inet_aton" >> defines.h
+       echo "You have inet_aton()"
+else
+       echo "You don't have inet_aton()"
+fi
+rm -f conftest conftest.c
+
+#
+# 2. For fdisk/fdisksunlabel.c: is <scsi/scsi.h> available?
+#    Some kernels have <scsi/scsi.h> that uses u_char
+#    But maybe there is already a typedef. Let us use a #define
+#
+echo "
+#define u_char unsigned char
+#include <scsi/scsi.h>
+#undef u_char
+main(){ exit(0); }
+" > conftest.c
+eval $compile
+if test -s conftest && ./conftest 2>/dev/null; then
+        echo "#define HAVE_scsi_h" >> defines.h
+        echo "You have <scsi/scsi.h>"
+else
+        echo "You don't have <scsi/scsi.h>"
+fi
+rm -f conftest conftest.c
+
+#
+# 2A. For fdisk/fdisk.c: is <linux/blkpg.h> available?
+#
+echo "
+#include <linux/blkpg.h>
+main(){ exit(0); }
+" > conftest.c
+eval $compile
+if test -s conftest && ./conftest 2>/dev/null; then
+        echo "#define HAVE_blkpg_h" >> defines.h
+        echo "You have <linux/blkpg.h>"
+else
+        echo "You don't have <linux/blkpg.h>"
+fi
+rm -f conftest conftest.c
+
+#
+# 3. ipcs.c includes <sys/shm.h> and family
+# Do we need __KERNEL__ and asmlinkage for SHM_DEST?
+#
+echo "
+#include <sys/shm.h>
+main(){ int i=SHM_DEST; exit(0); }
+" > conftest.c
+eval $compile
+if test -s conftest && ./conftest 2>/dev/null; then
+       echo "You don't need <linux/linkage.h>"
+else
+       echo "#define NEED_linkage_h" >> defines.h
+       echo "You need <linux/linkage.h>"
+fi
+rm -f conftest conftest.c
+
+#
+# 4. cytune.c may need struct tq_struct
+#
+echo "
+#include <sys/types.h>
+#include <linux/cyclades.h>
+main(){ exit(0); }
+" > conftest.c
+eval $compile
+if test -s conftest && ./conftest 2>/dev/null; then
+       echo "You don't need <linux/tqueue.h>"
+else
+       echo "#define NEED_tqueue_h" >> defines.h
+       echo "You need <linux/tqueue.h>"
+fi
+rm -f conftest conftest.c
+
+#
+# 5. Does <linux/kd.h> exist?
+#
+echo "
+#include <linux/kd.h>
+main(){ exit(0); }
+" > conftest.c
+eval $compile
+if test -s conftest && ./conftest 2>/dev/null; then
+       echo "#define HAVE_kd_h" >> defines.h
+       echo "You have <linux/kd.h>"
+else
+       echo "You don't have <linux/kd.h>"
+fi
+rm -f conftest conftest.c
+
+#
+# 6. How is [n]curses installed?
+#
+test_curses_h=0
+have_ncurses=1
+if [ -f /usr/include/ncurses/curses.h ]; then
+       echo "HAVE_NCURSES=yes" >> make_include
+       echo "CURSESFLAGS=-I/usr/include/ncurses -DNCH=0" >> make_include
+       echo "You have ncurses. Using <ncurses/curses.h>."
+elif [ -f /usr/include/ncurses.h ]; then
+       echo "HAVE_NCURSES=yes" >> make_include
+       echo "CURSESFLAGS=-DNCH=1" >> make_include
+       echo "You have ncurses. Using <ncurses.h>."
+elif [ -f /usr/local/include/ncurses.h ]; then
+       echo "HAVE_NCURSES=yes" >> make_include
+       echo "CURSESFLAGS=-I/usr/local/include -DNCH=1" >> make_include
+       echo "You have ncurses. Using /usr/local/include/ncurses.h."
+elif [ -f /usr/include/curses.h ]; then
+       test_curses_h=1
+else
+       have_ncurses=0
+fi
+#
+# If we found a curses.h, test whether it is ncurses
+# (It should define __NCURSES_H and NCURSES_VERSION and NCURSES_CONST ...)
+#
+if [ $test_curses_h = 1 ]; then
+  echo "
+  #include <curses.h>
+  main(){ char *c = NCURSES_VERSION; exit(0); }
+  " > conftest.c
+  eval $compile
+  if test -s conftest && ./conftest 2>/dev/null; then
+       echo "HAVE_NCURSES=yes" >> make_include
+       echo "CURSESFLAGS=-DNCH=0" >> make_include
+       echo "You have ncurses. Using <curses.h>."
+  else
+       have_ncurses=0
+  fi
+  rm -f conftest conftest.c
+fi
+
+if [ $have_ncurses = 0 ]; then
+       echo "HAVE_NCURSES=no" >> make_include
+       echo "You don't have ncurses - I will not make ul and setterm."
+else
+       echo "LIBCURSES=-lncurses" >> make_include
+fi
+
+#
+# Some systems have /usr/lib/termcap.so -> /usr/lib/termcap.so.2
+# where however the latter file does not exist. When termcap does
+# not exist, we can try to compile more with curses instead.
+#
+echo '
+#include <termcap.h>
+main(){ exit(0); tgetnum("li"); }
+' > conftest.c
+LIBS=-ltermcap
+eval $compile
+LIBS=
+if test -s conftest && ./conftest 2>/dev/null; then
+       echo "#define HAVE_termcap" >> defines.h
+       echo "LIBTERMCAP=-ltermcap" >> make_include
+       echo "You have termcap"
+else
+       echo "HAVE_TERMCAP=no" >> make_include
+       echo "You don't have termcap"
+fi
+rm -f conftest conftest.c
+
+#
+# 7. Do we need -lcrypt?
+#
+echo '
+#define _XOPEN_SOURCE
+#include <unistd.h>
+main(){ char *c = crypt("abc","pw"); exit(0); }
+' > conftest.c
+eval $compile
+if test -s conftest && ./conftest 2>/dev/null; then
+       echo "NEED_LIBCRYPT=no" >> make_include
+       echo "You don't need -lcrypt"
+else
+       echo "NEED_LIBCRYPT=yes" >> make_include
+       echo "You need -lcrypt"
+fi
+rm -f conftest conftest.c
+
+#
+# 8. Does static compilation work?
+#
+echo "
+main(){ return 0; }
+" > conftest.c
+eval $static_compile
+if test -s conftest && ./conftest 2>/dev/null; then
+       : OK, nothing special
+else
+       echo "CAN_DO_STATIC=no" >> make_include
+       echo "Strange... Static compilation fails here."
+fi
+
+#
+# 9. For lib/nls.h: do we have <locale.h>?
+#
+echo "
+#include <locale.h>
+main(){ exit(0); }
+" > conftest.c
+eval $compile
+if test -s conftest && ./conftest 2>/dev/null; then
+        echo "#define HAVE_locale_h" >> defines.h
+        echo "You have <locale.h>"
+else
+        echo "You don't have <locale.h>"
+fi
+rm -f conftest conftest.c
+
+
+#
+# 10. For lib/nls.h: do we have <libintl.h> and gettext() ?
+#
+echo '
+#include <libintl.h>
+main(int a, char **v){
+  if (a == -1)  /* false */
+        gettext("There is no gettext man page\n");
+  exit(0);
+}
+' > conftest.c
+eval $compile
+if test -s conftest && ./conftest 2>/dev/null; then
+        echo '#define HAVE_libintl_h' >> defines.h
+        echo "You have <libintl.h> and gettext()"
+        echo '#define ENABLE_NLS' >> defines.h
+        echo "Assuming that you want to enable NLS support."
+        echo "(Otherwise, edit defines.h)"
+        ENABLE_NLS=yes
+else
+        echo "You don't have <libintl.h>"
+        ENABLE_NLS=no
+fi
+rm -f conftest conftest.c
+
+
+#
+# 11. Does xgettext exist and take the option --foreign-user?
+#
+if (test $ENABLE_NLS = yes && type xgettext > /dev/null 2>&1); then
+       msg=`xgettext --foreign-user 2>&1 | grep unrecognized`
+       if test -n "$msg"; then
+               echo "FOREIGN = " >> make_include
+       else
+               echo "FOREIGN = --foreign-user" >> make_include
+       fi
+       echo "HAVE_XGETTEXT=yes" >> make_include
+else
+       echo "HAVE_XGETTEXT=no" >> make_include
+fi
+
+#
+# 12. For cal.c: do we have <langinfo.h>?
+#
+echo "
+#include <langinfo.h>
+main(){ exit(0); }
+" > conftest.c
+eval $compile
+if test -s conftest && ./conftest 2>/dev/null; then
+        echo "#define HAVE_langinfo_h" >> defines.h
+        echo "You have <langinfo.h>"
+else
+        echo "You don't have <langinfo.h>"
+fi
+rm -f conftest conftest.c
+
+
+#
+# 13. For err.c: do we have __progname?
+# [make sure gcc -O does not optimize the access away]
+#
+echo "
+#include <stdio.h>
+extern char *__progname;
+main(){ printf(__progname); exit(0); }
+" > conftest.c
+eval $compile
+if test -s conftest && ./conftest > /dev/null 2>/dev/null; then
+        echo "#define HAVE_progname" >> defines.h
+        echo "You have __progname"
+else
+        echo "You don't have __progname"
+fi
+rm -f conftest conftest.c
+
+
+#
+# 14. For script.c: do we have <pty.h> and openpty()?
+#
+echo "
+#include <pty.h>
+main(){ exit(0); openpty(0, 0, 0, 0, 0); }
+" > conftest.c
+eval $compile
+if test -s conftest && ./conftest 2>/dev/null; then
+       echo "HAVE_OPENPTY=yes" >> make_include
+       echo "#define HAVE_openpty" >> defines.h
+       echo "You have <pty.h> and openpty()"
+else
+       echo "You don't have <pty.h> and openpty()"
+fi
+rm -f conftest conftest.c
index aec38630a943d0e80a8253eaf7327f460e134c72..b170e81ee033d8c93b365222e1c89969e5933795 100644 (file)
@@ -4,6 +4,7 @@
 # Copyright 1992, 1993, 1994, 1995 Rickard E. Faith (faith@cs.unc.edu)
 #
 
+include ../make_include
 include ../MCONFIG
 
 # Where to put man pages?
index 7f792c5c9f9e45c8b65365663069a121e9adc4e0..bb4f0a1f523cc106b6c739bf248d1ce0af642364 100644 (file)
@@ -1,5 +1,11 @@
 /* fdformat.c  -  Low-level formats a floppy disk. */
 
+/* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ * 1999-03-20 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ & - more i18n/nls translatable strings marked
+ */
+
 #include <stdio.h>
 #include <string.h>
 #include <fcntl.h>
@@ -10,6 +16,7 @@
 #include <sys/ioctl.h>
 #include <linux/fd.h>
 #include <linux/fs.h>
+#include "nls.h"
 
 static int ctrl;
 struct floppy_struct param;
@@ -23,7 +30,7 @@ static void format_disk(char *name)
     struct format_descr descr;
     int track;
 
-    printf("Formatting ... ");
+    printf(_("Formatting ... "));
     fflush(stdout);
     if (ioctl(ctrl,FDFMTBEG,NULL) < 0) PERROR("\nioctl(FDFMTBEG)");
     for (track = 0; track < param.track; track++) {
@@ -41,7 +48,7 @@ static void format_disk(char *name)
        }
     }
     if (ioctl(ctrl,FDFMTEND,NULL) < 0) PERROR("\nioctl(FDFMTEND)");
-    printf("done\n");
+    printf(_("done\n"));
 }
 
 
@@ -52,7 +59,7 @@ static void verify_disk(char *name)
 
     cyl_size = param.sect*param.head*512;
     if ((data = (unsigned char *) malloc(cyl_size)) == NULL) PERROR("malloc");
-    printf("Verifying ... ");
+    printf(_("Verifying ... "));
     fflush(stdout);
     if ((fd = open(name,O_RDONLY)) < 0) PERROR(name);
     for (cyl = 0; cyl < param.track; cyl++) {
@@ -63,20 +70,20 @@ static void verify_disk(char *name)
        read_bytes = read(fd,data,cyl_size);
        if(read_bytes != cyl_size) {
            if(read_bytes < 0)
-                   perror("Read: ");
+                   perror(_("Read: "));
            fprintf(stderr,
-                   "Problem reading cylinder %d, expected %d, read %d\n",
+                   _("Problem reading cylinder %d, expected %d, read %d\n"),
                    cyl, cyl_size, read_bytes);
            exit(1);
        }
        for (count = 0; count < cyl_size; count++)
            if (data[count] != FD_FILL_BYTE) {
-               printf("bad data in cyl %d\nContinuing ... ",cyl);
+               printf(_("bad data in cyl %d\nContinuing ... "),cyl);
                fflush(stdout);
                break;
            }
     }
-    printf("done\n");
+    printf(_("done\n"));
     if (close(fd) < 0) PERROR("close");
 }
 
@@ -86,7 +93,7 @@ static void usage(char *name)
     char *this;
 
     if ((this = strrchr(name,'/')) != NULL) name = this+1;
-    fprintf(stderr,"usage: %s [ -n ] device\n",name);
+    fprintf(stderr,_("usage: %s [ -n ] device\n"),name);
     exit(1);
 }
 
@@ -97,6 +104,10 @@ int main(int argc,char **argv)
     char *name;
     struct stat st;
 
+    setlocale(LC_ALL, "");
+    bindtextdomain(PACKAGE, LOCALEDIR);
+    textdomain(PACKAGE);
+
     name = argv[0];
     verify = 1;
     if (argc > 1 && argv[1][0] == '-') {
@@ -108,15 +119,15 @@ int main(int argc,char **argv)
     if (argc != 2) usage(name);
     if (stat(argv[1],&st) < 0) PERROR(argv[1]);
     if (!S_ISBLK(st.st_mode) || MAJOR(st.st_rdev) != FLOPPY_MAJOR) {
-       fprintf(stderr,"%s: not a floppy device\n",argv[1]);
+       fprintf(stderr,_("%s: not a floppy device\n"),argv[1]);
        exit(1);
     }
     if (access(argv[1],W_OK) < 0) PERROR(argv[1]);
     if ((ctrl = open(argv[1],3)) < 0) PERROR(argv[1]);
     if (ioctl(ctrl,FDGETPRM,(long) &param) < 0) 
-      PERROR("Could not determine current format type");
-    printf("%sle-sided, %d tracks, %d sec/track. Total capacity %d kB.\n",
-      param.head ? "Doub" : "Sing",param.track,param.sect,param.size >> 1);
+      PERROR(_("Could not determine current format type"));
+    printf(_("%s-sided, %d tracks, %d sec/track. Total capacity %d kB.\n"),
+      param.head ? _("Double") : _("Single"),param.track,param.sect,param.size >> 1);
     format_disk(argv[1]);
     if (verify) verify_disk(argv[1]);
     return 0;
index ba64bf34f2a2011dd51f5cfffd7b0e8b6234d853..416c178cbe9e96e3e6f6471c281e1b1d37d2a7e8 100644 (file)
  * 06.11.96  - Added v2 code submitted by Joerg Dorchain, but written by
  *             Andreas Schwab.
  *
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ *
+ *
  * I've had no time to add comments - hopefully the function names
  * are comments enough. As with all file system checkers, this assumes
  * the file system is quiescent - don't use it on a mounted device
@@ -95,6 +99,7 @@
 #include <linux/fs.h>
 #include <linux/minix_fs.h>
 #include "../version.h"
+#include "nls.h"
 
 #ifdef MINIX2_SUPER_MAGIC2
 #define HAVE_MINIX2 1
@@ -189,8 +194,8 @@ void fatal_error(const char * fmt_string, int status)
        exit(status);
 }
 
-#define usage() fatal_error("Usage: %s [-larvsmf] /dev/name\n",16)
-#define die(str) fatal_error("%s: " str "\n",8)
+#define usage() fatal_error(_("Usage: %s [-larvsmf] /dev/name\n"),16)
+#define die(str) fatal_error(_("%s: " str "\n"),8)
 
 /*
  * This simply goes through the file-name data and prints out the
@@ -206,7 +211,7 @@ void print_current_name(void)
                printf ("/");
 }
 
-int ask(const char * string,int def)
+int ask(const char * string, int def)
 {
        int c;
 
@@ -280,13 +285,13 @@ static void check_mount(void)
        else
                close(fd);
        
-       printf ("%s is mounted.  ", device_name);
+       printf (_("%s is mounted.        "), device_name);
        if (isatty(0) && isatty(1))
-               cont = ask("Do you really want to continue", 0);
+               cont = ask(_("Do you really want to continue"), 0);
        else
                cont = 0;
        if (!cont) {
-               printf ("check aborted.\n");
+               printf (_("check aborted.\n"));
                exit (0);
        }
        return;
@@ -303,14 +308,14 @@ int check_zone_nr(unsigned short * nr, int * corrected)
        if (!*nr)
                return 0;
        if (*nr < FIRSTZONE)
-               printf("Zone nr < FIRSTZONE in file `");
+               printf(_("Zone nr < FIRSTZONE in file `"));
        else if (*nr >= ZONES)
-               printf("Zone nr >= ZONES in file `");
+               printf(_("Zone nr >= ZONES in file `"));
        else
                return *nr;
        print_current_name();
        printf("'.");
-       if (ask("Remove block",1)) {
+       if (ask(_("Remove block"),1)) {
                *nr = 0;
                *corrected = 1;
        }
@@ -323,14 +328,14 @@ int check_zone_nr2 (unsigned int *nr, int *corrected)
        if (!*nr)
                return 0;
        if (*nr < FIRSTZONE)
-               printf ("Zone nr < FIRSTZONE in file `");
+               printf (_("Zone nr < FIRSTZONE in file `"));
        else if (*nr >= ZONES)
-               printf ("Zone nr >= ZONES in file `");
+               printf (_("Zone nr >= ZONES in file `"));
        else
                return *nr;
        print_current_name ();
        printf ("'.");
-       if (ask ("Remove block", 1)) {
+       if (ask (_("Remove block"), 1)) {
                *nr = 0;
                *corrected = 1;
        }
@@ -348,13 +353,13 @@ void read_block(unsigned int nr, char * addr)
                return;
        }
        if (BLOCK_SIZE*nr != lseek(IN, BLOCK_SIZE*nr, SEEK_SET)) {
-               printf("Read error: unable to seek to block in file '");
+               printf(_("Read error: unable to seek to block in file '"));
                print_current_name();
                printf("'\n");
                memset(addr,0,BLOCK_SIZE);
                errors_uncorrected = 1;
        } else if (BLOCK_SIZE != read(IN, addr, BLOCK_SIZE)) {
-               printf("Read error: bad block in file '");
+               printf(_("Read error: bad block in file '"));
                print_current_name();
                printf("'\n");
                memset(addr,0,BLOCK_SIZE);
@@ -370,15 +375,15 @@ void write_block(unsigned int nr, char * addr)
        if (!nr)
                return;
        if (nr < FIRSTZONE || nr >= ZONES) {
-               printf("Internal error: trying to write bad block\n"
-               "Write request ignored\n");
+               printf(_("Internal error: trying to write bad block\n"
+               "Write request ignored\n"));
                errors_uncorrected = 1;
                return;
        }
        if (BLOCK_SIZE*nr != lseek(IN, BLOCK_SIZE*nr, SEEK_SET))
                die("seek failed in write_block");
        if (BLOCK_SIZE != write(IN, addr, BLOCK_SIZE)) {
-               printf("Write error: bad block in file '");
+               printf(_("Write error: bad block in file '"));
                print_current_name();
                printf("'\n");
                errors_uncorrected = 1;
@@ -599,18 +604,18 @@ void read_tables(void)
        if (INODE_BUFFER_SIZE != read(IN,inode_buffer,INODE_BUFFER_SIZE))
                die("Unable to read inodes");
        if (NORM_FIRSTZONE != FIRSTZONE) {
-               printf("Warning: Firstzone != Norm_firstzone\n");
+               printf(_("Warning: Firstzone != Norm_firstzone\n"));
                errors_uncorrected = 1;
        }
        get_dirsize ();
        if (show) {
-               printf("%ld inodes\n",INODES);
-               printf("%ld blocks\n",ZONES);
-               printf("Firstdatazone=%ld (%ld)\n",FIRSTZONE,NORM_FIRSTZONE);
-               printf("Zonesize=%d\n",BLOCK_SIZE<<ZONESIZE);
-               printf("Maxsize=%ld\n",MAXSIZE);
-               printf("Filesystem state=%d\n", Super.s_state);
-               printf("namelen=%d\n\n",namelen);
+               printf(_("%ld inodes\n"),INODES);
+               printf(_("%ld blocks\n"),ZONES);
+               printf(_("Firstdatazone=%ld (%ld)\n"),FIRSTZONE,NORM_FIRSTZONE);
+               printf(_("Zonesize=%d\n"),BLOCK_SIZE<<ZONESIZE);
+               printf(_("Maxsize=%ld\n"),MAXSIZE);
+               printf(_("Filesystem state=%d\n"), Super.s_state);
+               printf(_("namelen=%d\n\n"),namelen);
        }
 }
 
@@ -624,12 +629,12 @@ struct minix_inode * get_inode(unsigned int nr)
        inode = Inode + nr;
        if (!inode_count[nr]) {
                if (!inode_in_use(nr)) {
-                       printf("Inode %d marked not used, but used for file '",
+                       printf(_("Inode %d marked not used, but used for file '"),
                                nr);
                        print_current_name();
                        printf("'\n");
                        if (repair) {
-                               if (ask("Mark in use",1))
+                               if (ask(_("Mark in use"),1))
                                        mark_inode(nr);
                        } else {
                                errors_uncorrected = 1;
@@ -651,13 +656,13 @@ struct minix_inode * get_inode(unsigned int nr)
                        ;
                else {
                         print_current_name();
-                        printf(" has mode %05o\n",inode->i_mode);
+                        printf(_(" has mode %05o\n"),inode->i_mode);
                 }
 
        } else
                links++;
        if (!++inode_count[nr]) {
-               printf("Warning: inode count too big.\n");
+               printf(_("Warning: inode count too big.\n"));
                inode_count[nr]--;
                errors_uncorrected = 1;
        }
@@ -676,11 +681,11 @@ get_inode2 (unsigned int nr)
        inode = Inode2 + nr;
        if (!inode_count[nr]) {
                if (!inode_in_use (nr)) {
-                       printf ("Inode %d marked not used, but used for file '", nr);
+                       printf (_("Inode %d marked not used, but used for file '"), nr);
                        print_current_name ();
                        printf ("'\n");
                        if (repair) {
-                               if (ask ("Mark in use", 1))
+                               if (ask (_("Mark in use"), 1))
                                        mark_inode (nr);
                                else
                                        errors_uncorrected = 1;
@@ -700,12 +705,12 @@ get_inode2 (unsigned int nr)
                else if (S_ISFIFO (inode->i_mode));
                else {
                        print_current_name ();
-                       printf (" has mode %05o\n", inode->i_mode);
+                       printf (_(" has mode %05o\n"), inode->i_mode);
                }
        } else
                links++;
        if (!++inode_count[nr]) {
-               printf ("Warning: inode count too big.\n");
+               printf (_("Warning: inode count too big.\n"));
                inode_count[nr]--;
                errors_uncorrected = 1;
        }
@@ -741,10 +746,10 @@ static int add_zone(unsigned short * znr, int * corrected)
        if (!block)
                return 0;
        if (zone_count[block]) {
-               printf("Block has been used before. Now in file `");
+               printf(_("Block has been used before. Now in file `"));
                print_current_name();
                printf("'.");
-               if (ask("Clear",1)) {
+               if (ask(_("Clear"),1)) {
                        *znr = 0;
                        block = 0;
                        *corrected = 1;
@@ -753,10 +758,10 @@ static int add_zone(unsigned short * znr, int * corrected)
        if (!block)
                return 0;
        if (!zone_in_use(block)) {
-               printf("Block %d in file `",block);
+               printf(_("Block %d in file `"),block);
                print_current_name();
-               printf("' is marked not in use.");
-               if (ask("Correct",1))
+               printf(_("' is marked not in use."));
+               if (ask(_("Correct"),1))
                        mark_zone(block);
        }
        if (!++zone_count[block])
@@ -775,10 +780,10 @@ static int add_zone2 (unsigned int *znr, int *corrected)
        if (!block)
                return 0;
        if (zone_count[block]) {
-               printf ("Block has been used before. Now in file `");
+               printf (_("Block has been used before. Now in file `"));
                print_current_name ();
                printf ("'.");
-               if (ask ("Clear", 1)) {
+               if (ask (_("Clear"), 1)) {
                        *znr = 0;
                        block = 0;
                        *corrected = 1;
@@ -787,10 +792,10 @@ static int add_zone2 (unsigned int *znr, int *corrected)
        if (!block)
                return 0;
        if (!zone_in_use (block)) {
-               printf ("Block %d in file `", block);
+               printf (_("Block %d in file `"), block);
                print_current_name ();
-               printf ("' is marked not in use.");
-               if (ask ("Correct", 1))
+               printf (_("' is marked not in use."));
+               if (ask (_("Correct"), 1))
                        mark_zone (block);
        }
        if (!++zone_count[block])
@@ -940,9 +945,9 @@ void check_file(struct minix_inode * dir, unsigned int offset)
        ino = * (unsigned short *) (name-2);
        if (ino > INODES) {
                print_current_name();
-               printf(" contains a bad inode number for file '");
+               printf(_(" contains a bad inode number for file '"));
                printf("%.*s'.",namelen,name);
-               if (ask(" Remove",1)) {
+               if (ask(_(" Remove"),1)) {
                        *(unsigned short *)(name-2) = 0;
                        write_block(block, blk);
                }
@@ -956,14 +961,14 @@ void check_file(struct minix_inode * dir, unsigned int offset)
        if (!offset) {
                if (!inode || strcmp(".",name)) {
                        print_current_name();
-                       printf(": bad directory: '.' isn't first\n");
+                       printf(_(": bad directory: '.' isn't first\n"));
                        errors_uncorrected = 1;
                } else return;
        }
        if (offset == dirsize) {
                if (!inode || strcmp("..",name)) {
                        print_current_name();
-                       printf(": bad directory: '..' isn't second\n");
+                       printf(_(": bad directory: '..' isn't second\n"));
                        errors_uncorrected = 1;
                } else return;
        }
@@ -1004,9 +1009,9 @@ check_file2 (struct minix2_inode *dir, unsigned int offset)
        ino = *(unsigned short *) (name - 2);
        if (ino > INODES) {
                print_current_name ();
-               printf (" contains a bad inode number for file '");
+               printf (_(" contains a bad inode number for file '"));
                printf ("%.*s'.", namelen, name);
-               if (ask (" Remove", 1)) {
+               if (ask (_(" Remove"), 1)) {
                        *(unsigned short *) (name - 2) = 0;
                        write_block (block, blk);
                }
@@ -1020,7 +1025,7 @@ check_file2 (struct minix2_inode *dir, unsigned int offset)
        if (!offset) {
                if (!inode || strcmp (".", name)) {
                        print_current_name ();
-                       printf (": bad directory: '.' isn't first\n");
+                       printf (_(": bad directory: '.' isn't first\n"));
                        errors_uncorrected = 1;
                } else
                        return;
@@ -1028,7 +1033,7 @@ check_file2 (struct minix2_inode *dir, unsigned int offset)
        if (offset == dirsize) {
                if (!inode || strcmp ("..", name)) {
                        print_current_name ();
-                       printf (": bad directory: '..' isn't second\n");
+                       printf (_(": bad directory: '..' isn't second\n"));
                        errors_uncorrected = 1;
                } else
                        return;
@@ -1063,7 +1068,7 @@ void recursive_check(unsigned int ino)
                die("internal error");
        if (dir->i_size < 2 * dirsize) {
                print_current_name();
-               printf(": bad directory: size<32");
+               printf(_(": bad directory: size<32"));
                errors_uncorrected = 1;
        }
        for (offset = 0 ; offset < dir->i_size ; offset += dirsize)
@@ -1082,7 +1087,7 @@ recursive_check2 (unsigned int ino)
                die ("internal error");
        if (dir->i_size < 2 * dirsize) {
                print_current_name ();
-               printf (": bad directory: size < 32");
+               printf (_(": bad directory: size < 32"));
                errors_uncorrected = 1;
        }
        for (offset = 0; offset < dir->i_size; offset += dirsize)
@@ -1105,8 +1110,8 @@ void check_counts(void)
 
        for (i=1 ; i <= INODES ; i++) {
                if (!inode_in_use(i) && Inode[i].i_mode && warn_mode) {
-                       printf("Inode %d mode not cleared.",i);
-                       if (ask("Clear",1)) {
+                       printf(_("Inode %d mode not cleared."),i);
+                       if (ask(_("Clear"),1)) {
                                Inode[i].i_mode = 0;
                                changed = 1;
                        }
@@ -1114,21 +1119,21 @@ void check_counts(void)
                if (!inode_count[i]) {
                        if (!inode_in_use(i))
                                continue;
-                       printf("Inode %d not used, marked used in the bitmap.",i);
-                       if (ask("Clear",1))
+                       printf(_("Inode %d not used, marked used in the bitmap."),i);
+                       if (ask(_("Clear"),1))
                                unmark_inode(i);
                        continue;
                }
                if (!inode_in_use(i)) {
-                       printf("Inode %d used, marked unused in the bitmap.",
+                       printf(_("Inode %d used, marked unused in the bitmap."),
                                i);
                        if (ask("Set",1))
                                mark_inode(i);
                }
                if (Inode[i].i_nlinks != inode_count[i]) {
-                       printf("Inode %d (mode = %07o), i_nlinks=%d, counted=%d.",
+                       printf(_("Inode %d (mode = %07o), i_nlinks=%d, counted=%d."),
                                i,Inode[i].i_mode,Inode[i].i_nlinks,inode_count[i]);
-                       if (ask("Set i_nlinks to count",1)) {
+                       if (ask(_("Set i_nlinks to count"),1)) {
                                Inode[i].i_nlinks=inode_count[i];
                                changed=1;
                        }
@@ -1140,13 +1145,13 @@ void check_counts(void)
                if (!zone_count[i]) {
                        if (bad_zone(i))
                                continue;
-                       printf("Zone %d: marked in use, no file uses it.",i);
-                       if (ask("Unmark",1))
+                       printf(_("Zone %d: marked in use, no file uses it."),i);
+                       if (ask(_("Unmark"),1))
                                unmark_zone(i);
                        continue;
                }
-               printf("Zone %d: %sin use, counted=%d\n",
-               i,zone_in_use(i)?"":"not ",zone_count[i]);
+               printf(_("Zone %d: %sin use, counted=%d\n"),
+               i,zone_in_use(i)?"":_("not "),zone_count[i]);
        }
 }
 
@@ -1158,8 +1163,8 @@ check_counts2 (void)
 
        for (i = 1; i <= INODES; i++) {
                if (!inode_in_use (i) && Inode2[i].i_mode && warn_mode) {
-                       printf ("Inode %d mode not cleared.", i);
-                       if (ask ("Clear", 1)) {
+                       printf (_("Inode %d mode not cleared."), i);
+                       if (ask (_("Clear"), 1)) {
                                Inode2[i].i_mode = 0;
                                changed = 1;
                        }
@@ -1167,20 +1172,20 @@ check_counts2 (void)
                if (!inode_count[i]) {
                        if (!inode_in_use (i))
                                continue;
-                       printf ("Inode %d not used, marked used in the bitmap.", i);
-                       if (ask ("Clear", 1))
+                       printf (_("Inode %d not used, marked used in the bitmap."), i);
+                       if (ask (_("Clear"), 1))
                                unmark_inode (i);
                        continue;
                }
                if (!inode_in_use (i)) {
-                       printf ("Inode %d used, marked unused in the bitmap.", i);
-                       if (ask ("Set", 1))
+                       printf (_("Inode %d used, marked unused in the bitmap."), i);
+                       if (ask (_("Set"), 1))
                                mark_inode (i);
                }
                if (Inode2[i].i_nlinks != inode_count[i]) {
-                       printf ("Inode %d (mode = %07o), i_nlinks=%d, counted=%d.",
+                       printf (_("Inode %d (mode = %07o), i_nlinks=%d, counted=%d."),
                                i, Inode2[i].i_mode, Inode2[i].i_nlinks, inode_count[i]);
-                       if (ask ("Set i_nlinks to count", 1)) {
+                       if (ask (_("Set i_nlinks to count"), 1)) {
                                Inode2[i].i_nlinks = inode_count[i];
                                changed = 1;
                        }
@@ -1192,13 +1197,13 @@ check_counts2 (void)
                if (!zone_count[i]) {
                        if (bad_zone (i))
                                continue;
-                       printf ("Zone %d: marked in use, no file uses it.", i);
-                       if (ask ("Unmark", 1))
+                       printf (_("Zone %d: marked in use, no file uses it."), i);
+                       if (ask (_("Unmark"), 1))
                                unmark_zone (i);
                        continue;
                }
-               printf ("Zone %d: %sin use, counted=%d\n",
-                       i, zone_in_use (i) ? "" : "not ", zone_count[i]);
+               printf (_("Zone %d: %sin use, counted=%d\n"),
+                       i, zone_in_use (i) ? "" : _("not "), zone_count[i]);
        }
 }
 #endif
@@ -1230,6 +1235,11 @@ int main(int argc, char ** argv)
        int count;
        int retcode = 0;
 
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+       
+
        if (argc && *argv)
                program_name = *argv;
        if (INODE_SIZE * MINIX_INODES_PER_BLOCK != BLOCK_SIZE)
@@ -1283,13 +1293,13 @@ int main(int argc, char ** argv)
              (Super.s_state & MINIX_VALID_FS) && 
              !force ) {
                if (repair)
-                       printf("%s is clean, no check.\n", device_name);
+                       printf(_("%s is clean, no check.\n"), device_name);
                return retcode;
        }
        else if (force)
-               printf("Forcing filesystem check on %s.\n", device_name);
+               printf(_("Forcing filesystem check on %s.\n"), device_name);
        else if (repair)
-               printf("Filesystem on %s is dirty, needs checking.\n",\
+               printf(_("Filesystem on %s is dirty, needs checking.\n"),\
                        device_name);
 
        read_tables();
@@ -1318,29 +1328,29 @@ int main(int argc, char ** argv)
                for (i=1,free=0 ; i <= INODES ; i++)
                        if (!inode_in_use(i))
                                free++;
-               printf("\n%6ld inodes used (%ld%%)\n",(INODES-free),
+               printf(_("\n%6ld inodes used (%ld%%)\n"),(INODES-free),
                        100*(INODES-free)/INODES);
                for (i=FIRSTZONE,free=0 ; i < ZONES ; i++)
                        if (!zone_in_use(i))
                                free++;
-               printf("%6ld zones used (%ld%%)\n",(ZONES-free),
+               printf(_("%6ld zones used (%ld%%)\n"),(ZONES-free),
                        100*(ZONES-free)/ZONES);
-               printf("\n%6d regular files\n"
+               printf(_("\n%6d regular files\n"
                "%6d directories\n"
                "%6d character device files\n"
                "%6d block device files\n"
                "%6d links\n"
                "%6d symbolic links\n"
                "------\n"
-               "%6d files\n",
+               "%6d files\n"),
                regular,directory,chardev,blockdev,
                links-2*directory+1,symlinks,total-2*directory+1);
        }
        if (changed) {
                write_tables();
-               printf( "----------------------------\n"
+               printf(_(       "----------------------------\n"
                        "FILE SYSTEM HAS BEEN CHANGED\n"
-                       "----------------------------\n");
+                       "----------------------------\n"));
                for (count=0 ; count<3 ; count++)
                        sync();
        }
index 2dd616484bfc29a27b91b7e208e7c41aa96ca8fe..260b4e0995d329849e5a048d5ac2ce511049b933 100644 (file)
@@ -23,8 +23,14 @@ mkfs \- build a Linux file system
 is used to build a Linux file system on a device, usually
 a hard disk partition.
 .I filesys
-is either the device name (e.g. /dev/hda1, /dev/sdb2) or
-the mount point (e.g. /, /usr, /home) for the file system.
+is either the device name (e.g.
+.IR /dev/hda1 ,
+.IR /dev/sdb2 )
+or the mount point (e.g. 
+.IR / ,
+.IR /usr ,
+.IR /home )
+for the file system.
 .I blocks
 is the number of blocks to be used for the file system.
 .PP
@@ -38,9 +44,18 @@ is simply a front-end for the various file system builders
 (\fBmkfs\fR.\fIfstype\fR)
 available under Linux.
 The file system-specific builder is searched for in a number
-of directories like /sbin, /sbin/fs, /sbin/fs.d, /etc/fs, /etc
+of directories like perhaps
+.IR /sbin ,
+.IR /sbin/fs ,
+.IR /sbin/fs.d ,
+.IR /etc/fs ,
+.I /etc
 (the precise list is defined at compile time but at least
-contains /sbin and /sbin/fs), and finally in the directories
+contains
+.I /sbin
+and
+.IR /sbin/fs ),
+and finally in the directories
 listed in the PATH enviroment variable.
 Please see the file system-specific builder manual pages for
 further details.
@@ -93,8 +108,12 @@ Ron Sommeling (sommel@sci.kun.nl)
 The manual page was shamelessly adapted from Remy Card's version
 for the ext2 file system.
 .SH SEE ALSO
+.BR fs (5),
+.BR badblocks (8),
 .BR fsck (8),
-.BR mkfs.minix (8),
-.BR mkfs.ext (8),
+.BR mkdosfs (8),
+.BR mke2fs (8),
 .BR mkfs.ext2 (8),
-.BR mkfs.xiafs (8).
+.BR mkfs.minix (8),
+.BR mkfs.msdos (8),
+.BR mkfs.xiafs (8)
index ba293e939bbe42ce770f2adf423a453a86861d37..9ea27a504b86b0df04c9b00a3d0ee4d07c27d7d4 100644 (file)
@@ -10,6 +10,9 @@
  *
  * Mon Jul  1 18:52:58 1996: janl@math.uio.no (Nicolai Langfeldt):
  *     Incorporated fix by Jonathan Kamens <jik@annex-1-slip-jik.cam.ov.com>
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ *     
  */
 
 
 #include <string.h>
 #include <getopt.h>
 #include <limits.h>
+#include "nls.h"
 
-
-#define VERSION                "1.10"
+#include "../version.h"
+#define VERSION                UTIL_LINUX_VERSION
 
 #ifndef DEFAULT_FSTYPE
 # define DEFAULT_FSTYPE                "ext2"
@@ -38,6 +42,10 @@ int main(int argc, char *argv[])
   int i, more = 0, verbose = 0;
   char *oldpath, *newpath;
 
+  setlocale(LC_ALL, "");
+  bindtextdomain(PACKAGE, LOCALEDIR);
+  textdomain(PACKAGE);
+
   /* Check commandline options. */
   opterr = 0;
   while ((more == 0) && ((i = getopt(argc, argv, "Vt:")) != EOF))
@@ -55,7 +63,7 @@ int main(int argc, char *argv[])
     }
   if (optind == argc) {
     fprintf(stderr,
-      "Usage: mkfs [-V] [-t fstype] [fs-options] device [size]\n");
+      _("Usage: mkfs [-V] [-t fstype] [fs-options] device [size]\n"));
     return -1;
   }
   
@@ -69,7 +77,7 @@ int main(int argc, char *argv[])
          oldpath = "/bin";
   newpath = (char *) malloc(strlen(oldpath) + sizeof(SEARCH_PATH) + 2);
   if (!newpath) {
-    fputs("mkfs: out of memory\n", stderr);
+    fprintf(stderr, _("%s: Out of memory!\n"), "mkfs");
     exit(1);
   }
   sprintf(newpath, "%s:%s\n", SEARCH_PATH, oldpath);
@@ -78,7 +86,7 @@ int main(int argc, char *argv[])
   argv[--optind] = progname;
 
   if (verbose) {
-    puts("mkfs version " VERSION " (" __DATE__ ")");
+    puts(_("mkfs version " VERSION " (" __DATE__ ")"));
     i = optind;
     while (argv[i])
       printf("%s ", argv[i++]);
index 9ff75321aad72fad4af5e66825d8835cccbf8367..6a9c7931c8a210dfc81c56a27ab80e12a9f0973d 100644 (file)
@@ -48,11 +48,8 @@ Check the device for bad blocks before creating the file system.  If any
 are found, the count is printed.
 .TP
 .BI \-n " namelength"
-Specify the maximum length of filenames.  No space is allowed between the
-.B \-n
-and the
-.IR namelength.  Currently, the only allowable
-values are 14 and 30.
+Specify the maximum length of filenames.
+Currently, the only allowable values are 14 and 30.
 .B 30 is the default.
 .TP
 .BI \-i " inodecount"
@@ -77,9 +74,10 @@ Operational error
 .IP 16
 Usage or syntax error
 .SH "SEE ALSO"
+.BR mkfs (8),
 .BR fsck (8),
-.BR mkefs (8),
-.BR efsck (8),
+.BR mke2fs (8),
+.BR e2fsck (8),
 .BR reboot (8)
 .\" .SH AUTHORS
 .\" Linus Torvalds (torvalds@cs.helsinki.fi).
index c34da53264c8bee6d6e9019a6fe52e6b707be68e..b05960b2332fba3b6489d6c708ab996d4e509c4e 100644 (file)
 #include <sys/stat.h>
 #include <sys/ioctl.h>
 #include <mntent.h>
+#include <getopt.h>
 
 #include <linux/fs.h>
 #include <linux/minix_fs.h>
 
+#include "nls.h"
+#include "../version.h"
+
 #ifdef MINIX2_SUPER_MAGIC2
 #define HAVE_MINIX2 1
 #endif
@@ -170,8 +174,19 @@ volatile void fatal_error(const char * fmt_string,int status)
        exit(status);
 }
 
-#define usage() fatal_error("Usage: %s [-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]\n",16)
-#define die(str) fatal_error("%s: " str "\n",8)
+volatile void die(char *str) {
+       fprintf(stderr, "%s: %s\n", program_name, str);
+       exit(8);
+}
+
+volatile void usage()
+{
+       fprintf(stderr, "%s (%s)\n", program_name, util_linux_version);
+       fprintf(stderr,
+               _("Usage: %s [-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]\n"),
+                 program_name);
+       exit(16);
+}
 
 /*
  * Check to make certain that our new filesystem won't be created on
@@ -192,7 +207,7 @@ static void check_mount(void)
        if (!mnt)
                return;
 
-       die("%s is mounted; will not make a filesystem here!");
+       die(_("%s is mounted; will not make a filesystem here!"));
 }
 
 static long valid_offset (int fd, int offset)
@@ -229,7 +244,7 @@ static int count_blocks (int fd)
 static int get_size(const char  *file)
 {
        int     fd;
-       int     size;
+       long    size;
 
        fd = open(file, O_RDWR);
        if (fd < 0) {
@@ -253,28 +268,28 @@ void write_tables(void)
        Super.s_state &= ~MINIX_ERROR_FS;
 
        if (lseek(DEV, 0, SEEK_SET))
-               die("seek to boot block failed in write_tables");
+               die(_("seek to boot block failed in write_tables"));
        if (512 != write(DEV, boot_block_buffer, 512))
-               die("unable to clear boot sector");
+               die(_("unable to clear boot sector"));
        if (BLOCK_SIZE != lseek(DEV, BLOCK_SIZE, SEEK_SET))
-               die("seek failed in write_tables");
+               die(_("seek failed in write_tables"));
        if (BLOCK_SIZE != write(DEV, super_block_buffer, BLOCK_SIZE))
-               die("unable to write super-block");
+               die(_("unable to write super-block"));
        if (IMAPS*BLOCK_SIZE != write(DEV,inode_map,IMAPS*BLOCK_SIZE))
-               die("unable to write inode map");
+               die(_("unable to write inode map"));
        if (ZMAPS*BLOCK_SIZE != write(DEV,zone_map,ZMAPS*BLOCK_SIZE))
-               die("unable to write zone map");
+               die(_("unable to write zone map"));
        if (INODE_BUFFER_SIZE != write(DEV,inode_buffer,INODE_BUFFER_SIZE))
-               die("unable to write inodes");
+               die(_("unable to write inodes"));
        
 }
 
 void write_block(int blk, char * buffer)
 {
        if (blk*BLOCK_SIZE != lseek(DEV, blk*BLOCK_SIZE, SEEK_SET))
-               die("seek failed in write_block");
+               die(_("seek failed in write_block"));
        if (BLOCK_SIZE != write(DEV, buffer, BLOCK_SIZE))
-               die("write failed in write_block");
+               die(_("write failed in write_block"));
 }
 
 int get_free_block(void)
@@ -282,7 +297,7 @@ int get_free_block(void)
        int blk;
 
        if (used_good_blocks+1 >= MAX_GOOD_BLOCKS)
-               die("too many bad blocks");
+               die(_("too many bad blocks"));
        if (used_good_blocks)
                blk = good_blocks_table[used_good_blocks-1]+1;
        else
@@ -290,7 +305,7 @@ int get_free_block(void)
        while (blk < ZONES && zone_in_use(blk))
                blk++;
        if (blk >= ZONES)
-               die("not enough good blocks");
+               die(_("not enough good blocks"));
        good_blocks_table[used_good_blocks] = blk;
        used_good_blocks++;
        return blk;
@@ -356,7 +371,7 @@ void make_bad_inode(void)
                                goto end_bad;
                }
        }
-       die("too many bad blocks");
+       die(_("too many bad blocks"));
 end_bad:
        if (ind)
                write_block(ind, (char *) ind_block);
@@ -407,7 +422,7 @@ make_bad_inode2 (void)
                }
        }
        /* Could make triple indirect block here */
-       die ("too many bad blocks");
+       die (_("too many bad blocks"));
  end_bad:
        if (ind)
                write_block (ind, (char *) ind_block);
@@ -499,7 +514,7 @@ void setup_tables(void)
        inode_map = malloc(IMAPS * BLOCK_SIZE);
        zone_map = malloc(ZMAPS * BLOCK_SIZE);
        if (!inode_map || !zone_map)
-               die("unable to allocate buffers for maps");
+               die(_("unable to allocate buffers for maps"));
        memset(inode_map,0xff,IMAPS * BLOCK_SIZE);
        memset(zone_map,0xff,ZMAPS * BLOCK_SIZE);
        for (i = FIRSTZONE ; i<ZONES ; i++)
@@ -508,13 +523,13 @@ void setup_tables(void)
                unmark_inode(i);
        inode_buffer = malloc(INODE_BUFFER_SIZE);
        if (!inode_buffer)
-               die("unable to allocate buffer for inodes");
+               die(_("unable to allocate buffer for inodes"));
        memset(inode_buffer,0,INODE_BUFFER_SIZE);
-       printf("%ld inodes\n",INODES);
-       printf("%ld blocks\n",ZONES);
-       printf("Firstdatazone=%ld (%ld)\n",FIRSTZONE,NORM_FIRSTZONE);
-       printf("Zonesize=%d\n",BLOCK_SIZE<<ZONESIZE);
-       printf("Maxsize=%ld\n\n",MAXSIZE);
+       printf(_("%ld inodes\n"),INODES);
+       printf(_("%ld blocks\n"),ZONES);
+       printf(_("Firstdatazone=%ld (%ld)\n"),FIRSTZONE,NORM_FIRSTZONE);
+       printf(_("Zonesize=%d\n"),BLOCK_SIZE<<ZONESIZE);
+       printf(_("Maxsize=%ld\n\n"),MAXSIZE);
 }
 
 /*
@@ -528,7 +543,7 @@ long do_check(char * buffer, int try, unsigned int current_block)
        /* Seek to the correct loc. */
        if (lseek(DEV, current_block * BLOCK_SIZE, SEEK_SET) !=
                        current_block * BLOCK_SIZE ) {
-                 die("seek failed during testing of blocks");
+                 die(_("seek failed during testing of blocks"));
        }
 
 
@@ -536,7 +551,7 @@ long do_check(char * buffer, int try, unsigned int current_block)
        got = read(DEV, buffer, try * BLOCK_SIZE);
        if (got < 0) got = 0;   
        if (got & (BLOCK_SIZE - 1 )) {
-               printf("Weird values in do_check: probably bugs\n");
+               printf(_("Weird values in do_check: probably bugs\n"));
        }
        got /= BLOCK_SIZE;
        return got;
@@ -567,7 +582,7 @@ void check_blocks(void)
        while (currently_testing < ZONES) {
                if (lseek(DEV,currently_testing*BLOCK_SIZE,SEEK_SET) !=
                currently_testing*BLOCK_SIZE)
-                       die("seek failed in check_blocks");
+                       die(_("seek failed in check_blocks"));
                try = TEST_BUFFER_BLOCKS;
                if (currently_testing + try > ZONES)
                        try = ZONES-currently_testing;
@@ -576,13 +591,15 @@ void check_blocks(void)
                if (got == try)
                        continue;
                if (currently_testing < FIRSTZONE)
-                       die("bad blocks before data-area: cannot make fs");
+                       die(_("bad blocks before data-area: cannot make fs"));
                mark_zone(currently_testing);
                badblocks++;
                currently_testing++;
        }
-       if (badblocks)
-               printf("%d bad block%s\n",badblocks,(badblocks>1)?"s":"");
+       if (badblocks > 1)
+               printf(_("%d bad blocks\n"), badblocks);
+       else if (badblocks == 1)
+               printf(_("one bad block\n"));
 }
 
 void get_list_blocks(filename)
@@ -594,20 +611,20 @@ char *filename;
 
   listfile=fopen(filename,"r");
   if(listfile == (FILE *)NULL) {
-    die("can't open file of bad blocks");
+    die(_("can't open file of bad blocks"));
   }
   while(!feof(listfile)) {
     fscanf(listfile,"%ld\n", &blockno);
     mark_zone(blockno);
     badblocks++;
   }
-  if(badblocks) {
-    printf("%d bad block%s\n", badblocks, (badblocks>1)?"s":"");
-  }
+  if(badblocks > 1)
+    printf(_("%d bad blocks\n"), badblocks);
+  else if (badblocks == 1)
+    printf(_("one bad block\n"));
 }
 
 int main(int argc, char ** argv)
-
 {
   int i;
   char * tmp;
@@ -617,66 +634,59 @@ int main(int argc, char ** argv)
   if (argc && *argv)
     program_name = *argv;
   if (INODE_SIZE * MINIX_INODES_PER_BLOCK != BLOCK_SIZE)
-    die("bad inode size");
+    die(_("bad inode size"));
 #ifdef HAVE_MINIX2
   if (INODE_SIZE2 * MINIX2_INODES_PER_BLOCK != BLOCK_SIZE)
-    die("bad inode size");
+    die(_("bad inode size"));
 #endif
-  while (argc-- > 1) {
-    argv++;
-    if (argv[0][0] != '-') {
-      if (device_name) {
-       BLOCKS = strtol(argv[0],&tmp,0);
-       if (*tmp) {
-         printf("strtol error: number of"
-                " blocks not specified");
+  opterr = 0;
+  while ((i = getopt(argc, argv, "ci:l:n:v")) != EOF)
+    switch (i) {
+      case 'c':
+       check=1; break;
+      case 'i':
+        req_nr_inodes = (unsigned long) atol(optarg);
+       break;
+      case 'l':
+       listfile = optarg; break;
+      case 'n':
+       i = strtoul(optarg,&tmp,0);
+       if (*tmp)
          usage();
-       }
-      } else
-       device_name = argv[0];
-    } else { 
-      if(argv[0][1] == 'l') {
-       listfile = argv[1];
-       argv++;
-       if (!(argc--))
+       if (i == 14)
+         magic = MINIX_SUPER_MAGIC;
+       else if (i == 30)
+         magic = MINIX_SUPER_MAGIC2;
+       else
          usage();
-      } else {
-       if(argv[0][1] == 'i') {
-         req_nr_inodes
-           = (unsigned long)atol(argv[1]);
-         argv++;
-         if (!(argc--))
-           usage();
-       } else while (*(++argv[0])) {
-         switch (argv[0][0]) {
-         case 'c': check=1; break;
-         case 'n':
-           i = strtoul(argv[0]+1,&tmp,0);
-           if (*tmp)
-             usage();
-           argv[0][1] = '\0';
-           if (i == 14)
-             magic = MINIX_SUPER_MAGIC;
-           else if (i == 30)
-             magic = MINIX_SUPER_MAGIC2;
-           else
-             usage();
-           namelen = i;
-           dirsize = i+2;
-           break;
-         case 'v':
+       namelen = i;
+       dirsize = i+2;
+       break;
+      case 'v':
 #ifdef HAVE_MINIX2
-           version2 = 1;
+       version2 = 1;
 #else
-           fatal_error("%s: not compiled with minix v2 support\n",-1);
+       fatal_error(_("%s: not compiled with minix v2 support\n"),-1);
 #endif
-           break;
-         default: usage();
-         }
-       }
-      }
+       break;
+      default:
+       usage();
     }
+  argc -= optind;
+  argv += optind;
+  if (argc > 0 && !device_name) {
+    device_name = argv[0];
+    argc--;
+    argv++;
+  }
+  if (argc > 0) {
+     BLOCKS = strtol(argv[0],&tmp,0);
+     if (*tmp) {
+       printf(_("strtol error: number of blocks not specified"));
+       usage();
+     }
   }
+
   if (device_name && !BLOCKS)
     BLOCKS = get_size (device_name) / 1024;
   if (!device_name || BLOCKS<10) {
@@ -704,13 +714,13 @@ int main(int argc, char ** argv)
   strcpy(tmp+2,".badblocks");
   DEV = open(device_name,O_RDWR );
   if (DEV<0)
-    die("unable to open %s");
+    die(_("unable to open %s"));
   if (fstat(DEV,&statbuf)<0)
-    die("unable to stat %s");
+    die(_("unable to stat %s"));
   if (!S_ISBLK(statbuf.st_mode))
     check=0;
   else if (statbuf.st_rdev == 0x0300 || statbuf.st_rdev == 0x0340)
-    die("will not try to make filesystem on '%s'");
+    die(_("will not try to make filesystem on '%s'"));
   setup_tables();
   if (check)
     check_blocks();
index 2df606c57aad5c4215dfb47e47b8fbe8294f72b5..c16a89380d70b89e0703354aaea1b11f4579d3be 100644 (file)
@@ -3,7 +3,7 @@
 .\" May be distributed under the GNU General Public License
 .\" Rewritten for 2.1.117, aeb, 981010.
 .\"
-.TH MKSWAP 8 "1 December 1998" "Linux 2.1.117" "Linux Programmer's Manual"
+.TH MKSWAP 8 "25 March 1999" "Linux 2.2.4" "Linux Programmer's Manual"
 .SH NAME
 mkswap \- set up a Linux swap area
 .SH SYNOPSIS
@@ -36,7 +36,8 @@ The
 parameter is superfluous but retained for backwards compatibility.
 (It specifies the desired size of the swap area in 1024-byte blocks.
 .B mkswap
-will use the entire partition or file if it is omitted.)
+will use the entire partition or file if it is omitted.
+Specifying it is unwise - a typo may destroy your disk.)
 
 Linux knows about two styles of swap areas, old style and new style.
 The last 10 bytes of the first page of the swap area distinguishes
@@ -61,8 +62,9 @@ while the bad blocks, if any, can simply be listed. Nobody wants
 to use a swap space with hundreds of bad blocks. (I would not even
 use a swap space with 1 bad block.)
 In the new style swap area this is precisely what is done.
-The maximum useful size of a swap area is now (2^31 - 2*S) bytes,
-roughly 2 GB.
+The maximum useful size of a swap area now depends on the architecture.
+It is roughly 2GB on i386, PPC, m68k, ARM, 1GB on sparc, 512MB on mips,
+128GB on alpha and 3TB on sparc64.
 
 Note that before 2.1.117 the kernel allocated one byte for each page,
 while it now allocates two bytes, so that taking a swap area of 2 GB
@@ -103,6 +105,9 @@ before creating the swap area.
 If any are found, the count is printed.
 .TP
 .B \-f
+Force - go ahead even if the command is stupid.
+This allows the creation of a swap area larger than the file
+or partition it resides on.
 On SPARC, force creation of the swap area.
 Without this option
 .B mkswap
index b3402366c7bdd6bc754bc2cc317654fadce60d33..ef5f58c11a433f27f23c60917c9601cbb66c3c6b 100644 (file)
@@ -8,7 +8,7 @@
 /*
  * 20.12.91  - time began. Got VM working yesterday by doing this by hand.
  *
- * Usuage: mkswap [-c] [-vN] [-f] device [size-in-blocks]
+ * Usage: mkswap [-c] [-vN] [-f] device [size-in-blocks]
  *
  *     -c   for readability checking. (Use it unless you are SURE!)
  *     -vN  for swap areas version N. (Only N=0,1 known today.)
  * Version 1 swap area code (for kernel 2.1.117), aeb, 981010.
  *
  * Sparc fixes, jj@ultra.linux.cz (Jakub Jelinek), 981201 - mangled by aeb.
+ * V1_MAX_PAGES fixes, jj, 990325.
+ *
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ * 
  */
 
 #include <stdio.h>
@@ -34,6 +39,8 @@
 #include <sys/utsname.h>
 #include <sys/stat.h>
 #include <asm/page.h>          /* for PAGE_SIZE and PAGE_SHIFT */
+                               /* we also get PAGE_SIZE via getpagesize() */
+#include "nls.h"
 
 #ifndef _IO
 /* pre-1.3.45 */
@@ -91,7 +98,7 @@ init_signature_page() {
 
 #ifdef PAGE_SIZE
        if (pagesize != PAGE_SIZE)
-               fprintf(stderr, "Assuming pages of size %d\n", pagesize);
+               fprintf(stderr, _("Assuming pages of size %d\n"), pagesize);
 #endif
        signature_page = (int *) malloc(pagesize);
        memset(signature_page,0,pagesize);
@@ -106,7 +113,48 @@ write_signature(char *sig) {
 }
 
 #define V0_MAX_PAGES   (8 * (pagesize - 10))
-#define V1_MAX_PAGES   ((0x7fffffff / pagesize) - 1)
+/* Before 2.2.0pre9 */
+#define V1_OLD_MAX_PAGES       ((0x7fffffff / pagesize) - 1)
+/* Since 2.2.0pre9:
+   error if nr of pages >= SWP_OFFSET(SWP_ENTRY(0,~0UL))
+   with variations on
+       #define SWP_ENTRY(type,offset) (((type) << 1) | ((offset) << 8))
+       #define SWP_OFFSET(entry) ((entry) >> 8)
+   on the various architectures. Below the result - yuk.
+
+   Machine     pagesize        SWP_ENTRY       SWP_OFFSET      bound+1 oldbound+2
+   i386                2^12            o<<8            e>>8            1<<24   1<<19
+   mips                2^12            o<<15           e>>15           1<<17   1<<19
+   alpha       2^13            o<<40           e>>40           1<<24   1<<18
+   m68k                2^12            o<<12           e>>12           1<<20   1<<19
+   sparc       2^{12,13}       (o&0x3ffff)<<9  (e>>9)&0x3ffff  1<<18   1<<{19,18}
+   sparc64     2^13            o<<13           e>>13           1<<51   1<<18
+   ppc         2^12            o<<8            e>>8            1<<24   1<<19
+   armo                2^{13,14,15}    o<<8            e>>8            1<<24   1<<{18,17,16}
+   armv                2^12            o<<9            e>>9            1<<23   1<<19
+
+   assuming that longs have 64 bits on alpha and sparc64 and 32 bits elsewhere.
+
+   The bad part is that we need to know this since the kernel will
+   refuse a swap space if it is too large.
+*/
+/* patch from jj - why does this differ from the above? */
+#if defined(__alpha__)
+#define V1_MAX_PAGES           ((1 << 24) - 1)
+#elif defined(__mips__)
+#define V1_MAX_PAGES           ((1 << 17) - 1)
+#elif defined(__sparc_v9__)
+#define V1_MAX_PAGES           ((3 << 29) - 1)
+#elif defined(__sparc__)
+#define V1_MAX_PAGES           (pagesize == 8192 ? ((3 << 29) - 1) : ((1 << 18) - 1))
+#else
+#define V1_MAX_PAGES           V1_OLD_MAX_PAGES
+#endif
+/* man page now says:
+The maximum useful size of a swap area now depends on the architecture.
+It is roughly 2GB on i386, PPC, m68k, ARM, 1GB on sparc, 512MB on mips,
+128GB on alpha and 3TB on sparc64.
+*/
 
 #define MAX_BADPAGES   ((pagesize-1024-128*sizeof(int)-10)/sizeof(int))
 
@@ -137,8 +185,8 @@ void fatal_error(const char * fmt_string)
        exit(1);
 }
 
-#define usage() fatal_error("Usage: %s [-c] [-v0|-v1] /dev/name [blocks]\n")
-#define die(str) fatal_error("%s: " str "\n")
+#define usage() fatal_error(_("Usage: %s [-c] [-v0|-v1] /dev/name [blocks]\n"))
+#define die(str) fatal_error(_("%s: " str "\n"))
 
 void
 page_ok(int page) {
@@ -182,8 +230,10 @@ check_blocks(void) {
                }
                page_ok(current_page++);
        }
-       if (badpages)
-               printf("%d bad page%s\n",badpages,(badpages>1)?"s":"");
+       if (badpages == 1)
+               printf(_("one bad page\n"));
+       else if (badpages > 1)
+               printf(_("%d bad pages\n"), badpages);
 }
 
 static long valid_offset (int fd, int offset)
@@ -218,11 +268,11 @@ find_size (int fd)
 }
 
 /* return size in pages, to avoid integer overflow */
-static int
+static long
 get_size(const char  *file)
 {
        int     fd;
-       int     size;
+       long    size;
 
        fd = open(file, O_RDONLY);
        if (fd < 0) {
@@ -243,11 +293,17 @@ int main(int argc, char ** argv)
 {
        char * tmp;
        struct stat statbuf;
+       int sz;
        int maxpages;
        int goodpages;
        int offset;
        int force = 0;
 
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+       
+
        if (argc && *argv)
                program_name = *argv;
 
@@ -281,12 +337,20 @@ int main(int argc, char ** argv)
        }
        if (!device_name) {
                fprintf(stderr,
-                       "%s: error: Nowhere to set up swap on?\n",
+                       _("%s: error: Nowhere to set up swap on?\n"),
                        program_name);
                usage();
        }
+       sz = get_size(device_name);
        if (!PAGES) {
-               PAGES = get_size(device_name);
+               PAGES = sz;
+       } else if (PAGES > sz && !force) {
+               fprintf(stderr,
+                       _("%s: error: "
+                         "size %ld is larger than device size %d\n"),
+                       program_name,
+                       PAGES*(pagesize/1024), sz*(pagesize/1024));
+               exit(1);
        }
 
        if (version == -1) {
@@ -300,20 +364,32 @@ int main(int argc, char ** argv)
                        version = 1;
        }
        if (version != 0 && version != 1) {
-               fprintf(stderr, "%s: error: unknown version %d\n",
+               fprintf(stderr, _("%s: error: unknown version %d\n"),
                        program_name, version);
                usage();
        }
        if (PAGES < 10) {
                fprintf(stderr,
-                       "%s: error: swap area needs to be at least %ldkB\n",
+                       _("%s: error: swap area needs to be at least %ldkB\n"),
                        program_name, (long)(10 * pagesize / 1024));
                usage();
        }
+#if 0
        maxpages = ((version == 0) ? V0_MAX_PAGES : V1_MAX_PAGES);
+#else
+       if (!version)
+               maxpages = V0_MAX_PAGES;
+       else if (linux_version_code() >= MAKE_VERSION(2,2,1))
+               maxpages = V1_MAX_PAGES;
+       else {
+               maxpages = V1_OLD_MAX_PAGES;
+               if (maxpages > V1_MAX_PAGES)
+                       maxpages = V1_MAX_PAGES;
+       }
+#endif
        if (PAGES > maxpages) {
                PAGES = maxpages;
-               fprintf(stderr, "%s: warning: truncating swap area to %ldkB\n",
+               fprintf(stderr, _("%s: warning: truncating swap area to %ldkB\n"),
                        program_name, PAGES * pagesize / 1024);
        }
 
@@ -340,11 +416,11 @@ int main(int argc, char ** argv)
                        for (sum = 0; q >= (unsigned short *) buffer;)
                                sum ^= *q--;
                        if (!sum) {
-                               fprintf(stderr, "\
+                               fprintf(stderr, _("\
 %s: Device '%s' contains a valid Sun disklabel.\n\
 This probably means creating v0 swap would destroy your partition table\n\
 No swap created. If you really want to create swap v0 on that device, use\n\
-the -f option to force it.\n",
+the -f option to force it.\n"),
                                        program_name, device_name);
                                exit(1);
                        }
@@ -365,7 +441,7 @@ the -f option to force it.\n",
        goodpages = PAGES - badpages - 1;
        if (goodpages <= 0)
                die("Unable to set up swap-space: unreadable");
-       printf("Setting up swapspace version %d, size = %ld bytes\n",
+       printf(_("Setting up swapspace version %d, size = %ld bytes\n"),
                version, (long)(goodpages*pagesize));
        write_signature((version == 0) ? "SWAP-SPACE" : "SWAPSPACE2");
 
index 62234f3ac548f4b50030b350a6105b0fe4ce9384..7c2b0dc36270f1ccb12baaa548577f56d0ba5c44 100644 (file)
@@ -1,6 +1,10 @@
 /* setfdprm.c  -  Sets user-provided floppy disk parameters, re-activates
                  autodetection and switches diagnostic messages. */
 
+/* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ */
+
 #include <unistd.h>
 #include <stdlib.h>
 #include <stdio.h>
@@ -10,6 +14,7 @@
 #include <sys/stat.h>
 #include <sys/ioctl.h>
 #include <linux/fd.h>
+#include "nls.h"
 
 #define FDPRMFILE "/etc/fdprm"
 #define MAXLINE   200
@@ -22,7 +27,7 @@ static int convert(char *arg)
 
     result = strtol(arg,&end,0);
     if (!*end) return (int) result;
-    fprintf(stderr,"Invalid number: %s\n",arg);
+    fprintf(stderr,_("Invalid number: %s\n"),arg);
     exit(1);
 }
 
@@ -72,7 +77,7 @@ static void find_params(int cmd,int fd,char *name)
            if (sscanf(start,"%s %s %s %s %s %s %s %s %s %s",this,param[0],
              param[1],param[2],param[3],param[4],param[5],param[6],param[7],
              param[8]) != 10) {
-               fprintf(stderr,"Syntax error: '%s'\n",line);
+               fprintf(stderr,_("Syntax error: '%s'\n"),line);
                exit(1);
            }
            if (!strcmp(this,name)) {
@@ -82,7 +87,7 @@ static void find_params(int cmd,int fd,char *name)
            }
        }
     }
-    fprintf(stderr,"No such parameter set: '%s'\n",name);
+    fprintf(stderr,_("No such parameter set: '%s'\n"),name);
     exit(1);
 }
 
@@ -92,13 +97,13 @@ static void usage(char *name)
     char *this;
 
     if ((this = strrchr(name,'/')) != NULL) name = this+1;
-    fprintf(stderr,"usage: %s [ -p ] dev name\n",name);
-    fprintf(stderr,"       %s [ -p ] dev size sect heads tracks stretch \
-gap rate spec1 fmt_gap\n",name);
+    fprintf(stderr,_("usage: %s [ -p ] dev name\n"),name);
+    fprintf(stderr,_("       %s [ -p ] dev size sect heads tracks stretch \
+gap rate spec1 fmt_gap\n"),name);
 #ifdef FDMEDCNG
-    fprintf(stderr,"       %s [ -c | -y | -n | -d ] dev\n",name);
+    fprintf(stderr,_("       %s [ -c | -y | -n | -d ] dev\n"),name);
 #else
-    fprintf(stderr,"       %s [ -c | -y | -n ] dev\n",name);
+    fprintf(stderr,_("       %s [ -c | -y | -n ] dev\n"),name);
 #endif
     exit(1);
 }
@@ -110,6 +115,10 @@ main(int argc,char **argv)
     unsigned int cmd;
     char *name;
 
+    setlocale(LC_ALL, "");
+    bindtextdomain(PACKAGE, LOCALEDIR);
+    textdomain(PACKAGE);
+
     name = argv[0];
     if (argc < 3) usage(name);
     cmd = FDSETPRM;
index e5415acdc984c3ff8c8b6ab7457f14d97d1883d2..873b2850d0e0f639d5a1a7e312127bddb21e6b33 100644 (file)
@@ -3,24 +3,33 @@
 # Revised: Fri Oct  6 21:02:21 1995 by r.faith@ieee.org
 # Copyright 1992, 1993, 1994, 1995 Rickard E. Faith (faith@cs.unc.edu)
 #
-
+include ../make_include
 include ../MCONFIG
 
 MAN8=
 SBIN=
+CFDISK=cfdisk
+NOTMADE=
 
-ifneq "$(CPU)" "sparc"
-# fsck and mkfs will compile, but there is no kernel support on sparc
-ifneq "$(CPU)" "m68k"
-MAN8:=$(MAN8) fdisk.8 cfdisk.8 sfdisk.8
-SBIN:=$(SBIN) fdisk cfdisk sfdisk
+ifneq "$(HAVE_SLANG)" "yes"
+ifneq "$(HAVE_NCURSES)" "yes"
+CFDISK=
+NOTMADE=cfdisk
 endif
+endif
+
+ifeq "$(CPU)" "m68k"
+# It seems the m68k people do not want *fdisk
 else
-MAN8:=$(MAN8) fdisk.8
 SBIN:=$(SBIN) fdisk
+MAN8:=$(MAN8) fdisk.8
+ifneq "$(CPU)" "sparc"
+SBIN:=$(SBIN) $(CFDISK) sfdisk
+MAN8:=$(MAN8) cfdisk.8 sfdisk.8
+endif
 endif
 
-all: $(SBIN)
+all: $(SBIN) $(NOTMADE)
 
 cfdisk.o: cfdisk.c
 ifeq "$(HAVE_SLANG)" "yes"
@@ -33,12 +42,12 @@ else
 endif
 endif
 
-cfdisk: cfdisk.o llseek.o
+cfdisk: cfdisk.o llseek.o i386_sys_types.o
 ifeq "$(HAVE_SLANG)" "yes"
        $(CC) $(LDFLAGS) $^ -o $@ $(LIBSLANG)
 else
 ifeq "$(HAVE_NCURSES)" "yes"
-       $(CC) $(LDFLAGS) $^ -o $@ $(LIBCURSES) -lm
+       $(CC) $(LDFLAGS) $^ -o $@ $(LIBCURSES)
 else
        @echo $@ not made since it requires ncurses or slang
 endif
@@ -50,12 +59,14 @@ activate: sfdisk
        ln -s sfdisk activate
 
 fdisk: fdisk.o llseek.o fdiskbsdlabel.o fdisksgilabel.o fdisksunlabel.o \
-       fdiskaixlabel.o
+       fdiskaixlabel.o i386_sys_types.o
 fdisk.o: fdisk.c fdisk.h
 fdiskbsdlabel.o: fdiskbsdlabel.c fdisk.h fdiskbsdlabel.h
 fdisksunlabel.o: fdisksunlabel.c fdisksunlabel.h fdisk.h
 fdiskaixlabel.o: fdiskaixlabel.c fdiskaixlabel.h fdisk.h
-sfdisk: sfdisk.o
+fdisk.o cfdisk.o sfdisk.o fdiskbsdlabel.o fdisksunlabel.o \
+       fdisksgilabel.o fdiskaixlabel.o i386_sys_types.o: common.h
+sfdisk: sfdisk.o i386_sys_types.o
 
 install: all
        $(INSTALLDIR) $(SBINDIR)
@@ -65,4 +76,4 @@ install: all
 
 .PHONY:        clean
 clean:
-       -rm -f *.o *~ core $(SBIN)
+       -rm -f *.o *~ core $(SBIN) addpart delpart
index 86b182525d5c07978c161a9ad7fe83da794758cd..b02d6aa2227636192ffa261581558f0d221acf01 100644 (file)
@@ -369,7 +369,7 @@ unless there are sectors available inside the extended partition.
 
 If space is available, you are prompted for the first cylinder:
 
-     First sector ([237]-977): _
+     First cylinder ([237]-977): _
 
 The limits are the lowest and the highest cylinders in which sectors
 are available in the appropriate part of the disk.  The square-bracketed
diff --git a/fdisk/addpart.c b/fdisk/addpart.c
new file mode 100644 (file)
index 0000000..11d4305
--- /dev/null
@@ -0,0 +1,40 @@
+/* very primitive wrapper around the `add partition' ioctl */
+#include <stdio.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <sys/ioctl.h>
+#include <linux/blkpg.h>
+
+int
+main(int argc, char **argv){
+       int fd;
+       struct blkpg_ioctl_arg a;
+       struct blkpg_partition p;
+
+       if (argc != 5) {
+               fprintf(stderr,
+                       "usage: %s diskdevice partitionnr start length\n",
+                       argv[0]);
+               exit(1);
+       }
+       if ((fd = open(argv[1], O_RDONLY)) < 0) {
+               perror(argv[1]);
+               exit(1);
+       }
+       p.pno = atoi(argv[2]);
+       p.start = 512 * ((long long) atol(argv[3]));
+       p.length = 512 * ((long long) atol(argv[4]));
+       p.devname[0] = 0;
+       p.volname[0] = 0;
+       a.op = BLKPG_ADD_PARTITION;
+       a.flags = 0;
+       a.datalen = sizeof(p);
+       a.data = &p;
+
+       if (ioctl(fd, BLKPG, &a) == -1) {
+               perror("BLKPG");
+               exit(1);
+       }
+           
+       return 0;
+}
index c8391af2a7f29f1ffcad374cd639296def3401b5..09dd54701887e196906b7cc185b147e284d614d6 100644 (file)
 .SH NAME
 cfdisk \- Curses based disk partition table manipulator for Linux
 .SH SYNOPSIS
-.BI "cfdisk [ \-avz ] [ \-c " cylinders " ] [ \-h " heads " ]"
+.BI "cfdisk [ \-agvz ] [ \-c " cylinders " ] [ \-h " heads " ]"
 .BI "[ \-s " sectors-per-track " ] [ -P " opt " ] [ " device " ]"
 .SH DESCRIPTION
 .B cfdisk
-is a curses based program for partitioning a hard disk drive.  The
+is a curses based program for partitioning any hard disk drive.
+Typical values of the
 .I device
-can be any one of the following:
+argument are:
 .sp
 .nf
 .RS
@@ -34,14 +35,28 @@ can be any one of the following:
 .RE
 .fi
 
+In order to write the partition table
 .B cfdisk
-first tries to read the geometry of the hard disk.  If it fails, an
-error message is displayed and
+needs something called the `geometry' of the disk: the number
+of `heads' and the number of `sectors per track'. Linux does not
+use any geometry, so if the disk will not be accessed by other
+operating systems, you can safely accept the defaults that
 .B cfdisk
-exits.  This should only happen when partitioning a SCSI drive on an
-adapter without a BIOS.  To correct this problem, you can set the
-.IR cylinders ", " heads " and " sectors-per-track
-on the command line.  Next,
+chooses for you. The geometry used by
+.B cfdisk
+is found as follows. First the partition table is examined,
+to see what geometry was used by the previous program that
+changed it. If the partition table is empty, or contains garbage,
+or does not point at a consistent geometry, the kernel is
+asked for advice. If nothing works 255 heads and 63 sectors/track
+is assumed. The geometry can be overridden on the command line
+or by use of the `g' command. When partitioning an empty large modern
+disk, picking 255 heads and 63 sectors/track is always a good idea.
+There is no need to set the number of cylinders, since
+.B cfdisk
+knows the disk size.
+
+Next,
 .B cfdisk
 tries to read the current partition table from the disk drive.  If it
 is unable to figure out the partition table, an error is displayed and
@@ -368,6 +383,10 @@ key to return to the main command line.
 Use an arrow cursor instead of reverse video for highlighting the
 current partition.
 .TP
+.B \-g
+Do not use the geometry given by the disk driver, but try to
+guess a geometry from the partition table.
+.TP
 .B \-v
 Print the version number and copyright.
 .TP
index 96ddbbf24703eef5ac05c0d08ded99aa84f58c44..4fe759b68d577dffa323cf32f690263a24a27386 100644 (file)
  * >2GB patches: Sat Feb 11 09:08:10 1995, faith@cs.unc.edu
  * Prettier menus: Sat Feb 11 09:08:25 1995, Janne Kukonlehto
  *                                           <jtklehto@stekt.oulu.fi>
- * Versions 0.8e-n: aeb@cwi.nl
+ * Versions 0.8e-p: aeb@cwi.nl
+ * Rebaptised 2.9p, following util-linux versioning.
+ *
  *  Recognition of NTFS / HPFS difference inspired by patches
  *  from Marty Leisner <leisner@sdsp.mc.xerox.com>
  *  Exit codes by Enrique Zanardi <ezanardi@ull.es>:
  *     0: all went well
- *     1: command line error
- *     2: hardware problems [BAD_SEEK, BAD_READ, BAD_WRITE or BAD_OPEN].
- *     3: ioctl(fd, HDIO_GETGEO,...) failed [BAD_GEOMETRY].
- *     4: bad partition table on disk. [BAD_PRIMARY or BAD_LOGICAL].
+ *     1: command line error, out of memory
+ *     2: hardware problems [Cannot open/seek/read/write disk drive].
+ *     3: ioctl(fd, HDIO_GETGEO,...) failed. (Probably it is not a disk.)
+ *     4: bad partition table on disk. [Bad primary/logical partition].
+ *
+ * Sat, 23 Jan 1999 19:34:45 +0100 <Vincent.Renardias@ldsol.com>
+ *  Internationalized + provided initial French translation.
+ * Sat Mar 20 09:26:34 EST 1999 <acme@conectiva.com.br>
+ *  Some more i18n.
+ * Sun Jul 18 03:19:42 MEST 1999 <aeb@cwi.nl>
+ *  Terabyte-sized disks.
  *
  ****************************************************************************/
 
 #include <sys/ioctl.h>
 #include <linux/types.h>
 #include <linux/hdreg.h>
-#include <linux/fs.h>          /* for BLKRRPART */
+#include <linux/fs.h>          /* for BLKRRPART, BLKGETSIZE */
+
+#include "nls.h"
+#include "common.h"
 
 #if defined(__GNUC__) || defined(HAS_LONG_LONG)
 typedef long long ext2_loff_t;
@@ -77,17 +89,25 @@ typedef long      ext2_loff_t;
 extern ext2_loff_t ext2_llseek(unsigned int fd, ext2_loff_t offset,
                               unsigned int origin);
 
-#define VERSION "0.8n"
+#include "../version.h"
+#define VERSION UTIL_LINUX_VERSION
 
 #define DEFAULT_DEVICE "/dev/hda"
 #define ALTERNATE_DEVICE "/dev/sda"
 
+/* With K=1024 we have `binary' megabytes, gigabytes, etc.
+   Some misguided hackers like that.
+   With K=1000 we have MB and GB that follow the standards
+   [SI, ATA, IEEE etc] and the disk manufacturers and the law. */
+#define K      1000
+
 #define LINE_LENGTH 80
 #define MAXIMUM_PARTS 60
 
 #define SECTOR_SIZE 512
 
-#define MAX_CYLINDERS 65535
+#define MAX_CYLINDERS 65535    /* there is no maximum anymore */
+                               /* the kernel max is 65535 */
 #define MAX_HEADS 255
 #define MAX_SECTORS 63
 
@@ -105,55 +125,48 @@ extern ext2_loff_t ext2_llseek(unsigned int fd, ext2_loff_t offset,
 #define LINUX_SWAP     0x82
 #define LINUX          0x83
 
-#define ADD_EXISTS "This partition is already in use"
-#define ADD_UNUSABLE "This partition is unusable"
-#define DEL_EMPTY "Cannot delete an empty partition"
-#define ID_EMPTY "Cannot change FS Type to empty"
-#define ID_EXT "Cannot change FS Type to extended"
-#define NEED_EXT "No room to create the extended partition"
-#define NO_FLAGS "Cannot make this partition bootable"
-#define NO_MORE_PARTS "No more partitions"
-#define PRINT_OPEN_ERR "Cannot open file '%s'"
-#define TWO_EXTENDEDS "Cannot create logical drive here -- would create two extended partitions"
-#define TYPE_EMPTY "Cannot change the type of an empty partition"
-#define BAD_COMMAND "Illegal command"
-#define MAX_UNMAXABLE "Cannot maximize this partition"
-#define BAD_OPEN "Cannot open disk drive"
-#define BAD_SEEK "Cannot seek on disk drive"
-#define BAD_READ "Cannot read disk drive"
-#define BAD_WRITE "Cannot write disk drive"
-#define BAD_GEOMETRY "Cannot read disk drive geometry"
-#define BAD_PRIMARY "Bad primary partition"
-#define BAD_LOGICAL "Bad logical partition"
-#define BAD_CYLINDERS "Illegal cylinders value"
-#define BAD_HEADS "Illegal heads value"
-#define BAD_SECTORS "Illegal sectors value"
-#define READONLY_WARN "Opened disk read-only - you have no permission to write"
-#define WRITE_WARN "Warning!!  This may destroy data on your disk!"
-#define YES_NO "Please enter `yes' or `no'"
-#define WRITING_PART "Writing partition table to disk..."
-#define YES_WRITE "Wrote partition table to disk"
-#define NO_WRITE "Did not write partition table to disk"
-#define RRPART_FAILED "Wrote partition table, but re-read table failed.  Reboot to update table."
-#define NOT_DOS_MBR_BOOTABLE "Not precisely one primary partition is bootable. DOS MBR cannot boot this."
+/* There used to be defined error messages here. However, it turns out
+ * that gettext cannot handle constructions like
+ *
+ * #define ADD_EXISTS _("This partition is already in use")
+ * ...
+ *     print_warning(ADD_EXISTS);
+ *
+ * So, now the messages are spread over the source again.
+ * Another thing which gettext cannot cope with are multi-line strings:
+ *
+ *     printf("Usage:
+ * Print version:
+ *     cfdisk -v
+ * Print partition table:
+ *     cfdisk -P{r|s|t} device
+ * ");
+ *
+ * (This is a commonly used gnu extension of the C syntax, but not ANSI-C.)
+ * Another reason to uglify the source a little.
+ */
+
 
 #define PRI_OR_LOG -1
 #define PRIMARY -2
 #define LOGICAL -3
 
-#define COL_ID_WIDTH 20
+#define COL_ID_WIDTH 25
 
 #define CR '\015'
 #define ESC '\033'
 #define DEL '\177'
 #define BELL '\007'
-/* '\014' == ^L */
-#define REDRAWKEY '\014'
+#define TAB '\011'
+#define REDRAWKEY '\014'       /* ^L */
+#define UPKEY '\020'           /* ^P */
+#define DOWNKEY '\016'         /* ^N */
 
 /* Display units */
-#define MEGABYTES 1
-#define SECTORS 2
-#define CYLINDERS 3
+#define GIGABYTES 1
+#define MEGABYTES 2
+#define SECTORS 3
+#define CYLINDERS 4
 
 #define GS_DEFAULT -1
 #define GS_ESCAPE -2
@@ -168,24 +181,6 @@ extern ext2_loff_t ext2_llseek(unsigned int fd, ext2_loff_t offset,
 #define round_int(d) ((double)((int)(d+0.5)))
 #define ceiling(d) ((double)(((d) != (int)(d)) ? (int)(d+1.0) : (int)(d)))
 
-#define set_hsc(h,s,c,sector) \
-{ \
-      s = sector % sectors + 1;        \
-      sector /= sectors;       \
-      h = sector % heads;      \
-      sector /= heads;         \
-      c = sector & 0xFF;       \
-      s |= (sector >> 2) & 0xC0;\
-}
-
-#define is_extended(x) ((x) == DOS_EXTENDED || (x) == WIN98_EXTENDED || \
-                        (x) == LINUX_EXTENDED)
-
-#define is_dos_partition(x) ((x) == 1 || (x) == 4 || (x) == 6)
-#define may_have_dos_label(x) (is_dos_partition(x) \
-   || (x) == 7 || (x) == 0xb || (x) == 0xc || (x) == 0xe \
-   || (x) == 0x11 || (x) == 0x14 || (x) == 0x16 || (x) == 0x17)
-
 struct partition {
         unsigned char boot_ind;         /* 0x80 - active */
         unsigned char head;             /* starting head */
@@ -199,6 +194,58 @@ struct partition {
         unsigned char size4[4];         /* nr of sectors in partition */
 };
 
+int heads = 0;
+int sectors = 0;
+int cylinders = 0;
+int cylinder_size = 0;         /* heads * sectors */
+int total_size = 0;            /* actual_size rounded down */
+long actual_size = 0;          /* set using ioctl */
+                               /* explicitly given user values */
+int user_heads = 0, user_sectors = 0, user_cylinders = 0;
+                               /* kernel values; ignore the cylinders */
+int kern_heads = 0, kern_sectors = 0;
+                               /* partition-table derived values */
+int pt_heads = 0, pt_sectors = 0;
+
+
+void
+set_hsc0(unsigned char *h, unsigned char *s, int *c, int sector) {
+       if (sector >= 1024*cylinder_size)
+               sector = 1024*cylinder_size - 1;
+       *s = sector % sectors + 1;
+       sector /= sectors;
+       *h = sector % heads;
+       sector /= heads;
+       *c = sector;
+}
+
+void
+set_hsc(unsigned char *h, unsigned char *s, unsigned char *c, int sector) {
+       int cc;
+
+       set_hsc0(h, s, &cc, sector);
+       *c = cc & 0xFF;
+       *s |= (cc >> 2) & 0xC0;
+}
+
+void
+set_hsc_begin(struct partition *p, int sector) {
+       set_hsc(& p->head, & p->sector, & p->cyl, sector);
+}
+
+void
+set_hsc_end(struct partition *p, int sector) {
+       set_hsc(& p->end_head, & p->end_sector, & p->end_cyl, sector);
+}
+
+#define is_extended(x) ((x) == DOS_EXTENDED || (x) == WIN98_EXTENDED || \
+                        (x) == LINUX_EXTENDED)
+
+#define is_dos_partition(x) ((x) == 1 || (x) == 4 || (x) == 6)
+#define may_have_dos_label(x) (is_dos_partition(x) \
+   || (x) == 7 || (x) == 0xb || (x) == 0xc || (x) == 0xe \
+   || (x) == 0x11 || (x) == 0x14 || (x) == 0x16 || (x) == 0x17)
+
 /* start_sect and nr_sects are stored little endian on all machines */
 /* moreover, they are not aligned correctly */
 void
@@ -266,9 +313,6 @@ typedef struct {
 
 char *disk_device = DEFAULT_DEVICE;
 int fd;
-int heads = 0;
-int sectors = 0;
-int cylinders = 0;
 int changed = FALSE;
 int opened = FALSE;
 int opentype;
@@ -286,6 +330,7 @@ __sighandler_t old_SIGINT, old_SIGTERM;
 int arrow_cursor = FALSE;
 int display_units = MEGABYTES;
 int zero_table = FALSE;
+int use_partition_table_geometry = FALSE;
 int print_only = 0;
 
 /* Curses screen information */
@@ -297,7 +342,7 @@ int NUM_ON_SCREEN = 1;
 
 /* Y coordinates */
 int HEADER_START = 0;
-int DISK_TABLE_START = 5;
+int DISK_TABLE_START = 6;
 int WARNING_START = 23;
 int COMMAND_LINE_Y = 21;
 
@@ -310,55 +355,24 @@ int LABEL_START = 54;
 int SIZE_START = 70;
 int COMMAND_LINE_X = 5;
 
-#define NUM_PART_TYPES 256
-char *partition_type[NUM_PART_TYPES] = {
-    [LINUX_MINIX] = "Linux/MINIX",
-    [LINUX_SWAP]  = "Linux Swap",
-    [LINUX]       = "Linux",
-    [FREE_SPACE]  = "Free Space",
-    [DOS_EXTENDED]= "Extended",
-    [LINUX_EXTENDED] = "Linux extended",
-    [0x01]        = "DOS FAT12",
-    [0x02]        = "XENIX root",
-    [0x03]        = "XENIX usr",
-    [0x04]        = "DOS FAT16",
-    [0x06]        = "DOS FAT16 (big)",
-    [OS2_OR_NTFS] = "OS/2 HPFS or NTFS",
-    [0x08]        = "AIX",
-    [0x09]        = "AIX bootable",
-    [0x0A]        = "OS/2 Boot Manager",
-    [0x0B]        = "Win95 FAT32",
-    [0x0C]        = "Win95 FAT32 (LBA)",
-    [0x0E]        = "Win95 FAT16 (LBA)",
-    [0x0F]        = "Win95 Extended (LBA)",
-    [0x11]        = "Hidden DOS FAT12",
-    [0x14]        = "Hidden DOS FAT16",
-    [0x16]        = "Hidden DOS FAT16 (big)",
-    [0x17]        = "Hidden OS/2 HPFS or NTFS",
-    [0x40]        = "Venix 80286",
-    [0x41]       = "PPC PReP boot",
-    [0x51]        = "Novell?",
-    [0x52]        = "Microport",
-    [0x63]        = "GNU HURD",
-    [0x64]        = "Novell Netware 286",
-    [0x65]        = "Novell Netware 386",
-    [0x75]        = "PC/IX",
-    [0x80]        = "Old MINIX",
-    [0x93]        = "Amoeba",
-    [0x94]        = "Amoeba BBT",
-    [0xA5]        = "BSD/386",
-    [0xA6]        = "OpenBSD",
-    [0xA7]        = "NEXTSTEP",
-    [0xB7]        = "BSDI fs",
-    [0xB8]        = "BSDI swap",
-    [0xC7]        = "Syrinx",
-    [0xDB]        = "CP/M",
-    [0xE1]        = "DOS access",
-    [0xE3]        = "DOS R/O",
-    [0xEB]       = "BeOS fs",
-    [0xF2]        = "DOS secondary",
-    [0xFF]        = "BBT"
-};
+void die_x(int ret);
+void draw_screen(void);
+
+/* Guaranteed alloc */
+void *
+xmalloc (size_t size) {
+     void *t;
+
+     if (size == 0)
+          return NULL;
+
+     t = malloc (size);
+     if (t == NULL) {
+          fprintf (stderr, _("%s: Out of memory!\n"), "cfdisk");
+         die_x(1);
+     }
+     return t;
+}
 
 /* Some libc's have their own basename() */
 char *my_basename(char *devname)
@@ -367,28 +381,37 @@ char *my_basename(char *devname)
     return s ? s+1 : devname;
 }
 
+char *partition_type_name(unsigned char type)
+{
+    struct systypes *s = i386_sys_types;
+
+    while(s->name && s->type != type)
+           s++;
+    return s->name;
+}
+
 char *partition_type_text(int i)
 {
     if (p_info[i].id == UNUSABLE)
-        return "Unusable";
+        return _("Unusable");
     else if (p_info[i].id == FREE_SPACE)
-        return "Free Space";
+        return _("Free Space");
     else if (p_info[i].id == LINUX) {
         if (!strcmp(p_info[i].fstype, "ext2"))
-             return "Linux ext2";
+             return _("Linux ext2");
         else
-             return "Linux";
+             return _("Linux");
     } else if (p_info[i].id == OS2_OR_NTFS) {
         if (!strncmp(p_info[i].fstype, "HPFS", 4))
-             return "OS/2 HPFS";
+             return _("OS/2 HPFS");
         else if (!strncmp(p_info[i].ostype, "OS2", 3))
-             return "OS/2 IFS";
+             return _("OS/2 IFS");
         else if (!p_info[i].ostype)
              return p_info[i].ostype;
         else
-             return "NTFS";
+             return _("NTFS");
     } else
-        return partition_type[p_info[i].id];
+        return partition_type_name(p_info[i].id);
 }
 
 void fdexit(int ret)
@@ -397,13 +420,13 @@ void fdexit(int ret)
        close(fd);
 
     if (changed) {
-       fprintf(stderr, "Disk has been changed.\n");
-       fprintf(stderr, "Reboot the system to ensure the partition "
-                       "table is correctly updated.\n");
+       fprintf(stderr, _("Disk has been changed.\n"));
+       fprintf(stderr, _("Reboot the system to ensure the partition "
+                       "table is correctly updated.\n"));
        
-       fprintf( stderr, "\nWARNING: If you have created or modified any\n"
+       fprintf( stderr, _("\nWARNING: If you have created or modified any\n"
                         "DOS 6.x partitions, please see the cfdisk manual\n"
-                        "page for additional information.\n" );
+                        "page for additional information.\n") );
     }
 
     exit(ret);
@@ -494,23 +517,25 @@ void print_warning(char *s)
     }
 }
 
-void die_x(int ret);
-
 void fatal(char *s, int ret)
 {
-    char str[LINE_LENGTH];
+    char *err = _("FATAL ERROR");
 
     if (curses_started) {
-        sprintf(str, "FATAL ERROR: %s", s);
+        char *str = xmalloc(strlen(s) + strlen(err) + 10);
+        /* snprintf does not compile on all libc's */
+        sprintf(str, "%s: %s", err, s);
+        if (strlen(str) > COLS)
+                str[COLS] = 0;
         mvaddstr(WARNING_START, (COLS-strlen(str))/2, str);
-        sprintf(str, "Press any key to exit fdisk");
+        sprintf(str, _("Press any key to exit cfdisk"));
         mvaddstr(WARNING_START+1, (COLS-strlen(str))/2, str);
         putchar(BELL); /* CTRL-G */
         refresh();
         (void)getch();
         die_x(ret);
     } else {
-        fprintf(stderr, "FATAL ERROR: %s\n", s);
+        fprintf(stderr, "%s: %s\n", err, s);
         exit(ret);
     }
 }
@@ -539,17 +564,17 @@ void die_x(int ret)
 void read_sector(char *buffer, int sect_num)
 {
     if (ext2_llseek(fd, ((ext2_loff_t) sect_num)*SECTOR_SIZE, SEEK_SET) < 0)
-       fatal(BAD_SEEK, 2);
+       fatal(_("Cannot seek on disk drive"), 2);
     if (read(fd, buffer, SECTOR_SIZE) != SECTOR_SIZE)
-       fatal(BAD_READ, 2);
+       fatal(_("Cannot read disk drive"), 2);
 }
 
 void write_sector(char *buffer, int sect_num)
 {
     if (ext2_llseek(fd, ((ext2_loff_t) sect_num)*SECTOR_SIZE, SEEK_SET) < 0)
-       fatal(BAD_SEEK, 2);
+       fatal(_("Cannot seek on disk drive"), 2);
     if (write(fd, buffer, SECTOR_SIZE) != SECTOR_SIZE)
-       fatal(BAD_WRITE, 2);
+       fatal(_("Cannot write disk drive"), 2);
 }
 
 void dos_copy_to_info(char *to, int tosz, char *from, int fromsz) {
@@ -703,6 +728,8 @@ void remove_part(int i)
        p_info[p] = p_info[p+1];
 
     num_parts--;
+    if (cur_part == num_parts)
+       cur_part--;
 }
 
 void insert_empty_part(int i, int first, int last)
@@ -751,7 +778,7 @@ void del_part(int i)
     if (i < num_parts - 1)
        p_info[i].last_sector = p_info[i+1].first_sector - 1;
     else
-       p_info[i].last_sector = sectors*heads*cylinders - 1;
+       p_info[i].last_sector = total_size - 1;
 
     p_info[i].offset = 0;
     p_info[i].flags = 0;
@@ -781,23 +808,41 @@ void del_part(int i)
 }
 
 int add_part(int num, int id, int flags, int first, int last, int offset,
-            int want_label)
+            int want_label, char **errmsg)
 {
     int i, pri = 0, log = 0;
 
-    if (num_parts == MAXIMUM_PARTS ||
-       first < 0 ||
-       first >= cylinders*heads*sectors ||
-       last < 0 ||
-       last >= cylinders*heads*sectors) {
-       return -1;              /* bad start or end */
+    if (num_parts == MAXIMUM_PARTS) {
+       *errmsg = _("Too many partitions");
+       return -1;
     }
 
-    for (i = 0; i < num_parts; i++)
+    if (first < 0) {
+       *errmsg = _("Partition begins before sector 0");
+       return -1;
+    }
+
+    if (last < 0) {
+       *errmsg = _("Partition ends before sector 0");
+       return -1;
+    }
+
+    if (first >= total_size) {
+       *errmsg = _("Partition begins after end-of-disk");
+       return -1;
+    }
+
+    if (last >= total_size) {
+       *errmsg = _("Partition ends after end-of-disk");
+       return -1;
+    }
+
+    for (i = 0; i < num_parts; i++) {
        if (p_info[i].id > 0 && IS_PRIMARY(p_info[i].num))
            pri++;
        else if (p_info[i].id > 0 && IS_LOGICAL(p_info[i].num))
            log++;
+    }
     if (is_extended(ext_info.id) && log > 0)
        pri++;
 
@@ -810,8 +855,18 @@ int add_part(int num, int id, int flags, int first, int last, int offset,
 
     for (i = 0; i < num_parts && p_info[i].last_sector < first; i++);
 
-    if (i == num_parts || p_info[i].id != FREE_SPACE
-       || last > p_info[i].last_sector) {
+    if (i < num_parts && p_info[i].id != FREE_SPACE) {
+        if (last < p_info[i].first_sector)
+             *errmsg = _("logical partitions not in disk order");
+        else if (first + offset <= p_info[i].last_sector &&
+                 p_info[i].first_sector + p_info[i].offset <= last)
+             *errmsg = _("logical partitions overlap");
+        else
+             *errmsg = _("enlarged logical partitions overlap");
+        return -1;
+    }
+
+    if (i == num_parts || last > p_info[i].last_sector) {
        return -1;
     }
 
@@ -837,8 +892,8 @@ int add_part(int num, int id, int flags, int first, int last, int offset,
 
     if (IS_LOGICAL(num)) {
        if (!is_extended(ext_info.id)) {
-           print_warning("!!!! Internal error creating logical "
-                         "drive with no extended partition !!!!");
+           print_warning(_("!!!! Internal error creating logical "
+                         "drive with no extended partition !!!!"));
        } else {
            /* We might have a logical partition outside of the extended
             * partition's range --> we have to extend the extended
@@ -848,7 +903,7 @@ int add_part(int num, int id, int flags, int first, int last, int offset,
             */
            if (first < ext_info.first_sector) {
                if (i < num_parts-1 && IS_PRIMARY(p_info[i+1].num)) {
-                   print_warning(TWO_EXTENDEDS);
+                   print_warning(_("Cannot create logical drive here -- would create two extended partitions"));
                    return -1;
                } else {
                    if (first == 0) {
@@ -860,7 +915,7 @@ int add_part(int num, int id, int flags, int first, int last, int offset,
                }
            } else if (last > ext_info.last_sector) {
                if (i > 0 && IS_PRIMARY(p_info[i-1].num)) {
-                   print_warning(TWO_EXTENDEDS);
+                   print_warning(_("Cannot create logical drive here -- would create two extended partitions"));
                    return -1;
                } else {
                    ext_info.last_sector = last;
@@ -976,36 +1031,57 @@ int menuUpdate( int y, int x, struct MenuItem *menuItems, int itemLength,
                char *available, int menuType, int current )
 {
     int i, lmargin = x, ymargin = y;
+    char *mcd;
+
     /* Print available buttons */
     move( y, x ); clrtoeol();
+
     for( i = 0; menuItems[i].key; i++ )
     {
         char buff[20];
         int lenName;
+       const char *mi;
+
         /* Search next available button */
         while( menuItems[i].key && !strchr(available, menuItems[i].key) )
         {
             i++;
         }
         if( !menuItems[i].key ) break; /* No more menu items */
+
         /* If selected item is not available and we have bypassed it,
           make current item selected */
         if( current < i && menuItems[current].key < 0 ) current = i;
+
         /* If current item is selected, highlight it */
         if( current == i ) /*attron( A_REVERSE )*/ standout ();
+
         /* Print item */
-        lenName = strlen( menuItems[i].name );
-        if(lenName > itemLength)
-            print_warning("Menu item too long. Menu may look odd.");
+       /* Because of a bug in gettext() we must not translate empty strings */
+       if (menuItems[i].name[0])
+               mi = _(menuItems[i].name);
+       else
+               mi = "";
+        lenName = strlen( mi );
+#if 0
+        if(lenName > itemLength || lenName >= sizeof(buff))
+            print_warning(_("Menu item too long. Menu may look odd."));
+#endif
+       if (lenName >= sizeof(buff)) {  /* truncate ridiculously long string */
+           strncpy( buff, mi, sizeof(buff)-1);
+           buff[sizeof(buff)-1] = 0;
+       } else
         if( menuType & MENU_BUTTON )
             sprintf( buff, "[%*s%-*s]", (itemLength - lenName) / 2, "",
-                (itemLength - lenName + 1) / 2 + lenName, menuItems[i].name );
+                (itemLength - lenName + 1) / 2 + lenName, mi );
         else
             sprintf( buff, "%*s%-*s", (itemLength - lenName) / 2, "",
-                (itemLength - lenName + 1) / 2 + lenName, menuItems[i].name );
+                (itemLength - lenName + 1) / 2 + lenName, mi );
         mvaddstr( y, x, buff );
+
         /* Lowlight after selected item */
         if( current == i ) /*attroff( A_REVERSE )*/ standend ();
+
         /* Calculate position for the next item */
         if( menuType & MENU_VERT )
         {
@@ -1028,30 +1104,34 @@ int menuUpdate( int y, int x, struct MenuItem *menuItems, int itemLength,
             }
         }
     }
+
     /* Print the description of selected item */
-    mvaddstr( WARNING_START + 1,
-             (COLUMNS - strlen( menuItems[current].desc )) / 2,
-             menuItems[current].desc );
+    mcd = _(menuItems[current].desc);
+    mvaddstr( WARNING_START + 1, (COLUMNS - strlen( mcd )) / 2, mcd );
     return y;
 }
 
-/* This function takes a list of menu items, lets the user choose one of them *
- * and returns the value keyboard shortcut of the selected menu item          */
+/* This function takes a list of menu items, lets the user choose one *
+ * and returns the value keyboard shortcut of the selected menu item  */
 
-int menuSelect( int y, int x, struct MenuItem *menuItems, int itemLength, char *available, int menuType, int menuDefault )
+int menuSelect( int y, int x, struct MenuItem *menuItems, int itemLength,
+               char *available, int menuType, int menuDefault )
 {
     int i, ylast = y, key = 0, current = menuDefault;
+
     if( !( menuType & ( MENU_HORIZ | MENU_VERT ) ) )   
     {
-        print_warning("Menu without direction. Defaulting horizontal.");
+        print_warning(_("Menu without direction. Defaulting horizontal."));
         menuType |= MENU_HORIZ;
     }
+
     /* Make sure that the current is one of the available items */
     while( !strchr(available, menuItems[current].key) )
     {
         current ++ ;
         if( !menuItems[current].key ) current = 0;
     }
+
     /* Repeat until allowable choice has been made */
     while( !key )
     {
@@ -1087,67 +1167,80 @@ int menuSelect( int y, int x, struct MenuItem *menuItems, int itemLength, char *
                 switch( getch() )
                 {
                     case 'A': /* Up arrow */
-                        if( menuType & MENU_VERT )
-                        {
-                            do {
-                                current -- ;
-                                if( current < 0 ) while( menuItems[current+1].key ) current ++ ;
-                            } while( !strchr( available, menuItems[current].key ) );
-                            key = 0;
-                        }
-                        else
-                            key = MENU_UP;
+                       key = MENU_UP;
                         break;
                     case 'B': /* Down arrow */
-                        if( menuType & MENU_VERT )
-                        {
-                            do {
-                                current ++ ;
-                                if( !menuItems[current].key ) current = 0 ;
-                            } while( !strchr( available, menuItems[current].key ) );
-                            key = 0;
-                        }
-                        else
-                            key = MENU_DOWN;
+                        key = MENU_DOWN;
                         break;
                     case 'C': /* Right arrow */
-                        if( menuType & MENU_HORIZ )
-                        {
-                            do {
-                                current ++ ;
-                                if( !menuItems[current].key ) 
-                                {
-                                    current = 0 ;
-                                }
-                            } while( !strchr( available, menuItems[current].key ) );
-                            key = 0;
-                        }
-                        else
-                            key = MENU_RIGHT;
+                        key = MENU_RIGHT;
                         break;
                     case 'D': /* Left arrow */
-                        if( menuType & MENU_HORIZ )
-                        {
-                            do {
-                                current -- ;
-                                if( current < 0 )
-                                {
-                                    while( menuItems[current + 1].key ) current ++ ;
-                                }
-                            } while( !strchr( available, menuItems[current].key ) );
-                            key = 0;
-                        }
-                        else
-                            key = MENU_LEFT;
+                        key = MENU_LEFT;
                         break;
                 }
             }
         }
+
         /* Enter equals to the keyboard shortcut of current menu item */
-        if( key == 13 )
-        {
+        if( key == CR)
             key = menuItems[current].key;
-        }
+
+       /* Give alternatives for arrow keys in case the window manager
+          swallows these */
+       if ( key == TAB )
+           key = MENU_RIGHT;
+        if ( key == UPKEY )    /* ^P */
+           key = MENU_UP;
+       if ( key == DOWNKEY )   /* ^N */
+           key = MENU_DOWN;
+
+       if (key == MENU_UP) {
+           if( menuType & MENU_VERT ) {
+                do {
+                    current -- ;
+                    if( current < 0 )
+                       while( menuItems[current+1].key )
+                           current ++ ;
+                } while( !strchr( available, menuItems[current].key ));
+                key = 0;
+            }
+       }
+
+       if (key == MENU_DOWN) {
+            if( menuType & MENU_VERT ) {
+                do {
+                    current ++ ;
+                   if( !menuItems[current].key ) current = 0 ;
+               } while( !strchr( available, menuItems[current].key ));
+               key = 0;
+           }
+       }
+
+       if (key == MENU_RIGHT) {
+           if( menuType & MENU_HORIZ ) {
+               do {
+                   current ++ ;
+                   if( !menuItems[current].key )
+                       current = 0 ;
+               } while( !strchr( available, menuItems[current].key ));
+               key = 0;
+           }
+       }
+
+       if (key == MENU_LEFT) {
+            if( menuType & MENU_HORIZ ) {
+                do {
+                    current -- ;
+                    if( current < 0 ) {
+                        while( menuItems[current + 1].key )
+                             current ++ ;
+                    }
+                } while( !strchr( available, menuItems[current].key ));
+                key = 0;
+            }
+       }
+
         /* Should all keys to be accepted? */
         if( key && (menuType & MENU_ACCEPT_OTHERS) ) break;
         /* Is pressed key among acceptable ones */
@@ -1158,7 +1251,7 @@ int menuSelect( int y, int x, struct MenuItem *menuItems, int itemLength, char *
         {
             key = 0;
             putchar( BELL );
-            print_warning("Illegal key");
+            print_warning(_("Illegal key"));
         }
     }
     /* Clear out prompts and such */
@@ -1181,7 +1274,7 @@ void menuContinue(void)
 {
     static struct MenuItem menuContinueBtn[]=
     {
-        { 'c', "", "Press a key to continue" },
+        { 'c', "", N_("Press a key to continue") },
         { 0, NULL, NULL }
     };
 
@@ -1196,9 +1289,10 @@ int menuSimple(struct MenuItem *menuItems, int menuDefault)
 {
     int i, j, itemLength = 0;
     char available[MENU_MAX_ITEMS];
+
     for(i = 0; menuItems[i].key; i++)
     {
-        j = strlen( menuItems[i].name );
+        j = strlen( _(menuItems[i].name) );
         if( j > itemLength ) itemLength = j;
         available[i] = menuItems[i].key;
     }
@@ -1221,13 +1315,15 @@ void new_part(int i)
     int num = -1;
     int num_sects = last - first + 1;
     int len, ext, j;
+    char *errmsg;
+
 
     if (p_info[i].num == PRI_OR_LOG) {
         static struct MenuItem menuPartType[]=
         {
-            { 'p', "Primary", "Create a new primary partition" },
-            { 'l', "Logical", "Create a new logical partition" },
-            { ESC, "Cancel", "Don't create a partition" },
+            { 'p', N_("Primary"), N_("Create a new primary partition") },
+            { 'l', N_("Logical"), N_("Create a new logical partition") },
+            { ESC, N_("Cancel"), N_("Don't create a partition") },
             { 0, NULL, NULL }
         };
         
@@ -1243,28 +1339,30 @@ void new_part(int i)
     else if (p_info[i].num == LOGICAL)
        num = find_logical(i);
     else
-       print_warning("!!! Internal error !!!");
+       print_warning(_("!!! Internal error !!!"));
 
-    sprintf(def, "%.2f", ceiling(num_sects/20.48)/100);
-    mvaddstr(COMMAND_LINE_Y, COMMAND_LINE_X, "Size (in MB): ");
+    sprintf(def, "%.2f", ceiling(num_sects/(K*0.02))/100);
+    mvaddstr(COMMAND_LINE_Y, COMMAND_LINE_X, _("Size (in MB): "));
     if ((len = get_string(response, LINE_LENGTH, def)) <= 0 &&
        len != GS_DEFAULT)
        return;
     else if (len > 0) {
-#define num_cyls(bytes) (round_int(bytes/SECTOR_SIZE/(sectors*heads)))
+#define num_cyls(bytes) (round_int(bytes/SECTOR_SIZE/cylinder_size))
        for (j = 0;
             j < len-1 && (isdigit(response[j]) || response[j] == '.');
             j++);
        if (toupper(response[j]) == 'K') {
-           num_sects = num_cyls(atof(response)*1024)*sectors*heads;
+           num_sects = num_cyls(atof(response)*K)*cylinder_size;
        } else if (toupper(response[j]) == 'M') {
-           num_sects = num_cyls(atof(response)*1024*1024)*sectors*heads;
+           num_sects = num_cyls(atof(response)*K*K)*cylinder_size;
+       } else if (toupper(response[j]) == 'G') {
+           num_sects = num_cyls(atof(response)*K*K*K)*cylinder_size;
        } else if (toupper(response[j]) == 'C') {
-           num_sects = round_int(atof(response))*sectors*heads;
+           num_sects = round_int(atof(response))*cylinder_size;
        } else if (toupper(response[j]) == 'S') {
            num_sects = round_int(atof(response));
        } else {
-           num_sects = num_cyls(atof(response)*1024*1024)*sectors*heads;
+           num_sects = num_cyls(atof(response)*K*K)*cylinder_size;
        }
     }
 
@@ -1278,9 +1376,9 @@ void new_part(int i)
         */
        static struct MenuItem menuPlace[]=
        {
-           { 'b', "Beginning", "Add partition at beginning of free space" },
-           { 'e', "End", "Add partition at end of free space" },
-           { ESC, "Cancel", "Don't create a partition" },
+           { 'b', N_("Beginning"), N_("Add partition at beginning of free space") },
+           { 'e', N_("End"), N_("Add partition at end of free space") },
+           { ESC, N_("Cancel"), N_("Don't create a partition") },
            { 0, NULL, NULL }
        };
        c = menuSimple( menuPlace, 0 );
@@ -1297,11 +1395,11 @@ void new_part(int i)
         * extended partition first.
         */
        if ((ext = find_primary()) < 0) {
-           print_warning(NEED_EXT);
+           print_warning(_("No room to create the extended partition"));
            return;
        }
        (void) add_part(ext, DOS_EXTENDED, 0, first, last,
-                      (first == 0 ? sectors : 0), 0);
+                      (first == 0 ? sectors : 0), 0, &errmsg);
        first = ext_info.first_sector + ext_info.offset;
     }
 
@@ -1312,14 +1410,76 @@ void new_part(int i)
     if (first == 0 || IS_LOGICAL(num))
        offset = sectors;
 
-    (void) add_part(num, id, flags, first, last, offset, 0);
+    (void) add_part(num, id, flags, first, last, offset, 0, &errmsg);
+}
+
+void get_kernel_geometry(void)
+{
+#ifdef HDIO_GETGEO
+    struct hd_geometry geometry;
+
+    if (!ioctl(fd, HDIO_GETGEO, &geometry)) {
+       kern_heads = geometry.heads;
+       kern_sectors = geometry.sectors;
+    }
+#endif
+}
+
+void get_partition_table_geometry(partition_table *bufp)
+{
+    struct partition *p;
+    int i,h,s,hh,ss;
+    int first = TRUE;
+    int bad = FALSE;
+
+    if (bufp->p.magicflag[0] != PART_TABLE_FLAG0 ||
+       bufp->p.magicflag[1] != PART_TABLE_FLAG1)
+       fatal(_("Bad signature on partition table"), 3);
+
+    hh = ss = 0;
+    for (i=0; i<4; i++) {
+       p = &(bufp->p.part[i]);
+       if (p->sys_ind != 0) {
+           h = p->end_head + 1;
+           s = (p->end_sector & 077);
+           if (first) {
+               hh = h;
+               ss = s;
+               first = FALSE;
+           } else if (hh != h || ss != s)
+               bad = TRUE;
+       }
+    }
+
+    if (!first && !bad) {
+       pt_heads = hh;
+       pt_sectors = ss;
+    }
+}
+
+void decide_on_geometry(void)
+{
+    heads = (user_heads ? user_heads :
+            pt_heads ? pt_heads :
+            kern_heads ? kern_heads : 255);
+    sectors = (user_sectors ? user_sectors :
+              pt_sectors ? pt_sectors :
+              kern_sectors ? kern_sectors : 63);
+    cylinder_size = heads*sectors;
+    cylinders = actual_size/cylinder_size;
+    if (user_cylinders > 0 && user_cylinders <= 0x7fffffff/cylinder_size)
+           cylinders = user_cylinders;
+
+    total_size = cylinder_size*cylinders;
+    if (total_size > actual_size)
+           print_warning(_("You specified more cylinders than fit on disk"));
 }
 
 void clear_p_info(void)
 {
     num_parts = 1;
     p_info[0].first_sector = 0;
-    p_info[0].last_sector = sectors*heads*cylinders - 1;
+    p_info[0].last_sector = total_size - 1;
     p_info[0].offset = 0;
     p_info[0].flags = 0;
     p_info[0].id = FREE_SPACE;
@@ -1337,15 +1497,14 @@ void fill_p_info(void)
 {
     int pn, i, bs, bsz;
     struct partition *p;
-    struct hd_geometry geometry;
     partition_table buffer;
     partition_info tmp_ext = { 0, 0, 0, 0, FREE_SPACE, PRIMARY };
 
     if ((fd = open(disk_device, O_RDWR)) < 0) {
         if ((fd = open(disk_device, O_RDONLY)) < 0)
-             fatal(BAD_OPEN, 2);
+             fatal(_("Cannot open disk drive"), 2);
         opentype = O_RDONLY;
-        print_warning(READONLY_WARN);
+        print_warning(_("Opened disk read-only - you have no permission to write"));
         if (curses_started) {
              refresh();
              getch();
@@ -1365,23 +1524,23 @@ void fill_p_info(void)
     ioctl(fd, BLKFLSBUF);      /* ignore errors */
                                /* e.g. Permission Denied */
 
-    if (!ioctl(fd, HDIO_GETGEO, &geometry)) {
-       if (!heads)
-           heads = geometry.heads;
-       if (!sectors)
-           sectors = geometry.sectors;
-       if (!cylinders)
-           cylinders = geometry.cylinders;
-    }
-
-    if (!heads || !sectors || !cylinders)
-       fatal(BAD_GEOMETRY, 3); /* probably a file or cdrom */
+    if (ioctl(fd, BLKGETSIZE, &actual_size))
+       fatal(_("Cannot get disk size"), 3);
 
     read_sector(buffer.c.b, 0);
 
+    get_kernel_geometry();
+
+    if (!zero_table || use_partition_table_geometry)
+       get_partition_table_geometry(& buffer);
+
+    decide_on_geometry();
+
     clear_p_info();
 
     if (!zero_table) {
+       char *errmsg = "";
+
        for (i = 0; i < 4; i++) {
            p = & buffer.p.part[i];
            bs = get_start_sect(p);
@@ -1389,11 +1548,13 @@ void fill_p_info(void)
 
            if (p->sys_ind > 0 &&
                add_part(i, p->sys_ind, p->boot_ind,
-                        ((bs <= sectors) ? 0 : bs),
-                        bs + bsz - 1,
-                        ((bs <= sectors) ? bs : 0),
-                        1)) {
-               fatal(BAD_PRIMARY, 4);
+                        ((bs <= sectors) ? 0 : bs), bs + bsz - 1,
+                        ((bs <= sectors) ? bs : 0), 1, &errmsg)) {
+                   /* avoid snprintf - it does not exist on ancient systems */
+                   char *bad = _("Bad primary partition");
+                   char *msg = (char *) xmalloc(strlen(bad) + strlen(errmsg) + 30);
+                   sprintf(msg, "%s %d: %s", bad, i, errmsg);
+                   fatal(msg, 4);
            }
            if (is_extended(buffer.p.part[i].sys_ind))
                tmp_ext = ext_info;
@@ -1419,8 +1580,13 @@ void fill_p_info(void)
                        if (add_part(i++, p->sys_ind, p->boot_ind,
                             logical_sectors[logical-1],
                             logical_sectors[logical-1] + bs + bsz - 1,
-                            bs, 1))
-                               fatal(BAD_LOGICAL, 4);
+                            bs, 1, &errmsg)) {
+                               /* avoid snprintf */
+                               char *bad = _("Bad logical partition");
+                               char *msg = (char *) xmalloc(strlen(bad) + strlen(errmsg) + 30);
+                               sprintf(msg, "%s %d: %s", bad, i-1, errmsg);
+                               fatal(msg, 4);
+                       }
                }
 
                for (pn = 0;
@@ -1440,21 +1606,18 @@ void fill_p_info(void)
 
 void fill_part_table(struct partition *p, partition_info *pi)
 {
-    int sects;
+    int begin;
 
     p->boot_ind = pi->flags;
     p->sys_ind = pi->id;
+    begin = pi->first_sector + pi->offset;
     if (IS_LOGICAL(pi->num))
        set_start_sect(p,pi->offset);
     else
-       set_start_sect(p,pi->first_sector + pi->offset);
-    set_nr_sects(p, pi->last_sector - (pi->first_sector+pi->offset) + 1);
-    sects = (((pi->first_sector+pi->offset)/(sectors*heads) > 1023) ?
-            heads*sectors*1024 - 1 : pi->first_sector+pi->offset);
-    set_hsc(p->head, p->sector, p->cyl, sects);
-    sects = ((pi->last_sector/(sectors*heads) > 1023) ?
-            heads*sectors*1024 - 1 : pi->last_sector);
-    set_hsc(p->end_head, p->end_sector, p->end_cyl, sects);
+       set_start_sect(p,begin);
+    set_nr_sects(p, pi->last_sector - begin + 1);
+    set_hsc_begin(p, begin);
+    set_hsc_end(p, pi->last_sector);
 }
 
 void fill_primary_table(partition_table *buffer)
@@ -1479,7 +1642,7 @@ void fill_primary_table(partition_table *buffer)
 void fill_logical_table(partition_table *buffer, partition_info *pi)
 {
     struct partition *p;
-    int i, sects;
+    int i;
 
     for (i = 0; i < logical && pi->first_sector != logical_sectors[i]; i++);
     if (i == logical || buffer->p.magicflag[0] != PART_TABLE_FLAG0
@@ -1505,12 +1668,8 @@ void fill_logical_table(partition_table *buffer, partition_info *pi)
        p->sys_ind = DOS_EXTENDED;
        set_start_sect(p, pi->first_sector - ext_info.first_sector - ext_info.offset);
        set_nr_sects(p, pi->last_sector - pi->first_sector + 1);
-       sects = ((pi->first_sector/(sectors*heads) > 1023) ?
-                heads*sectors*1024 - 1 : pi->first_sector);
-       set_hsc(p->head, p->sector, p->cyl, sects);
-       sects = ((pi->last_sector/(sectors*heads) > 1023) ?
-                heads*sectors*1024 - 1 : pi->last_sector);
-       set_hsc(p->end_head, p->end_sector, p->end_cyl, sects);
+       set_hsc_begin(p, pi->first_sector);
+       set_hsc_end(p, pi->last_sector);
     }
 
     buffer->p.magicflag[0] = PART_TABLE_FLAG0;
@@ -1526,7 +1685,7 @@ void write_part_table(void)
     char response[LINE_LENGTH];
 
     if (opentype == O_RDONLY) {
-        print_warning(READONLY_WARN);
+        print_warning(_("Opened disk read-only - you have no permission to write"));
         refresh();
         getch();
         clear_warning();
@@ -1538,32 +1697,27 @@ void write_part_table(void)
         is_bdev = 1;
 
     if (is_bdev) {
-        print_warning(WRITE_WARN);
+        print_warning(_("Warning!!  This may destroy data on your disk!"));
 
         while (!done) {
              mvaddstr(COMMAND_LINE_Y, COMMAND_LINE_X,
-                      "Are you sure you want write the partition table "
-                      "to disk? (yes or no): ");
+                      _("Are you sure you want write the partition table "
+                      "to disk? (yes or no): "));
              len = get_string(response, LINE_LENGTH, NULL);
              clear_warning();
              if (len == GS_ESCAPE)
                   return;
-             else if (len == 2 &&
-                      toupper(response[0]) == 'N' &&
-                      toupper(response[1]) == 'O') {
-                  print_warning(NO_WRITE);
+             else if (strcasecmp(response, _("no")) == 0) {
+                  print_warning(_("Did not write partition table to disk"));
                   return;
-             } else if (len == 3 &&
-                        toupper(response[0]) == 'Y' &&
-                        toupper(response[1]) == 'E' &&
-                        toupper(response[2]) == 'S')
+             } else if (strcasecmp(response, _("yes")) == 0)
                   done = TRUE;
              else
-                  print_warning(YES_NO);
+                  print_warning(_("Please enter `yes' or `no'"));
         }
 
         clear_warning();
-        print_warning(WRITING_PART);
+        print_warning(_("Writing partition table to disk..."));
         refresh();
     }
 
@@ -1588,11 +1742,11 @@ void write_part_table(void)
 
         clear_warning();
         if (changed)
-             print_warning(YES_WRITE);
+             print_warning(_("Wrote partition table to disk"));
         else
-             print_warning(RRPART_FAILED);
+             print_warning(_("Wrote partition table, but re-read table failed.  Reboot to update table."));
     } else
-        print_warning(YES_WRITE);
+        print_warning(_("Wrote partition table to disk"));
 
     /* Check: unique bootable primary partition? */
     ct = 0;
@@ -1600,7 +1754,7 @@ void write_part_table(void)
        if (IS_PRIMARY(i) && p_info[i].flags == ACTIVE_FLAG)
            ct++;
     if (ct != 1)
-       print_warning(NOT_DOS_MBR_BOOTABLE);
+       print_warning(_("Not precisely one primary partition is bootable. DOS MBR cannot boot this."));
 }
 
 void fp_printf(FILE *fp, char *format, ...)
@@ -1658,7 +1812,7 @@ void print_raw_table(void)
        to_file = TRUE;
     } else {
        mvaddstr(COMMAND_LINE_Y, COMMAND_LINE_X,
-                "Enter filename or press RETURN to display on screen: ");
+                _("Enter filename or press RETURN to display on screen: "));
 
        if ((to_file = get_string(fname, LINE_LENGTH, NULL)) < 0)
            return;
@@ -1666,7 +1820,7 @@ void print_raw_table(void)
        if (to_file) {
            if ((fp = fopen(fname, "w")) == NULL) {
                char errstr[LINE_LENGTH];
-               sprintf(errstr, PRINT_OPEN_ERR, fname);
+               sprintf(errstr, _("Cannot open file '%s'"), fname);
                print_warning(errstr);
                return;
            }
@@ -1677,16 +1831,16 @@ void print_raw_table(void)
        }
     }
 
-    fp_printf(fp, "Disk Drive: %s\n", disk_device);
+    fp_printf(fp, _("Disk Drive: %s\n"), disk_device);
 
-    fp_printf(fp, "Sector 0:\n");
+    fp_printf(fp, _("Sector 0:\n"));
     read_sector(buffer.c.b, 0);
     fill_primary_table(&buffer);
     print_file_buffer(fp, buffer.c.b);
 
     for (i = 0; i < num_parts; i++)
        if (IS_LOGICAL(p_info[i].num)) {
-           fp_printf(fp, "Sector %d:\n", p_info[i].first_sector);
+           fp_printf(fp, _("Sector %d:\n"), p_info[i].first_sector);
            read_sector(buffer.c.b, p_info[i].first_sector);
            fill_logical_table(&buffer, &(p_info[i]));
            print_file_buffer(fp, buffer.c.b);
@@ -1706,27 +1860,27 @@ void print_p_info_entry(FILE *fp, partition_info *p)
     char part_str[40];
 
     if (p->id == UNUSABLE)
-       fp_printf(fp, "   None   ");
+       fp_printf(fp, _("   None   "));
     else if (p->id == FREE_SPACE && p->num == PRI_OR_LOG)
-       fp_printf(fp, "   Pri/Log");
+       fp_printf(fp, _("   Pri/Log"));
     else if (p->id == FREE_SPACE && p->num == PRIMARY)
-       fp_printf(fp, "   Primary");
+       fp_printf(fp, _("   Primary"));
     else if (p->id == FREE_SPACE && p->num == LOGICAL)
-       fp_printf(fp, "   Logical");
+       fp_printf(fp, _("   Logical"));
     else
        fp_printf(fp, "%2d %-7.7s", p->num+1,
-                 IS_LOGICAL(p->num) ? "Logical" : "Primary");
+                 IS_LOGICAL(p->num) ? _("Logical") : _("Primary"));
 
     fp_printf(fp, " ");
 
     fp_printf(fp, "%8d%c", p->first_sector,
-             ((p->first_sector/(sectors*heads)) !=
-              ((float)p->first_sector/(sectors*heads)) ?
+             ((p->first_sector/cylinder_size) !=
+              ((float)p->first_sector/cylinder_size) ?
               '*' : ' '));
 
     fp_printf(fp, "%8d%c", p->last_sector,
-             (((p->last_sector+1)/(sectors*heads)) !=
-              ((float)(p->last_sector+1)/(sectors*heads)) ?
+             (((p->last_sector+1)/cylinder_size) !=
+              ((float)(p->last_sector+1)/cylinder_size) ?
               '*' : ' '));
 
     fp_printf(fp, "%7d%c", p->offset,
@@ -1738,29 +1892,29 @@ void print_p_info_entry(FILE *fp, partition_info *p)
 
     size = p->last_sector - p->first_sector + 1;
     fp_printf(fp, "%8d%c", size,
-             ((size/(sectors*heads)) != ((float)size/(sectors*heads)) ?
+             ((size/cylinder_size) != ((float)size/cylinder_size) ?
               '*' : ' '));
 
     fp_printf(fp, " ");
 
     if (p->id == UNUSABLE)
-       sprintf(part_str, "%.17s", "Unusable");
+       sprintf(part_str, "%.17s", _("Unusable"));
     else if (p->id == FREE_SPACE)
-       sprintf(part_str, "%.17s", "Free Space");
-    else if (partition_type[p->id])
-       sprintf(part_str, "%.17s (%02X)", partition_type[p->id], p->id);
+       sprintf(part_str, "%.17s", _("Free Space"));
+    else if (partition_type_name(p->id))
+       sprintf(part_str, "%.17s (%02X)", partition_type_name(p->id), p->id);
     else
-       sprintf(part_str, "%.17s (%02X)", "Unknown", p->id);
+       sprintf(part_str, "%.17s (%02X)", _("Unknown"), p->id);
     fp_printf(fp, "%-22.22s", part_str);
 
     fp_printf(fp, " ");
 
     if (p->flags == ACTIVE_FLAG)
-       fp_printf(fp, "Boot (%02X)", p->flags);
+       fp_printf(fp, _("Boot (%02X)"), p->flags);
     else if (p->flags != 0)
-       fp_printf(fp, "Unknown (%02X)", p->flags);
+       fp_printf(fp, _("Unknown (%02X)"), p->flags);
     else
-       fp_printf(fp, "None (%02X)", p->flags);
+       fp_printf(fp, _("None (%02X)"), p->flags);
 
     fp_printf(fp, "\n");
 }
@@ -1776,7 +1930,7 @@ void print_p_info(void)
        to_file = TRUE;
     } else {
        mvaddstr(COMMAND_LINE_Y, COMMAND_LINE_X,
-                "Enter filename or press RETURN to display on screen: ");
+                _("Enter filename or press RETURN to display on screen: "));
 
        if ((to_file = get_string(fname, LINE_LENGTH, NULL)) < 0)
            return;
@@ -1784,7 +1938,7 @@ void print_p_info(void)
        if (to_file) {
            if ((fp = fopen(fname, "w")) == NULL) {
                char errstr[LINE_LENGTH];
-               sprintf(errstr, PRINT_OPEN_ERR, fname);
+               sprintf(errstr, _("Cannot open file '%s'"), fname);
                print_warning(errstr);
                return;
            }
@@ -1795,11 +1949,11 @@ void print_p_info(void)
        }
     }
 
-    fp_printf(fp, "Partition Table for %s\n", disk_device);
+    fp_printf(fp, _("Partition Table for %s\n"), disk_device);
     fp_printf(fp, "\n");
-    fp_printf(fp, "            First    Last\n");
-    fp_printf(fp, " # Type     Sector   Sector   Offset  Length   Filesystem Type (ID)   Flags\n");
-    fp_printf(fp, "-- ------- -------- --------- ------ --------- ---------------------- ---------\n");
+    fp_printf(fp, _("            First    Last\n"));
+    fp_printf(fp, _(" # Type     Sector   Sector   Offset  Length   Filesystem Type (ID)   Flags\n"));
+    fp_printf(fp, _("-- ------- -------- --------- ------ --------- ---------------------- ---------\n"));
 
     for (i = 0; i < num_parts; i++) {
        if (pext && (p_info[i].first_sector >= ext_info.first_sector)) {
@@ -1820,10 +1974,13 @@ void print_p_info(void)
 void print_part_entry(FILE *fp, int num, partition_info *pi)
 {
     int first = 0, start = 0, end = 0, size = 0;
-    int ss = 0, sh = 0, sc = 0;
-    int es = 0, eh = 0, ec = 0;
+    unsigned char ss, es, sh, eh;
+    int sc, ec;
     int flags = 0, id = 0;
 
+    ss = sh = es = eh = 0;
+    sc = ec = 0;
+
     if (pi != NULL) {
        flags = pi->flags;
        id = pi->id;
@@ -1836,20 +1993,9 @@ void print_part_entry(FILE *fp, int num, partition_info *pi)
        start = pi->first_sector + pi->offset;
        end = pi->last_sector;
        size = end - start + 1;
-       if ((start/(sectors*heads)) > 1023)
-           start = heads*sectors*1024 - 1;
-       if ((end/(sectors*heads)) > 1023)
-           end = heads*sectors*1024 - 1;
-
-       ss = start % sectors + 1;
-       start /= sectors;
-       sh = start % heads;
-       sc = start / heads;
 
-       es = end % sectors + 1;
-       end /= sectors;
-       eh = end % heads;
-       ec = end / heads;
+       set_hsc0(&sh, &ss, &sc, start);
+       set_hsc0(&eh, &es, &ec, end);
     }
 
     fp_printf(fp, "%2d  0x%02X %4d %4d %4d 0x%02X %4d %4d %4d %8d %9d\n",
@@ -1868,7 +2014,7 @@ void print_part_table(void)
        to_file = TRUE;
     } else {
        mvaddstr(COMMAND_LINE_Y, COMMAND_LINE_X,
-                "Enter filename or press RETURN to display on screen: ");
+                _("Enter filename or press RETURN to display on screen: "));
 
        if ((to_file = get_string(fname, LINE_LENGTH, NULL)) < 0)
            return;
@@ -1876,7 +2022,7 @@ void print_part_table(void)
        if (to_file) {
            if ((fp = fopen(fname, "w")) == NULL) {
                char errstr[LINE_LENGTH];
-               sprintf(errstr, PRINT_OPEN_ERR, fname);
+               sprintf(errstr, _("Cannot open file '%s'"), fname);
                print_warning(errstr);
                return;
            }
@@ -1887,11 +2033,11 @@ void print_part_table(void)
        }
     }
 
-    fp_printf(fp, "Partition Table for %s\n", disk_device);
+    fp_printf(fp, _("Partition Table for %s\n"), disk_device);
     fp_printf(fp, "\n");
-    fp_printf(fp, "         ---Starting---      ----Ending----    Start Number of\n");
-    fp_printf(fp, " # Flags Head Sect Cyl   ID  Head Sect Cyl    Sector  Sectors\n");
-    fp_printf(fp, "-- ----- ---- ---- ---- ---- ---- ---- ---- -------- ---------\n");
+    fp_printf(fp, _("         ---Starting---      ----Ending----    Start Number of\n"));
+    fp_printf(fp, _(" # Flags Head Sect Cyl   ID  Head Sect Cyl    Sector  Sectors\n"));
+    fp_printf(fp, _("-- ----- ---- ---- ---- ---- ---- ---- ---- -------- ---------\n"));
 
     for (i = 0; i < 4; i++) {
        for (j = 0;
@@ -1924,10 +2070,10 @@ void print_tables(void)
 
     static struct MenuItem menuFormat[]=
     {
-        { 'r', "Raw", "Print the table using raw data format" },
-        { 's', "Sectors", "Print the table ordered by sectors" },
-        { 't', "Table", "Just print the partition table" },
-        { ESC, "Cancel", "Don't print the table" },
+        { 'r', N_("Raw"), N_("Print the table using raw data format") },
+        { 's', N_("Sectors"), N_("Print the table ordered by sectors") },
+        { 't', N_("Table"), N_("Just print the partition table") },
+        { ESC, N_("Cancel"), N_("Don't print the table") },
         { 0, NULL, NULL }
     };
     
@@ -1952,51 +2098,50 @@ void print_tables(void)
 }
 
 #define END_OF_HELP "EOHS!"
-#define NEW_HELP_SCREEN "SNHS!"
 void display_help()
 {
     char *help_text[] = {
-       "Help Screen for cfdisk " VERSION,
+       N_("Help Screen for cfdisk"),
        "",
-       "This is cfdisk, a curses based disk partitioning programs, which",
-       "allows you to create, delete and modify partitions on your hard",
-       "disk drive.",
+       N_("This is cfdisk, a curses based disk partitioning program, which"),
+       N_("allows you to create, delete and modify partitions on your hard"),
+       N_("disk drive."),
        "",
-       "Copyright (C) 1994-1998 Kevin E. Martin & aeb",
+       N_("Copyright (C) 1994-1999 Kevin E. Martin & aeb"),
        "",
-       "Command      Meaning",
-       "-------      -------",
-       "  b          Toggle bootable flag of the current partition",
-       "  d          Delete the current partition",
-       "  g          Change cylinders, heads, sectors-per-track parameters",
-       "             WARNING: This option should only be used by people who",
-       "             know what they are doing.",
-       "  h          Print this screen",
-       "  m          Maximize disk usage of the current partition",
-       "             Note: This may make the partition incompatible with",
-       "             DOS, OS/2, ...",
-       "  n          Create new partition from free space",
-       "  p          Print partition table to the screen or to a file",
-       "             There are several different formats for the partition",
-       "             that you can choose from:",
-       "                r - Raw data (exactly what would be written to disk)",
-       "                s - Table ordered by sectors",
-       "                t - Table in raw format",
-       "  q          Quit program without writing partition table",
-       "  t          Change the filesystem type",
-       "  u          Change units of the partition size display",
-       "             Rotates through Mb, sectors and cylinders",
-       "  W          Write partition table to disk (must enter upper case W)",
-        "             Since this might destroy data on the disk, you must",
-       "             either confirm or deny the write by entering `yes' or",
-       "             `no'",
-       "Up Arrow     Move cursor to the previous partition",
-       "Down Arrow   Move cursor to the next partition",
-       "CTRL-L       Redraws the screen",
-       "  ?          Print this screen",
+       N_("Command      Meaning"),
+       N_("-------      -------"),
+       N_("  b          Toggle bootable flag of the current partition"),
+       N_("  d          Delete the current partition"),
+       N_("  g          Change cylinders, heads, sectors-per-track parameters"),
+       N_("             WARNING: This option should only be used by people who"),
+       N_("             know what they are doing."),
+       N_("  h          Print this screen"),
+       N_("  m          Maximize disk usage of the current partition"),
+       N_("             Note: This may make the partition incompatible with"),
+       N_("             DOS, OS/2, ..."),
+       N_("  n          Create new partition from free space"),
+       N_("  p          Print partition table to the screen or to a file"),
+       N_("             There are several different formats for the partition"),
+       N_("             that you can choose from:"),
+       N_("                r - Raw data (exactly what would be written to disk)"),
+       N_("                s - Table ordered by sectors"),
+       N_("                t - Table in raw format"),
+       N_("  q          Quit program without writing partition table"),
+       N_("  t          Change the filesystem type"),
+       N_("  u          Change units of the partition size display"),
+       N_("             Rotates through MB, sectors and cylinders"),
+       N_("  W          Write partition table to disk (must enter upper case W)"),
+        N_("             Since this might destroy data on the disk, you must"),
+       N_("             either confirm or deny the write by entering `yes' or"),
+       N_("             `no'"),
+       N_("Up Arrow     Move cursor to the previous partition"),
+       N_("Down Arrow   Move cursor to the next partition"),
+       N_("CTRL-L       Redraws the screen"),
+       N_("  ?          Print this screen"),
        "",
-       "Note: All of the commands can be entered with either upper or lower",
-       "case letters (except for Writes).",
+       N_("Note: All of the commands can be entered with either upper or lower"),
+       N_("case letters (except for Writes)."),
        END_OF_HELP
     };
 
@@ -2005,15 +2150,13 @@ void display_help()
 
     erase();
     move(0, 0);
-    while (strcmp(help_text[cur_line], END_OF_HELP))
-       if (!strcmp(help_text[cur_line], NEW_HELP_SCREEN)) {
-           menuContinue();
-           erase();
-           move(0, 0);
-           cur_line++;
-       } else
-           fp_printf(fp, "%s\n", help_text[cur_line++]);
-
+    while (strcmp(help_text[cur_line], END_OF_HELP)) {
+       if (help_text[cur_line][0])
+           fp_printf(fp, "%s\n", _(help_text[cur_line]));
+       else
+           fp_printf(fp, "\n");
+       cur_line++;
+    }
     menuContinue();
 }
 
@@ -2023,15 +2166,15 @@ int change_geometry(void)
     int done = FALSE;
     char def[LINE_LENGTH];
     char response[LINE_LENGTH];
-    int tmp_val;
+    int tmp_val, max_cyls, i;
 
     while (!done) {
         static struct MenuItem menuGeometry[]=
         {
-            { 'c', "Cylinders", "Change cylinder geometry" },
-            { 'h', "Heads", "Change head geometry" },
-            { 's', "Sectors", "Change sector geometry" },
-            { 'd', "Done", "Done with changing geometry" },
+            { 'c', N_("Cylinders"), N_("Change cylinder geometry") },
+            { 'h', N_("Heads"), N_("Change head geometry") },
+            { 's', N_("Sectors"), N_("Change sector geometry") },
+            { 'd', N_("Done"), N_("Done with changing geometry") },
             { 0, NULL, NULL }
         };
        move(COMMAND_LINE_Y, COMMAND_LINE_X);
@@ -2042,42 +2185,47 @@ int change_geometry(void)
 
        switch (toupper( menuSimple(menuGeometry, 3) )) {
        case 'C':
-           sprintf(def, "%d", cylinders);
+           sprintf(def, "%ld", actual_size/cylinder_size);
            mvaddstr(COMMAND_LINE_Y, COMMAND_LINE_X,
-                    "Enter the number of cylinders: ");
-           if (get_string(response, LINE_LENGTH, def) > 0) {
+                    _("Enter the number of cylinders: "));
+           i = get_string(response, LINE_LENGTH, def);
+           if (i == GS_DEFAULT) {
+               user_cylinders = actual_size/cylinder_size;
+               ret_val = TRUE;
+           } else if (i > 0) {
                tmp_val = atoi(response);
-               if (tmp_val > 0 && tmp_val <= MAX_CYLINDERS) {
-                   cylinders = tmp_val;
+               max_cyls = 0x7fffffff / cylinder_size;
+               if (tmp_val > 0 && tmp_val <= max_cyls) {
+                   user_cylinders = tmp_val;
                    ret_val = TRUE;
                } else
-                   print_warning(BAD_CYLINDERS);
+                   print_warning(_("Illegal cylinders value"));
            }
            break;
        case 'H':
            sprintf(def, "%d", heads);
            mvaddstr(COMMAND_LINE_Y, COMMAND_LINE_X,
-                    "Enter the number of heads: ");
+                    _("Enter the number of heads: "));
            if (get_string(response, LINE_LENGTH, def) > 0) {
                tmp_val = atoi(response);
                if (tmp_val > 0 && tmp_val <= MAX_HEADS) {
-                   heads = tmp_val;
+                   user_heads = tmp_val;
                    ret_val = TRUE;
                } else
-                   print_warning(BAD_HEADS);
+                   print_warning(_("Illegal heads value"));
            }
            break;
        case 'S':
            sprintf(def, "%d", sectors);
            mvaddstr(COMMAND_LINE_Y, COMMAND_LINE_X,
-                    "Enter the number of sectors per track: ");
+                    _("Enter the number of sectors per track: "));
            if (get_string(response, LINE_LENGTH, def) > 0) {
                tmp_val = atoi(response);
                if (tmp_val > 0 && tmp_val <= MAX_SECTORS) {
-                   sectors = tmp_val;
+                   user_sectors = tmp_val;
                    ret_val = TRUE;
                } else
-                   print_warning(BAD_SECTORS);
+                   print_warning(_("Illegal sectors value"));
            }
            break;
        case ESC:
@@ -2088,10 +2236,17 @@ int change_geometry(void)
            putchar(BELL);
            break;
        }
+
+       if (ret_val) {
+           decide_on_geometry();
+           draw_screen();
+       }
     }
 
     if (ret_val) {
-       int disk_end = heads*sectors*cylinders-1;
+       int disk_end;
+
+       disk_end = total_size-1;
 
        if (p_info[num_parts-1].last_sector > disk_end) {
            while (p_info[num_parts-1].first_sector > disk_end) {
@@ -2130,34 +2285,50 @@ void change_id(int i)
     int num_types = 0;
     int num_across, num_down;
     int len, new_id = ((p_info[i].id == LINUX) ? LINUX_SWAP : LINUX);
-    int y_start, y_end;
-    int j, pos;
+    int y_start, y_end, row, row_min, row_max, row_offset, j, needmore;
 
-    for (num_types = 0, j = 1; j < NUM_PART_TYPES; j++)
-       if (partition_type[j])
-           num_types++;
+    for (j = 1; i386_sys_types[j].name; j++) ;
+    num_types = j-1;           /* do not count the Empty type */
 
     num_across = COLS/COL_ID_WIDTH;
     num_down = (((float)num_types)/num_across + 1);
     y_start = COMMAND_LINE_Y - 1 - num_down;
-    if (y_start > DISK_TABLE_START+cur_part+4)
-       y_start = DISK_TABLE_START+cur_part+4;
-    y_end = y_start + num_down - 1;
-
-    for (j = y_start - 1; j <= y_end + 1; j++) {
-       move(j, 0);
-       clrtoeol();
+    if (y_start < 1) {
+       y_start = 1;
+       y_end = COMMAND_LINE_Y - 2;
+    } else {
+       if (y_start > DISK_TABLE_START+cur_part+4)
+           y_start = DISK_TABLE_START+cur_part+4;
+       y_end = y_start + num_down - 1;
     }
 
-    for (pos = 0, j = 1; j < NUM_PART_TYPES; j++)
-       if (partition_type[j]) {
-           move(y_start + pos % num_down, (pos/num_down)*COL_ID_WIDTH + 1);
-           printw("%02X %-16.16s", j, partition_type[j]);
-           pos++;
+    row_min = 1;
+    row_max = COMMAND_LINE_Y - 2;
+    row_offset = 0;
+    do {
+       for (j = y_start - 1; j <= y_end + 1; j++) {
+           move(j, 0);
+           clrtoeol();
        }
+       needmore = 0;
+       for (j = 1; i386_sys_types[j].name; j++) {
+           row = y_start + (j-1) % num_down - row_offset;
+           if (row >= row_min && row <= row_max) {
+               move(row, ((j-1)/num_down)*COL_ID_WIDTH + 1);
+               printw("%02X %-20.20s",
+                      i386_sys_types[j].type,
+                      i386_sys_types[j].name);
+           }
+           if (row > row_max)
+               needmore = 1;
+       }
+       if (needmore)
+               menuContinue();
+       row_offset += (row_max - row_min + 1);
+    } while(needmore);
 
     sprintf(def, "%02X", new_id);
-    mvaddstr(COMMAND_LINE_Y, COMMAND_LINE_X, "Enter filesystem type: ");
+    mvaddstr(COMMAND_LINE_Y, COMMAND_LINE_X, _("Enter filesystem type: "));
     if ((len = get_string(id, 2, def)) <= 0 && len != GS_DEFAULT)
        return;
 
@@ -2175,9 +2346,9 @@ void change_id(int i)
     }
 
     if (new_id == 0)
-       print_warning(ID_EMPTY);
+       print_warning(_("Cannot change FS Type to empty"));
     else if (is_extended(new_id))
-       print_warning(ID_EXT);
+       print_warning(_("Cannot change FS Type to extended"));
     else
        p_info[i].id = new_id;
 }
@@ -2187,6 +2358,7 @@ void draw_partition(int i)
     int size, j;
     int y = i + DISK_TABLE_START + 2 - (cur_part/NUM_ON_SCREEN)*NUM_ON_SCREEN;
     char *t;
+    double fsize;
 
     if (!arrow_cursor) {
        move(y, 0);
@@ -2199,38 +2371,38 @@ void draw_partition(int i)
                 "%s%d", my_basename(disk_device), p_info[i].num+1);
        if (p_info[i].flags) {
            if (p_info[i].flags == ACTIVE_FLAG)
-               mvaddstr(y, FLAGS_START, "Boot");
+               mvaddstr(y, FLAGS_START, _("Boot"));
            else
-               mvprintw(y, FLAGS_START, "Unk(%02X)", p_info[i].flags);
+               mvprintw(y, FLAGS_START, _("Unk(%02X)"), p_info[i].flags);
            if (p_info[i].first_sector == 0 || IS_LOGICAL(p_info[i].num)) {
                if (p_info[i].offset != sectors)
-                   addstr(", NC");
+                   addstr(_(", NC"));
            } else {
                if (p_info[i].offset != 0)
-                   addstr(", NC");
+                   addstr(_(", NC"));
            }
        } else {
            if (p_info[i].first_sector == 0 || IS_LOGICAL(p_info[i].num)) {
                if (p_info[i].offset != sectors)
-                   mvaddstr(y, FLAGS_START, "NC");
+                   mvaddstr(y, FLAGS_START, _("NC"));
            } else {
                if (p_info[i].offset != 0)
-                   mvaddstr(y, FLAGS_START, "NC");
+                   mvaddstr(y, FLAGS_START, _("NC"));
            }
        }
     }
     mvaddstr(y, PTYPE_START,
             (p_info[i].id == UNUSABLE ? "" :
-             (IS_LOGICAL(p_info[i].num) ? "Logical" :
-              (p_info[i].num >= 0 ? "Primary" :
-               (p_info[i].num == PRI_OR_LOG ? "Pri/Log" :
-                (p_info[i].num == PRIMARY ? "Primary" : "Logical"))))));
+             (IS_LOGICAL(p_info[i].num) ? _("Logical") :
+              (p_info[i].num >= 0 ? _("Primary") :
+               (p_info[i].num == PRI_OR_LOG ? _("Pri/Log") :
+                (p_info[i].num == PRIMARY ? _("Primary") : _("Logical")))))));
 
     t = partition_type_text(i);
     if (t)
         mvaddstr(y, FSTYPE_START, t);
     else
-        mvprintw(y, FSTYPE_START, "Unknown (%02X)", p_info[i].id);
+        mvprintw(y, FSTYPE_START, _("Unknown (%02X)"), p_info[i].id);
 
     if (p_info[i].volume_label[0]) {
        int l = strlen(p_info[i].volume_label);
@@ -2240,15 +2412,17 @@ void draw_partition(int i)
     }
 
     size = p_info[i].last_sector - p_info[i].first_sector + 1;
+    fsize = (double) size * SECTOR_SIZE;
     if (display_units == SECTORS)
        mvprintw(y, SIZE_START, "%9d", size);
     else if (display_units == CYLINDERS)
-       mvprintw(y, SIZE_START, "%9d", size/(sectors*heads));
-    else
-       mvprintw(y, SIZE_START, "%9.2f", ceiling(size/20.48)/100);
-    if (((size/(sectors*heads)) != ceiling(size/(sectors*(float)heads))) ||
-       ((p_info[i].first_sector/(sectors*heads)) !=
-        ceiling(p_info[i].first_sector/(sectors*heads))))
+       mvprintw(y, SIZE_START, "%9d", size/cylinder_size);
+    else if (display_units == MEGABYTES)
+       mvprintw(y, SIZE_START, "%9.2f", ceiling((100*fsize)/(K*K))/100);
+    else if (display_units == GIGABYTES)
+       mvprintw(y, SIZE_START, "%9.2f", ceiling((100*fsize)/(K*K*K))/100);
+    if (size % cylinder_size != 0 ||
+       p_info[i].first_sector % cylinder_size != 0)
        mvprintw(y, COLUMNS-1, "*");
 }
 
@@ -2279,7 +2453,7 @@ void draw_screen(void)
     int i;
     char *line;
 
-    line = (char *)malloc((COLS+1)*sizeof(char));
+    line = (char *) xmalloc((COLS+1)*sizeof(char));
 
     if (warning_last_time) {
        for (i = 0; i < COLS; i++) {
@@ -2297,23 +2471,28 @@ void draw_screen(void)
 
     sprintf(line, "cfdisk %s", VERSION);
     mvaddstr(HEADER_START, (COLS-strlen(line))/2, line);
-    sprintf(line, "Disk Drive: %s", disk_device);
+    sprintf(line, _("Disk Drive: %s"), disk_device);
     mvaddstr(HEADER_START+2, (COLS-strlen(line))/2, line);
-    sprintf(line, "Heads: %d   Sectors per Track: %d   Cylinders: %d",
-           heads, sectors, cylinders);
+    { long long bytes = actual_size*(long long) SECTOR_SIZE;
+    sprintf(line, _("Size: %lld bytes"), bytes); }
     mvaddstr(HEADER_START+3, (COLS-strlen(line))/2, line);
+    sprintf(line, _("Heads: %d   Sectors per Track: %d   Cylinders: %d"),
+           heads, sectors, cylinders);
+    mvaddstr(HEADER_START+4, (COLS-strlen(line))/2, line);
 
-    mvaddstr(DISK_TABLE_START, NAME_START, "Name");
-    mvaddstr(DISK_TABLE_START, FLAGS_START, "Flags");
-    mvaddstr(DISK_TABLE_START, PTYPE_START-1, "Part Type");
-    mvaddstr(DISK_TABLE_START, FSTYPE_START, "FS Type");
-    mvaddstr(DISK_TABLE_START, LABEL_START+1, "[Label]");
+    mvaddstr(DISK_TABLE_START, NAME_START, _("Name"));
+    mvaddstr(DISK_TABLE_START, FLAGS_START, _("Flags"));
+    mvaddstr(DISK_TABLE_START, PTYPE_START-1, _("Part Type"));
+    mvaddstr(DISK_TABLE_START, FSTYPE_START, _("FS Type"));
+    mvaddstr(DISK_TABLE_START, LABEL_START+1, _("[Label]"));
     if (display_units == SECTORS)
-       mvaddstr(DISK_TABLE_START, SIZE_START, "  Sectors");
+       mvaddstr(DISK_TABLE_START, SIZE_START, _("  Sectors"));
     else if (display_units == CYLINDERS)
-       mvaddstr(DISK_TABLE_START, SIZE_START, "Cylinders");
-    else
-       mvaddstr(DISK_TABLE_START, SIZE_START, "Size (MB)");
+       mvaddstr(DISK_TABLE_START, SIZE_START, _("Cylinders"));
+    else if (display_units == MEGABYTES)
+       mvaddstr(DISK_TABLE_START, SIZE_START, _("Size (MB)"));
+    else if (display_units == GIGABYTES)
+       mvaddstr(DISK_TABLE_START, SIZE_START, _("Size (GB)"));
 
     move(DISK_TABLE_START+1, 1);
     for (i = 1; i < COLS-1; i++)
@@ -2368,17 +2547,17 @@ void do_curses_fdisk(void)
 
     static struct MenuItem menuMain[]=
     {
-        { 'b', "Bootable", "Toggle bootable flag of the current partition" },
-        { 'd', "Delete", "Delete the current partition" },
-        { 'g', "Geometry", "Change disk geometry (experts only)" },
-        { 'h', "Help", "Print help screen" },
-        { 'm', "Maximize", "Maximize disk usage of the current partition (experts only)" },
-        { 'n', "New", "Create new partition from free space" },
-        { 'p', "Print", "Print partition table to the screen or to a file" },
-        { 'q', "Quit", "Quit program without writing partition table" },
-        { 't', "Type", "Change the filesystem type (DOS, Linux, OS/2 and so on)" },
-        { 'u', "Units", "Change units of the partition size display (MB, sect, cyl)" },
-        { 'W', "Write", "Write partition table to disk (this might destroy data)" },
+        { 'b', N_("Bootable"), N_("Toggle bootable flag of the current partition") },
+        { 'd', N_("Delete"), N_("Delete the current partition") },
+        { 'g', N_("Geometry"), N_("Change disk geometry (experts only)") },
+        { 'h', N_("Help"), N_("Print help screen") },
+        { 'm', N_("Maximize"), N_("Maximize disk usage of the current partition (experts only)") },
+        { 'n', N_("New"), N_("Create new partition from free space") },
+        { 'p', N_("Print"), N_("Print partition table to the screen or to a file") },
+        { 'q', N_("Quit"), N_("Quit program without writing partition table") },
+        { 't', N_("Type"), N_("Change the filesystem type (DOS, Linux, OS/2 and so on)") },
+        { 'u', N_("Units"), N_("Change units of the partition size display (MB, sect, cyl)") },
+        { 'W', N_("Write"), N_("Write partition table to disk (this might destroy data)") },
         { 0, NULL, NULL }
     };
     curses_started = 1;
@@ -2424,7 +2603,7 @@ void do_curses_fdisk(void)
            if (p_info[cur_part].id > 0)
                p_info[cur_part].flags ^= 0x80;
            else
-               print_warning(NO_FLAGS);
+               print_warning(_("Cannot make this partition bootable"));
            break;
        case 'D':
        case 'd':
@@ -2434,7 +2613,7 @@ void do_curses_fdisk(void)
                    cur_part = num_parts - 1;
                draw_screen();
            } else
-               print_warning(DEL_EMPTY);
+               print_warning(_("Cannot delete an empty partition"));
            break;
        case 'G':
        case 'g':
@@ -2454,9 +2633,9 @@ void do_curses_fdisk(void)
                } else if (p_info[cur_part].offset != 0)
                    p_info[cur_part].offset = 0;
                else
-                   print_warning(MAX_UNMAXABLE);
+                   print_warning(_("Cannot maximize this partition"));
            } else
-               print_warning(MAX_UNMAXABLE);
+               print_warning(_("Cannot maximize this partition"));
            break;
        case 'N':
        case 'n':
@@ -2464,9 +2643,9 @@ void do_curses_fdisk(void)
                new_part(cur_part);
                draw_screen();
            } else if (p_info[cur_part].id == UNUSABLE)
-               print_warning(ADD_UNUSABLE);
+               print_warning(_("This partition is unusable"));
            else
-               print_warning(ADD_EXISTS);
+               print_warning(_("This partition is already in use"));
            break;
        case 'P':
        case 'p':
@@ -2483,16 +2662,18 @@ void do_curses_fdisk(void)
                change_id(cur_part);
                draw_screen();
            } else
-               print_warning(TYPE_EMPTY);
+               print_warning(_("Cannot change the type of an empty partition"));
            break;
        case 'U':
        case 'u':
-           if (display_units == MEGABYTES)
+           if (display_units == GIGABYTES)
+               display_units = MEGABYTES;
+           else if (display_units == MEGABYTES)
                display_units = SECTORS;
            else if (display_units == SECTORS)
                display_units = CYLINDERS;
            else if (display_units == CYLINDERS)
-               display_units = MEGABYTES;
+               display_units = MEGABYTES;      /* not yet GIGA */
            draw_screen();
            break;
        case 'W':
@@ -2508,20 +2689,20 @@ void do_curses_fdisk(void)
            if (!draw_cursor(-1))
                command = 0;
            else
-               print_warning(NO_MORE_PARTS);
+               print_warning(_("No more partitions"));
            break;
        case MENU_DOWN : /* Down arrow */
            if (!draw_cursor(1))
                command = 0;
            else
-               print_warning(NO_MORE_PARTS);
+               print_warning(_("No more partitions"));
            break;
        case REDRAWKEY:
            clear();
            draw_screen();
            break;
        default:
-           print_warning(BAD_COMMAND);
+           print_warning(_("Illegal command"));
            putchar(BELL); /* CTRL-G */
        }
     }
@@ -2531,24 +2712,28 @@ void do_curses_fdisk(void)
 
 void copyright(void)
 {
-    fprintf(stderr, "Copyright (C) 1994-1997 Kevin E. Martin & aeb\n");
+    fprintf(stderr, _("Copyright (C) 1994-1999 Kevin E. Martin & aeb\n"));
 }
 
 void usage(char *prog_name)
 {
-    fprintf(stderr, "\nUsage:\n");
-    fprintf(stderr, "Print version:\n");
-    fprintf(stderr, "\t%s -v\n", prog_name);
-    fprintf(stderr, "Print partition table:\n");
-    fprintf(stderr, "\t%s -P {r|s|t} [options] device\n", prog_name);
-    fprintf(stderr, "Interactive use:\n");
-    fprintf(stderr, "\t%s [options] device\n", prog_name);
-    fprintf(stderr, "
-Options:
--a: Use arrow instead of highlighting;
--z: Start with a zero partition table, instead of reading the pt from disk;
--c C -h H -s S: Override the kernel's idea of the number of cylinders,
-                the number of heads and the number of sectors/track.\n\n");
+    /* Unfortunately, xgettext does not handle multi-line strings */
+    /* so, let's use explicit \n's instead */
+    fprintf(stderr, _("\n"
+"Usage:\n"
+"Print version:\n"
+"        %s -v\n"
+"Print partition table:\n"
+"        %s -P {r|s|t} [options] device\n"
+"Interactive use:\n"
+"        %s [options] device\n"
+"\n"
+"Options:\n"
+"-a: Use arrow instead of highlighting;\n"
+"-z: Start with a zero partition table, instead of reading the pt from disk;\n"
+"-c C -h H -s S: Override the kernel's idea of the number of cylinders,\n"
+"                the number of heads and the number of sectors/track.\n\n"),
+    prog_name, prog_name, prog_name);
 
     copyright();
 }
@@ -2559,31 +2744,36 @@ main(int argc, char **argv)
     int c;
     int i, len;
 
-    setlocale(LC_CTYPE, "");
+    setlocale(LC_ALL, "");
+    bindtextdomain(PACKAGE, LOCALEDIR);
+    textdomain(PACKAGE);
 
-    while ((c = getopt(argc, argv, "ac:h:s:vzP:")) != EOF)
+    while ((c = getopt(argc, argv, "ac:gh:s:vzP:")) != EOF)
        switch (c) {
        case 'a':
            arrow_cursor = TRUE;
            break;
        case 'c':
-           cylinders = atoi(optarg);
-           if (cylinders <= 0 || cylinders > MAX_CYLINDERS) {
-               fprintf(stderr, "%s: %s\n", argv[0], BAD_CYLINDERS);
+           user_cylinders = cylinders = atoi(optarg);
+           if (cylinders <= 0) {
+               fprintf(stderr, "%s: %s\n", argv[0], _("Illegal cylinders value"));
                exit(1);
            }
            break;
+       case 'g':
+           use_partition_table_geometry = TRUE;
+           break;
        case 'h':
-           heads = atoi(optarg);
+           user_heads = heads = atoi(optarg);
            if (heads <= 0 || heads > MAX_HEADS) {
-               fprintf(stderr, "%s: %s\n", argv[0], BAD_HEADS);
+               fprintf(stderr, "%s: %s\n", argv[0], _("Illegal heads value"));
                exit(1);
            }
            break;
        case 's':
-           sectors = atoi(optarg);
+           user_sectors = sectors = atoi(optarg);
            if (sectors <= 0 || sectors > MAX_SECTORS) {
-               fprintf(stderr, "%s: %s\n", argv[0], BAD_SECTORS);
+               fprintf(stderr, "%s: %s\n", argv[0], _("Illegal sectors value"));
                exit(1);
            }
            break;
diff --git a/fdisk/common.h b/fdisk/common.h
new file mode 100644 (file)
index 0000000..d9fa4e8
--- /dev/null
@@ -0,0 +1,8 @@
+/* common stuff for fdisk, cfdisk, sfdisk */
+
+struct systypes {
+       unsigned char type;
+       char *name;
+};
+
+extern struct systypes i386_sys_types[];
diff --git a/fdisk/delpart.c b/fdisk/delpart.c
new file mode 100644 (file)
index 0000000..8504c02
--- /dev/null
@@ -0,0 +1,40 @@
+/* very primitive wrapper around the `delete partition' ioctl */
+#include <stdio.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <sys/ioctl.h>
+#include <linux/blkpg.h>
+
+int
+main(int argc, char **argv){
+       int fd;
+       struct blkpg_ioctl_arg a;
+       struct blkpg_partition p;
+
+       if (argc != 3) {
+               fprintf(stderr,
+                       "usage: %s diskdevice partitionnr\n",
+                       argv[0]);
+               exit(1);
+       }
+       if ((fd = open(argv[1], O_RDONLY)) < 0) {
+               perror(argv[1]);
+               exit(1);
+       }
+       p.pno = atoi(argv[2]);
+       p.start = 0;
+       p.length = 0;
+       p.devname[0] = 0;
+       p.volname[0] = 0;
+       a.op = BLKPG_DEL_PARTITION;
+       a.flags = 0;
+       a.datalen = sizeof(p);
+       a.data = &p;
+
+       if (ioctl(fd, BLKPG, &a) == -1) {
+               perror("BLKPG");
+               exit(1);
+       }
+           
+       return 0;
+}
diff --git a/fdisk/doc/CFdisk-Portuguese.html b/fdisk/doc/CFdisk-Portuguese.html
new file mode 100644 (file)
index 0000000..6b699ee
--- /dev/null
@@ -0,0 +1,1704 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="Author" content="Gleydson Mazioli da Silva">
+   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win95; I) [Netscape]">
+   <title>CFdisk-Portugues-HOWTO</title>
+</head>
+<body>
+
+<center><b><font size=+1>CFdisk-Portuguese Copyright (C) 1999 Gleydson
+M. da Silva</font></b></center>
+
+<p><br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<p>
+<hr WIDTH="100%">
+<center>&nbsp;<i>Gleydson M. da Silva</i> - <b>gleydson@linuxbr.com.br</b>
+<br>Vers&atilde;o: 1.68
+<br>
+<hr WIDTH="100%"></center>
+
+<p><br>
+<br>
+<br>
+<br>
+<p><a NAME="Indice"></a><b><font size=+1>[ Indice ]</font></b>
+<br>&nbsp;
+<p><b><font size=+1>1</font></b> - <a href="#1">Introdu&ccedil;&atilde;o
+ao CFdisk</a>
+<br>&nbsp; <b>1.1</b> - <a href="#1.1">O que &eacute; uma parti&ccedil;&atilde;o
+de disco</a>
+<br>&nbsp; <b>1.2</b> - <a href="#1.2">O que &eacute; a Tabela de parti&ccedil;&atilde;o</a>
+<br>&nbsp; <b>1.3</b> - <a href="#1.3">Introdu&ccedil;&atilde;o ao Particionamento
+de Discos</a>
+<br>&nbsp; <b>1.4</b> - <a href="#1.4">Identificadores utilizados neste
+manual</a>
+<br>&nbsp; <b>1.5</b> - <a href="#1.5">Identifica&ccedil;&atilde;o de discos
+e parti&ccedil;&otilde;es no Sistema Linux</a>
+<br>&nbsp; <b>1.6</b> - <a href="#1.6">Tipos de parti&ccedil;&otilde;es
+de disco</a>
+<br>&nbsp; <b>1.7</b> - <a href="#1.7">Observa&ccedil;&otilde;es sobre
+o formato DOS 6.xx (FAT16)</a>
+<p><b><font size=+1>2</font></b> - <a href="#2">Iniciando o programa CFdisk</a>
+<br>&nbsp; <b>2.1</b> - <a href="#2.1">Op&ccedil;&otilde;es de Linha de
+comando</a>
+<br>&nbsp; <b>2.2</b> - <a href="#2.2">Conhecendo a tela do CFdisk</a>
+<br>&nbsp; <b>2.3</b> - <a href="#2.3">Descri&ccedil;&atilde;o dos comandos</a>
+<br>&nbsp;&nbsp;&nbsp; <b>2.3.1</b> - <a href="#2.3.1">Setas Acima/Abaixo
+- Esquerda/Direita</a>
+<br>&nbsp;&nbsp;&nbsp; <b>2.3.2</b> - <a href="#2.3.2">&lt;CTRL>+&lt;l></a>
+<br>&nbsp;&nbsp;&nbsp; <b>2.3.3</b> - <a href="#2.3.3">Boot</a>
+<br>&nbsp;&nbsp;&nbsp; <b>2.3.4</b> - <a href="#2.3.4">Delete</a>
+<br>&nbsp;&nbsp;&nbsp; <b>2.3.5</b> - <a href="#2.3.5">Geometry</a>
+<br>&nbsp;&nbsp;&nbsp; <b>2.3.6</b> - <a href="#2.3.6">Help</a>
+<br>&nbsp;&nbsp;&nbsp; <b>2.3.7</b> - <a href="#2.3.7">Maximize</a>
+<br>&nbsp;&nbsp;&nbsp; <b>2.3.8</b> - <a href="#2.3.8">New</a>
+<br>&nbsp;&nbsp;&nbsp; <b>2.3.9</b> - <a href="#2.3.9">Print</a>
+<br>&nbsp;&nbsp;&nbsp; <b>2.3.10</b> - <a href="#2.3.10">Quit</a>
+<br>&nbsp;&nbsp;&nbsp; <b>2.3.11</b> - <a href="#2.3.11">Type</a>
+<br>&nbsp;&nbsp;&nbsp;<b> 2.3.12</b> - <a href="#2.3.12">Units</a>
+<br>&nbsp;&nbsp;&nbsp; <b>2.3.13</b> - <a href="#2.3.13">Write</a>
+<p><b><font size=+1>3</font></b> - <a href="#3">Tipos de parti&ccedil;&otilde;es
+compat&iacute;veis com o CFdisk</a>
+<p><b><font size=+1>4</font></b> - <a href="#4">Direitos do Autor</a>
+<p><b><font size=+1>5</font></b> - <a href="#5">Licen&ccedil;as e Garantias
+sobre este documento</a>
+<p><b><font size=+1>6</font></b> - <a href="#6">Notas sobre marcas registradas</a>
+<p><font size=+1>7</font> - <a href="#7">Agradecimentos</a>
+<br>
+<hr WIDTH="100%">
+<br>&nbsp;
+<br>&nbsp;
+<br>
+<br>
+<br>
+<center>
+<p><a NAME="1"></a><u><font size=+1>1-) Introdu&ccedil;&atilde;o ao CFdisk</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; CFdisk &eacute; um programa utilizado para fazer
+o particionamento de discos, utilizando uma interface em modo texto.
+<br>As grandes caracter&iacute;sticas deste programa, al&eacute;m de sua
+interface de comunica&ccedil;&atilde;o com o usu&aacute;rio e a enorme
+quantidade de parti&ccedil;&otilde;es que manipula, &eacute; a grande facilidade
+de utiliza&ccedil;&atilde;o, o seu poder de manipula&ccedil;&atilde;o de
+parti&ccedil;&otilde;es e a sua precis&atilde;o que fazem com que o usu&aacute;rio
+tenha mais confian&ccedil;a durante o particionamento de disco.
+<br>&nbsp;&nbsp;&nbsp; &Eacute; recomend&aacute;vel a leitura deste texto,
+mesmo que tenha uma no&ccedil;&atilde;o sobre o particionamento de discos,
+exceto para os <i>gurus</i> que j&aacute; conhecem a fundo a forma de trabalho,
+em geral, de programas deste tipo, pois o particionamento de disco <b>pode
+destruir os seus arquivos e parti&ccedil;&otilde;es j&aacute; existentes</b>,
+se for usado de forma incorreta.
+<br>&nbsp; O programa CFdisk pode ser utilizado em qualquer sistema operacional
+que esteja de acordo com o padr&atilde;o POSIX (Linux, UNIX, FreeBSD, HPUX,
+etc).
+<p>&nbsp; A vers&atilde;o do CFdisk utilizada nas explica&ccedil;&otilde;es
+deste manual &eacute; a <i>0.8</i>, mas isto n&atilde;o impede que este
+manual seja utilizado com vers&otilde;es futuras ou anteriores deste programa.
+As caracter&iacute;sticas principais do programa CFdisk e as explica&ccedil;&otilde;es
+sobre particionamento, s&atilde;o v&aacute;lidas para quaisquer vers&otilde;es
+deste programa.
+<br>&nbsp;
+<p><b>&nbsp;&nbsp; Este documento &eacute; distribu&iacute;do com a iten&ccedil;&atilde;o
+de ser &uacute;til ao seu utilizador, no entanto N&Atilde;O TEM NENHUMA
+GARANTIA,&nbsp; EXPL&Iacute;CITAS OU IMPL&Iacute;CITAS , COMERCIAIS OU
+DE ATENDIMENTO A UMA DETERMINADA FINALIDADE. Consulte a Licen&ccedil;a
+P&uacute;blica Geral&nbsp; GNU para maiores detalhes.</b>
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<center>
+<p><a NAME="1.1"></a><u><font size=+1>1.1-) Parti&ccedil;&atilde;o de Disco</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; Uma <i>Parti&ccedil;&atilde;o de Disco</i> &eacute;
+o local onde o sistema operacional armazena seu sistema de arquivos(arquivos,
+diret&oacute;rios, FAT, boot sector, etc).
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="1.2"></a><u><font size=+1>1.2-) Tabela de parti&ccedil;&atilde;o</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; A <i>Tabela de parti&ccedil;&atilde;o</i> &eacute;
+o local do disco r&iacute;gido onde se localizam os dados sobre todas as
+parti&ccedil;&otilde;es existentes no disco como o sistema de arquivos
+utilizado, se ela &eacute; inicializ&aacute;vel, a cabe&ccedil;a inicial/final,
+setor inicial/final, cilindro inicial/final, n&uacute;mero de setores ocupados
+por ela no disco.
+<br>&nbsp;
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="1.3"></a><u><font size=+1>1.3-) Introdu&ccedil;&atilde;o
+ao particionamento de discos</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; Particionar o disco r&iacute;gido &eacute; dividir
+ele em partes para armazenamento de arquivos e programas. As parti&ccedil;&otilde;es
+criadas no disco podem ter o tamanho que desejar (desde que esteja dentro
+da capacidade m&aacute;xima do disco r&iacute;gido).
+<br>&nbsp;&nbsp;&nbsp;&nbsp; Uma parti&ccedil;&atilde;o n&atilde;o interfere
+em outras parti&ccedil;&otilde;es do mesmo disco(&eacute; como se tivessemos
+v&aacute;rios discos r&iacute;gidos dentro de um), e nem em outros discos
+r&iacute;gidos(caso possuir mais que um disco r&iacute;gido) instalado
+em seu computador.
+<br>&nbsp;&nbsp;&nbsp; Pode ser criada&nbsp; uma parti&ccedil;&atilde;o
+&uacute;nica, que neste caso todo o disco r&iacute;gido &eacute; usado
+para armazenar os arquivos(que &eacute; o caso mais comum caso voce tenha
+o DOS), ou v&aacute;rias parti&ccedil;&otilde;es, que podem ser usadas
+pelo mesmo SO(Sistema Operacional) ou outros sistemas operacionais diferentes(um
+exemplo de v&aacute;rias parti&ccedil;&otilde;es: se for usar o DOS e o
+Linux no mesmo disco, os dois sistemas v&atilde;o
+<br>estar no mesmo disco mas um n&atilde;o interfere no outro).
+<br><b>ATEN&Ccedil;&Atilde;O</b> : A OPERA&Ccedil;&Atilde;O DE PARTICIONAMENTO
+DE DISCOS PODE FAZER
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+COM&nbsp; QUE OS DADOS ARMAZENADOS EM SEU DISCO R&Iacute;GIDO SEJAM
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+PERDIDOS, SE FOR USADA INCORRETAMENTE. &Eacute; SEMPRE
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+RECOMENDADO RETIRAR UMA C&Oacute;PIA DE SEGURAN&Ccedil;A DOS SEUS
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ARQUIVOS EXISTENTES NO MICRO ANTES DE SE EXECUTAR UM
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+PROGRAMA DESTE TIPO, A N&Atilde;O SER QUE TENHA CONFIAN&Ccedil;A NO
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+QUE ESTA FAZENDO E QUE ENTENDEU AS EXPLICA&Ccedil;&Otilde;ES SOBRE A
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+IDENTIFICA&Ccedil;&Atilde;O DE&nbsp; DISCOS R&Iacute;GIDOS E SUAS PARTI&Ccedil;&Otilde;ES
+NO
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+SISTEMA.
+<br>&nbsp;&nbsp;&nbsp; Neste manual voce aprender&aacute; como deve particionar
+seu disco r&iacute;gido para a instala&ccedil;&atilde;o do SO usando o
+programa CFdisk.
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="1.4"></a><u><font size=+1>1.4-) Algumas identifica&ccedil;&otilde;es
+utilizadas neste manual para facilitar a</font></u>
+<br><u><font size=+1>compreens&atilde;o do texto</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; Esta parte descreve algumas caracter&iacute;sticas
+de organiza&ccedil;&atilde;o deste manual e algumas identifica&ccedil;&otilde;es
+que utilizei para facilitar o seu entendimento, e as explica&ccedil;&otilde;es
+que ser&atilde;o dadas.
+<p>&nbsp;&nbsp;&nbsp; Explica&ccedil;&atilde;o de nomes e comandos, sera
+seguida da palavra "<b>onde:</b>" e abaixo dela as explica&ccedil;&otilde;es
+sobre os comandos, exemplo:
+<p><b>onde:</b>
+<br><i>nome a ser explicado1</i>&nbsp; : Descri&ccedil;&atilde;o
+<br><i>nome a ser explicado2</i>&nbsp; : Descri&ccedil;&atilde;o
+<br><i>nome a ser explicado3</i>&nbsp; : Descri&ccedil;&atilde;o
+<p>ou
+<p><b>onde:</b>
+<br><i>nome a ser explicado1</i>&nbsp; - Descri&ccedil;&atilde;o
+<br><i>nome a ser explicado2</i>&nbsp; - Descri&ccedil;&atilde;o
+<br><i>nome a ser explicado3</i>&nbsp; - Descri&ccedil;&atilde;o
+<br>&nbsp;
+<p>&nbsp;&nbsp;&nbsp; Quando for feita alguma refer&ecirc;ncia com tecla
+do teclado, por exemplo, pressione <b>p</b> para listar as parti&ccedil;&otilde;es,
+a letra sera colocada entre &lt;> para que seja melhor entendida, por exemplo:
+<p>pressione &lt;d> para deletar uma parti&ccedil;&atilde;o...
+<br>...pressione &lt;Enter> para escolher a op&ccedil;&atilde;o do menu.
+<br>pressione &lt;t> para listar os tipos de parti&ccedil;&otilde;es dispon&iacute;veis...
+<br>&nbsp;
+<p>&nbsp;&nbsp;&nbsp; As linhas pontilhadas que aparecem na tela, veja
+abaixo,
+<br>----------------------------------------------------------------------------
+<br>----------------------------------------------------------------------------
+<br>servem para identificar que o que esta entre as linhas &eacute; um
+exemplo de como
+<br>ser&aacute; a resposta do comando para a tela de seu computador.
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="1.5"></a><u><font size=+1>1.5-) Identifica&ccedil;&atilde;o
+de discos e parti&ccedil;&otilde;es no Linux</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; Antes de descrever como se utiliza o programa CFdisk,
+&eacute; importante fazer algumas explica&ccedil;&otilde;es sobre a identifica&ccedil;&atilde;o
+das parti&ccedil;&otilde;es e unidades de disco no sistema Linux( e outros
+*nix).
+<br>&nbsp;&nbsp;&nbsp; Se voce for um usu&aacute;rio que j&aacute; conhece
+a interpreta&ccedil;&atilde;o de discos e parti&ccedil;&otilde;es neste
+sistema, voce n&atilde;o precisar&aacute; ler esta parte.
+<br>&nbsp;&nbsp;&nbsp; No sistema operacional Linux, os dispositivos existentes
+no computador (como impressoras, unidades de disquetes, discos r&iacute;gidos,
+monitor, placa de som, etc...) s&atilde;o identificados por um nome referente
+a este dispositivo e colocado no diret&oacute;rio <b>/dev</b> (que &eacute;
+utilizado para identificar os dispositivos ou perif&eacute;ricos existentes
+no computador).
+<br>&nbsp;&nbsp; A identifica&ccedil;&atilde;o dos discos r&iacute;gidos
+segue a seguinte forma:
+<p>&nbsp; /dev/hda1
+<br>&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp;
+|
+<br>&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp;
+|_N&uacute;mero que identifica a parti&ccedil;&atilde;o do disco r&iacute;gido(<i>1=Primeira,
+2=segunda</i>)
+<br>&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; |
+<br>&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; |_Letra
+que identifica o disco r&iacute;gido(<i>a=primeiro disco, b=segundo disco,
+etc..</i>)
+<br>&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
+<br>&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |_Sigla <i>hd</i>
+- Significa que &eacute; um disco r&iacute;gido <i>IDE</i>(Se tiver um
+<i>sd</i>
+significa <i>SCSI</i>)
+<br>&nbsp; |
+<br>&nbsp; |_ Identifica&ccedil;&atilde;o do diret&oacute;rio onde os dispositivos
+do sistema s&atilde;o armazenados
+<p><b>OBS</b>: As unidades de disco r&iacute;gido <b>SCSI</b>, s&atilde;o
+identificadas com as letras <b>sd</b>
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; seguida pela letra
+da unidade e n&uacute;mero da parti&ccedil;&atilde;o e os discos <b>IDE</b>
+s&atilde;o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; identificados por
+<b>hd</b>
+seguida pela letra da unidade de disco e o n&uacute;mero
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; da parti&ccedil;&atilde;o
+do disco(como visto acima).
+<p>Abaixo, algumas identifica&ccedil;&otilde;es de disco do sistema Linux:
+<p>/dev/hda1&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido IDE prim&aacute;rio
+principal - Primeira parti&ccedil;&atilde;o
+<br>/dev/hda2&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido IDE prim&aacute;rio
+principal - Segunda parti&ccedil;&atilde;o
+<br>/dev/hda3&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido IDE prim&aacute;rio
+principal - Terceira parti&ccedil;&atilde;o
+<br>/dev/hdb1&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido IDE prim&aacute;rio
+escravo - Primeira parti&ccedil;&atilde;o
+<br>/dev/hdb2&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido IDE prim&aacute;rio
+escravo - Segunda parti&ccedil;&atilde;o
+<br>/dev/hdb3&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido IDE prim&aacute;rio
+escravo - Terceira parti&ccedil;&atilde;o
+<br>/dev/hdc1&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido IDE secund&aacute;rio
+principal - Primeira parti&ccedil;&atilde;o
+<br>/dev/hdc2&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido IDE secund&aacute;rio
+principal - Segunda parti&ccedil;&atilde;o
+<br>/dev/hdc3&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido IDE secund&aacute;rio
+principal - Terceira parti&ccedil;&atilde;o
+<br>/dev/hdd1&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido IDE secund&aacute;rio
+escravo - Primeira parti&ccedil;&atilde;o
+<br>/dev/hdd2&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido IDE secund&aacute;rio
+escravo - Segunda parti&ccedil;&atilde;o
+<br>/dev/hdd3&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido IDE secund&aacute;rio
+escravo - Terceira parti&ccedil;&atilde;o
+<br>/dev/sda1&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Primeiro disco r&iacute;gido
+SCSI - Primeira parti&ccedil;&atilde;o
+<br>/dev/sda2&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Primeiro disco r&iacute;gido
+SCSI - Segunda parti&ccedil;&atilde;o
+<br>/dev/sda3&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Primeiro disco r&iacute;gido
+SCSI - Terceira parti&ccedil;&atilde;o
+<br>/dev/sdb1&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Segundo disco r&iacute;gido
+SCSI - Primeira parti&ccedil;&atilde;o
+<br>/dev/sdb2&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Segundo disco r&iacute;gido
+SCSI - Segunda parti&ccedil;&atilde;o
+<br>/dev/sdb3&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Segundo disco r&iacute;gido
+SCSI - Terceira parti&ccedil;&atilde;o
+<p>&nbsp;&nbsp;&nbsp; No exemplo acima foram usadas 3 parti&ccedil;&otilde;es
+por disco, mas podem existir mais parti&ccedil;&otilde;es no mesmo disco,
+um exemplo &eacute; se o disco r&iacute;gido possuir <b>parti&ccedil;&otilde;es
+L&oacute;gicas</b>, que s&atilde;o identificadas no sistemas a partir de
+<b>/dev/hdx5</b>.
+<br>&nbsp;
+<p>&nbsp;&nbsp;&nbsp; Abaixo um exemplo de como o Linux identifica as parti&ccedil;&otilde;es
+em cada disco existente em seu computador:
+<p>Vamos supor que eu tenha 2 discos r&iacute;gidos:
+<br>o 1&ordm;disco de <i>2GB</i> e o 2&ordm;disco&nbsp; de <i>1GB</i>(Giga
+Byte ou 1.000 Megas!)
+<p>&nbsp;&nbsp;&nbsp; No primeiro disco(de <i>2GB</i>), a primeira parti&ccedil;&atilde;o
+&eacute; de <b>800MB</b> do tipo <b>FAT16</b>(DOS), a segunda parti&ccedil;&atilde;o
+&eacute; de <b>1.2GB</b> do tipo <b>EXT2</b>(Linux)(1.2GB+800MB=2GB que
+&eacute; a capacidade total do disco). Assim as parti&ccedil;&otilde;es
+seriam identificadas da seguinte forma no Linux:
+<p><i>/dev/hda&nbsp;</i>&nbsp; - Disco r&iacute;gido Prim&aacute;rio Principal
+<br><i>/dev/hda1</i> - Primeira parti&ccedil;&atilde;o do primeiro disco
+r&iacute;gido (de <b>800MB</b> do tipo <b>DOS</b>)
+<br><i>/dev/hda2</i> - Segunda parti&ccedil;&atilde;o do primeiro disco
+r&iacute;gido( de <b>1.2GB</b> do tipo <b>Linux</b>)
+<p>&nbsp;&nbsp;&nbsp; Neste caso estariam dispon&iacute;veis 800MB para
+serem usados com o DOS e 1.2GB para o Linux.&nbsp;&nbsp;&nbsp;&nbsp; Por
+exemplo, se voce particionar um disco r&iacute;gido em duas partes e usar
+as duas parti&ccedil;&otilde;es no DOS, ele reconhecer&aacute; as parti&ccedil;&otilde;es
+como sendo <b>C:</b> e <b>D:</b>.
+<p><b>Lembre-se</b>: Quando um disco &eacute; particionado, nenhuma parti&ccedil;&atilde;o
+interfere na outra, repare que
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+quando voce particiona(divide) um disco,&nbsp; &eacute; como se tivesse
+dois discos r&iacute;gidos(o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+&uacute;nico cuidado que voce deve tomar &eacute; com as c&oacute;pias
+de seguran&ccedil;a, porque se der um
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+problema de parte eletr&ocirc;nica no disco r&iacute;gido, por exemplo,
+a sua placa controladora
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+queimar ou o cabe&ccedil;ote dele ir pro espa&ccedil;o, voce perder&aacute;
+as suas 2 parti&ccedil;&otilde;es que est&atilde;o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+armazenadas nele.
+<br>&nbsp;
+<p>Voltando ao exemplo das classifica&ccedil;&otilde;es das parti&ccedil;&otilde;es
+do disco, vamos para o segundo disco:
+<p>&nbsp;&nbsp;&nbsp; No segundo disco(1GB), eu tenho uma parti&ccedil;&atilde;o
+de <b>950MB</b> do tipo <b>FAT16</b>(DOS), que costumo usar para armazenar
+arquivos tempor&aacute;rios e c&oacute;pias de seguran&ccedil;a de meu
+sistema, etc..., e outra de <b>50MB</b> SWAP(Parti&ccedil;&atilde;o de
+mem&oacute;ria virtual como descrevi acima)(950MB+50MB=1GB). Ent&atilde;o
+as parti&ccedil;&otilde;es deste disco seriam identificadas da seguinte
+forma no Linux:
+<p><i>/dev/hdb&nbsp;</i>&nbsp; - Disco r&iacute;gido principal escravo
+<br><i>/dev/hdb1</i> - Primeira parti&ccedil;&atilde;o do disco acima (
+de 950MB do tipo DOS)
+<br><i>/dev/hdb2</i> - Segunda parti&ccedil;&atilde;o do disco acima (
+de 50MB do tipo SWAP)
+<p>&nbsp;&nbsp;&nbsp; No disco acima, <b>950MB</b> est&atilde;o dispon&iacute;veis
+para serem usados pelo <i>DOS</i> e <b>50 MB</b> pela mem&oacute;ria virtual
+(<i>SWAP</i>) do Linux.
+<p>&nbsp;&nbsp;&nbsp; Note que se voce utiliza o <i>MS-DOS</i>, voce n&atilde;o
+conseguir&aacute; ver as parti&ccedil;&otilde;es do <i>Linux</i> e <i>SWAP</i>,
+porque s&atilde;o imcompat&iacute;veis com o formato aceito pelo <i>DOS</i>
+(ele identificaria a primeira parti&ccedil;&atilde;o do primeiro disco(<b>800MB</b>)
+como a unidade C: e a primeira parti&ccedil;&atilde;o do segundo disco(<b>950MB</b>)
+como unidade D), mas o contr&aacute;rio n&atilde;o acontece; O <i>Linux</i>
+tem total compatibilidade com a parti&ccedil;&atilde;o
+<br><i>DOS FAT12, FAT16, FAT32, OS/2 HPFS,</i> e muitas outras.
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="1.6"></a><u><font size=+1>1.6-) Tipos de parti&ccedil;&otilde;es
+de discos</font></u></center>
+
+<p>&nbsp;&nbsp; As parti&ccedil;&otilde;es de disco s&atilde;o divididas
+em tres tipos: <b>Prim&aacute;ria, Extendida</b> e <b>L&oacute;gica</b>.
+<br>&nbsp;&nbsp; Pode se ter, no m&aacute;ximo, <b>4</b> parti&ccedil;&otilde;es
+<i>Prim&aacute;rias</i>
+e <i>Extendidas</i> no mesmo disco (3 Prim&aacute;rias e 1 Extendida ou
+4 parti&ccedil;&otilde;es Prim&aacute;rias em cada disco).
+<br>A parti&ccedil;&atilde;o <i>Prim&aacute;ria</i> permite o armazenamento
+de arquivos e diret&oacute;rios. Todos os computadores que possuem somente
+a unidade <i>C: </i>(supondo que utilize o DOS), utilizam este tipo de
+parti&ccedil;&atilde;o para armazenamento de arquivos e inicializa&ccedil;&atilde;o
+do sistema operacional.
+<br>&nbsp;&nbsp;&nbsp; Se for preciso criar mais que <i>4</i> parti&ccedil;&otilde;es
+no mesmo disco, ser&aacute; necess&aacute;rio criar uma parti&ccedil;&atilde;o
+<i>Extendida</i>.
+A parti&ccedil;&atilde;o Extendida n&atilde;o pode ser utilizada para armazenar
+arquivos. Ela &eacute; usada para a cria&ccedil;&atilde;o de outras parti&ccedil;&otilde;es,
+dentro dela, que s&atilde;o chamadas de parti&ccedil;&otilde;es <i>L&oacute;gicas</i>.
+<br>&nbsp;&nbsp;&nbsp; Uma parti&ccedil;&atilde;o <i>Extendida</i> podem
+conter v&aacute;rias parti&ccedil;&otilde;es <i>L&oacute;gicas</i>. As
+parti&ccedil;&otilde;es <i>L&oacute;gicas</i> podem armazenar arquivos
+e diret&oacute;rios(como as parti&ccedil;&otilde;es prim&aacute;rias).
+<br>&nbsp;&nbsp;&nbsp; Um mesmo disco r&iacute;gido pode armazenar mais
+de 64 parti&ccedil;&otilde;es independentes uma das outras.
+<p><b>LEMBRE-SE</b>: Os arquivos e diret&oacute;rios podem ser armazenados
+somente em parti&ccedil;&otilde;es de disco prim&aacute;rias ou l&oacute;gicas,
+a parti&ccedil;&atilde;o extendida n&atilde;o &eacute; usada para armazanamento
+de arquivos e diret&oacute;rios.
+<p>&nbsp;&nbsp; Se possuir duas parti&ccedil;&otilde;es em seu computador
+(<b>C:</b> e <b>D:</b> no DOS), e n&atilde;o estiver usando a parti&ccedil;&atilde;o
+<b>D:</b>,
+a instala&ccedil;&atilde;o do Linux pode ser feita nesta parti&ccedil;&atilde;o
+desde que ela tenha o espa&ccedil;o necess&aacute;rio para o sistema operacional
+Linux, os programas que desejar instalar, mais a parti&ccedil;&atilde;o
+SWAP.&nbsp;
+<div align=right>
+<br><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="1.7"></a><u><font size=+1>1.7-) Observa&ccedil;&otilde;es
+sobre o formato DOS 6.XX(FAT 16)</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp;&nbsp; No formato <b>DOS 6.XX(FAT16)</b>, o primeiro
+setor da &aacute;rea de dados da parti&ccedil;&atilde;o &eacute; utilizado
+frequentemente pelo DOS para armazenamento de dados sobre a parti&ccedil;&atilde;o
+de disco, e estes dados s&atilde;o usados pelo sistema para se ter maior
+confiabilidade do que os dados armazenados na tabela de parti&ccedil;&atilde;o.
+O sistema de arquivos DOS, faz o FDISK(do DOS) limpar os primeiros 512
+bytes da &aacute;rea de dados da parti&ccedil;&atilde;o sempre que uma
+mudan&ccedil;a de tamanho acontecer.
+<br>&nbsp;&nbsp;&nbsp;&nbsp; O formatador do DOS(<b>format</b>) verifica
+este primeiro setor toda vez que a up&ccedil;&atilde;o <b>/U</b> (que &eacute;
+utilizada para n&atilde;o salvar dados para se fazer a desformata&ccedil;&atilde;o
+do disco) foi utilizada.
+<br>&nbsp;&nbsp;&nbsp;&nbsp; Isto &eacute; considerado uma FALHA no <b>Format</b>(do
+DOS) e no <b>Fdisk</b>(do DOS).
+<p>&nbsp;&nbsp;&nbsp;&nbsp; A op&ccedil;&atilde;o abaixo deve ser utilizada
+caso voce crie uma parti&ccedil;&atilde;o do DOS FAT16 com o CFdisk, que
+faz com que os primeiros 512 bytes daquela parti&ccedil;&atilde;o sejam
+"limpos", para manter a compatibilidade com o DOS. Utilize esta op&ccedil;&atilde;o
+dentro do Linux, ap&oacute;s criar a parti&ccedil;&atilde;o com o CFdisk
+e reiniciar o seu computador. Foi notado que esta op&ccedil;&atilde;o s&oacute;
+funciona corretamente somente quando o Sistema Linux estiver instalado
+em seu computador. N&atilde;o me responsabilizo caso utiliza-la a partir
+de um disquete de recupera&ccedil;&atilde;o.
+<p><b>dd if=/dev/zero of=/dev/hdx1 bs=512 count=1</b>
+<p><b>onde:</b>
+<br><i>hdx1</i> - &Eacute; a identifica&ccedil;&atilde;o da unidade de
+disco e a parti&ccedil;&atilde;o que foi criada&nbsp; pelo CFdisk utilizando
+o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sistema
+de arquivos DOS que ter&aacute; seu primeiro setor "limpo".
+<br>&nbsp;
+<p><b>OBS1</b>: Cuidado ao utilizar esta op&ccedil;&atilde;o, um pequeno
+descuido pode resultar na perda de dados do
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+seu disco r&iacute;gido ou outras parti&ccedil;&atilde;o.
+<br><b>OBS2</b>: N&atilde;o utilize este comando com parti&ccedil;&otilde;es
+que utilizam o sistema de arquivos <i>FAT32</i>(utilizada
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+nos sistemas operacionais Windows 95 OSR/2 e superiores) .Se esta op&ccedil;&atilde;o
+for utilizada
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+em um disco utlizando este sistema de arquivos, sua FAT ser&aacute; corrompida,
+caso isto
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+acontecer, ser&aacute; necess&aacute;ria a re-formata&ccedil;&atilde;o
+da parti&ccedil;&atilde;o.
+<br><b>OBS3</b>: &Eacute; extremamente recomendado que se utilize o programa
+de particionamento que
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acompanha&nbsp;
+o seu sistema operacional. Por exemplo, se deseja criar&nbsp; uma parti&ccedil;&atilde;o
+DOS
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6.XX,
+utilize o FDisk qua acompanha o DOS.
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="2"></a><u><font size=+1>2-) Iniciando o programa CFdisk</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; Para entrar no programa CFdisk digite:
+<p><i>cfdisk</i> &lt;unidade>
+<p><b>onde:</b>
+<br><i>unidade</i> - &eacute; a unidade de disco que deseja utilizar para
+fazer o particionamento. A unidade pode
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ser:&nbsp; /dev/hda, /dev/hdb, /dev/hdc ..., /dev/sda, /dev/sdb...,etc
+<p><b>NOTA:</b> Se voce n&atilde;o digitar a unidade, o cfdisk utilizar&aacute;
+a unidade <i>/dev/hda</i> como padr&atilde;o.
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="2.1"></a><u><font size=+1>2.1-) Op&ccedil;&otilde;es de
+linha de comando utilizadas com o CFdisk</font></u></center>
+
+<p>&nbsp; Op&ccedil;&otilde;es de linha de comando fazem com que o programa
+inicie de forma espec&iacute;fica ou personalizada. As op&ccedil;&otilde;es
+devem ser digitadas ap&oacute;s o nome do programa (cfdisk).
+<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>cfdisk</b> &lt;<i>unidade</i>>
+&lt;<i> -avz</i> > &lt; -<i>c cilindros </i>> &lt; <i>-h cabe&ccedil;otes
+</i>>
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+&lt; <i>-s&nbsp; setores_por trilha </i>> &lt; <i>-P opt</i> > &lt; <i>dispositivo</i>
+>
+<p><b>onde:</b>
+<br><i>-a</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Usa um cursor seta
+ao inv&eacute;s de video reverso para destacar a
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parti&ccedil;&atilde;o
+atual.
+<br><i>-v</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Mostra a vers&atilde;o
+do programa e Coyright(Direitos Reservados).
+<br><i>-z&nbsp;</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ignora a leitura
+da tabela das parti&ccedil;&otilde;es existentes no disco
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ao iniciar o
+CFdisk.
+<p><i>-c</i> N&uacute;mero de Cilindros do disco
+<br><i>-h</i> N&uacute;mero de Cabe&ccedil;otes do disco
+<br><i>-s</i> Setores por trilha existentes no disco.
+<br><i>-P</i> <i>OPC</i>&nbsp;&nbsp;&nbsp; Mostra a tabela de parti&ccedil;&atilde;o
+no formato especifico.
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>OPC</i> -
+Pode ser:
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+<i>r</i> - Mostra a tabela de parti&ccedil;&atilde;o em Formato RAW
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+<i>s</i> - Mostra a tabela de parti&ccedil;&atilde;o em Format de Setores
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+<i>t</i> -&nbsp; Mostra a tabela de parti&ccedil;&atilde;o classificada
+pelo n&uacute;mero da parti&ccedil;&atilde;o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Para maiores detalhes, veja <a href="#2.3.9">O comando Print &lt;p></a>.
+<p><b>OBS:</b> A utiliza&ccedil;&atilde;o dos par&acirc;metros -c -h -s,
+substituir&atilde;o os par&acirc;metros da BIOS da placa, utilize
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; estas op&ccedil;&otilde;es
+se sua bios n&atilde;o utilizar estes par&acirc;metros ou se mostrar valores
+incorretos.
+<p>&nbsp;&nbsp;&nbsp; Ap&oacute;s entrar o programa CFdisk, ele verificar&aacute;
+automaticamente o tamanho do Disco R&iacute;gido, se n&atilde;o conseguir,
+o programa ser&aacute; terminado.
+<br>&nbsp;&nbsp;&nbsp; Para resolver este problema, especifique o tamanho
+do disco em cilindros, cabe&ccedil;as, e setores na linha de comando que
+inicia o programa. Este problema geralmente acontece quando se tenta particionar
+uma unidade de disco <i>SCSI</i> que esteja conectada a uma placa controladora
+que n&atilde;o possui <i>BIOS</i>, e&nbsp; quando&nbsp; uma&nbsp; <i>BIOS</i>&nbsp;
+mostra&nbsp; os&nbsp; valores&nbsp; da&nbsp; geometria&nbsp; do&nbsp; disco(tamanho)
+<br>incorretamente.
+<br>&nbsp;&nbsp;&nbsp; O pr&oacute;ximo passo do CFdisk &eacute; fazer
+a leitura das parti&ccedil;&otilde;es atuais do disco, se n&atilde;o conseguir,
+o programa ser&aacute; terminado. O &uacute;nico motivo para o CFdisk mostrar
+esta mensagem de erro, &eacute; se voce digitar par&acirc;metros incorretos
+para o tamanho do disco, caso tenha acontecido o problema
+<br>descrito no paragrafo anterior. Verifique se os par&acirc;metros foram
+digitados incorretamente, se os par&acirc;metros estiverem digitados corretamente
+e mesmo assim o programa continua dando erro na leitura das parti&ccedil;&otilde;es,
+utilize a op&ccedil;&atilde;o <i>-z</i> na linha de comando do programa,
+que faz com que ele ignore a leitura das parti&ccedil;&otilde;es existentes
+no disco ao iniciar .
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="2.2"></a><u><font size=+1>2.2-) Conhecendo a Tela do CFdisk</font></u></center>
+
+<p>&nbsp;&nbsp; Ap&oacute;s digitar CFdisk, ser&aacute; mostrada a tela
+principal onde voce poder&aacute; acionar os comandos para manipula&ccedil;&atilde;o
+das parti&ccedil;&otilde;es de disco, e visualizar as parti&ccedil;&otilde;es
+de disco atuais e outros dados.
+<br>Abaixo o exemplo e explica&ccedil;&otilde;es sobre esta tela.
+<p>O disco utilizado para os exemplos &eacute; um disco de <b>5157 MB</b>
+de Capacidade com:
+<br>- <i>10672</i> Cilindros&nbsp; <i>15</i> Cabe&ccedil;as&nbsp; <i>63</i>
+Setores (no modo <b>C/H/S</b>)
+<br>- <i>627</i> Cilindros&nbsp;&nbsp; <i>255</i> Cabe&ccedil;as&nbsp;<i>
+63</i> Setores (no modo <b>LBA</b>)
+<br>&nbsp;&nbsp; A unidade de medida utilizada pelo CFdisk para mostrar
+os par&acirc;metros do disco ser&aacute; o mesmo configurado na BIOS, ou
+seja, se estiver utilizando o disco com o modo de opera&ccedil;&atilde;o
+em <i>LBA</i>, os valores de cilindros, cabe&ccedil;as e setores motrados
+pelo CFdisk sera em <b>LBA</b>.
+<br>&nbsp;
+<p>---------------------------------------------------------------------------------------------------
+<center>CFdisk 0.8l
+<br>Disk Drive: /dev/hda
+<br>Heads:255&nbsp; Sectores per track:63&nbsp; Cylinders:627</center>
+---------------------------------------------------------------------------------------------------
+<br>Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Flags&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Part Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FSType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+[LABEL]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Size(MB)
+<br>hda1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Boot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Primary&nbsp;&nbsp;&nbsp;&nbsp; Win 95 FAT 32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+1953.12
+<br>hda5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Logical&nbsp;&nbsp;&nbsp;&nbsp; DOS FAT 16 (BIG)&nbsp;&nbsp;&nbsp; GLEYDSON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+172.58
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Pri/Log&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Free Space&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+2910.55
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<p>[Bootable]&nbsp;&nbsp; [Delete]&nbsp;&nbsp; [Help]&nbsp;&nbsp; [Maximize]&nbsp;&nbsp;
+[Print]
+<br>[Quit]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [Type]&nbsp;&nbsp;&nbsp;&nbsp;
+[Units]&nbsp; [Write]
+<br>----------------------------------------------------------------------------
+<br>&nbsp;&nbsp;&nbsp;&nbsp; No cabe&ccedil;alho da tela, &eacute; mostrada
+a vers&atilde;o do programa, a unidade de disco que ser&aacute; usada no
+particionamento e os par&acirc;metros de tamanho do disco(cabe&ccedil;otes,
+cilindros e setores).
+<br>Abaixo do cabe&ccedil;alho ap&oacute;s a linha pontilhada, se encontra
+a &aacute;rea das parti&ccedil;&otilde;es.
+<p><b>onde:</b>
+<br>- <i>Name</i>&nbsp; : &eacute; o nome da(s) parti&ccedil;&atilde;o(&otilde;es)
+de Disco.
+<br>- <i>Flags</i>&nbsp;&nbsp; : Se estiver marcada como BOOT, ser&aacute;
+poss&iacute;vel iniciar o sistema a partir desta parti&ccedil;&atilde;o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+(quando n&atilde;o se utiliza um Boot Manager). Se estiver marcada como
+NC (N&atilde;o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+compat&iacute;vel)&nbsp; significa que esta parti&ccedil;&atilde;o n&atilde;o
+&eacute; compat&iacute;vel com o DOS, OS/2, etc. Para
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+maiores detalhes, veja <a href="#2.3.7">O comando Maximize &lt;m></a>.
+<br>- <i>Type</i>&nbsp;&nbsp; : O tipo da parti&ccedil;&atilde;o pode ser
+Prim&aacute;ria ou L&oacute;gica. Para espa&ccedil;o n&atilde;o particionado,
+o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+tipo da parti&ccedil;&atilde;o pode ser Prim&aacute;rio/Log.
+<br>- <i>FileSystems</i> : Tipo de Sistema de Arquivos que &eacute; usado
+naquela parti&ccedil;&atilde;o. Se o sistema de
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+arquivos for desconhecido, ele ser&aacute; mostrado como um valor Hexadecimal.
+Um
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+caso especial ocorre quando h&aacute; Parti&ccedil;&otilde;es do Disco
+R&iacute;gido que n&atilde;o podem ser
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+usadas ( porque toda a parti&ccedil;&atilde;o prim&aacute;ria esta em uso).
+Quando isto &eacute; detectado, o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+tipo de FileSystems &eacute; mostrado como n&atilde;o us&aacute;vel(Unusable)
+para cria&ccedil;&atilde;o de novas
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+parti&ccedil;&otilde;es.
+<br>- Label&nbsp;&nbsp; : Nome de volume da parti&ccedil;&atilde;o de disco.
+Os nomes de parti&ccedil;&otilde;es FAT32,&nbsp; n&atilde;o s&atilde;o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+mostrados com esta vers&atilde;o do CFdisk.
+<br>- Size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Mostra o tamanho que cada parti&ccedil;&atilde;o
+ocupa no disco r&iacute;gido em&nbsp; MegaBytes (por
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+padr&atilde;o).
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Tamb&eacute;m pode mostrar o tamanho ocupado por Setores ou Cilindros.
+Se for mostrado
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+um asterisco (*) ap&oacute;s o tamanho, isto diz que a parti&ccedil;&atilde;o
+n&atilde;o esta alinhada com Cilindro.
+<p>&nbsp;&nbsp; O espa&ccedil;o livre existente no disco para cria&ccedil;&atilde;o
+de novas parti&ccedil;&otilde;es, &eacute; mostrado como uma outra parti&ccedil;&atilde;o,
+com o FSType(<i>sistema de arquivos</i>) Free Space(<i>espa&ccedil;o Livre</i>).
+<p><b>OBS:</b> As parti&ccedil;&otilde;es de disco Extendidas n&atilde;o
+s&atilde;o mostradas na tela do CFdisk durante o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; particionamento,
+mesmo assim, as parti&ccedil;&otilde;es l&oacute;gicas que este tipo de
+parti&ccedil;&atilde;o armazena,
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ser&atilde;o
+mostradas a partir de hdx5 ou sdx5.
+<p>&nbsp;&nbsp;&nbsp; No rodap&eacute; da tela, encontramos os comandos
+utilizados pelo CFdisk para manipular as parti&ccedil;&otilde;es de disco.
+Os comandos s&atilde;o mostrados entre Chaves [].
+<br>&nbsp;&nbsp;&nbsp; Todos os comandos no rodap&eacute; da tela, s&atilde;o
+aplicaveis somente para a parti&ccedil;&atilde;o que estiver destacada
+com a barra(video reverso).&nbsp; Veja descri&ccedil;&otilde;es dos comandos
+do CFdisk para mais detalhes.
+<br>&nbsp;&nbsp;&nbsp; Abaixo do rodap&eacute; da tela, &eacute; mostrada
+a descri&ccedil;&atilde;o do comando que estiver em destaque com o cursor
+em video reverso.
+<p>&nbsp;&nbsp;&nbsp; Veja abaixo a tradu&ccedil;&atilde;o da tela principal
+do programa CFdisk:
+<br>---------------------------------------------------------------------------------------------------
+<center>CFdisk 0.8l
+<br>Unidade de Disco: /dev/hda
+<br>Cabe&ccedil;as:255&nbsp; Setores por trilha:63&nbsp; Cilindros:627</center>
+---------------------------------------------------------------------------------------------------
+<br>Nome&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Op&ccedil;&otilde;es&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Tipo Part.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tipo Sist. Arquivos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+[VOLUME]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tamanho(MB)
+<br>hda1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Boot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Primary&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Win
+95 FAT 32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+1953.12
+<br>hda5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Logical&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOS FAT 16 (BIG)&nbsp;&nbsp;&nbsp;&nbsp;
+GLEYDSON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+172.58
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Pri/Log&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Espa&ccedil;o Livre&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+2910.55
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<p>[Inicializ&aacute;vel]&nbsp;&nbsp;&nbsp; [Apagar]&nbsp;&nbsp;&nbsp;
+[Ajuda]&nbsp;&nbsp;&nbsp;&nbsp; [Maximizar]&nbsp;&nbsp;&nbsp; [Imprimir]
+<br>[Sair]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+[Tipo]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [Unidades][Gravar]
+<br>----------------------------------------------------------------------------
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="2.3"></a><u><font size=+1>2.3-) Descri&ccedil;&atilde;o
+dos comandos do CFdisk</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; Os comandos do programa s&atilde;o utilizados criar
+parti&ccedil;&otilde;es, entrar na ajuda do programa, alterar o tipo da
+parti&ccedil;&atilde;o, apagar uma parti&ccedil;&atilde;o, etc.
+<br>&nbsp;&nbsp;&nbsp; Pode ser utilizado Seta p/ Esquerda e Seta p/ direita
+para se movimentar entre os comandos, quando o cursor estiver em cima do
+comando que deseja executar, pressione &lt;Enter>.
+<br>&nbsp;&nbsp;&nbsp; Outro m&eacute;todo que se pode utilizar para acionar
+uma op&ccedil;&atilde;o do CFdisk, &eacute; pressionando a primeira letra
+de cada op&ccedil;&atilde;o, automaticamente a op&ccedil;&atilde;o &eacute;
+executada(sem ter que pressionar &lt;Enter>). Neste m&eacute;todo, todos
+os comandos aceitam letras mai&uacute;sculas e min&uacute;sculas, exceto
+o comando Write(gravar parti&ccedil;&atilde;o) que &eacute; executado somente
+se pressionar &lt;W> mai&uacute;scula, para evitar
+<br>grava&ccedil;&otilde;es acidentais o disco.
+<br>&nbsp;&nbsp;&nbsp; Quando estiver em um Sub-Menu e desejar retornar
+ao menu principal, pressione a tecla &lt;Esc>.&nbsp;
+<div align=right>
+<br><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="2.3.1"></a><u><font size=+1>2.3.1-) Setas Acima e Abaixo/
+Esquerda e Direita (Movimenta&ccedil;&atilde;o do Cursor)</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; Setas Acima e Abaixo s&atilde;o utilizadas para se
+movimentar entre as parti&ccedil;&otilde;es existentes no disco e espa&ccedil;o
+livre, selecionando-a para que seja utilizada as op&ccedil;&otilde;es do
+CFdisk.
+<br>&nbsp;&nbsp;&nbsp; Setas Esquerda e Direita s&atilde;o utilizadas para
+selecionar entre as op&ccedil;&otilde;es dipon&iacute;veis do programa(que
+ser&atilde;o explicadas abaixo). Para confirmar uma op&ccedil;&atilde;o,
+pressione &lt;Enter>.
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="2.3.2"></a><u><font size=+1>2.3.2-) &lt;CTRL>+&lt;l></font></u></center>
+
+<p>&nbsp;&nbsp; Este comando &eacute; utilizado para atualizar a tela manualmente
+caso a atualiza&ccedil;&atilde;o autom&aacute;tica falhar, por exemplo,
+quando uma parti&ccedil;&atilde;o for excluida, e continuar a ser mostrada
+na tela.
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="2.3.3"></a><u><font size=+1>2.3.3-) Boot &lt;b></font></u></center>
+
+<p>&nbsp;&nbsp; Este comando permite escolher se a parti&ccedil;&atilde;o
+Prim&aacute;ria atual ser&aacute; utilizada para iniciar o sistema(BOOT).
+Selecione esta op&ccedil;&atilde;o para selecionar entre parti&ccedil;&atilde;o
+inicializ&aacute;vel ou n&atilde;o inializ&aacute;vel. Quando uma parti&ccedil;&atilde;o
+estiver marcada como inicializ&aacute;vel, aparecer&aacute; a palavra BOOT
+na coluna Flags(na tela principal do programa).
+<p><b>OBS:</b> N&atilde;o ser&aacute; necess&aacute;rio marcar a parti&ccedil;&atilde;o
+Linux como inicializ&aacute;vel, caso se esteja utilizando um
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Boot Manager(como
+o <i>LILO</i>) para escolher qual sistema operacional sera utilizado para
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inicializar o sistema.
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="2.3.4"></a><u><font size=+1>2.3.4-) Delete &lt;d></font></u></center>
+
+<p>&nbsp;&nbsp; Este comando apaga a parti&ccedil;&atilde;o selecionada
+do disco. Ap&oacute;s apagar a parti&ccedil;&atilde;o, o espa&ccedil;o
+ocupado por ela &eacute; convertido para espa&ccedil;o livre.
+<br>&nbsp; A parti&ccedil;&atilde;o marcada atualmente como Free Space
+ou como Unusable n&atilde;o pode ser apagada.
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="2.3.5"></a><u><font size=+1>2.3.5-) Geometry &lt;g></font></u></center>
+
+<p>&nbsp;&nbsp; Este comando n&atilde;o &eacute; mostrado no menu, pois
+&eacute; utilizado para alterar o tamanho (Cilindros, Cabe&ccedil;as e
+Setores do disco). Este comando s&oacute; pode ser acionado se for pressionada
+a tecla &lt;g>.
+<p><b>CUIDADO:</b> Esta op&ccedil;&atilde;o &eacute; recomendada somente
+para aqueles que sabem os riscos que o uso
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+desta op&ccedil;&atilde;o pode fazer, e se a situa&ccedil;&atilde;o que
+est&atilde;o, requerem o seu uso.
+<br>&nbsp;&nbsp; Uma situa&ccedil;&atilde;o que esta op&ccedil;&atilde;o
+&eacute; util, &eacute; se o BIOS do seu computador n&atilde;o mostrar
+corretamente os par&acirc;metros do disco(Cilindros, Cabe&ccedil;otes ou
+Setores), sendo necess&aacute;rio que se passe manualmente o tamanho do
+disco para que seja feito o correto particionamento do disco.
+<p><b>OBS:</b> Caso seu disco r&iacute;gido for <i>SCSI</i> e placa controladora
+dele n&atilde;o tiver BIOS,&nbsp; provavelmente o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CFdisk n&atilde;o
+ser&aacute; iniciado. Se este problema ocorrer, digite os par&acirc;metros
+do disco na linha
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; de comando ao
+iniciar o programa. Para maiores detalhes, veja op&ccedil;&otilde;es de
+linha de comando
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do CFdisk..
+<p>Ap&oacute;s pressionar &lt;g> ser&aacute; mostrada a seguinte tela:
+<p>----------------------------------------------------------------------------------------------------
+<center>CFdisk 0.8l
+<br>Disk Drive: /dev/hda
+<br>Heads:255&nbsp; Sectors:63&nbsp; Cilinders:627</center>
+----------------------------------------------------------------------------------------------------
+<br>Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Flags&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Part Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File
+System&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+[LABEL]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Size(MB)
+<p>hda1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Boot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Primary&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Win 95 FAT
+32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+1953.12
+<br>hda5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Logical&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOS FAT 16 (BIG)&nbsp;&nbsp;&nbsp;&nbsp;
+GLEYDSON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 172.58
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Pri/Log&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Espa&ccedil;o Livre&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+2910.55
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<p>[ Cylinders]&nbsp; [Heads]&nbsp; [Sectors]&nbsp; [Done]
+<p>----------------------------------------------------------------------------
+<br><b>onde:</b>
+<br><i>Cylinders&nbsp; </i>: Altera o n&uacute;mero de Cilindros do disco
+atual durante o particionamento.
+<br><i>Heads</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Altera o n&uacute;mero
+de Cabe&ccedil;as do disco atual durante o particionamento.
+<br><i>Sectors</i>&nbsp;&nbsp;&nbsp;&nbsp; : Altera o n&uacute;mero de
+Setores do disco atual durante o particionamento.
+<br><i>Done</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Quando finalizar
+as altera&ccedil;&otilde;es, tecle &lt;d> ou selecione Done para
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+que o CFdisk modifique os valores de Cilindros, Cabe&ccedil;as e Setores
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+que utiliza para particionar o disco e retorne a tela anterior.
+<br>&nbsp;
+<p>&nbsp;&nbsp;&nbsp;&nbsp; Quando escolher algum par&acirc;metro acima
+para altera&ccedil;&atilde;o(Cilindros, cabe&ccedil;otes ou Setores do
+disco), ser&aacute; vista uma tela como esta:
+<br>----------------------------------------------------------------------------------------------------
+<center>CFdisk 0.8l
+<br>Disk Drive: /dev/hda
+<br>Heads:255&nbsp; Sectors:63&nbsp; Cilinders:627</center>
+----------------------------------------------------------------------------------------------------
+<br>Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Flags&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Part Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+File System&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+[LABEL]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Size(MB)
+<p>hda1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Boot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Primary&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Win 95 FAT 32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+1953.12
+<br>hda5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Logical&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOS
+FAT 16 (BIG)&nbsp;&nbsp;&nbsp;&nbsp; GLEYDSON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+172.58
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Pri/Log&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Espa&ccedil;o Livre&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+2910.55
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<p>Enter the number of Cylinders: 627
+<p>----------------------------------------------------------------------------
+<br>&nbsp;&nbsp;&nbsp;&nbsp; O valor que aparece ao selecionar a op&ccedil;&atilde;o,
+&eacute; o valor que o disco esta utilizando atualmente (<i>cilindros</i>),
+e ser&aacute; pedido que digite um valor para os Cilindros, que substituir&aacute;
+os da BIOS durante a se&ccedil;&atilde;o de particionamento.&nbsp; Para
+sair desta tela sem alterar o valor, pressione &lt;ESC>. A mesma tela e
+explica&ccedil;&atilde;o se aplicam para as altera&ccedil;&otilde;es de
+Cabe&ccedil;as e Setores.
+<p><b>OBS:</b> Se por acaso digitar um valor incorretamente para o tamanho
+do disco e&nbsp;&nbsp;&nbsp;&nbsp; n&atilde;o se lembrar
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mais do valor
+antigo ou original, selecione a op&ccedil;&atilde;o Done, e&nbsp; tecle
+&lt;q> para sair do CFdisk
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sem gravar as altera&ccedil;&otilde;es
+feitas para o disco, pois se continuar a utilizar o CFdisk com o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tamanho do disco incorreto,
+os dados existentes nele e at&eacute; mesmo parti&ccedil;&otilde;es poder&atilde;o
+ser
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; perdidos(as).
+<p>&nbsp;&nbsp; Se aumentar o tamanho do disco, setores adicionais s&atilde;o
+acrescentados no final do disco, e s&atilde;o mostrados como espa&ccedil;o
+livre.
+<br>&nbsp;&nbsp; Se diminuir o tamanho do disco, as parti&ccedil;&otilde;es
+que estavam localizadas ap&oacute;s o setor/cilindro que foi excluido(se
+existir alguma), ser&aacute; apagada e a &uacute;ltima parti&ccedil;&atilde;o(ou
+espa&ccedil;o livre ao final do disco r&iacute;gido), ter&aacute; seu tamanho
+alterado e terminar&aacute; neste "novo" &uacute;ltimo setor do disco.
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="2.3.6"></a><u><font size=+1>2.3.6-) Help &lt;h> ou &lt;?></font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; O comando Help mostra a tela de ajuda do programa,
+que descreve as fun&ccedil;&otilde;es das teclas utilizadas pelo programa
+e suas fun&ccedil;&otilde;es.
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="2.3.7"></a><u><font size=+1>2.3.7-) Maximize &lt;m></font></u></center>
+
+<p>&nbsp;&nbsp; Este comando aumenta a utiliza&ccedil;&atilde;o de espa&ccedil;o
+do disco na parti&ccedil;&atilde;o atual. Isto porque o <i>DOS</i>, <i>OS/2</i>
+e outros sistemas operacionais utilizam o primeiro setor da primeira trilha
+da parti&ccedil;&atilde;o do disco e em todas as <i>parti&ccedil;&otilde;es
+L&oacute;gicas</i> para iniciar o sistema operacional, utilizando a segunda
+trilha em diante daquela parti&ccedil;&atilde;o para fazer o armazenamento
+de arquivos. Este espa&ccedil;o perdido entre o <i>segundo</i> e o <i>&uacute;ltimo</i>
+Setor da primeira trilha da primeira cabe&ccedil;a, pode ser recuperado
+com a utilizando este comando.
+<br>&nbsp;&nbsp;&nbsp; Este comando faz com que a parti&ccedil;&atilde;o
+se torne imcompat&iacute;vel com <i>DOS</i>, <i>OS/2</i> e outros Sistemas
+Operacionais que utilizam este primeiro Setor do disco para iniciar o sistema
+operacional.
+<br>&nbsp;&nbsp; Se este comando for utilizado, ser&aacute; colocada uma
+op&ccedil;&atilde;o chamada <i>NC</i>(n&atilde;o compat&iacute;vel) em
+Flags(na tela principal do CFdisk).
+<br>&nbsp;&nbsp; Esta op&ccedil;&atilde;o faz o uso m&aacute;ximo do disco
+e a incompatibilidade com o <i>DOS/OS/2</i>, etc. O padr&atilde;o quando
+criando uma Parti&ccedil;&atilde;o, &eacute; criando Parti&ccedil;&otilde;es
+compativeis com o <i>DOS, OS/2</i>, etc.
+<p><b>OBS:</b> O Fdisk(vers&atilde;o 8 e superiores) e parti&ccedil;&otilde;es
+formatadas com o sistema de arquivos <i>FAT32</i>,
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fazem a utiliza&ccedil;&atilde;o
+completa deste espa&ccedil;o entre o segundo e o &uacute;ltimo Setor da&nbsp;
+primeira trilha
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do disco, eliminando
+o desperd&iacute;cio de espa&ccedil;o.
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="2.3.8"></a><u><font size=+1>2.3.8-) New &lt;n></font></u></center>
+
+<p>&nbsp;&nbsp; O comando New&lt;n>, cria uma nova parti&ccedil;&atilde;o
+usando o espa&ccedil;o livre(FreeSpace) existente no disco. Ap&oacute;s
+escolher esta op&ccedil;&atilde;o, o CFdisk perguntar&aacute; se deseja
+criar uma <i>parti&ccedil;&atilde;o Prim&aacute;ria</i>, <i>L&oacute;gica</i>
+ou <i>Cancelar</i> o comando.
+<br>&nbsp;&nbsp;&nbsp; Escolhendo criar uma parti&ccedil;&atilde;o <i>Prim&aacute;ria</i>
+ou <i>L&oacute;gica</i>, o sistema perguntar&aacute; o tamanho da parti&ccedil;&atilde;o
+que deseja criar, por padr&atilde;o, o CFdisk mostrar&aacute; o espa&ccedil;o
+livre total dispon&iacute;vel no disco para a cria&ccedil;&atilde;o da
+nova parti&ccedil;&atilde;o(em MegaBytes). Tecle &lt;Enter> para criar
+uma parti&ccedil;&atilde;o do tipo escolhido com este tamanho ou digite
+um tamamho menor. O CFdisk permite que seja digitados valores em:
+<br>- <i>MegaBytes</i>(M - o padr&atilde;o do programa)
+<br>- <i>KiloBytes</i>(K)
+<br>- <i>Cilindros</i>(C)
+<br>- <i>Setores</i>(S)
+<br>Digitando-se o tamanho da parti&ccedil;&atilde;o seguida de uma das
+letras acima. Se a letra n&atilde;o for digitada,
+<br>o programa assumir&aacute; o tamanho que digitou em MegaBytes.
+<p><b>OBS1:</b> Quando criar uma parti&ccedil;&atilde;o L&oacute;gica,
+automaticamente ser&aacute; criada uma parti&ccedil;&atilde;o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Extendida, entre hdx1 e hdx4, e a parti&ccedil;&atilde;o Extendida n&atilde;o
+&eacute;&nbsp; mostrada na tela de
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+particionamento de disco. Se desejar exibir a parti&ccedil;&atilde;o extendida,
+execute o comando
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+PRINT &lt;p> e escolha a op&ccedil;&atilde;o <i>Sector</i> para verificar
+qual &eacute; a identifica&ccedil;&atilde;o da <i>parti&ccedil;&atilde;o</i>
+<br><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Extendida</i>&nbsp; no disco. Para maiores detalhes, veja o <a href="#2.3.9">comando
+PRINT &lt;p></a>.
+<br><b>OBS2</b>: S&atilde;o permitidas, no m&aacute;ximo, 4 parti&ccedil;&otilde;es
+<i>Prim&aacute;rias</i>
+e <i>Extendidas</i>(3 <i>Prim&aacute;rias</i> e 1
+<br><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Extendida </i>ou 4 <i>parti&ccedil;&otilde;es Prim&aacute;rias</i> em cada
+disco). O CFdisk calcular&aacute;
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+automaticamente os valores das parti&ccedil;&otilde;es L&oacute;gicas caso
+as primeiras 4 parti&ccedil;&otilde;es forem
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ocupadas.
+<p>&nbsp;&nbsp;&nbsp; O pr&oacute;ximo passo, &eacute; a localiza&ccedil;&atilde;o
+da parti&ccedil;&atilde;o no espa&ccedil;o livre existente o disco. As
+duas op&ccedil;&otilde;es dispon&iacute;veis s&atilde;o:
+<br>- <i><u>Beginning</u></i> : A parti&ccedil;&atilde;o &eacute; colocada
+a partir do inicio do espa&ccedil;o livre no disco, ocupando o espa&ccedil;o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+livre de acordo com o seu tamanho (do in&iacute;cio para o fim do espa&ccedil;o
+livre ), este &eacute; o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+padr&atilde;o para a cria&ccedil;&atilde;o de novas parti&ccedil;&otilde;es
+e o mais utilizado. Veja o exemplo,&nbsp; a
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+cria&ccedil;&atilde;o de uma parti&ccedil;&atilde;o de <b>30MB</b> em um
+disco com <b>50MB</b> de espa&ccedil;o n&atilde;o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+particionado, sendo que este disco j&aacute; possui uma parti&ccedil;&atilde;o
+de <b>120MB</b>(com espa&ccedil;o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+total de <b>170MB</b>).
+<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+##################################MMMMMMMMMMMMMMMMMMMMMM
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+|
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Parti&ccedil;&atilde;o existente(<b>120MB</b>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Espa&ccedil;o Livre(<b>50MB</b>)
+<br>&nbsp;
+<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+com a nova parti&ccedil;&atilde;o criada:
+<p>&nbsp;###################################################MMMMMMMMM
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+|
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Parti&ccedil;&atilde;o existente(<b>120</b>MB)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Nova parti&ccedil;&atilde;o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Espa&ccedil;o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+(<b>30</b>MB)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Livre
+<p>-<i> <u>End&nbsp;</u></i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : A parti&ccedil;&atilde;o
+&eacute; criada subtraindo-se o espa&ccedil;o livre total do disco pelo
+tamanho da
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+parti&ccedil;&atilde;o&nbsp; que ser&aacute; criada, come&ccedil;ando a
+criar esta parti&ccedil;&atilde;o a partir do ponto que
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+resultou esta subtra&ccedil;&atilde;o.
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Veja abaixo no exemplo, a parti&ccedil;&atilde;o que ser&aacute; criada
+ter&aacute; o tamanho de <b>30</b>MB e existe
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+no disco um espa&ccedil;o n&atilde;o particionado de <b>50</b>MB, com <b>120</b>MB
+j&aacute; ocupados por uma
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+parti&ccedil;&atilde;o existente:
+<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+##################################MMMMMMMMMMMMMMMMMMMMM
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+|
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Parti&ccedil;&atilde;o existente(<b>120</b>MB)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Espa&ccedil;o Livre(<b>50</b>MB)
+<br>&nbsp;
+<p>com a nova parti&ccedil;&atilde;o criada (Selecionando a op&ccedil;&atilde;o
+End):
+<p>##################################MMMMMMMMMM#################
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+|
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Parti&ccedil;&atilde;o existente(<b>120</b>MB)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Espa&ccedil;o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Nova parti&ccedil;&atilde;o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Livre&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+(<b>30</b>MB)
+<p>&nbsp;&nbsp;&nbsp; A parti&ccedil;&atilde;o que ser&aacute; criada utilizara
+o espa&ccedil;o livre entre o &uacute;ltimo Setor do disco e o setor resultante
+da subtra&ccedil;&atilde;o(<b>170</b>MB-<b>30</b>MB). Mesmo assim, a ordem
+que ser&aacute; criada esta parti&ccedil;&atilde;o parti&ccedil;&atilde;o
+ser&aacute; criada do Setor inicial(que &eacute; o resultado da subtra&ccedil;&atilde;o)
+para o &uacute;ltimo Setor do disco. Existir&aacute; um espa&ccedil;o livre
+de <b>20</b>MB entre a primeira parti&ccedil;&atilde;o (de <b>120</b>MB)
+e a nova parti&ccedil;&atilde;o de <b>30</b>MB.
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="2.3.9"></a><u><font size=+1>2.3.9-) Print &lt;p></font></u></center>
+
+<p>&nbsp;&nbsp; Este comando mostra a tabela de parti&ccedil;&atilde;o
+no formato selecionado na tela, ou permite que seja gravado um arquivo
+no disco. Todas as parti&ccedil;&otilde;es s&atilde;o classificadas na
+ordem que foram gravadas no disco.
+<p>Os formatos aceitos para visualiza&ccedil;&atilde;o de parti&ccedil;&otilde;es
+s&atilde;o:
+<p><u><i>RAW &lt;r></i> </u>: Formato de dados do disco, mostra os setores
+que ser&atilde;o gravados para o disco, caso
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+seja escolhido o comando WRITE &lt;W>. O formato mostrado &eacute; exatamente
+aquele
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+que ser&aacute; gravado para ao disco.
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Abaixo um exemplo
+deste formato:
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --------------------------------------------------------------------
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Disk Drive:
+/dev/hda</i>
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sector 0:
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x000: EB 69
+4C 49 4C 4F 01 00 14 00 D7 02 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x010: FB 1B
+CF 36 74 D8 80 23 01 75 D8 80 23 01 73 D8
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x020: 80 23
+01 01 77 01 77 D8 80 23 01 78 D8 80 23 01
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x030: 64 D8
+80 23 01 65 D8 80 23 01 66 D8 80 23 01 67
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x040: D8 80
+23 01 68 D8 80 23 01 69 D8 80 23 01 6A D8
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x050: 80 23
+01 6B D8 80 23 01 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x060: 00 00
+00 00 00 00 00 00 00 00 00 B8 C0 07 8E D8
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x070: 8C 06
+66 00 89 36 64 00 89 1E 68 00 88 16 6A 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x080: B8 00
+9A 8E C0 B9 00 01 29 F6 29 FF FC F3 A5 EA
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x090: 94 00
+00 9A FA 8E D8 8E C0 BC 00 B0 B8 00 90 8E
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0A0: D0 FB
+B0 0D E8 57 00 B0 0A E8 52 00 B0 4C E8 4D
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0B0: 00 BE
+30 00 BB 00 10 FC AD 89 C1 AD 89 C2 09 C8
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0C0: 74 20
+46 E8 43 00 72 06 81 C3 00 02 EB EA 50 B0
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0D0: 20 E8
+2A 00 58 88 E0 E8 12 00 31 C0 88 C2 CD 13
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0E0: EB CF
+B0 49 E8 17 00 EA 00 00 00 9B 50 C0 E8 04
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0F0: E8 01
+00 58 24 0F 04 30 3C 3A 72 02 04 07 30 FF
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x100: B4 0E
+CD 10 C3 5A 59 5B C3 F6 C2 40 74 52 80 E2
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x110: BF 53
+51 52 B4 08 CD 13 72 EB 88 F3 5A 88 16 6D
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x120: 01 88
+F2 30 F6 88 F7 58 51 86 CD D0 C5 D0 C5 80
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x130: E5 03
+89 0E 6B 01 59 83 E1 3F F7 F1 FE C2 88 16
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x140: 6E 01
+31 D2 43 F7 F3 88 D6 8A 16 6D 01 3B 06 6B
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x150: 01 77
+13 86 C4 D0 C8 D0 C8 0A 06 6E 01 89 C1 5B
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x160: B8 01
+02 CD 13 C3 5B 31 C0 F9 C3 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x170: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x180: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x190: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1A0: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1B0: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 80 01
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1C0: 01 00
+0B FE 3F 8F 3F 00 00 00 51 4C 23 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1D0: 41 D7
+83 FE BF 6F 17 75 73 00 59 81 25 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1E0: 01 98
+05 FE 7F D6 98 42 25 00 7F 32 4E 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1F0: 81 70
+82 FE BF 72 70 F6 98 00 43 BC 00 00 55 AA
+<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sector 2441880:
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x000: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x010: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x020: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x030: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x040: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x050: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x060: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x070: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x080: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x090: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0A0: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0B0: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0C0: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0D0: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0E0: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0F0: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x100: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x110: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x120: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x130: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x140: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x150: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x160: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x170: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x180: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x190: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1A0: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1B0: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 01
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1C0: 01 98
+0B FE 7F D6 3F 00 00 00 40 32 4E 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1D0: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1E0: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1F0: 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 55 AA
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -----------------------------------------------------------------
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+A primeira tabela de parti&ccedil;&atilde;o mostrada &eacute; a Prim&aacute;ria,
+depois
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as tabelas de
+parti&ccedil;&otilde;es ligadas com cada parti&ccedil;&atilde;o l&oacute;gica.
+Como
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; no exemplo,
+os dados s&atilde;o mostrados em bytes Hexadecimais(na
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; primeira coluna)
+seguidos de 16 bytes por linha.
+<p><i><u>Sector &lt;s></u></i>: Mostra a tabela de parti&ccedil;&atilde;o
+classificada por setores. Esta
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; op&ccedil;&atilde;o
+mostra o espa&ccedil;o n&atilde;o particionado no disco e a<i> parti&ccedil;&atilde;o</i>
+<br><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Extendida</i>,
+que &eacute; mostrada antes das <i>parti&ccedil;&otilde;es L&oacute;gicas</i>.
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Abaixo um exemplo
+deste formato:
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ------------------------------------------------------------------
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Partition Table
+for /dev/hda
+<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+First&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Last
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Sector&nbsp;&nbsp;&nbsp;&nbsp; Sector&nbsp;&nbsp;&nbsp;&nbsp; Offset&nbsp;&nbsp;
+Length&nbsp;&nbsp; Filesystem Type (ID)&nbsp;&nbsp; Flags
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- -------&nbsp;&nbsp;&nbsp;&nbsp;
+--------&nbsp;&nbsp; ---------&nbsp;&nbsp; ------ --------- ----------------------
+---------
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 Primary&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2313359&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+63&nbsp; 2313360&nbsp; Win95 FAT32 (0B)&nbsp;&nbsp; Boot (80)
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Logical&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2313360&nbsp; 2441879&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+0&nbsp;&nbsp;&nbsp; 128520&nbsp; Free Space&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+None (00)
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3 Primary&nbsp;&nbsp;
+2441880&nbsp; 7566614&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;
+5124735&nbsp; Extended&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+(05)&nbsp;&nbsp; None (00)
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5 Logical&nbsp;&nbsp;
+2441880&nbsp;&nbsp; 7566614&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 63&nbsp; 5124735&nbsp;
+Win95 FAT32 (0B)&nbsp;&nbsp; None (00)
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 Primary&nbsp;
+7566615&nbsp; 10024559&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp; 2457945&nbsp;
+Linux&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+(83)&nbsp;&nbsp; None (00)
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4 Primary
+10024560 10072754&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+48195&nbsp; Linux Swap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (82)&nbsp; None
+(00)
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ------------------------------------------------------------------------------------
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>Onde</b>:
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>#</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+- Identifica&ccedil;&atilde;o da parti&ccedil;&atilde;o no disco /dev/hda
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Type</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+- Tipo da parti&ccedil;&atilde;o(veja o exemplo)
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>First Sector</i>
+- Primeiro Setor utilizado para o armazanamento da parti&ccedil;&atilde;o.
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Last Sector</i>&nbsp;
+- &Uacute;ltimo Setor utilizado para o armazenamento da parti&ccedil;&atilde;o.
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Offset&nbsp;</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+-
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> Lenght</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+- Tamanho total da parti&ccedil;&atilde;o em setores (Last Sector - First
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Sector).
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>&nbsp; FileSystem
+Type (ID)</i> - Identifica&ccedil;&atilde;o do Sistema de Arquivos da parti&ccedil;&atilde;o,&nbsp;
+seguido do seu
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+c&oacute;digo hexadecimal no CFDisk. A <i>parti&ccedil;&atilde;o Extendida</i>
+&eacute; identificada como
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+um sistema de arquivos&nbsp; com o c&oacute;digo 05 (veja o exemplo).
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> Flags&nbsp;&nbsp;&nbsp;</i>&nbsp;&nbsp;&nbsp;&nbsp;
+-&nbsp;&nbsp;&nbsp;&nbsp; Op&ccedil;&otilde;es da parti&ccedil;&atilde;o
+seguido de seu valor em&nbsp; hexadecimal.
+<p><i><u>Table &lt;t></u></i> : Mostra a tabela de parti&ccedil;&atilde;o
+classificada pelo n&uacute;mero da parti&ccedil;&atilde;o.
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Esta op&ccedil;&atilde;o deixa fora todo espa&ccedil;o livre e n&atilde;o
+usado na parti&ccedil;&atilde;o.
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Abaixo um exemplo deste formato.
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+----------------------------------------------------------------
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Partition Table for /dev/hda
+<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+---Starting---&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ----Ending----&nbsp;&nbsp;&nbsp;
+Start&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Number of
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+# Flags Head Sect Cyl&nbsp;&nbsp; ID&nbsp; Head Sect Cyl&nbsp;&nbsp;&nbsp;
+Sector&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sectors
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+-- ----- ----&nbsp;&nbsp; ----&nbsp; ----&nbsp; ----&nbsp;&nbsp; ---- ----
+----&nbsp; --------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ---------
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+1&nbsp; 0x80&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+0&nbsp; 0x0B&nbsp; 254&nbsp;&nbsp; 63&nbsp; 143&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+63&nbsp;&nbsp; 2313297
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+2&nbsp; 0x00&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;
+471&nbsp; 0x83&nbsp; 254&nbsp;&nbsp; 63&nbsp; 623&nbsp; 7566615&nbsp;&nbsp;
+2457945
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+3&nbsp; 0x00&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;
+152&nbsp; 0x05&nbsp; 254&nbsp;&nbsp; 63&nbsp; 470&nbsp; 2441880&nbsp;&nbsp;
+5124735
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+4&nbsp; 0x00&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;
+624&nbsp; 0x82&nbsp; 254&nbsp;&nbsp; 63&nbsp; 626 10024560&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+48195
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+5&nbsp; 0x00&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;
+152&nbsp; 0x0B&nbsp; 254&nbsp;&nbsp; 63&nbsp; 470&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+63&nbsp;&nbsp; 5124672
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+-------------------------------------------------------------------
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>Onde</b>:
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>#</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+- N&uacute;mero da parti&ccedil;&atilde;o de disco
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Flags</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+- As op&ccedil;&otilde;es utilizadas com a parti&ccedil;&atilde;o (em&nbsp;
+valor Hexadecimal).
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+O valor <b>0x80</b> equivale a BOOT.
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+O valor <b>0x00</b> equivale a nenhuma op&ccedil;&atilde;o&nbsp; utilizada
+naquela parti&ccedil;&atilde;o.
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>Starting</b>
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Head</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+- Cabe&ccedil;ote Inicial
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Sector</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+- Setor Inicial
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Cyl</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+- Cilindro Inicial
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ID</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+- Identifica&ccedil;&atilde;o do Sistema de arquivos(em&nbsp; hexadecimal,
+conforme a
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+tabela do CFdisk).
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>Ending</b>
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Head</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+- Cabe&ccedil;ote Final
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Sector</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+- Setor Final
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Cyl</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+- Cilindro Final
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Start
+Sector</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+- Setor inicial da parti&ccedil;&atilde;o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Number
+of Sectors</i> - N&uacute;mero de setores ocupados pela parti&ccedil;&atilde;o.
+<p>&nbsp;&nbsp;&nbsp; Se a parti&ccedil;&atilde;o n&atilde;o inicia ou
+n&atilde;o termina em um cilindro limite do disco ou se o seu tamanho n&atilde;o
+&eacute; divis&iacute;vel pelo tamanho do cilindro, um <b>*</b> &eacute;
+ser&aacute; mostrado ap&oacute;s o setor n&atilde;o alinhado. Este problema
+normalmente ocorre quando a parti&ccedil;&atilde;o &eacute; criada por
+um Sistema operacional em que o limite da parti&ccedil;&atilde;o n&atilde;o
+&eacute; alinhada com o cilindro ou que utiliza a contagem do tamanho do
+disco
+<br>de forma diferente.
+<br>&nbsp;&nbsp;&nbsp; A tabela de parti&ccedil;&atilde;o somente tem 10
+bits dispon&iacute;vel para identificar o cilindro inicial e final. Assim,
+quando o setor inicial absoluto &eacute; um cilindro maior que <b>1023</b>(<i>final
+do disco</i>), o valor m&aacute;ximo para a cabe&ccedil;a inicial, setor
+e cilindro s&atilde;o definidos. Este metodo &eacute; usado pelo <i>OS/2</i>,
+e
+<br>e corrige os problemas associados com <i>OS/2</i> caso o Fdisk regrava
+a tabela de parti&ccedil;&atilde;o quanto ela n&atilde;o esta neste formato.
+<br>&nbsp;&nbsp;&nbsp; Desde ent&atilde;o <i>Linux</i> e <i>OS/2</i> utilizam
+esta contagem de setores absolutos, os valores na cabe&ccedil;a inicial
+e final, Setor e Cilindro n&atilde;o s&atilde;o usadas.
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="2.3.10"></a><u><font size=+1>2.3.10-) Quit &lt;q></font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp;&nbsp; Esta op&ccedil;&atilde;o faz com que o CFdisk
+abandonar todas as altera&ccedil;&otilde;es e retornar para o Aviso de
+comando. Quando esta op&ccedil;&atilde;o &eacute; escolhida, o programa
+retorna deixando o disco como estava antes de se iniciar o particionamento.
+<br>&nbsp;&nbsp;&nbsp;&nbsp; Se escolher esta op&ccedil;&atilde;o o CFdisk
+abandonar&aacute; o particionamento de disco e voltar&aacute; para a linha
+de comandos imediatamente. Se <i>alterar/criar/excluir</i> alguma parti&ccedil;&atilde;o
+de disco e escolher esta op&ccedil;&atilde;o, o programa emitir&aacute;
+um Beep indicando que alguma altera&ccedil;&atilde;o feita no disco foi
+abandonada.
+<p><b>OBS</b>: Esta op&ccedil;&atilde;o &eacute; &uacute;til caso tenha
+se cometido algum engano durante o particionamento do disco,
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; como apagar
+por uma parti&ccedil;&atilde;o que cont&eacute;m arquivos, alterar o tamanho
+do disco(geometria),
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; etc. Lembre-se
+que tudo o que fez ser&aacute; abandonado, durante o particionamento, se
+escolher
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; esta op&ccedil;&atilde;o.
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="2.3.11"></a><u><font size=+1>2.3.11-) Type &lt;t></font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp;&nbsp; Comando usado para alterar o tipo do sistema
+de arquivos utilizado pela parti&ccedil;&atilde;o. As parti&ccedil;&otilde;es,
+quando criadas, recebem o sistema de arquivos <b>Linux Native</b>(ou simplesmente
+Linux - <i>tipo 83</i>). O CFdisk pode criar, manipular, excluir, uma grande
+variedade de Sistemas de arquivos para os mais diversos tipos de sistemas
+operacionais existentes, veja o final deste manual para ver as parti&ccedil;&otilde;es
+compat&iacute;veis com este programa.
+<br>&nbsp;&nbsp; Para alterar o tipo do sistema de arquivos (<i>File System</i>)
+utilizado pela parti&ccedil;&atilde;o, tecle &lt;t>, e digite o valor de
+acordo com a lista de parti&ccedil;&otilde;es dispon&iacute;veis no programa.
+<br>&nbsp;&nbsp; Por exemplo, para mudar a parti&ccedil;&atilde;o do tipo
+Linux para Linux Swap, selecione esta parti&ccedil;&atilde;o, e tecle &lt;t>,
+e digite o n&uacute;mero <i>82</i>(que corresponde a <b>Linux Native</b>)
+e tecle &lt;Enter>, e a parti&ccedil;&atilde;o ter&aacute; seu sistema
+de arquivos alterado.
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="2.3.12"></a><u><font size=+1>2.3.12-) Units &lt;u></font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp;&nbsp; A fun&ccedil;&atilde;o deste comando &eacute;
+alterar as unidades de medida do tamanho da parti&ccedil;&atilde;o que
+&eacute; mostrado na tela, por padr&atilde;o, ele &eacute; mostrado em
+MegaBytes.
+<br>&nbsp;&nbsp;&nbsp; As unidades de medida do tamanho da parti&ccedil;&atilde;o
+s&atilde;o em MegaBytes, Cilindros e Setores ocupados pela parti&ccedil;&atilde;o
+de disco.
+<br>Abaixo um exemplo da mudan&ccedil;a da unidade de medida para Cilindros.
+<br>----------------------------------------------------------------------------------------------------
+<center>CFdisk 0.8l
+<br>Disk Drive: /dev/hda
+<br>Heads:255&nbsp; Sectors:63&nbsp; Cilinders:627</center>
+----------------------------------------------------------------------------------------------------
+<br>Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Flags&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Part Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FSType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+[LABEL]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cilinders
+<br>hda1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Boot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Primary&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Win 95 FAT 32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+249
+<br>hda5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Logical&nbsp;&nbsp;&nbsp;&nbsp; DOS FAT 16 (BIG)&nbsp;&nbsp; GLEYDSON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+22
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Pri/Log&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Free
+Space&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+371
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<p>[Bootable]&nbsp;&nbsp; [Delete]&nbsp;&nbsp; [Help]&nbsp;&nbsp; [Maximize]&nbsp;&nbsp;
+[Print]
+<br>[Quit]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [Type]&nbsp;&nbsp;&nbsp;&nbsp;
+[Units]&nbsp;&nbsp; [Write]
+<br>----------------------------------------------------------------------------------------------------
+<br>&nbsp;&nbsp; Ser&aacute; mostrada a quantidade de cilindros que a parti&ccedil;&atilde;o
+ocupa no disco ao inv&eacute;s do espa&ccedil;o em MB.
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="2.3.13"></a><u><font size=+1>2.3.13-) Write &lt;W></font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Este comando grava todas as tabelas de
+parti&ccedil;&otilde;es criadas/modificadas e excluidas para o disco. S&oacute;
+&eacute; aceita a tecla &lt;W> em mai&uacute;scula para grava&ccedil;&atilde;o
+da parti&ccedil;&atilde;o de disco, por motivos de seguran&ccedil;a para
+que n&atilde;o seja feita a grava&ccedil;&atilde;o acidental das parti&ccedil;&otilde;es
+enquando estiver utilizando o programa. Para quem utiliza as setas do teclado,
+o m&eacute;todo &eacute; o mesmo que as outras op&ccedil;&otilde;es.
+<br>&nbsp;&nbsp;&nbsp;&nbsp; Ap&oacute;s selecionar esta op&ccedil;&atilde;o,
+o CFdisk perguntar&aacute; se confirma a grava&ccedil;&atilde;o das parti&ccedil;&otilde;es
+para o disco.
+<br>Para gravar a parti&ccedil;&atilde;o, digite "<i>yes</i>" e tecle &lt;Enter>.
+<br>Para cancelar o comando, pressione &lt;Esc> ou digite "<i>no</i>" e
+tecle &lt;Enter>.
+<p>&nbsp;&nbsp;&nbsp; Ap&oacute;s confirmar com "<i>yes</i>", o CFdisk
+gravar&aacute; a tabela de parti&ccedil;&atilde;o no disco e fara o Kernel
+re-ler a tabela de parti&ccedil;&atilde;o do disco, para se evitar reiniciar
+o sistema para utilizar a nova tabela de parti&ccedil;&atilde;o.
+<br>&nbsp;&nbsp;&nbsp; A tentativa de re-leitura da tabela de parti&ccedil;&atilde;o
+pode falhar. Para solucionar este problema, &eacute; preciso reiniciar
+o computador, quando o computador &eacute; reiniciado, o sistema operacional
+faz uma nova leitura das tabelas de parti&ccedil;&otilde;es existentes
+no disco, fazendo com que sejam reconhecidas
+<br>corretamente.
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="3"></a><u><font size=+1>3-) Tipos de parti&ccedil;&otilde;es
+compat&iacute;veis com o CFdisk</font></u></center>
+
+<p>&nbsp; Abaixo uma listagem das parti&ccedil;&otilde;es compat&iacute;veis
+com o programa <i>CFdisk</i> e seus respectivos c&oacute;digos H<i>exadecimais</i>,
+para consulta t&eacute;cnica ou utiliza&ccedil;&atilde;o durante o particionamento
+de disco.
+<p><b><u>C&oacute;digo</u></b>&nbsp;&nbsp; <b><u>Nome</u></b>
+<br>01 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOS FAT12
+<br>02 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Xenix root
+<br>03 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Xenix usr
+<br>04 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOS FAT16 (&lt;32MB)
+<br>05 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Extendida
+<br>06 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOS FAT16 (>=32MB)
+<br>07 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OS/2 HPFS ou NTFS
+<br>08 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AIX
+<br>09 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AIX inicializ&aacute;vel
+<br>0A -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OS/2 Boot Manager
+<br>0B -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Windows 95 FAT32
+<br>0C -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Windows 95 FAT32(LBA)
+<br>0E -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Windows 95 FAT16(LBA)
+<br>0F -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Windows 95 Extendida
+<br>11 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOS FAT12 oculta
+<br>12 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOS FAT16 oculta
+<br>16 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOS FAT16 oculta
+<br>17 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HPFS OS/2 oculta
+<br>40 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Venix 80286
+<br>51 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Novell
+<br>52 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microport
+<br>63 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GNU Hurd
+<br>64 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Novell Netware
+286
+<br>65 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Novell Netware
+386
+<br>75 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PC/IX
+<br>80 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Minix Antigo
+<br>81 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Linux / Minix
+<br>82 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Linux Swap
+<br>83 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Linux Nativa
+<br>85 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Linux Extendida
+<br>93 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Amoeba
+<br>94 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Amoeba BBT
+<br>A5 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BSD/386
+<br>A6 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Open BSD
+<br>A7 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NextStep
+<br>B7 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BSDI Sistema de
+Arquivos
+<br>B8 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BSDI Swap
+<br>C7 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Syrinx
+<br>DB -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CP/M
+<br>E1 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOS access
+<br>E3 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOS R/O
+<br>F2 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOS secund&aacute;ria
+<br>FF -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BBT
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="4"></a><u><font size=+1>4- ) Direitos Autorais</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Este documento foi desenvolvido com base
+em minha experi&ecirc;ncia e conhecimento em discos e parti&ccedil;&otilde;es,
+mediante pesquisa em alguns documentos como os How-TO do Linux e verificando
+as principais d&uacute;vidas de usu&aacute;rios durante a utiliza&ccedil;&atilde;o
+de particionadores de disco, tendo como objetivo levar o conhecimento sobre
+discos, parti&ccedil;&otilde;es e utiliza&ccedil;&atilde;o deste programa,
+atendendo tanto usu&aacute;rios iniciantes como avan&ccedil;ados e como
+contribui&ccedil;&atilde;o para a comunidade Linux em geral.
+<center>
+<p>Gleydson M. da Silva (<i>gleydson_s@yahoo.com</i> e <i>gleydson@linuxbr.com.br</i>)</center>
+
+<p>&nbsp;&nbsp;&nbsp; Qualquer d&uacute;vida, sugest&atilde;o ou reclama&ccedil;&atilde;o
+podem ser mandadas para um dos E-Mail's Acima. Conto com sua contribui&ccedil;&atilde;o
+para a melhoria deste Manual.
+<p><b>&nbsp;&nbsp;&nbsp; Autorizo a reprodu&ccedil;&atilde;o Total ou parcial
+deste texto para que seja utilizado para fins educativos, autoaprendizado,
+coloca&ccedil;&atilde;o em Home pages e qualquer outra forma de distribui&ccedil;&atilde;o
+n&atilde;o comercial do documento desde que sejam mantidos os meus cr&eacute;ditos
+pela pesquisa e elabora&ccedil;&atilde;o deste documento de acordo com
+os termos da GNU (veja abaixo <a href="#6">Licen&ccedil;as e Garantias
+sobre este documento</a>).</b>
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="5"></a><u><font size=+1>5- ) Licen&ccedil;as e Garantias
+sobre este documento</font></u></center>
+
+<p>CFdisk-Portuguese copyright (C) 1999 Gleydson M. da Silva
+<p>&nbsp;&nbsp; Este documento &eacute; de livre distribui&ccedil;&atilde;o,
+que pode ser copiado e distribu&iacute;do sob os termos da Licen&ccedil;a
+P&uacute;blica Geral&nbsp; GNU, conforme publicada pela Free Software Foundation,
+vers&atilde;o 2 da licen&ccedil;a ou (a crit&eacute;rio do autor) qualquer
+vers&atilde;o posterior.
+<p><b>&nbsp;&nbsp; Este documento &eacute; distribu&iacute;do com a iten&ccedil;&atilde;o
+de ser &uacute;til ao seu utilizador, no entanto N&Atilde;O TEM NENHUMA
+GARANTIA,&nbsp; EXPL&Iacute;CITAS OU IMPL&Iacute;CITAS , COMERCIAIS OU
+DE ATENDIMENTO A UMA DETERMINADA FINALIDADE. Consulte a Licen&ccedil;a
+P&uacute;blica Geral&nbsp; GNU para maiores detalhes.</b>
+<p><i>gleydson_s@yahoo.com</i>
+<br><i>gleydson@linuxbr.com.br</i>
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="6"></a><u><font size=+1>6- ) Nota sobre Marcas Registradas</font></u></center>
+
+<p>Os programas mencionados neste manual s&atilde;o de propriedade dos
+seus respectivos donos:
+<p>MS-DOS, Windows 3.1x, Windows 9x, Windows NT s&atilde;o de propriedade
+da Microsoft.
+<br>OS/2 e OS/2 Warp s&atilde;o de propriedade da IBM
+<div align=right><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<center>
+<p><br><a NAME="7"></a><u><font size=+1>7- ) Agradecimentos</font></u></center>
+
+<p>Agrade&ccedil;o a todas as pessoas que me mandam corre&ccedil;&otilde;es,
+coment&aacute;rios, cr&iacute;ticas e elogios sobre este documento, pois
+atrav&eacute;s destas mensagens, est&atilde;o contribuindo para a melhoria
+deste projeto.
+<p><b>Agradecimentos especiais a:</b>
+<p><b>Eduardo Marcel Macan</b> <i>&lt;macan@thecore.com.br></i> - Pelo
+apoio e interesse na divulga&ccedil;&atilde;o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+deste projeto e outros documentos relacionados com a tradu&ccedil;&atilde;o
+e divulga&ccedil;&atilde;o de
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+documentos do Linux no Brasil.
+<br><b>Jorge Godoy</b> <i>&lt;jorge@bestway.com.br></i> - Pela revis&atilde;o
+deste documento e primeiras orienta&ccedil;&otilde;es
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+para a convers&atilde;o deste para SGML.
+<br><b>Adam di Carlo</b> <i>&lt;adam@onshore.com></i> - Que me deu apoio
+na coloca&ccedil;&atilde;o deste
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+documento&nbsp; na documenta&ccedil;&atilde;o da distribui&ccedil;&atilde;o
+Debian.
+<p>E a voce pelo enteresse em conhecer mais sobre o Linux.&nbsp;
+<div align=right>
+<br><i><a href="#Indice">Voltar ao Indice</a></i></div>
+
+<br>&nbsp;
+<p>&lt;EOF>
+</body>
+</html>
diff --git a/fdisk/doc/CFdisk-Portuguese.txt b/fdisk/doc/CFdisk-Portuguese.txt
new file mode 100644 (file)
index 0000000..99981c4
--- /dev/null
@@ -0,0 +1,1236 @@
+          CFdisk-Portuguese Copyright (C) 1999 Gleydson M. da Silva
+
+
+
+
+
+
+
+              Gleydson M. da Silva - gleydson@linuxbr.com.br
+                             Versão: 1.68
+
+
+
+
+
+
+
+[ Indice ]
+
+1 - Introdução ao CFdisk
+ 1.1 - O que é uma partição de disco
+ 1.2 - O que é a tabela de partição
+ 1.3 - Introdução ao Particionamento de Discos
+ 1.4 - Identificadores utilizados neste manual
+ 1.5 - Identificação de discos e partições no Sistema Linux
+ 1.6 - Tipos de partições de disco
+ 1.7 - Observações sobre o formato DOS 6.xx(FAT16)
+
+2 - Iniciando o programa CFdisk
+ 2.1 - Opções de Linha de comando
+ 2.2 - Conhecendo a tela do CFdisk
+ 2.3 - Descrição dos comandos
+  2.3.1 - Setas Acima/Abaixo - Esquerda/Direita
+  2.3.2 - <CTRL>+<l>
+  2.3.3 - Boot
+  2.3.4 - Delete
+  2.3.5 - Geometry
+  2.3.6 - Help
+  2.3.7 - Maximize
+  2.3.8 - New
+  2.3.9 - Print
+  2.3.10 - Quit
+  2.3.11 - Type
+  2.3.12 - Units
+  2.3.13 - Write
+
+3 - Tipos de partições compatíveis com o CFdisk
+
+4 - Direitos Autorais
+
+5 - Licenças e Garantias sobre este documento
+
+6 - Notas sobre marcas registradas
+
+7 - Agradecimentos
+
+
+
+
+
+
+
+
+
+
+
+1-) Introdução ao CFdisk
+
+CFdisk é um programa utilizado para fazer o particionamento de discos, 
+utilizando uma interface em modo texto.
+
+A grande características deste programa, além de sua interface de comunicação
+com o usuário e a enorme quantidade de partições que manipula, é a grande
+facilidade de operação, o seu poder de manipulação de partições e a sua
+precisão que fazem com que o usuário tenha mais confiança durante o 
+particionamento de disco.
+
+É recomendável a leitura deste texto, mesmo que tenha uma noção sobre o
+particionamento de discos, exceto para os gurus que já conhecem a fundo a
+forma de trabalho, em geral, de programas deste tipo, pois o particionamento
+de disco pode destruir os seus arquivos e partições já existentes, se for
+usado de forma incorreta.
+
+O programa CFdisk pode ser utilizado em qualquer sistema operacional que 
+esteja de acordo com o padrão POSIX (Linux, UNIX, FreeBSD, HPUX, etc).
+
+A versão do CFdisk utilizada nas explicações deste manual é a 0.8, mas 
+isto não impede que este manual seja utilizado com versões futuras ou 
+anteriores deste programa. As características principais 
+do programa CFdisk e as explicações sobre particionamento, são válidas para 
+quaisquer versões deste programa.
+
+Este documento é distribuído com a itenção de ser útil ao seu utilizador,
+no entanto NÃO TEM NENHUMA GARANTIA,  EXPLÍCITAS OU IMPLÍCITAS , COMERCIAIS
+OU DE ATENDIMENTO A UMA DETERMINADA FINALIDADE. Consulte a Licença Pública 
+Geral  GNU para maiores detalhes. 
+
+
+1.1-) Partição de Disco
+
+Uma partição de disco é o local onde o sistema operacional armazena seu
+sistema de arquivos(arquivos, diretórios, FAT, boot sector, etc). 
+
+
+
+1.2-) Tabela de partição
+
+A Tabela de partição é o local do disco rígido onde se localizam os dados sobre
+todas as partições existentes no disco como o sistema de arquivos utilizado, se
+ela é inicializável, a cabeça inicial/final, setor inicial/final, cilindro
+inicial/final, número de setores ocupados por ela no disco.
+
+
+1.3-) Introdução ao particionamento de discos
+
+Particionar o disco rígido é dividir ele em partes para armazenamento 
+de arquivos e programas. As partições criadas no disco podem ter o tamanho 
+que desejar (desde que esteja dentro da capacidade máxima do disco rígido).
+
+Uma partição não interfere em outras partições do mesmo disco(é como 
+se tivessemos vários discos rígidos dentro de um), e nem em outros discos
+rígidos(caso possuir mais que um disco rígido instalado em seu computador).
+
+Pode ser criada uma partição única, que neste caso todo o disco rígido
+é usado para armazenar os arquivos(que é o caso mais comum caso voce tenha 
+o DOS), ou várias partições, que podem ser usadas pelo mesmo SO(Sistema 
+Operacional) ou outros sistemas operacionais diferentes(um exemplo de várias
+partições: se for usar o DOS e o Linux no mesmo disco, os dois sistemas vão 
+estar no mesmo disco mas um não interfere no outro).
+
+ATENÇÃO : A OPERAÇÃO DE PARTICIONAMENTO DE DISCOS PODE FAZER COM QUE OS DADOS
+          ARMAZENADOS EM SEU DISCO RÍGIDO SEJAM PERDIDOS, SE FOR USADA 
+          INCORRETAMENTE. É SEMPRE RECOMENDADO RETIRAR UMA CÓPIA DE SEGURANÇA
+          DOS SEUS ARQUIVOS EXISTENTES NO MICRO ANTES DE SE EXECUTAR UM
+          PROGRAMA DESTE TIPO, A NÃO SER QUE TENHA CONFIANÇA NO QUE ESTA
+          FAZENDO E QUE ENTENDEU AS EXPLICAÇÕES SOBRE A IDENTIFICAÇÃO DE
+          DISCOS RÍGIDOS E SUAS PARTIÇÕES NO SISTEMA.
+
+Neste manual voce aprenderá como deve particionar seu disco rígido para 
+a instalação do SO usando o programa CFdisk.
+
+
+1.4-) Algumas identificações utilizadas neste manual para facilitar a 
+      compreensão do texto
+
+Esta parte descreve algumas características de organização deste manual e
+algumas identificações que utilizei para facilitar o seu entendimento, e as
+explicações que serão dadas.
+
+Explicação de nomes e comandos, sera seguida da palavra "onde:" e abaixo
+dela as explicações sobre os comandos, exemplo:
+
+onde:
+nome a ser explicado1  : Descrição 
+nome a ser explicado2  : Descrição 
+nome a ser explicado3  : Descrição 
+
+ou
+
+onde:
+nome a ser explicado1  - Descrição 
+nome a ser explicado2  - Descrição 
+nome a ser explicado3  - Descrição 
+
+
+Quando for feita alguma referência com tecla do teclado, por exemplo, 
+pressione p para listar as partições, a letra sera colocada entre <> para
+que seja melhor entendida:
+
+pressione <d> para deletar uma partição...
+...pressione <Enter> para escolher a opção do menu.
+pressione <t> para listar os tipos de partições disponíveis...
+
+
+    As linhas pontilhadas que aparecem na tela, veja abaixo,
+----------------------------------------------------------------------------
+----------------------------------------------------------------------------
+servem para identificar que o que esta entre as linhas é um exemplo de como 
+será a resposta do comando para a tela de seu computador.
+
+
+
+1.5-) Identificação de discos e partições no Linux
+
+Antes de descrever como se utiliza o programa CFdisk, é importante fazer
+algumas explicações sobre a identificação das partições e unidades de disco
+no sistema Linux( e outros *nix). 
+
+Se voce for um usuário que já conhece a interpretação de discos e partições
+neste sistema, voce não precisará ler esta parte.
+
+No sistema operacional Linux, os dispositivos existentes no computador
+(como impressoras, unidades de disquetes, discos rígidos, monitor, placa de
+som, etc...) são identificados por um nome referente a este dispositivo e
+colocado no diretório /dev (que é utilizado para identificar os dispositivos
+ou periféricos existentes no computador).
+
+   A identificação dos discos rígidos segue a seguinte forma:
+
+  /dev/hda1
+  |    | ||
+  |    | ||_Número que identifica a partição do disco rígido(1=Primeira, 2=segunda)
+  |    | |
+  |    | |_Letra que identifica o disco rígido(a=primeiro disco, b=segundo disco, etc..)
+  |    |
+  |    |_Sigla HD - Significa que é um disco rígido IDE(Se tiver um SD significa SCSI)
+  |
+  |_ Identificação do diretório onde os dispositivos do sistema são armazenados
+
+OBS: As unidades de disco rígido SCSI, são identificadas com as letras SD 
+     seguida pela letra da unidade e número da partição e os discos IDE são
+     identificados por HD seguida pela letra da unidade de disco e o número
+     da partição do disco(como visto acima).
+
+Abaixo, algumas identificações de disco do sistema Linux:
+
+/dev/hda1    -   Disco rígido IDE primário principal - Primeira partição
+/dev/hda2    -   Disco rígido IDE primário principal - Segunda partição
+/dev/hda3    -   Disco rígido IDE primário principal - Terceira partição
+/dev/hdb1    -   Disco rígido IDE primário escravo - Primeira partição
+/dev/hdb2    -   Disco rígido IDE primário escravo - Segunda partição
+/dev/hdb3    -   Disco rígido IDE primário escravo - Terceira partição
+/dev/hdc1    -   Disco rígido IDE secundário principal - Primeira partição
+/dev/hdc2    -   Disco rígido IDE secundário principal - Segunda partição
+/dev/hdc3    -   Disco rígido IDE secundário principal - Terceira partição
+/dev/hdd1    -   Disco rígido IDE secundário escravo - Primeira partição
+/dev/hdd2    -   Disco rígido IDE secundário escravo - Segunda partição
+/dev/hdd3    -   Disco rígido IDE secundário escravo - Terceira partição
+/dev/sda1    -   Primeiro disco rígido SCSI - Primeira partição
+/dev/sda2    -   Primeiro disco rígido SCSI - Segunda partição
+/dev/sda3    -   Primeiro disco rígido SCSI - Terceira partição
+/dev/sdb1    -   Segundo disco rígido SCSI - Primeira partição
+/dev/sdb2    -   Segundo disco rígido SCSI - Segunda partição
+/dev/sdb3    -   Segundo disco rígido SCSI - Terceira partição
+
+No exemplo acima foram usadas 3 partições por disco, mas podem existir mais 
+partições no mesmo disco, um exemplo é se o disco rígido possuir partições 
+Lógicas, que são identificadas no sistemas a partir de /dev/hdx5.
+
+
+
+Abaixo um exemplo de como o Linux identifica as partições em cada disco 
+existente em seu computador:
+
+Vamos supor que eu tenha 2 discos rígidos: 
+o 1ºdisco de 2GB e o 2ºdisco  de 1GB(Giga Byte ou 1.000 Megas!) 
+
+No primeiro disco(de 2GB), a primeira partição é de 800MB do tipo 
+FAT16(DOS), a segunda partição é de 1.2GB do tipo EXT2(Linux)(1.2GB+800MB=2GB
+que é a capacidade total do disco). Então as partições seriam identificadas 
+da seguinte forma no Linux:
+
+/dev/hda - Disco rígido Primário Principal 
+/dev/hda1 - Primeira partição do primeiro disco rígido (de 800MB do tipo DOS)
+/dev/hda2 - Segunda partição do primeiro disco rígido( de 1.2GB do tipo Linux)
+
+Neste caso estariam disponíveis 800MB para serem usados com o DOS e 
+1.2GB para o Linux. 
+
+Por exemplo, se voce particionar um disco rígido em duas partes e usar 
+as duas partições no DOS, ele reconhecerá as partições como sendo C: e D:.
+
+Lembre-se: Quando um disco é particionado, nenhuma partição interfere 
+           na outra, repare que quando voce particiona(divide) um disco,
+           é como se tivesse dois discos rígidos(o único cuidado que 
+           voce deve tomar é com as cópias de segurança, porque se der
+           um problema de parte eletrônica no disco rígido, por exemplo,
+           a sua placa controladora queimar ou o cabeçote dele ir pro 
+           espaço, voce perderá as suas 2 partições que estão armazenadas
+           nele.
+
+
+Voltando ao exemplo das classificações das partições do disco, vamos 
+para o segundo disco: 
+
+No segundo disco(1GB), eu tenho uma partição de 950MB do tipo FAT16(DOS),
+que costumo usar para armazenar arquivos temporários e cópias de segurança 
+de meu sistema, etc..., e outra de 50MB SWAP(Partição de memória virtual 
+como descrevi acima)(950MB+50MB=1GB). Então as partições deste disco seriam
+identificadas da seguinte forma no Linux: 
+
+/dev/hdb - Disco rígido principal escravo 
+/dev/hdb1 - Primeira partição do disco acima ( de 950MB do tipo DOS) 
+/dev/hdb2 - Segunda partição do disco acima ( de 50MB do tipo SWAP) 
+
+No disco acima, 950MB estão disponíveis para serem usados pelo DOS e 
+50 MB pela memória virtual (SWAP) do Linux. 
+
+Note que se voce utiliza o MS-DOS, voce não conseguirá ver as partições
+do Linux e SWAP, porque são imcompatíveis com o formato aceito pelo DOS (ele
+identificaria a primeira partição do primeiro disco(800MB) como a unidade C:
+e a primeira partição do segundo disco(950MB) como unidade D), mas o 
+contrário não acontece; O Linux tem total compatibilidade com a partição 
+DOS FAT12, FAT16, FAT32, OS/2 HPFS, e muitas outras.
+
+
+
+1.6-)Tipos de partições de discos
+
+As partições de disco são divididas em tres tipos: Primária, Extendida
+e Lógica.    
+Pode se ter, no máximo, 4 partições Primárias e Extendidas no mesmo disco
+(3 Primárias e 1 Extendida ou 4 partições Primárias em cada disco). 
+A partição Primária permite o armazenamento de arquivos e diretórios.
+
+Todos os computadores que possuem somente a unidade C(supondo que utilize
+o DOS), utilizam este tipo de partição para armazenamento de arquivos e
+inicialização do sistema operacional.
+
+Se for preciso criar mais que 4 partições no mesmo disco, será necessário
+criar uma partição Extendida. A partição Extendida não pode ser utilizada
+para armazenar arquivos. Ela é usada para a criação de outras partições,
+dentro dela, que são chamadas de partições Lógicas. 
+
+Uma partição extendida podem conter várias partições Lógicas. As partições 
+Lógicas podem armazenar arquivos e diretórios(como as partições primárias).
+
+Um mesmo disco rígido pode armazenar mais de 64 partições independentes
+uma das outras.
+
+LEMBRE-SE: Os arquivos e diretórios podem ser armazenados somente em
+           partições de disco primárias ou lógicas, a partição extendida não
+           é usada para armazanamento de arquivos e diretórios.
+
+Se possuir duas partições em seu computador (C: e D: no DOS), e não 
+estiver usando a partição D:, a instalação pode ser feita nesta partição 
+desde que ela tenha o espaço necessário para o sistema operacional Linux, 
+os programas que desejar instalar, mais a partição SWAP.
+
+
+
+1.7-) Observações sobre o formato DOS 6.XX(FAT 16)
+
+No formato DOS 6.XX(FAT16), o primeiro setor da área de dados da partição
+é utilizado frequentemente pelo DOS para armazenamento de dados sobre a
+partição de disco, e estes dados são usados pelo sistema para se ter maior
+confiabilidade do que os dados armazenados na tabela de partição. O sistema
+de arquivos DOS, faz o FDISK(do DOS) limpar os primeiros 512 bytes da área
+de dados da partição sempre que uma mudança de tamanho acontecer.
+
+O formatador do DOS(format) verifica este primeiro setor toda vez que
+a upção /U (que é utilizada para não salvar dados para se fazer a desformatação
+do disco) é utilizada.
+
+Isto é considerado uma FALHA no Format(do DOS) e no Fdisk(do DOS).
+A opção abaixo deve ser utilizada caso voce crie uma partição do DOS FAT16
+com o CFdisk, que faz com que os primeiros 512 bytes daquela partição
+sejam "limpos", para manter a compatibilidade com o DOS. Utilize esta opção
+dentro do Linux, após criar a partição com o CFdisk e reiniciar o seu 
+computador. Foi notado que esta opção só funciona corretamente somente quando
+o Sistema Linux estiver instalado em seu computador. Não me responsabilizo 
+caso utiliza-la a partir de um disquete de recuperação.
+
+dd if=/dev/zero of=/dev/hdx1 bs=512 count=1
+
+onde: 
+hdx1 - É a identificação da unidade de disco e a partição que foi criada
+       pelo CFdisk utilizando o sistema de arquivos DOS que terá seu 
+       primeiro setor "limpo".
+
+
+OBS1: Cuidado ao utilizar esta opção, um pequeno descuido pode resultar na
+     perda de dados do seu disco rígido ou outras partição.
+
+OBS2: Não utilize este comando com partições que utilizam o sistema de arquivos
+     FAT32(utilizada nos sistemas operacionais Windows 95 OSR/2 e superiores)
+     se for utilizada em um disco com este sistema, sua FAT será corrompida,
+     se isto acontecer, será necessária a re-formatação da partição.
+
+OBS3: É extremamente recomendado que se utilize o programa de particionamento
+     que acompanha o seu sistema operacional. Por exemplo, se deseja criar
+     uma partição DOS 6.XX, utilize o FDisk qua acompanha o DOS.
+
+
+
+2-) Iniciando o programa CFdisk
+
+Para entrar no programa CFdisk digite:
+cfdisk <unidade>
+
+onde:
+unidade - é a unidade de disco que deseja utilizar para fazer o particionamento
+          a unidade pode ser: /dev/hda, /dev/hdb, /dev/hdc ..., /dev/sda, 
+          /dev/sdb...,etc
+
+NOTA: Se voce não digitar a unidade, o cfdisk utilizará a unidade /dev/hda 
+      como padrão.
+
+
+
+2.1-) Opções de linha de comando utilizadas com o CFdisk
+
+Opções de linha de comando fazem com que o programa inicie de forma 
+específica ou personalizada. As opções devem ser digitadas após o nome do
+programa (cfdisk).
+
+       cfdisk <unidade> < -avz > < -c cilindros > < -h cabeçotes >  
+              < -s  setores_por trilha > < -P opt > < dispositivo >
+
+onde:
+-a        Usa um cursor seta ao invés de video reverso para destacar a
+          partição atual.
+-v        Mostra a versão do programa e Coyright(Direitos Reservados).
+-z        Ignora a leitura da tabela das partições existentes no disco 
+          ao iniciar o CFdisk.
+
+-c Número de Cilindros do disco
+-h Número de Cabeçotes do disco
+-s Setores por trilha existentes no disco.
+-P OPC    Mostra a tabela de partição no formato especifico.
+          OPC - Pode ser: r - Mostra a tabela de partição em Formato RAW
+                          s - Mostra a tabela de partição em Format de Setores
+                          t - Mostra a tabela de partição classificada por 
+                              setores
+          Para maiores detalhes, veja O comando Print <p>.
+
+OBS: A utilização dos parâmetros -c -h -s, substituirão os parâmetros da BIOS
+     da placa, utilize estas opções se sua bios não utilizar estes parâmetros
+     ou se mostrar valores incorretos.
+
+Após entrar o programa CFdisk, ele verificará automaticamente o 
+tamanho do Disco Rígido, se não conseguir, o programa será terminado. 
+Para resolver este problema, especifique o tamanho do disco em cilindros, 
+cabeças, e setores na linha de comando que inicia o programa.
+Este problema geralmente acontece quando se tenta particionar uma unidade de
+disco SCSI que esteja conectada a uma placa controladora que não possui BIOS,
+e  quando  uma  BIOS  mostra  os  valores  da  geometria  do  disco(tamanho) 
+incorretamente.
+
+O próximo passo do CFdisk é fazer a leitura das partições atuais do 
+disco, se não conseguir, o programa será terminado. O único motivo para o 
+CFdisk mostrar esta mensagem de erro, é se voce digitar parâmetros 
+incorretos para o tamanho do disco, caso tenha acontecido o problema 
+descrito no paragrafo anterior. Verifique se os parâmetros foram digitados 
+incorretamente, se os parâmetros estiverem digitados corretamente e mesmo 
+assim o programa continua dando erro na leitura das partições, utilize a 
+opção -z na linha de comando do programa, que faz com que ele ignore a 
+leitura das partições existentes no disco ao iniciar.
+
+
+
+2.2-) Conhecendo a Tela do CFdisk
+   
+Após digitar CFdisk, será mostrada a tela principal onde voce poderá 
+acionar os comandos para manipulação das partições de disco, e visualizar
+as partições de disco atuais e outros dados. Abaixo o exemplo e explicações
+sobre esta tela.
+
+O disco utilizado para os exemplos é um disco de 5157 MB de Capacidade com:
+- 10672 Cilindros  15 Cabeças  63 Setores (no modo C/H/S)
+- 627 Cilindros   255 Cabeças  63 Setores (no modo LBA)
+
+   A unidade de medida utilizada pelo CFdisk para mostrar os parâmetros do 
+disco será o mesmo configurado na BIOS, ou seja, se estiver utilizando o 
+disco com o modo de operação em LBA, os valores de cilindros, cabeças e 
+setores motrados pelo CFdisk sera em LBA.
+
+
+----------------------------------------------------------------------------
+                              CFdisk 0.8l
+
+                         Disk Drive: /dev/hda
+            Heads:255  Sectores per track:63  Cylinders:627
+-----------------------------------------------------------------------------
+Name       Flags        Part Type   FSType           [LABEL]    Size(MB)
+hda1       Boot         Primary     Win 95 FAT 32               1953.12
+hda5                    Logical     DOS FAT 16 (BIG) GLEYDSON    172.58
+                        Pri/Log     Free Space                  2910.55
+
+
+
+
+
+
+
+
+
+
+[Bootable]  [Delete]  [Help]  [Maximize]  [Print]
+[Quit]      [Type]    [Units] [Write]
+----------------------------------------------------------------------------
+No cabeçalho da tela, é mostrada a versão do programa, a unidade de disco
+que será usada no particionamento e os parâmetros de tamanho do disco(cabeçotes,
+cilindros e setores).
+Abaixo do cabeçalho após a linha pontilhada, se encontra a área das partições.
+
+onde:
+- Name  : é o nome da(s) partição(ões) de Disco.
+- Flags : Se estiver marcada como BOOT, será possível iniciar o sistema
+          a partir desta partição(quando não se utiliza um Boot Manager).
+          Se estiver marcada como NC (Não compatível) significa que esta
+          partição não é compatível com o DOS, OS/2, etc. Para maiores
+          detalhes, veja O comando Maximize <m>.
+- Type  : O tipo da partição pode ser Primária ou Lógica. Para espaço não 
+          utilizado no Disco, o tipo da partição pode ser Primário/Log.
+- FileSystems : Tipo de Sistema de Arquivos que é usado naquela partição.
+          Se o sistema de arquivos for desconhecido, ele será mostrado como 
+          um valor Hexadecimal.
+          Um caso especial ocorre quando há Partições do Disco Rígido que
+          não podem ser usadas ( porque toda a partição primária esta em uso).
+          Quando isto é detectado, o tipo de FileSystems é mostrado como não
+          usável(Unusable) para criação de novas partições.
+- Label : Nome de volume da partição de disco. Os nomes de partições FAT32,
+          não são mostrados com esta versão do CFdisk.
+- Size  : Mostra o tamanho que cada partição ocupa no disco rígido em 
+          MegaBytes (por padrão). Também pode mostrar o tamanho ocupado por
+          Setores ou Cilindros. Se for mostrado um asterisco (*) após o 
+          tamanho, isto diz que a partição não esta alinhada com Cilindro.
+
+
+O espaço livre existente no disco para criação de novas partições, é 
+mostrado como uma outra partição, com o FSType(sistema de arquivos) Free 
+Space(espaço Livre).
+
+OBS: As partições de disco Extendidas não são mostradas na tela do CFdisk 
+     durante o particionamento, mesmo assim, as partições lógicas que este
+     tipo de partição armazena, serão mostradas.
+
+No rodapé da tela, encontramos os comandos utilizados pelo CFdisk para
+manipular as partições de disco. Os comandos são mostrados entre Chaves [].
+
+Todos os comandos no rodapé da tela, são aplicaveis somente para a
+partição que estiver destacada com a barra(video reverso).  Veja descrições 
+dos comandos do CFdisk para mais detalhes.
+
+Abaixo do rodapé da tela, é mostrada a descrição do comando que estiver
+em destaque com o cursor em video reverso.
+
+    Veja abaixo a tradução da tela principal do programa CFdisk:
+----------------------------------------------------------------------------
+                              CFdisk 0.8l
+
+                       Unidade de Disco: /dev/hda
+            Cabeças:255  Setores por trilha:63  Cilindros:627
+-----------------------------------------------------------------------------
+Nome    Opções    Tipo Part.  Tipo Sist. Arquivos   [VOLUME]    Tamanho(MB)
+hda1     Boot      Primary     Win 95 FAT 32                     1953.12
+hda5               Logical     DOS FAT 16 (BIG)     GLEYDSON      172.58
+                   Pri/Log     Espaço Livre                      2910.55
+
+
+
+
+
+
+
+
+
+
+[Inicializável]  [Apagar]  [Ajuda]   [Maximizar]  [Imprimir]
+[Sair]           [Tipo]    [Unidades][Gravar]
+----------------------------------------------------------------------------
+
+
+
+2.3-) Descrição dos comandos do CFdisk
+
+Os comandos do programa são utilizados criar partições, entrar na ajuda do
+programa, alterar o tipo da partição, apagar uma partição, etc.
+
+Pode ser utilizado Seta p/ Esquerda e Seta p/ direita para se movimentar
+entre os comandos, quando o cursor estiver em cima do comando que deseja
+executar, pressione <Enter>. 
+
+Outro método que se pode utilizar para acionar uma opção do CFdisk, é
+pressionando a primeira letra de cada opção, automaticamente a opção é 
+executada(sem ter que pressionar <Enter>). Neste método, todos os comandos
+aceitam letras maiúsculas e minúsculas, exceto o comando Write(gravar 
+partição) que é executado somente se pressionar <W> maiúscula, para evitar
+gravações acidentais o disco.
+
+Quando estiver em um Sub-Menu e desejar retornar ao menu principal,
+pressione a tecla <Esc>.
+
+
+
+2.3.1-) Setas Acima e Abaixo/ Esquerda e Direita (Movimentação do Cursor)
+
+Setas Acima e Abaixo são utilizadas para se movimentar entre as partições
+existentes no disco e espaço livre, selecionando-a para que seja utilizada
+as opções do CFdisk.
+
+Setas Esquerda e Direita são utilizadas para selecionar entre as opções
+diponíveis do programa(que serão explicadas abaixo). Para confirmar uma
+opção, pressione <Enter>.
+
+
+
+2.3.2-) O comando <CTRL>+<l>
+
+Este comando é utilizado para atualizar a tela manualmente caso a
+atualização automática falhar, por exemplo, quando uma partição for
+excluida, e continuar a ser mostrada na tela.
+   
+
+
+2.3.3-) O comando Boot <b>
+
+Este comando permite escolher se a partição Primária atual será utilizada
+para iniciar o sistema(BOOT). Selecione esta opção para selecionar entre 
+partição inicializável ou não inializável. Quando uma partição estiver 
+marcada como inicializável, aparecerá a palavra BOOT na coluna Flags(na tela
+principal do programa).
+   
+OBS: Não será necessário marcar a partição Linux como inicializável, caso se
+     esteja utilizando um Boot Manager para escolher qual sistema operacional
+     sera utilizado para inicializar o sistema.
+
+
+
+2.3.4-) O comando Delete <d>
+
+Este comando apaga a partição selecionada do disco. Após apagar a partição,
+o espaço ocupado por ela é convertido para espaço livre. 
+A partição marcada atualmente como Free Space ou como Unusable não pode 
+ser apagada.
+
+
+
+2.3.5-) O comando Geometry <g>
+
+Este comando não é mostrado no menu, pois é utilizado para alterar o 
+tamanho (Cilindros, Cabeças e Setores do disco). Este comando só pode
+ser acionado se for pressionada a tecla <g>. 
+
+ALERTA: Esta opção é recomendada somente para aqueles que sabem os riscos
+        que o uso desta opção pode fazer, e se a situação que estão, requerem
+        o seu uso.
+
+Uma situação que esta opção é util, é se o BIOS do seu computador não
+mostrar corretamente os parâmetros do disco(Cilindros, Cabeçotes ou Setores),
+sendo necessário que se passe manualmente o tamanho do disco para que seja
+feito o correto particionamento do disco. 
+
+OBS: Caso seu disco rígido for SCSI e placa controladora dele não tiver BIOS,
+     provavelmente o CFdisk não será iniciado. Se este problema ocorrer,
+     digite os parâmetros do disco na linha de comando ao iniciar o programa.
+     Para maiores detalhes, veja opções de linha de comando do CFdisk.
+
+Após pressionar <g> será mostrada a seguinte tela:
+
+----------------------------------------------------------------------------
+                              CFdisk 0.8l
+
+                         Disk Drive: /dev/hda
+                Heads:255  Sectors:63  Cilinders:627
+-----------------------------------------------------------------------------
+Name    Flags     Part Type    File System          [LABEL]     Size(MB)
+hda1     Boot      Primary     Win 95 FAT 32                     1953.12
+hda5               Logical     DOS FAT 16 (BIG)     GLEYDSON      172.58
+                   Pri/Log     Espaço Livre                      2910.55
+
+
+
+
+
+
+
+
+
+[ Cylinders]  [Heads]  [Sectors]  [Done]
+
+----------------------------------------------------------------------------
+onde:
+Cylinders: Altera o número de Cilindros do disco atual durante o particionamento.
+Heads    : Altera o número de Cabeças do disco atual durante o particionamento.
+Sectors  : Altera o número de Setores do disco atual durante o particionamento.
+Done     : Quando finalizar as alterações, tecle <d> ou selecione Done para
+           que o CFdisk modifique os valores de Cilindros, Cabeças e Setores
+           que utiliza para particionar o disco e retorne a tela anterior.
+
+
+     Quando escolher algum parâmetro acima para alteração(Cilindros, cabeçotes 
+ou Setores do disco), será vista uma tela como esta:
+----------------------------------------------------------------------------
+                              CFdisk 0.8l
+
+                       Unidade de Disco: /dev/hda
+            Cabeças:255  Setores por trilha:63  Cilindros:627
+-----------------------------------------------------------------------------
+Nome    Opções    Tipo Part.  Tipo Sist. Arquivos   [VOLUME]    Tamanho(MB)
+hda1     Boot      Primary     Win 95 FAT 32                     1953.12
+hda5               Logical     DOS FAT 16 (BIG)     GLEYDSON      172.58
+                   Pri/Log     Espaço Livre                      2910.55
+
+
+
+
+
+
+
+
+
+Enter the number of Cylinders: 627
+
+----------------------------------------------------------------------------
+O valor que aparece ao selecionar a opção, é o valor que o disco esta
+utilizando atualmente(cilindros), e será pedido que digite um valor para os 
+Cilindros, que substituirá os da BIOS durante a seção de particionamento. 
+Para sair desta tela sem alterar o valor, pressione <ESC>. A mesma tela e 
+explicação se aplicam para as alterações de Cabeças e Setores.
+
+OBS: Se por acaso digitar um valor incorretamente para o tamanho do disco e 
+    não se lembrar mais do valor antigo ou original, selecione a opção Done, e
+    tecle <q> para sair do CFdisk sem gravar as alterações feitas para o 
+    disco, pois se continuar a utilizar o CFdisk com o tamanho do disco
+    incorreto, os dados existentes nele e até mesmo partições poderão ser
+    perdidos(as).
+
+Se aumentar o tamanho do disco, setores adicionais são acrescentados no 
+final do disco, e são mostrados como espaço livre.
+Se diminuir o tamanho do disco, as partições que estavam localizadas após
+o setor/cilindro que foi excluido(se existir alguma), será apagada e a
+última partição(ou espaço livre ao final do disco rígido), terá seu
+tamanho alterado e terminará neste "novo" último setor do disco.
+
+
+
+2.3.6-) O comando Help <h> ou <?>
+
+O comando Help mostra a tela de ajuda do programa, que descreve as funções
+das teclas utilizadas pelo programa e suas funções.
+
+
+
+2.3.7-) O comando Maximize <m>
+
+Este comando aumenta a utilização de espaço do disco na partição atual. 
+Isto porque o DOS, OS/2 e outros sistemas operacionais utilizam o primeiro 
+setor da primeira trilha da partição do disco e em todas as partições Lógicas
+para iniciar o sistema operacional, utilizando a segunda trilha em diante 
+daquela partição para fazer o armazenamento de arquivos. Este espaço perdido
+entre o segundo e o último Setor da primeira trilha da primeira cabeça, pode
+ser recuperado com a utilizando este comando.
+
+Este comando faz com que a partição se torne imcompatível com DOS, OS/2 
+e outros Sistemas Operacionais que utilizam este primeiro Setor do disco 
+para iniciar o sistema operacional.
+
+Se este comando for utilizado, será colocada uma opção chamada NC(não
+compatível) em Flags(na tela principal do CFdisk).
+
+Esta opção faz o uso máximo do disco e a incompatibilidade com o DOS/OS/2, 
+etc. O padrão quando criando uma Partição, é criando Partições compativeis 
+com o DOS, OS/2, etc.
+
+OBS: O Fdisk(8) e partições formatadas com o sistema de arquivos FAT32, fazem
+     a utilização completa deste espaço entre o segundo e o último Setor da
+     primeira trilha do disco, eliminando o desperdício de espaço.
+
+
+
+2.3.8-) O comando New <n>
+
+O comando New<n>, cria uma nova partição usando o espaço livre(FreeSpace)
+existente no disco. Após escolher esta opção, o CFdisk perguntará se deseja
+criar uma partição Primária, Lógica ou Cancelar o comando. 
+
+Escolhendo criar uma partição Primária ou Lógica, o sistema perguntará o
+tamanho da partição que deseja criar, por padrão, o CFdisk mostrará o espaço
+livre total disponível no disco para a criação da nova partição(em MegaBytes).
+Tecle <Enter> para criar uma partição do tipo escolhido com este tamanho ou
+digite um tamamho menor. O CFdisk permite que seja digitados valores em:
+
+- MegaBytes(M - o padrão do programa)
+- KiloBytes(K)
+- Cilindros(C)
+- Setores(S)
+
+Digitando-se o tamanho da partição seguida de uma das letras acima. Se a 
+letra não for digitada, o programa assumirá o tamanho que digitou em MegaBytes.
+
+OBS1: Quando criar uma partição Lógica, automaticamente será criada uma 
+      partição extendida, entre hdx1 e hdx4, e a partição Extendida não é
+      mostrada na tela de particionamento de disco. Se desejar exibir a 
+      partição extendida, execute o comando PRINT <p> e escolha a opção
+      Sector para verificar qual é a identificação da partição Extendida
+      no disco. Para maiores detalhes, veja o comando PRINT <p>.
+
+OBS2: São permitidas, no máximo, 4 partições Primárias e Extendidas(3 Primárias
+      e 1 Extendida ou 4 partições Primárias em cada disco). O CFdisk 
+      calculará automaticamente os valores das partições lógicas caso
+      as primeiras 4 partições forem ocupadas.
+
+O próximo passo, é a localização da partição no espaço livre existente no 
+disco. As duas opções disponíveis são:
+
+- Beginning : A partição é colocada a partir do inicio do espaço livre no
+              disco, ocupando o espaço livre de acordo com o seu tamanho
+              (do início para o fim do espaço livre ), este é o padrão para
+              a criação de novas partições e o mais utilizado. Veja o exemplo,
+              a criação de uma partição de 30MB em um disco com 50MB de
+              espaço não particionado, sendo que este disco já possui uma
+              partição de 120MB(com espaço total de 170MB)
+
+              ##################################MMMMMMMMMMMMMMMMMMMMMMMMMM
+                    |                                   |
+               Partição existente(120MB)           Espaço Livre(50MB)
+
+
+              com a nova partição criada:
+
+              ###################################################MMMMMMMMM
+                        |                            |            |
+              Partição existente(120MB)         Nova partição   Espaço
+                                                   (30MB)        Livre
+
+- End       : A partição é criada subtraindo-se o espaço livre total do disco
+              pelo tamanho da partição que será criada, começando a criar
+              esta partição a partir do ponto que resultou esta subtração.
+              Veja abaixo no exemplo, a partição que será criada terá o
+              tamanho de 30MB e existe no disco um espaço não particionado
+              de 50MB, com 120MB já ocupados por uma partição existente:
+
+              ##################################MMMMMMMMMMMMMMMMMMMMMMMMMM
+                    |                                   |
+               Partição existente(120MB)           Espaço Livre(50MB)
+
+
+              com a nova partição criada (Selecionando a opção End):
+
+              ##################################MMMMMMMMMM#################
+                        |                            |            |
+              Partição existente(120MB)           Espaço    Nova partição
+                                                   Livre        (30MB)
+                
+              A partição que será criada utilizara o espaço livre entre o
+              último Setor do disco e o setor resultante da subtração(170MB-30MB).
+              Mesmo assim, a ordem que será criada esta partição partição
+              será criada do Setor inicial(que é o resultado da subtração)
+              para o último Setor do disco. Existirá um espaço livre de 20MB
+              entre a primeira partição (de 120MB) e a nova partição de 30MB.
+              
+
+
+2.3.9-) O comando Print <p>
+
+Este comando mostra a tabela de partição no formato selecionado na tela,
+ou permite que seja gravado um arquivo no disco. Todas as partições são
+classificadas na ordem que foram gravadas no disco.
+
+Os formatos aceitos para visualização de partições são:
+
+RAW <r> : Formato de dados do disco, mostra os setores que serão gravados 
+          para o disco, caso seja escolhido o comando WRITE <W>. O formato
+          mostrado é exatamente aquele que será gravado para ao disco. 
+          Abaixo um exemplo deste formato:
+        --------------------------------------------------------------------  
+          Disk Drive: /dev/hda
+          Sector 0:
+          0x000: EB 69 4C 49 4C 4F 01 00 14 00 D7 02 00 00 00 00
+          0x010: FB 1B CF 36 74 D8 80 23 01 75 D8 80 23 01 73 D8
+          0x020: 80 23 01 01 77 01 77 D8 80 23 01 78 D8 80 23 01
+          0x030: 64 D8 80 23 01 65 D8 80 23 01 66 D8 80 23 01 67
+          0x040: D8 80 23 01 68 D8 80 23 01 69 D8 80 23 01 6A D8
+          0x050: 80 23 01 6B D8 80 23 01 00 00 00 00 00 00 00 00
+          0x060: 00 00 00 00 00 00 00 00 00 00 00 B8 C0 07 8E D8
+          0x070: 8C 06 66 00 89 36 64 00 89 1E 68 00 88 16 6A 00
+          0x080: B8 00 9A 8E C0 B9 00 01 29 F6 29 FF FC F3 A5 EA
+          0x090: 94 00 00 9A FA 8E D8 8E C0 BC 00 B0 B8 00 90 8E
+          0x0A0: D0 FB B0 0D E8 57 00 B0 0A E8 52 00 B0 4C E8 4D
+          0x0B0: 00 BE 30 00 BB 00 10 FC AD 89 C1 AD 89 C2 09 C8
+          0x0C0: 74 20 46 E8 43 00 72 06 81 C3 00 02 EB EA 50 B0
+          0x0D0: 20 E8 2A 00 58 88 E0 E8 12 00 31 C0 88 C2 CD 13
+          0x0E0: EB CF B0 49 E8 17 00 EA 00 00 00 9B 50 C0 E8 04
+          0x0F0: E8 01 00 58 24 0F 04 30 3C 3A 72 02 04 07 30 FF
+          0x100: B4 0E CD 10 C3 5A 59 5B C3 F6 C2 40 74 52 80 E2
+          0x110: BF 53 51 52 B4 08 CD 13 72 EB 88 F3 5A 88 16 6D
+          0x120: 01 88 F2 30 F6 88 F7 58 51 86 CD D0 C5 D0 C5 80
+          0x130: E5 03 89 0E 6B 01 59 83 E1 3F F7 F1 FE C2 88 16
+          0x140: 6E 01 31 D2 43 F7 F3 88 D6 8A 16 6D 01 3B 06 6B
+          0x150: 01 77 13 86 C4 D0 C8 D0 C8 0A 06 6E 01 89 C1 5B
+          0x160: B8 01 02 CD 13 C3 5B 31 C0 F9 C3 00 00 00 00 00
+          0x170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x1A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x1B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 01
+          0x1C0: 01 00 0B FE 3F 8F 3F 00 00 00 51 4C 23 00 00 00
+          0x1D0: 41 D7 83 FE BF 6F 17 75 73 00 59 81 25 00 00 00
+          0x1E0: 01 98 05 FE 7F D6 98 42 25 00 7F 32 4E 00 00 00
+          0x1F0: 81 70 82 FE BF 72 70 F6 98 00 43 BC 00 00 55 AA
+          
+          Sector 2441880:
+          0x000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x0A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x0B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x0C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x0D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x0E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x0F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x1A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x1B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
+          0x1C0: 01 98 0B FE 7F D6 3F 00 00 00 40 32 4E 00 00 00
+          0x1D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x1E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+          0x1F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA
+          -----------------------------------------------------------------
+          A primeira tabela de partição mostrada é a Primária, depois
+          as tabelas de partições ligadas com cada partição lógica. Como
+          no exemplo, os dados são mostrados em bytes Hexadecimais(na 
+          primeira coluna) seguidos de 16 bytes por linha.
+
+Sector <s>: Mostra a tabela de partição classificada por setores. Esta 
+          opção mostra o espaço não particionado no disco e a partição
+          Extendida, que é mostrada antes das partições Lógicas. 
+          Abaixo um exemplo deste formato:
+          ------------------------------------------------------------------
+          Partition Table for /dev/hda
+
+                      First    Last
+           # Type     Sector   Sector   Offset  Length   Filesystem Type (ID)   Flags
+          -- ------- -------- --------- ------ --------- ---------------------- ---------
+           1 Primary        0  2313359      63  2313360  Win95 FAT32 (0B)       Boot (80)
+             Logical  2313360  2441879       0   128520  Free Space             None (00)
+           3 Primary  2441880  7566614       0  5124735  Extended (05)          None (00)
+           5 Logical  2441880  7566614      63  5124735  Win95 FAT32 (0B)       None (00)
+           2 Primary  7566615 10024559       0  2457945  Linux (83)             None (00)
+           4 Primary 10024560 10072754       0    48195  Linux Swap (82)        None (00)
+          ------------------------------------------------------------------
+
+          onde:
+          #            - Identificação da partição no disco /dev/hda
+          Type         - Tipo da partição(veja o exemplo)
+          First Sector - Primeiro Setor utilizado para o armazanamento da partição.
+          Last Sector  - Último Setor utilizado para o armazenamento da partição.
+          Offset       - 
+          Lenght       - Tamanho total da partição em setores (Last Sector - First 
+                         Sector).
+          FileSystem Type (ID) - Identificação do Sistema de Arquivos da partição, 
+                        seguido do seu código hexadecimal no CFDisk. A partição
+                        Extendida é identificada como um sistema de arquivos
+                        com o código 05 (veja o exemplo).
+          Flags        - Opções da partição seguido de seu valor em
+                         hexadecimal.
+
+Table <t> : Mostra a tabela de partição classificada pelo número da partição. 
+            Esta opção deixa fora todo espaço livre e não usado na partição.
+            Abaixo um exemplo deste formato.
+            ----------------------------------------------------------------
+            Partition Table for /dev/hda
+
+                     ---Starting---      ----Ending----    Start Number of
+             # Flags Head Sect Cyl   ID  Head Sect Cyl    Sector  Sectors
+            -- ----- ---- ---- ---- ---- ---- ---- ---- -------- ---------
+             1  0x80    1    1    0 0x0B  254   63  143       63   2313297
+             2  0x00    0    1  471 0x83  254   63  623  7566615   2457945
+             3  0x00    0    1  152 0x05  254   63  470  2441880   5124735
+             4  0x00    0    1  624 0x82  254   63  626 10024560     48195
+             5  0x00    1    1  152 0x0B  254   63  470       63   5124672
+             ---------------------------------------------------------------
+
+             onde:
+             #                 - Número da partição de disco
+             Flags             - As opções utilizadas com a partição (em 
+                                 valor Hexadecimal).
+                                 O valor 0x80 equivale a BOOT.
+                                 O valor 0x00 equivale a nenhuma opção 
+                                 utilizada naquela partição.
+             Starting
+             Head              - Cabeçote Inicial             
+             Sector            - Setor Inicial
+             Cyl               - Cilindro Inicial
+             ID                - Identificação do Sistema de arquivos(em 
+                                 hexadecimal, conforme a tabela do CFdisk).
+             Ending
+             Head              - Cabeçote Final
+             Sector            - Setor Final
+             Cyl               - Cilindro Final
+             Start Sector      - Setor inicial da partição
+             Number of Sectors - Número de setores ocupados pela partição.  
+
+Se a partição não inicia ou não termina em um cilindro limite do disco
+ou se o seu tamanho não é divisível pelo tamanho do cilindro, um * é será
+mostrado após o setor não alinhado. Este problema normalmente ocorre quando
+a partição é criada por um Sistema operacional em que o limite da partição
+não é alinhada com o cilindro ou que utiliza a contagem do tamanho do disco
+de forma diferente. 
+
+ A tabela de partição somente tem 10 bits disponível para identificar o 
+cilindro inicial e final. Assim, quando o setor inicial absoluto é um 
+cilindro maior que 1023(final do disco), o valor máximo para a cabeça 
+inicial, setor e cilindro são mostrados. Este metodo é usado pelo OS/2, e
+e corrige os problemas associados com OS/2 caso o Fdisk regrava a tabela de
+partição quanto ela não esta neste formato.
+
+Desde então Linux e OS/2 utilizam esta contagem de setores absolutos, os
+valores na cabeça inicial e final, Setor e Cilindro não são usadas.
+
+
+
+2.3.10-) O comando quit <q>
+
+Esta opção faz com que o CFdisk abandonar todas as alterações e
+retornar para o Aviso de comando. Quando esta opção é escolhida, o programa
+retorna deixando o disco como estava antes de se iniciar o particionamento.
+
+Se escolher esta opção o CFdisk abandonará o particionamento de disco
+e voltará para a linha de comandos imediatamente. Se alterar/criar/excluir
+alguma partição de disco e escolher esta opção, o programa emitirá um Beep
+indicando que alguma alteração feita no disco foi abandonada.
+
+OBS: Esta opção é útil caso tenha se cometido algum engano durante o
+     particionamento do disco, como apagar por uma partição que contém 
+     arquivos, alterar o tamanho do disco(geometria), etc. Lembre-se que
+     tudo o que fez será abandonado, durante o particionamento, se escolher
+     esta opção.
+
+
+
+2.3.11-) O comando type <t>
+
+Comando usado para alterar o tipo do sistema de arquivos utilizado
+pela partição. As partições, quando criadas, recebem o sistema de arquivos
+Linux Native(ou simplesmente Linux - tipo 83). O CFdisk pode criar, manipular,
+excluir, uma grande variedade de Sistemas de arquivos para os mais diversos
+tipos de sistemas operacionais existentes, veja o final deste manual para
+ver as partições compatíveis com este programa. 
+
+Para alterar o tipo do sistema de arquivos (File System) utilizado pela
+partição, tecle <t>, e digite o valor de acordo com a lista de partições
+disponíveis no programa.
+
+Por exemplo, para mudar a partição do tipo Linux para Linux Swap, selecione
+esta partição, e tecle <t>, e digite o número 82(que corresponde a Linux
+Native) e tecle <Enter>, e a partição terá seu sistema de arquivos alterado.
+
+
+
+2.3.12-) O comando units <u>
+
+A função deste comando é alterar as unidades de medida do tamanho da 
+partição que é mostrado na tela, por padrão, ele é mostrado em MegaBytes.
+As unidades de medida do tamanho da partição são em MegaBytes, Cilindros e
+Setores ocupados pela partição de disco.
+Abaixo um exemplo da mudança da unidade de medida para Cilindros.
+----------------------------------------------------------------------------
+                              CFdisk 0.8l
+
+                         Disk Drive: /dev/hda
+            Heads:255  Sectores per track:63  Cylinders:627
+-----------------------------------------------------------------------------
+Name       Flags        Part Type   FSType           [LABEL]    Cilinders
+hda1       Boot         Primary     Win 95 FAT 32                  249
+hda5                    Logical     DOS FAT 16 (BIG) GLEYDSON       22 
+                        Pri/Log     Free Space                     371
+
+
+
+
+
+
+
+
+
+
+[Bootable]  [Delete]  [Help]  [Maximize]  [Print]
+[Quit]      [Type]    [Units] [Write]
+----------------------------------------------------------------------------
+Será mostrada a quantidade de cilindros que a partição ocupa no disco ao
+invés do espaço em MB.
+
+
+
+2.3.13-) O comando Write <W>
+
+Este comando grava todas as tabelas de partições criadas/modificadas e
+excluidas para o disco. Só é aceita a tecla <W> em maiúscula para gravação 
+da partição de disco, por motivos de segurança para que não seja feita a
+gravação acidental das partições enquando estiver utilizando o programa. 
+Para quem utiliza as setas do teclado, o método é o mesmo que as outras 
+opções.
+
+Após selecionar esta opção, o CFdisk perguntará se confirma a gravação
+das partições para o disco. 
+
+Para gravar a partição, digite "yes" e tecle <Enter>.
+Para cancelar o comando, pressione <Esc> ou digite "no" e tecle <Enter>.
+
+Após confirmar com "yes", o CFdisk gravará a tabela de partição no disco
+e fara o Kernel re-ler a tabela de partição do disco, para se evitar 
+reiniciar o sistema para utilizar a nova tabela de partição. 
+
+A tentativa de re-leitura da tabela de partição pode falhar. Para 
+solucionar este problema, é preciso reiniciar o computador, quando o
+computador é reiniciado, o sistema operacional faz uma nova leitura das
+tabelas de partições existentes no disco, fazendo com que sejam reconhecidas
+corretamente.
+
+
+
+3-) Tipos de partições compatíveis com o CFdisk
+
+Abaixo uma listagem das partições compatíveis com o programa CFdisk e 
+seus respectivos códigos Hexadecimais, para consulta técnica ou utilização
+durante o particionamento de disco.
+
+Código Nome
+01 -    DOS FAT12
+02 -    Xenix root
+03 -    Xenix usr
+04 -    DOS FAT16 (<32MB)
+05 -    Extendida
+06 -    DOS FAT16 (>=32MB)
+07 -    OS/2 HPFS ou NTFS
+08 -    AIX
+09 -    AIX inicializável
+0A -    OS/2 Boot Manager
+0B -    Windows 95 FAT32
+0C -    Windows 95 FAT32(LBA)
+0E -    Windows 95 FAT16(LBA)
+0F -    Windows 95 Extendida
+11 -    DOS FAT12 oculta
+12 -    DOS FAT16 oculta
+16 -    DOS FAT16 oculta
+17 -    HPFS OS/2 oculta
+40 -    Venix 80286
+51 -    Novell
+52 -    Microport
+63 -    GNU Hurd
+64 -    Novell Netware 286
+65 -    Novell Netware 386
+75 -    PC/IX
+80 -    Minix Antigo
+81 -    Linux / Minix
+82 -    Linux Swap
+83 -    Linux Nativa
+85 -    Linux Extendida
+93 -    Amoeba
+94 -    Amoeba BBT
+A5 -    BSD/386
+A6 -    Open BSD
+A7 -    NextStep
+B7 -    BSDI Sistema de Arquivos
+B8 -    BSDI Swap
+C7 -    Syrinx
+DB -    CP/M
+E1 -    DOS access
+E3 -    DOS R/O
+F2 -    DOS secundária
+FF -    BBT
+
+
+
+
+4- ) Direitos Autorais
+
+Este documento foi desenvolvido com base em minha experiência e conhecimento em
+discos e partições, e mediante pesquisa em alguns documentos como os How-TO do
+Linux tendo como objetivo a contribuição para a comunidade Linux em geral.
+
+Gleydson M. da Silva (gleydson_s@yahoo.com ou gleydson@linuxbr.com.br)
+
+Qualquer dúvida, sugestão ou reclamação podem ser mandadas para um dos
+E-Mail's Acima. Conto com sua contribuição para a melhoria deste Manual.
+
+Autorizo a reprodução Total ou parcial deste texto para que seja utilizado para
+fins educativos, autoaprendizado, colocação em Home pages e qualquer outra 
+forma de distribuição não comercial do documento desde que sejam mantidos os 
+meus créditos pela pesquisa e desenvolvimento deste documento de acordo com os
+termos da GNU (veja abaixo).
+
+
+
+
+5- ) Licenças e Garantias sobre este documento
+
+CFdisk-Portuguese Copyright (C) 1999 Gleydson M. da Silva
+Este é um documento de livre distribuição, que pode ser copiado e 
+distribuído sob os termos da Licença Pública Geral  GNU, conforme publicada
+pela Free Software Foundation, versão 2 da licença ou (a critério do autor)
+qualquer versão posterior. 
+
+Este documento é distribuído com a itenção de ser útil ao seu utilizador,
+no entanto NÃO TEM NENHUMA GARANTIA,  EXPLÍCITAS OU IMPLÍCITAS , COMERCIAIS
+OU DE ATENDIMENTO A UMA DETERMINADA FINALIDADE. Consulte a Licença Pública 
+Geral  GNU para maiores detalhes. 
+
+gleydson_s@yahoo.com
+gleydson@linuxbr.com.br
+
+
+
+6- )Nota sobre Marcas Registradas
+
+Os programas mencionados neste manual são de propriedade dos seus respectivos
+donos:
+
+MS-DOS, Windows 3.1x, Windows 9x, Windows NT são de propriedade da Microsoft.
+OS/2 e OS/2 Warp são de propriedade da IBM
+
+
+7- ) Agradecimentos
+
+Agradeço a todas as pessoas que me mandam correções, comentários, críticas, 
+elogios, dúvidas sobre este documento, pois através destas mensagens, estão 
+contribuindo para a melhoria deste projeto e me icentivando em sua continuação.
+
+Agradecimentos especiais a:
+
+Eduardo Marcel Macan <macan@thecore.com.br> - Pelo apoio e interesse na 
+         divulgação deste projeto e outros documentos relacionados com a 
+         tradução e divulgação de documentos sobre o Linux no Brasil.
+
+Jorge Godoy <jorge@bestway.com.br> - Pela revisão deste documento e primeiras
+         orientações para a conversão deste para SGML.
+
+Adam di Carlo <adam@onshore.com> - Que me deu apoio na colocação deste documento
+         na documentação da distribuição Debian.
+
+E a voce pelo interesse em conhecer mais sobre o Linux.
+
+
+<EOF>
\ No newline at end of file
diff --git a/fdisk/doc/Fdisk-Portuguese.html b/fdisk/doc/Fdisk-Portuguese.html
new file mode 100644 (file)
index 0000000..fdf29b8
--- /dev/null
@@ -0,0 +1,1118 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="Author" content="Gleydson Silva">
+   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win95; I) [Netscape]">
+   <title>Fdisk-Portugues-HOWTO</title>
+</head>
+<body>
+
+<center><b><font size=+1>Fdisk-Portugues-HOWTO Copyright (C) 1999 Gleydson
+M. da Silva</font></b>
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<p>
+<hr WIDTH="100%">
+<br><b>Gleydson M. da Silva</b><i> - gleydson@linuxbr.com.br</i>
+<br><b>Vers&atilde;o 1.3</b></center>
+
+<hr WIDTH="100%">
+<br>&nbsp;
+<br>&nbsp;
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<center>
+<p><a NAME="Indice"></a><b><u><font size=+2>&Iacute;ndice</font></u></b></center>
+
+<p><b><font size=+1>1</font></b> -<a href="#1"> Introdu&ccedil;&atilde;o
+ao Fdisk</a>
+<br>&nbsp; <b>1.1</b> - <a href="#1.1">O que &eacute; uma Parti&ccedil;&atilde;o
+de Disco</a>
+<br>&nbsp; <b>1.2</b> - <a href="#1.2">A Tabela de Parti&ccedil;&atilde;o</a>
+<br>&nbsp; <b>1.3</b> - <a href="#1.3">Introdu&ccedil;&atilde;o ao Particionamento
+de discos</a>
+<br>&nbsp; <b>1.4</b> - <a href="#1.4">Identifica&ccedil;&otilde;es utilizadas
+neste documento</a>
+<br>&nbsp; <b>1.5</b> - <a href="#1.5">Identifica&ccedil;&atilde;o de discos
+e parti&ccedil;&otilde;es no Linux</a>
+<br>&nbsp; <b>1.6</b> - <a href="#1.6">Tipos de parti&ccedil;&otilde;es
+de disco</a>
+<br>&nbsp; <b>1.7</b>-) <a href="#1.7">Observa&ccedil;&otilde;es sobre
+o formato DOS 6.XX(FAT 16)</a>
+<p><b><font size=+1>2</font></b> - <a href="#2">Iniciando o programa Fdisk</a>
+<br>&nbsp; <b>2.1</b> - <a href="#2.1">Op&ccedil;&otilde;es de Linha de
+comando</a>
+<br>&nbsp; <b>2.2</b> - <a href="#2.2">Comandos do Fdisk</a>
+<p><b><font size=+1>3</font></b> - <a href="#3">Manipulando parti&ccedil;&otilde;es
+no disco r&iacute;gido</a>
+<br>&nbsp; <b>3.1</b> - <a href="#3.1">Listando parti&ccedil;&otilde;es
+existentes no disco</a>
+<br>&nbsp; <b>3.2</b> - <a href="#3.2">Criando parti&ccedil;&otilde;es
+de disco</a>
+<br>&nbsp; <b>3.3</b> - <a href="#3.3">Mudando o tipo da parti&ccedil;&atilde;o</a>
+<br>&nbsp; <b>3.4</b> - <a href="#3.4">Excluindo uma parti&ccedil;&atilde;o
+de disco</a>
+<br>&nbsp; <b>3.5</b> - <a href="#3.5">Gravando parti&ccedil;&otilde;es
+alteradas para o disco</a>
+<br>&nbsp; <b>3.6</b> - <a href="#3.6">Abandonando o programa sem gravar
+altera&ccedil;&otilde;es para o disco</a>
+<br>&nbsp; <b>3.7</b> - <a href="#3.7">Alternando entre parti&ccedil;&atilde;o
+inicializ&aacute;vel/n&atilde;o inicializ&aacute;vel</a>
+<br>&nbsp; <b>3.8</b> -<a href="#3.8"> Escolhendo a unidade&nbsp; para
+mostrar o tamanho ocupado pela parti&ccedil;&atilde;o</a>
+<p><b><font size=+1>4</font></b> - <a href="#4">Tipos de parti&ccedil;&otilde;es
+reconhecidas pelo Fdisk</a>
+<p><b><font size=+1>5</font></b> - <a href="#5">Direitos Autorais</a>
+<p><b><font size=+1>6</font></b> - <a href="#6">Licen&ccedil;as e Garantias
+sobre este documento</a>
+<p><b><font size=+1>7</font></b> - <a href="#7">Marcas Registradas</a>
+<p><font size=+1>8</font> - <a href="#8">Agradecimentos</a>
+<br>&nbsp;
+<br>&nbsp;
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<center>
+<p><a NAME="1"></a><u><font size=+1>1-) Introdu&ccedil;&atilde;o ao Fdisk</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; Fdisk &eacute; um programa utilizado para o particionamento
+de discos r&iacute;gidos <i>IDE</i> e <i>SCSI</i>.&nbsp;&nbsp; A vers&atilde;o
+do programa Fdisk descrita neste manual &eacute; a <i>2.8</i>
+<p><b>ATEN&Ccedil;&Atilde;O</b>: ESTE MANUAL TEM COMO OBJETIVO A EXPLICA&Ccedil;&Atilde;O
+DE
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+FUNCIONAMENTO E&nbsp; UTILIZA&Ccedil;&Atilde;O DO FDISK DO LINUX (N&Atilde;O
+O
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+FDISK DO DOS), MESMO QUE&nbsp; VOCE SEJA UM USU&Aacute;RIO DO DOS,
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+RECOMENDO QUE LEIA ESTE MANUAL COMO UMA REFER&Ecirc;NCIA
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+T&Eacute;CNICA E PARA SEU APRENDIZADO.
+<p><b>&nbsp;&nbsp;&nbsp; Este documento &eacute; distribu&iacute;do com
+a iten&ccedil;&atilde;o de ser &uacute;til ao seu utilizador, no entanto
+N&Atilde;O TEM NENHUMA GARANTIA,&nbsp; EXPL&Iacute;CITAS OU IMPL&Iacute;CITAS
+, COMERCIAIS OU DE ATENDIMENTO A UMA DETERMINADA FINALIDADE. Consulte a
+Licen&ccedil;a P&uacute;blica Geral&nbsp; (GNU) para maiores detalhes.</b>
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="1.1"></a><u><font size=+1>1.1-) Parti&ccedil;&atilde;o de Disco</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; Uma <i>parti&ccedil;&atilde;o de disco</i> &eacute;
+o local onde o sistema operacional armazena seu sistema de arquivos(<i>arquivos,
+diret&oacute;rios, FAT, boot sector, etc</i>).
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="1.2"></a><u><font size=+1>1.2-) Tabela de parti&ccedil;&atilde;o</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; A <i>Tabela de parti&ccedil;&atilde;o</i> &eacute;
+o local do disco r&iacute;gido onde se localizam os dados sobre todas as
+parti&ccedil;&otilde;es existentes no disco como o sistema de arquivos
+utilizado, se ela &eacute; inicializ&aacute;vel, a cabe&ccedil;a inicial/final,
+setor inicial/final, cilindro inicial/final, n&uacute;mero de setores ocupados
+por ela no disco.
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="1.3"></a><u><font size=+1>1.3-) Introdu&ccedil;&atilde;o ao
+particionamento de discos</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; Particionar o disco r&iacute;gido &eacute; dividir
+ele em partes para armazenamento de arquivos e programas. As parti&ccedil;&otilde;es
+criadas no disco podem ter o tamanho que desejar (desde que esteja dentro
+da capacidade m&aacute;xima do disco r&iacute;gido).
+<br>&nbsp;&nbsp;&nbsp;&nbsp; Uma parti&ccedil;&atilde;o n&atilde;o interfere
+em outras parti&ccedil;&otilde;es do mesmo disco(&eacute; como se tivessemos
+v&aacute;rios discos r&iacute;gidos dentro de um).
+<br>&nbsp;&nbsp;&nbsp; Em um disco r&iacute;gido, pode ser criada uma parti&ccedil;&atilde;o
+&uacute;nica, que neste caso todo o disco r&iacute;gido&nbsp; &eacute;
+usado para armazenar os arquivos(que &eacute; o caso mais comum caso voce
+tenha o DOS), ou v&aacute;rias parti&ccedil;&otilde;es, que podem ser usadas
+pelo mesmo SO(Sistema Operacional) ou outros sistemas operacionais diferentes(um
+exemplo de v&aacute;rias parti&ccedil;&otilde;es, &eacute; se voce for
+usar o DOS e o Linux no mesmo disco, os dois
+<br>sistemas v&atilde;o estar no mesmo disco mas um n&atilde;o interfere
+no outro).
+<br>&nbsp;&nbsp;&nbsp; Este manual tem a iten&ccedil;&atilde;o de explicar
+o funcionamento do programa fdisk (fdisk do Linux n&atilde;o do DOS!).
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="1.4"></a><u><font size=+1>1.4-) Algumas identifica&ccedil;&otilde;es
+utilizadas neste manual para facilitar a&nbsp; compreens&atilde;o do texto</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; Esta parte descreve algumas caracter&iacute;sticas
+de organiza&ccedil;&atilde;o deste manual e algumas identifica&ccedil;&otilde;es
+que adotei para facilitar o seu entendimento, e as explica&ccedil;&otilde;es
+que ser&atilde;o dadas.
+<p>&nbsp;&nbsp;&nbsp; Explica&ccedil;&atilde;o de nomes e comandos, ser&aacute;
+seguida da palavra "<b>onde</b>" e abaixo dela as explica&ccedil;&otilde;es
+sobre os comandos, exemplo:
+<p><b>onde</b>:
+<br><i>nome a ser explicado1</i>&nbsp; : Descri&ccedil;&atilde;o
+<br><i>nome a ser explicado2</i>&nbsp; : Descri&ccedil;&atilde;o
+<br><i>nome a ser explicado3</i>&nbsp; : Descri&ccedil;&atilde;o
+<p>ou
+<p><b>onde</b>:
+<br><i>nome a ser explicado1</i>&nbsp; - Descri&ccedil;&atilde;o
+<br><i>nome a ser explicado2</i>&nbsp; - Descri&ccedil;&atilde;o
+<br><i>nome a ser explicado3</i>&nbsp; - Descri&ccedil;&atilde;o
+<br>&nbsp;
+<p>&nbsp;&nbsp;&nbsp; Quando for feita alguma refer&ecirc;ncia com tecla
+do teclado, por exemplo, pressione p para listar as parti&ccedil;&otilde;es,
+a letra sera colocada entre &lt;> para facilitar a interpreta&ccedil;&atilde;o:
+<br>pressione &lt;p> para listar as parti&ccedil;&otilde;es
+<br>ap&oacute;s isto pressione &lt;Enter> para confirmar
+<br>pressione &lt;l> para listar os tipos de parti&ccedil;&otilde;es dispon&iacute;veis
+<br>&nbsp;
+<p>&nbsp;&nbsp;&nbsp; As linhas pontilhadas que aparecem na tela, veja
+abaixo,
+<br>----------------------------------------------------------------------------
+<br>----------------------------------------------------------------------------
+<br>servem para identificar que o que esta entre as linhas &eacute; um
+exemplo de como
+<br>ser&aacute; a resposta do comando para a tela de seu computador.
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="1.5"></a><u><font size=+1>1.5-) Identifica&ccedil;&atilde;o
+de discos e parti&ccedil;&otilde;es no Linux</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; Antes de descrever como se utiliza o programa fdisk,
+&eacute; importante fazer algumas explica&ccedil;&otilde;es sobre a identifica&ccedil;&atilde;o
+das parti&ccedil;&otilde;es e unidades de disco no sistema Linux( e outros
+*nix). Se voce for um usu&aacute;rio que j&aacute; conhece a interpreta&ccedil;&atilde;o
+de discos e parti&ccedil;&otilde;es neste sistema, voce n&atilde;o precisar&aacute;
+ler esta parte.
+<br>&nbsp;&nbsp;&nbsp; No sistema operacional Linux, os dispositivos existentes
+no computador (como impressoras, unidades de disquetes, discos r&iacute;gidos,
+monitor, placa de som, etc...) s&atilde;o identificados por um nome referente
+a este dispositivo e colocado no diret&oacute;rio /dev (que &eacute; utilizado
+para identificar dispositivos ou perif&eacute;ricos existentes no computador).
+<br>&nbsp;&nbsp; A identifica&ccedil;&atilde;o dos discos r&iacute;gidos
+segue a seguinte forma:
+<p>&nbsp; /dev/hda1
+<br>&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; |&nbsp;
+|
+<br>&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; |&nbsp;
+|_N&uacute;mero que identifica a parti&ccedil;&atilde;o do disco r&iacute;gido(<i>1=Primeira,
+2=segunda</i>)
+<br>&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; |
+<br>&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; |_Letra
+que identifica o disco r&iacute;gido(<i>a=primeiro disco, b=segundo disco,
+etc..</i>)
+<br>&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
+<br>&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |_Sigla HD - Significa
+que &eacute; um disco r&iacute;gido IDE(<i>Se tiver um SD significa SCSI</i>)
+<br>&nbsp; |
+<br>&nbsp; |_ Identifica&ccedil;&atilde;o do diret&oacute;rio onde os dispositivos
+do sistema s&atilde;o armazenados
+<p><b>OBS</b>: As unidades de disco r&iacute;gido <i>SCSI</i>, s&atilde;o
+identificadas com as letras <i>sd</i>&nbsp; seguida pela letra da
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unidade e n&uacute;mero
+da parti&ccedil;&atilde;o e os discos <i>IDE</i> s&atilde;o identificados
+por <i>hd</i> seguida pela letra da
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unidade de disco e
+o n&uacute;mero da parti&ccedil;&atilde;o do disco(como visto acima).
+<p>Abaixo, algumas identifica&ccedil;&otilde;es de disco do sistema Linux:
+<p><i>/dev/hda1</i>&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido
+IDE prim&aacute;rio principal - Primeira parti&ccedil;&atilde;o
+<br><i>/dev/hda2&nbsp;</i>&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido
+IDE prim&aacute;rio principal - Segunda parti&ccedil;&atilde;o
+<br><i>/dev/hda3</i>&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido
+IDE prim&aacute;rio principal - Terceira parti&ccedil;&atilde;o
+<br><i>/dev/hdb1</i>&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido
+IDE prim&aacute;rio escravo - Primeira parti&ccedil;&atilde;o
+<br><i>/dev/hdb2</i>&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido
+IDE prim&aacute;rio escravo - Segunda parti&ccedil;&atilde;o
+<br><i>/dev/hdb3</i>&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido
+IDE prim&aacute;rio escravo - Terceira parti&ccedil;&atilde;o
+<br><i>/dev/hdc1</i>&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido
+IDE secund&aacute;rio principal - Primeira parti&ccedil;&atilde;o
+<br><i>/dev/hdc2</i>&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido
+IDE secund&aacute;rio principal - Segunda parti&ccedil;&atilde;o
+<br><i>/dev/hdc3</i>&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido
+IDE secund&aacute;rio principal - Terceira parti&ccedil;&atilde;o
+<br><i>/dev/hdd1</i>&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido
+IDE secund&aacute;rio escravo - Primeira parti&ccedil;&atilde;o
+<br><i>/dev/hdd2</i>&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido
+IDE secund&aacute;rio escravo - Segunda parti&ccedil;&atilde;o
+<br><i>/dev/hdd3</i>&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Disco r&iacute;gido
+IDE secund&aacute;rio escravo - Terceira parti&ccedil;&atilde;o
+<br><i>/dev/sda1</i>&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Primeiro disco r&iacute;gido
+SCSI - Primeira parti&ccedil;&atilde;o
+<br><i>/dev/sda2</i>&nbsp;&nbsp; -&nbsp;&nbsp; Primeiro disco r&iacute;gido
+SCSI - Segunda parti&ccedil;&atilde;o
+<br><i>/dev/sda3</i>&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Primeiro disco r&iacute;gido
+SCSI - Terceira parti&ccedil;&atilde;o
+<br><i>/dev/sdb1</i>&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Segundo disco r&iacute;gido
+SCSI - Primeira parti&ccedil;&atilde;o
+<br><i>/dev/sdb2</i>&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Segundo disco r&iacute;gido
+SCSI - Segunda parti&ccedil;&atilde;o
+<br><i>/dev/sdb3</i>&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp; Segundo disco r&iacute;gido
+SCSI - Terceira parti&ccedil;&atilde;o
+<p>&nbsp;&nbsp;&nbsp; No exemplo acima foram usadas 3 parti&ccedil;&otilde;es
+por disco, mas podem existir mais parti&ccedil;&otilde;es no mesmo disco,
+um exemplo &eacute; se o disco r&iacute;gido possuir <i>parti&ccedil;&otilde;es
+L&oacute;gicas</i>, que s&atilde;o identificadas no sistemas a partir de
+/dev/hdx5 em diante.
+<p>&nbsp;&nbsp;&nbsp; Abaixo um exemplo de como o Linux identifica as parti&ccedil;&otilde;es
+em cada disco existente em seu computador:
+<p>Vamos supor que eu tenha 2 discos r&iacute;gidos:
+<br>o <i>1&ordm;disco de 2GB</i> e o <i>2&ordm;disco&nbsp; de 1GB </i>(Giga
+Byte ou 1.000 Megas)
+<p>&nbsp;&nbsp;&nbsp; No primeiro disco(<i>de 2GB</i>), a primeira parti&ccedil;&atilde;o
+&eacute; de <i>800MB</i> do tipo FAT16(<i>DOS</i>), a segunda parti&ccedil;&atilde;o
+&eacute; de <i>1.2GB</i> do tipo EXT2(<i>Linux</i>)(<i>1.2GB+800MB=2GB</i>
+que &eacute; a capacidade total do disco). Ent&atilde;o as parti&ccedil;&otilde;es
+seriam identificadas da seguinte forma no Linux:
+<p><i>/dev/hda</i> - Disco r&iacute;gido Prim&aacute;rio Principal
+<br><i>/dev/hda1</i> - Primeira parti&ccedil;&atilde;o do primeiro disco
+r&iacute;gido (de 800MB do tipo DOS)
+<br><i>/dev/hda2</i> - Segunda parti&ccedil;&atilde;o do primeiro disco
+r&iacute;gido( de 1.2GB do tipo Linux)
+<p>&nbsp;&nbsp;&nbsp; Neste caso estariam dispon&iacute;veis <i>800MB</i>
+para serem usados com o DOS e <i>1.2GB</i> para o Linux.
+<br>&nbsp;&nbsp;&nbsp; Por exemplo, se voce particionar um disco r&iacute;gido
+em duas partes e usar as duas parti&ccedil;&otilde;es no DOS, ele reconhecer&aacute;
+as parti&ccedil;&otilde;es como sendo C: e D:.
+<p><b>Lembre-se</b>: Quando um disco &eacute; particionado, uma parti&ccedil;&atilde;o
+n&atilde;o interfere nas outras, repare que
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+quando voce particiona(divide) um disco, &eacute; como se tivesse dois
+discos r&iacute;gidos(o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+&uacute;nico cuidado que voce deve tomar &eacute; com as c&oacute;pias
+de seguran&ccedil;a, porque se der um
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+problema de parte eletr&ocirc;nica no disco r&iacute;gido, por exemplo,&nbsp;
+a sua placa controladora
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+queimar ou o cabe&ccedil;ote dele ir pro espa&ccedil;o, ser&atilde;o perdidas
+as suas 2 parti&ccedil;&otilde;es que
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+est&atilde;o armazenadas nele.
+<br>&nbsp;
+<p>Voltando ao exemplo das classifica&ccedil;&otilde;es das parti&ccedil;&otilde;es
+do disco, vamos para o segundo disco:
+<p>&nbsp;&nbsp;&nbsp; No segundo disco(<i>1GB</i>), eu tenho uma parti&ccedil;&atilde;o
+de <i>950MB</i> do tipo FAT16(<i>DOS</i>), que costumo usar para armazenar
+arquivos tempor&aacute;rios e c&oacute;pias de seguran&ccedil;a de meu
+computador, etc..., e outra de 50MB <i>SWAP</i>(Parti&ccedil;&atilde;o
+de mem&oacute;ria virtual como descrevi acima)(<i>950MB+50MB=1GB</i>).
+Ent&atilde;o as parti&ccedil;&otilde;es deste disco seriam identificadas
+da seguinte forma no Linux:
+<p><i>/dev/hdb</i>&nbsp;&nbsp; - Disco r&iacute;gido principal escravo
+<br><i>/dev/hdb1</i> - Primeira parti&ccedil;&atilde;o do disco acima (
+de 950MB do tipo DOS)
+<br><i>/dev/hdb2</i> - Segunda parti&ccedil;&atilde;o do disco acima (
+de 50MB do tipo SWAP)
+<p>&nbsp;&nbsp;&nbsp; No disco acima, <i>950MB</i> est&atilde;o dispon&iacute;veis
+para serem usados pelo DOS e <i>50 MB</i> pela mem&oacute;ria virtual (<i>SWAP</i>)
+do Linux.
+<p>&nbsp;&nbsp;&nbsp; Note que se voce utiliza o MS-DOS, n&atilde;o ser&aacute;
+poss&iacute;vel conseguir&aacute; ver as parti&ccedil;&otilde;es do Linux
+e SWAP, porque s&atilde;o imcompat&iacute;veis com o formato aceito pelo
+DOS (ele identificaria a primeira parti&ccedil;&atilde;o do primeiro disco(800MB)
+como a unidade C: e a primeira parti&ccedil;&atilde;o do segundo disco(950MB)
+como unidade D), mas o contr&aacute;rio n&atilde;o acontece; O Linux tem
+total compatibilidade com a parti&ccedil;&atilde;o DOS FAT12, FAT16, FAT32,
+OS/2 HPFS, e muitas outras.
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="1.6"></a><u><font size=+1>1.6-) Tipos de parti&ccedil;&otilde;es
+de discos</font></u></center>
+
+<p>&nbsp;&nbsp; As parti&ccedil;&otilde;es de disco s&atilde;o divididas
+em tres tipos: <i>Prim&aacute;ria, Extendida </i>e<i> L&oacute;gica</i>.
+<p>&nbsp;&nbsp; Pode se ter no m&aacute;ximo quatro parti&ccedil;&otilde;es
+prim&aacute;rias e extendidas no mesmo disco. A <i>parti&ccedil;&atilde;o
+Prim&aacute;ria</i> permite o armazenamento de arquivos e diret&oacute;rios.
+<br>Todos os computadores que possuem somente a unidade C(supondo que voce
+use o DOS), usam este tipo de parti&ccedil;&atilde;o para armazenamento
+de arquivos e inicializa&ccedil;&atilde;o do sistema operacional.
+<br>&nbsp;&nbsp;&nbsp; Se for preciso criar mais que 4 parti&ccedil;&otilde;es
+no mesmo disco, ser&aacute; necess&aacute;rio
+<br>criar uma <i>parti&ccedil;&atilde;o Extendida</i>. A <i>parti&ccedil;&atilde;o
+Extendida</i>&nbsp; n&atilde;o pode ser utilizada para armazenar arquivos.
+Ela &eacute; usada para a cria&ccedil;&atilde;o de outras parti&ccedil;&otilde;es,
+dentro dela, que s&atilde;o chamadas de <i>parti&ccedil;&otilde;es L&oacute;gicas</i>.
+<br>&nbsp;&nbsp;&nbsp; Uma <i>parti&ccedil;&atilde;o extendida</i> podem
+conter v&aacute;rias <i>parti&ccedil;&otilde;es L&oacute;gicas</i>. As
+parti&ccedil;&otilde;es L&oacute;gicas podem armazenar arquivos e diret&oacute;rios(como
+as parti&ccedil;&otilde;es prim&aacute;rias).
+<br>&nbsp;&nbsp;&nbsp; Um mesmo disco r&iacute;gido pode armazenar mais
+de 64 parti&ccedil;&otilde;es independentes uma das outras.
+<p><b>OBS</b>: Os arquivos e diret&oacute;rios podem ser armazenados somente
+em parti&ccedil;&otilde;es de disco <i>Prim&aacute;rias</i> ou <i>L&oacute;gicas</i>,
+a parti&ccedil;&atilde;o <i>Extendida</i> n&atilde;o &eacute; usada para
+armazanamento de arquivos e diret&oacute;rios.
+<p>&nbsp;&nbsp;&nbsp;&nbsp; Se possuir duas parti&ccedil;&otilde;es em
+seu computador (C: e D: no DOS), e n&atilde;o estiver usando a parti&ccedil;&atilde;o
+D:, a instala&ccedil;&atilde;o pode ser feita nesta parti&ccedil;&atilde;o
+desde que ela tenha o espa&ccedil;o necess&aacute;rio para o sistema operacional
+Linux, os programas que desejar instalar, mais a parti&ccedil;&atilde;o
+SWAP.
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="1.7"></a><u><font size=+1>1.7-) Observa&ccedil;&otilde;es sobre
+o formato DOS 6.XX(FAT 16)</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp;&nbsp; No formato DOS 6.XX(<i>FAT16</i>), o primeiro
+setor da &aacute;rea de dados da parti&ccedil;&atilde;o &eacute; utilizado
+frequentemente pelo DOS para armazenamento de dados sobre a parti&ccedil;&atilde;o
+de disco, e estes dados s&atilde;o usados pelo sistema para se ter maior
+confiabilidade do que os dados armazenados na tabela de parti&ccedil;&atilde;o.
+O sistema de arquivos DOS, faz o FDISK(do <i>DOS</i>) limpar os primeiros
+512 bytes da &aacute;rea de dados da parti&ccedil;&atilde;o sempre que
+uma mudan&ccedil;a de tamanho acontecer.
+<br>&nbsp;&nbsp;&nbsp;&nbsp; O formatador do DOS(<i>format</i>) verifica
+este primeiro setor toda vez que a up&ccedil;&atilde;o <i>/U</i> (que &eacute;
+utilizada para n&atilde;o salvar dados para se fazer a desformata&ccedil;&atilde;o
+do disco) &eacute; utilizada.
+<br>&nbsp;&nbsp;&nbsp;&nbsp; Isto &eacute; considerado uma FALHA no Format(do
+<i>DOS</i>)
+e no Fdisk(do <i>DOS</i>).
+<br>A op&ccedil;&atilde;o abaixo deve ser utilizada caso voce crie uma
+parti&ccedil;&atilde;o do <i>DOS FAT16</i> com o Fdisk, que faz com que
+os primeiros 512 bytes daquela parti&ccedil;&atilde;o sejam "limpos", para
+manter a compatibilidade com o DOS. Utilize esta op&ccedil;&atilde;o dentro
+do Linux, ap&oacute;s criar a parti&ccedil;&atilde;o com o Fdisk e reiniciar
+o seu
+<br>computador. Foi notado que esta op&ccedil;&atilde;o s&oacute; funciona
+corretamente somente quando o Sistema Linux estiver instalado em seu computador.
+N&atilde;o me responsabilizo caso utiliza-la a partir de um disquete de
+recupera&ccedil;&atilde;o.
+<p><b>dd if=/dev/zero of=/dev/hdx1 bs=512 count=1</b>
+<p><b>onde</b>:
+<br><i>hdx1</i> - &Eacute; a identifica&ccedil;&atilde;o da unidade de
+disco e a parti&ccedil;&atilde;o que foi criada&nbsp; pelo Fdisk utilizando
+o sistema de arquivos DOS que ter&aacute; seu&nbsp; primeiro setor "limpo".
+<p><b>OBS1</b>: Cuidado ao utilizar esta op&ccedil;&atilde;o, um pequeno
+descuido pode resultar na&nbsp; perda de dados do
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+seu disco r&iacute;gido ou outras parti&ccedil;&atilde;o.
+<br><b>OBS2</b>: N&atilde;o utilize este comando com parti&ccedil;&otilde;es
+que utilizam o sistema de arquivos&nbsp; <i>FAT32</i>
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+(utilizada nos sistemas operacionais <i>Windows 95 OSR/2</i> e superiores)
+se for utilizada em
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+um disco com este sistema, sua FAT ser&aacute; corrompida,&nbsp; se isto
+acontecer, ser&aacute; necess&aacute;ria a
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+re-formata&ccedil;&atilde;o da parti&ccedil;&atilde;o.
+<br><b>OBS3</b>: &Eacute; extremamente recomendado que se utilize o programa
+de particionamento que
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+acompanha o seu sistema operacional para a cria&ccedil;&atilde;o da parti&ccedil;&atilde;o.
+Por exemplo, se deseja
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+criar uma parti&ccedil;&atilde;o DOS 6.XX, utilize o FDisk qua acompanha
+o DOS.
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="2"></a><u><font size=+1>2-) Iniciando o programa Fdisk</font></u></center>
+
+<p>Para iniciar o programa fdisk(Linux)digite:
+<p><i>fdisk</i> [unidade]
+<p><b>Onde</b>:
+<br><i>unidade</i> - deve ser a unidade de disco r&iacute;gido no padr&atilde;o
+Linux(<i> /dev/hda,&nbsp; /dev/hdb, /dev/sda,</i>
+<br><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+/dev/sdb, etc... </i>). Se voce tem apenas 1&nbsp; disco r&iacute;gido
+IDE, use <i>/dev/hda</i>, para fazer o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+fdisk trabalhar com este disco ou digite fdisk sem especificar a unidade.
+Se possuir 1
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+disco SCSI, use /dev/sda
+<p>&nbsp; Se unidade n&atilde;o for especificada, o programa fdisk usar&aacute;
+<i>/dev/hda</i>
+como unidade de disco padr&atilde;o.
+<p><b>ATEN&Ccedil;&Atilde;O</b> : A OPERA&Ccedil;&Atilde;O DE PARTICIONAMENTO
+DE DISCOS PODE FAZER COM
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+QUE OS DADOS&nbsp; ARMAZENADOS EM SEU DISCO R&Iacute;GIDO SEJAM
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+PERDIDOS, SE FOR USADA INCORRETAMENTE. &Eacute; SEMPRE
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+RECOMENDADO RETIRAR UMA C&Oacute;PIA DE SEGURAN&Ccedil;A DOS SEUS
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ARQUIVOS EXISTENTES NO MICRO ANTES DE SE EXECUTAR UM
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+PROGRAMA DESTE TIPO, A N&Atilde;O SER QUE TENHA CONFIAN&Ccedil;A NO
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+QUE ESTA FAZENDO E QUE ENTENDEU AS EXPLICA&Ccedil;&Otilde;ES SOBRE A
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+IDENTIFICA&Ccedil;&Atilde;O DE&nbsp;&nbsp; DISCOS R&Iacute;GIDOS E SUAS
+PARTI&Ccedil;&Otilde;ES NO
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+SISTEMA.
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="2.1"></a><u><font size=+1>2.1-) Op&ccedil;&otilde;es de linha
+de comando</font></u></center>
+
+<p>&nbsp;&nbsp; Com a utiliza&ccedil;&atilde;o de op&ccedil;&otilde;es
+de linha de comando, voce pode fazer com que o programa inicie de uma forma
+espec&iacute;fica, ou personalizada.
+<p><b>fdisk</b> [<i>-b</i>] [<i>-u</i>] [<i>unidade</i>]&nbsp;&nbsp; -
+Op&ccedil;&otilde;es aceitas para o particionamento.
+<br><b>fdisk</b> [<i>-l</i>] [<i>-b</i>] [<i>-u</i>]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+- Op&ccedil;&otilde;es aceitas para listar as parti&ccedil;&otilde;es atuais.
+<br><b>fdisk</b> [<i>-s</i>] [<i>unidade</i>]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+- Op&ccedil;&atilde;o aceita para mostrar o Tamanho da parti&ccedil;&atilde;o
+<br><b>fdisk</b> [<i>-v</i>]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+- Vers&atilde;o do programa
+<p><b>Onde</b>:
+<br><i>-b</i>&nbsp; : Faz com que o fdisk mostre na tela a coluna <i>BEGIN</i>
+quando utilizar a op&ccedil;&atilde;o &lt;p> durante o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; particionamento do disco ou com
+a op&ccedil;&atilde;o -l&nbsp; quando se for listar as parti&ccedil;&otilde;es
+na linha de
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comando.
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>OBS</b>: Esta op&ccedil;&atilde;o
+&eacute; geralmente desnecess&aacute;ria, porque seu valor equivale ao
+valor da coluna
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+START.
+<br><i>-u</i>&nbsp; : Muda a unidade de medida padr&atilde;o para Setores.
+Se esta op&ccedil;&atilde;o for usada&nbsp; na linha de
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comando para se fazer o particionamento
+de disco, ap&oacute;s pressionar &lt;p>, o programa mostrar&aacute;
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; na tela o inicio e o fim da parti&ccedil;&atilde;o
+em Setores ao inv&eacute;s de utilizar cilindros para a listagem.
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Se for utilizada em conjunto com a op&ccedil;&atilde;o
+-l, a unidade de medida do Inicio e Fim da parti&ccedil;&atilde;o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ser&aacute; listada Setores ao inv&eacute;s
+de cilindros.
+<br><i>-l</i>&nbsp; : Lista as parti&ccedil;&otilde;es existentes no disco,
+sem entrar no programa fdisk, ou alterar qualquer
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parti&ccedil;&atilde;o. Esta op&ccedil;&atilde;o
+&eacute; equivalente a entrar no programa fdisk e pressionar &lt;p>, mas
+ela
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; somente lista as parti&ccedil;&otilde;es
+sem entrar no programa.
+<br><i>-s</i>&nbsp; : Mostra o tamanho de uma parti&ccedil;&atilde;o de
+disco. A &uacute;nica diferen&ccedil;a desta para as outras op&ccedil;&otilde;es,
+&eacute;
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; que se deve especificar a unidade mais
+a parti&ccedil;&atilde;o que deseja ver o tamanho, por exemplo,
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; digitando-se:
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>fdisk -s /dev/hda1</i>
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; voce visualizar&aacute; o tamanho total
+da parti&ccedil;&atilde;o de disco hda1.
+<br><i>-v</i>&nbsp; : Mostra a vers&atilde;o do programa fdisk que esta
+utilizando.
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="2.2"></a><u><font size=+1>2.2-) Comandos do fdisk.</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp;&nbsp; O fdisk do Linux manipula as parti&ccedil;&otilde;es
+de seu disco atrav&eacute;s de comandos digitados no teclado. Cada letra
+digitada corresponde a um comando diferente no fdisk. Estes comandos ser&atilde;o
+utilizados ap&oacute;s iniciar o programa.
+<br>&nbsp;&nbsp;&nbsp;&nbsp; Aqui vai a lista de comandos dispon&iacute;veis
+no fdisk, recomendo que anote em um papel, ou imprima esta parte do texto(
+ou todo o documento) para que possa consultar estas op&ccedil;&otilde;es
+durante o particionamento do seu disco r&iacute;gido.
+<p><i>a</i>&nbsp; - Seleciona entre parti&ccedil;&atilde;o inicializ&aacute;vel
+e n&atilde;o inicializ&aacute;vel.
+<br><i>b</i>&nbsp; - Edita um volume de disco BSD(n&atilde;o usada em computadores
+com DOS)
+<br><i>d</i>&nbsp; - Apaga uma tabela de parti&ccedil;&atilde;o (Delete)
+<br><i>l</i>&nbsp;&nbsp; - Lista os tipos de parti&ccedil;&otilde;es dispon&iacute;veis
+(List)
+<br><i>m</i> - Ajuda
+<br><i>n</i>&nbsp; - Cria uma nova tabela de parti&ccedil;&atilde;o (New)
+<br><i>p</i>&nbsp; - Mostra a tabela de parti&ccedil;&atilde;o atual (Print)
+<br><i>q</i>&nbsp; - sai do fdisk sem gravar as altera&ccedil;&otilde;es
+no disco (quit)
+<br><i>t</i>&nbsp;&nbsp; - Muda o tipo da parti&ccedil;&atilde;o (Type)
+<br><i>u</i>&nbsp; - Altera as unidades de medidas que s&atilde;o mostradas
+na tela
+<br><i>v</i>&nbsp; - Verifica a tabela de parti&ccedil;&atilde;o (verify)
+<br><i>w</i> - grava as altera&ccedil;&otilde;es feitas para o disco e
+sai do fdisk (write)
+<br><i>x</i>&nbsp; - Comandos especiais do programa(somente para usu&aacute;rios
+experientes)
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="3"></a><u><font size=+1>3-) Manipulando parti&ccedil;&otilde;es
+no disco r&iacute;gido</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; Agora vamos come&ccedil;ar realmente a trabalhar
+com o fdisk, os textos que foram colocados acima, foi para que voce entendesse
+o que &eacute; o particionamento de um disco r&iacute;gido e para que soubesse
+a diferen&ccedil;a entre parti&ccedil;&atilde;o e um disco r&iacute;gido,(j&aacute;
+vi muitas pessoas falarem de parti&ccedil;&atilde;o como se fosse disco
+r&iacute;gido...)
+<br>&nbsp;&nbsp;&nbsp;&nbsp; Abaixo uma explica&ccedil;&atilde;o passo-a-passo
+de como particionar um disco usando
+<br>o fdisk e seus comandos.
+<p><b>ATEN&Ccedil;&Atilde;O</b>: O disco r&iacute;gido usado no particionamento
+&eacute; um exemplo. Ele n&atilde;o deve ser usado por
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+voce para fazer o particionamento de seu disco, uma vez que a capacidade
+e outros
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+par&acirc;metros do disco r&iacute;gido variam de um para o outro. Este
+exemplo serve apenas
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+para que voce entenda como o fdisk funciona, o que faz cada um de seus
+comandos
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+e a&nbsp; fazer o c&aacute;lculo do tamanho das parti&ccedil;&otilde;es.
+<p>&nbsp;&nbsp; A tradu&ccedil;&atilde;o das mensagens que aparecem em
+Ingles nos exemplos que vou colocar logo abaixo, e a ajuda do programa,
+n&atilde;o foram feitas porque aparecem exatamente como est&atilde;o quando
+fizer o particionamento de seu disco, e n&atilde;o conhe&ccedil;o nenhuma
+vers&atilde;o do fdisk(Linux) em portugu&ecirc;s (caso algu&eacute;m conhe&ccedil;a
+uma vers&atilde;o deste programa em portugu&ecirc;s, favor entrar em contato
+comigo para que eu possa atualizar este documento, meu endere&ccedil;o
+de E-mail esta no final do documento).
+<br>&nbsp;&nbsp;&nbsp; Somente vou explicar o que significa cada mensagem
+que aparece no fdisk
+<br>atrav&eacute;s de uma compara&ccedil;&atilde;o.
+<p>No exemplo eu vou usar um disco de <i>1.08GB</i>. Este disco possui
+<i>630</i>
+cilindros, <i>16</i> cabe&ccedil;as, e <i>21</i> setores por trilha( <i>emmodo
+LBA</i>).
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="3.1"></a><u><font size=+1>3.1-) Listando parti&ccedil;&otilde;es
+existentes no disco</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; Primeiro digite <i>fdisk /dev/hda</i> (supondo que
+este seja o disco principal), se a unidade de disco n&atilde;o for digitada,
+o fdisk usar&aacute; /dev/hda como padr&atilde;o. Ap&oacute;s voce digitar
+este comando, o fdisk procura por parti&ccedil;&otilde;es existentes, seus
+tamanhos e outras caracter&iacute;sticas(geometria do disco) que ser&atilde;o
+utilizadas para se fazer o c&aacute;lculo de parti&ccedil;&otilde;es.
+<br>&nbsp;&nbsp;&nbsp; Quando entrar no programa, digite a letra &lt;p>
+para que o programa mostre as tabelas de parti&ccedil;&atilde;o existentes
+no disco r&iacute;gido.
+<p>A tela que aparece &eacute; a seguinte:
+<p>----------------------------------------------------------------------------------------------------
+<br>Command (m for help): p
+<br>Disk /dev/hda: 16 heads, 21 sectors, 630 cylinders
+<br>Units = cylinders of 630*512 bytes
+<p>&nbsp;Device&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Boot&nbsp;&nbsp;&nbsp; Begin&nbsp;&nbsp;&nbsp;
+Start&nbsp;&nbsp;&nbsp; End&nbsp;&nbsp; Blocks&nbsp;&nbsp; Id&nbsp;&nbsp;
+System
+<br>&nbsp;/dev/hda1&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+117&nbsp;&nbsp; 204800&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp; DOS 16-bits >=32M
+<p>Command (m for help):
+<br>-----------------------------------------------------------------------------------------------------
+<br>&nbsp;
+<p>Abaixo uma tradu&ccedil;&atilde;o desta tela:
+<br>-----------------------------------------------------------------------------------------------------
+<br>Commando (m para ajuda): &lt;p>
+<br>Disco /dev/hda: 16 cabe&ccedil;as, 21 setores, 630 cilindros
+<br>Unidades = cilindros de 630*512 bytes
+<p>Dispositivo&nbsp; Partida&nbsp; Come&ccedil;a&nbsp; Inicio&nbsp;&nbsp;
+Fim&nbsp; Blocos&nbsp; Identif.&nbsp; Sistema
+<br>/dev/hda1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 117&nbsp;
+204800&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOS 16-bits
+>=32M
+<p>Comando (m para ajuda):
+<br>----------------------------------------------------------------------------------------------------
+<p><b>Onde</b>:
+<br><i>Device</i> : &Eacute; a identifica&ccedil;&atilde;o da parti&ccedil;&atilde;o
+de disco.
+<br><i>Boot</i>&nbsp;&nbsp;&nbsp;&nbsp; : Se estiver com "*", se a parti&ccedil;&atilde;o
+pode ser usada para BOOT.
+<br><i>Begin</i>&nbsp;&nbsp;&nbsp; : Cilindro inicial da parti&ccedil;&atilde;o
+de disco
+<br><i>Start</i>&nbsp;&nbsp;&nbsp;&nbsp; : Cilindro inicial da parti&ccedil;&atilde;o
+de disco
+<br><i>End</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Cilindro Final da
+parti&ccedil;&atilde;o do disco
+<br><i>Blocks&nbsp;&nbsp;</i> : Quantidade de blocos ocupados pela parti&ccedil;&atilde;o
+de disco. No Linux, um
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Bloco equivale a 1024 bytes(1KB)
+<br><i>ID</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Tipo da
+parti&ccedil;&atilde;o (conforme a lista de parti&ccedil;&otilde;es existentes
+quando &eacute;
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+pressionada a letra &lt;L>.
+<br><i>System</i> : Descri&ccedil;&atilde;o do sistema de arquivos que
+&eacute; usado na parti&ccedil;&atilde;o de disco.
+<p>&nbsp;&nbsp;&nbsp; Como vemos acima, o disco r&iacute;gido possui uma
+parti&ccedil;&atilde;o do tipo <i>DOS- FAT16 </i>ocupando <i>200MB</i>
+de espa&ccedil;o em disco (200000 Blocos multiplicados por 1024).
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="3.2"></a><u><font size=+1>3.2-) Criando uma parti&ccedil;&atilde;o
+de Disco</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; Para criar uma parti&ccedil;&atilde;o de disco, pressionamos
+a letra &lt;n>. Neste exemplo vamos criar uma parti&ccedil;&atilde;o do
+tipo<b> Linux EXT2</b>(Nativa) com o tamanho de <i>820MB</i>, esta parti&ccedil;&atilde;o
+&eacute; a que conter&aacute; todo o sistema de arquivos Linux e seus programas,
+veja o exemplo:
+<p>-----------------------------------------------------------------------------------------------------
+<br>Command ( m for help): &lt;n>
+<br>&nbsp;&nbsp;&nbsp; e&nbsp; extended
+<br>&nbsp;&nbsp;&nbsp; p&nbsp; primary partition (1-4)
+<br>&lt;p>
+<br>Partition number (1-4): &lt;2>
+<br>First cylinder(118-630): &lt;118>
+<br>Last cylinder or +size or +sizeK or +sizeM (118-630): &lt;+820M>
+<br>-----------------------------------------------------------------------------------------------------
+<br>&nbsp;&nbsp;&nbsp; O fdisk perguntar&aacute; se deseja criar uma parti&ccedil;&atilde;o
+extendida ou prim&aacute;ria. Crie uma parti&ccedil;&atilde;o prim&aacute;ria
+para o sistema de arquivos do Linux, ou uma parti&ccedil;&atilde;o extendida
+caso voce ja tenha 3 parti&ccedil;&otilde;es prim&aacute;rias criadas em
+seu disco, conforme foi visto acima.
+<br>&nbsp;&nbsp;&nbsp; Como pode ter notado no exemplo acima, como j&aacute;
+existia a parti&ccedil;&atilde;o 1, digitamos o n&uacute;mero 2 para que
+fosse criada uma segunda parti&ccedil;&atilde;o, se a parti&ccedil;&atilde;o
+n&uacute;mero 2 j&aacute; existisse, seria digitado o n&uacute;mero 3 para
+criar uma terceira parti&ccedil;&atilde;o, assim por diante.
+<br>&nbsp;&nbsp;&nbsp; Ap&oacute;s escolher o tipo de parti&ccedil;&atilde;o
+que ser&aacute; criada, voce dever&aacute; especificar o cilindro inicial
+da parti&ccedil;&atilde;o de disco. No exemplo acima, o valor do cilindro
+inicial &eacute; de 118. Utilize sempre o valor do cilindro inicial sugerido
+pelo fdisk, a n&atilde;o ser que se queira deixar um espa&ccedil;o entre
+uma parti&ccedil;&atilde;o antiga e a nova parti&ccedil;&atilde;o para
+a cria&ccedil;&atilde;o de uma parti&ccedil;&atilde;o menor ou por outros
+motivos.
+<br>&nbsp;&nbsp;&nbsp;&nbsp; O &uacute;ltimo passo &eacute; especificar
+onde terminar&aacute; a parti&ccedil;&atilde;o de disco. &Eacute; permitida
+a utiliza&ccedil;&atilde;o de Cilindros, bytes, Kbytes e Mbytes para marcar
+o final da parti&ccedil;&atilde;o de disco (veja detalhes abaixo).
+<p><b>LEMBRE-SE</b>: Em um mesmo disco r&iacute;gido podem existir at&eacute;
+4 parti&ccedil;&otilde;es prim&aacute;rias (contando com
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+a parti&ccedil;&atilde;o Extendida).
+<p><b>Onde</b>:
+<br>&nbsp;&nbsp; <i>Partition number</i> : N&uacute;mero da parti&ccedil;&atilde;o
+que vai ser criada, como j&aacute; temos&nbsp; uma parti&ccedil;&atilde;o
+no
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+disco, digitamos o n&uacute;mero 2 para dizer ao fdisk que queremos criar
+uma
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+segunda parti&ccedil;&atilde;o prim&aacute;ria. Neste exemplo, voce acabou
+de criar a
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+parti&ccedil;&atilde;o /dev/hda2.
+<br>&nbsp;&nbsp;&nbsp;<i> First cylinder</i>&nbsp; : Primeiro cilindro
+dispon&iacute;vel ap&oacute;s o &uacute;ltimo cilindro usado pela parti&ccedil;&atilde;o
+1. Neste
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+caso usamos o cilindro 118 at&eacute; o cilindro final(Last Cylinder).
+O valor deve ser
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+digitado em cilindros.
+<br><i>&nbsp;&nbsp;&nbsp; Last cylinder or +size or +sizeK or +sizeM</i>
+: Aqui voce pode especificar o final da parti&ccedil;&atilde;o de
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+disco.
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Os seguintes valores podem ser usados para marcar o&nbsp; final da parti&ccedil;&atilde;o
+de
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+disco:
+<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+597&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+- &Eacute; o valor equivalente a parti&ccedil;&atilde;o de 820MB&nbsp;
+(em cilindros)
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++820000000&nbsp; - &Eacute; o valor equivalente a parti&ccedil;&atilde;o
+de&nbsp; 820MB (em bytes)
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++820000K&nbsp;&nbsp;&nbsp;&nbsp; - &Eacute; o valor equivalente a parti&ccedil;&atilde;o
+de 820MB (em Kbytes)
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
++820M&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - &Eacute;
+o valor equivalente a parti&ccedil;&atilde;o de 820MB (em Mbytes)
+<p>&nbsp;&nbsp;&nbsp; Recomendo que especifique o valor em <i>MB</i> ou
+<i>KB</i>
+por n&atilde;o exigir o c&aacute;lculo do espa&ccedil;o do disco usado
+em cada cilindro, e por ser um dos mais utilizados e mais pr&aacute;ticos.
+Especificando o valor em <i>bytes, Kbytes</i> ou <i>Mbytes</i>, o fdisk
+se encarregar&aacute; de converter o tamanho digitado para um valor de
+cilindro final.
+<br>&nbsp;&nbsp;&nbsp; Se digitar um n&uacute;mero acima do espa&ccedil;o
+dispon&iacute;vel no disco(ou cilindro dipon&iacute;vel), ser&aacute; mostrada
+uma mensagem de erro dizendo que a parti&ccedil;&atilde;o n&atilde;o pode
+ser criada.
+<p><b>OBS</b>: Caso seja criada uma parti&ccedil;&atilde;o DOS FAT16, dever&aacute;
+ser utilizado o comando
+<br>&nbsp;&nbsp;&nbsp;&nbsp; <b>dd if=/dev/zero of=/dev/hdx1 bs=512 count=1</b>
+<br>&nbsp;&nbsp;&nbsp;&nbsp; para que a parti&ccedil;&atilde;o criada seja
+compat&iacute;vel com o formato utilizado pelo
+<br>&nbsp;&nbsp;&nbsp;&nbsp; DOS. Para maiores detalhes veja <a href="#1.7">Observa&ccedil;&otilde;es
+sobre o formato DOS 6.XX</a>
+<br>&nbsp;
+<p>&nbsp;&nbsp;&nbsp; Para verificar as parti&ccedil;&otilde;es existentes
+no disco tecle &lt;p>
+<br>-----------------------------------------------------------------------------------------------------
+<br>Command (m for help): p
+<br>Disk /dev/hda: 16 heads, 21 sectors, 630 cylinders
+<br>Units = cylinders of 630*512 bytes
+<p>&nbsp;Device&nbsp;&nbsp;&nbsp; Boot&nbsp; Begin&nbsp; Start&nbsp; End&nbsp;&nbsp;
+Blocks&nbsp;&nbsp;&nbsp; Id&nbsp;&nbsp;&nbsp;&nbsp; System
+<br>/dev/hda1&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+1&nbsp;&nbsp;&nbsp; 117&nbsp;&nbsp; 204800&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+DOS 16-bits >=32M
+<br>/dev/hda2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 118&nbsp;&nbsp;&nbsp;
+118&nbsp;&nbsp; 597&nbsp;&nbsp; 839680&nbsp;&nbsp;&nbsp; 83&nbsp;&nbsp;&nbsp;&nbsp;
+Linux Native
+<p>Command (m for help):
+<br>-----------------------------------------------------------------------------------------------------
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<br>&nbsp;
+<center>
+<p><a NAME="3.3"></a><u><font size=+1>3.3-) Mudando o tipo de uma parti&ccedil;&atilde;o</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; O tipo da parti&ccedil;&atilde;o &eacute; a identifica&ccedil;&atilde;o
+de qual sistema de arquvios que ela pertence e na qual possuem caracter&iacute;sticas
+pr&oacute;prias e diferentes de outros sistemas de arquivos.
+<br>&nbsp;&nbsp;&nbsp; Tecle &lt;t> para trocar o tipo de parti&ccedil;&atilde;o
+usado no disco.
+<br>Pressione a tecla &lt;l> se desejar ver os tipos de parti&ccedil;&otilde;es
+compat&iacute;veis com o programa fdisk.
+<br>&nbsp;&nbsp;&nbsp;&nbsp; Veja o exemplo de como trocar o tipo da parti&ccedil;&atilde;o
+de Linux Native (<i>tipo 83</i>) para Linux Swap (<i>tipo 82</i>).
+<br>-----------------------------------------------------------------------------------------------------
+<br>&nbsp; Command (m for help): &lt;t>
+<br>&nbsp; Partition number (1-4): &lt;3>
+<br>&nbsp; Hex code (type L to list codes): &lt;82>
+<br>-----------------------------------------------------------------------------------------------------
+<br>&nbsp;&nbsp;&nbsp; Agora a parti&ccedil;&atilde;o em /dev/hda3 &eacute;
+do tipo Linux SWAP(tipo 82).
+<br>&nbsp;
+<p>Pressione a tecla &lt;p> para verificar a parti&ccedil;&atilde;o /dev/hda3:
+<br>-----------------------------------------------------------------------------------------------------
+<br>Command (m for help): p
+<br>Disk /dev/hda: 16 heads, 21 sectors, 630 cylinders
+<br>Units = cylinders of 630*512 bytes
+<p>&nbsp;Device&nbsp;&nbsp;&nbsp; Boot&nbsp; Begin&nbsp; Start&nbsp; End&nbsp;
+Blocks&nbsp;&nbsp;&nbsp; Id&nbsp;&nbsp;&nbsp;&nbsp; System
+<br>/dev/hda1&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+1&nbsp;&nbsp;&nbsp; 117&nbsp; 204800&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;
+DOS 16-bits >=32M
+<br>/dev/hda2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 118&nbsp;&nbsp;&nbsp;
+118&nbsp;&nbsp; 597&nbsp; 839680&nbsp;&nbsp;&nbsp; 83&nbsp;&nbsp;&nbsp;
+Linux Native
+<br>/dev/hda3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 598&nbsp;&nbsp;&nbsp;
+598&nbsp;&nbsp; 630&nbsp;&nbsp; 61440&nbsp;&nbsp;&nbsp; 83&nbsp;&nbsp;&nbsp;
+Linux SWAP
+<p>Command (m for help):
+<br>-----------------------------------------------------------------------------------------------------
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="3.4"></a><u><font size=+1>3.4-) Excluindo uma parti&ccedil;&atilde;o
+de Disco</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; Para excluir uma parti&ccedil;&atilde;o, pressione
+a tecla &lt;d>, ser&aacute; mostrada a seguinte tela:
+<br>----------------------------------------------------------------------------------------------------
+<br>Command (m for help):&lt;d>
+<br>Partition number(1-4): 3
+<p>Command(m for help):
+<br>----------------------------------------------------------------------------------------------------
+<br>&nbsp;&nbsp;&nbsp; Com o comando acima, a parti&ccedil;&atilde;o n&uacute;mero
+3 (SWAP) foi excluida,. O espa&ccedil;o ocupado pela parti&ccedil;&atilde;o
+3 &eacute; novamente liberado para que voce possa utilizar para criar outra
+(ou outras) parti&ccedil;&otilde;es de disco.
+<p><b>ATEN&Ccedil;&Atilde;O</b>: TENHA MUITO CUIDADE COM O DA OP&Ccedil;&Atilde;O
+&lt;D>(Delete) DO FDISK.
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Caso se tenha apagado acidentalmente alguma parti&ccedil;&atilde;o que
+cont&eacute;m dados, pressione
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+a tecla &lt;q> para sair do fdisk sem gravar o que fez. Neste caso, ser&aacute;
+necess&aacute;rio
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+refazer todo o particionamento do disco.&nbsp; N&atilde;o pressione a tecla
+&lt;w> se voce excluiu
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+alguma parti&ccedil;&atilde;o que utiliza, porque todo o que foi feito
+no fdisk ser&aacute; gravado,
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+inclusive a parti&ccedil;&atilde;o excluida acidentalmente, sem a possibilidade
+de recupera-la.
+<p>para verificar se a parti&ccedil;&atilde;o foi excluida pressionamos
+&lt;p>:
+<br>-----------------------------------------------------------------------------------------------------
+<br>Command (m for help): p
+<br>Disk /dev/hda: 16 heads, 21 sectors, 630 cylinders
+<br>Units = cylinders of 630*512 bytes
+<p>&nbsp;Device&nbsp;&nbsp;&nbsp; Boot Begin&nbsp; Start&nbsp; End&nbsp;
+Blocks&nbsp;&nbsp;&nbsp; Id&nbsp;&nbsp;&nbsp;&nbsp; System
+<br>/dev/hda1&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+1&nbsp;&nbsp;&nbsp; 117&nbsp; 204800&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;
+DOS 16-bits >=32M
+<br>/dev/hda2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 118&nbsp;&nbsp;&nbsp;
+118&nbsp;&nbsp; 597&nbsp; 839680&nbsp;&nbsp;&nbsp; 83&nbsp;&nbsp;&nbsp;
+Linux Native
+<br>Command (m for help):
+<br>----------------------------------------------------------------------------------------------------
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="3.5"></a><u><font size=+1>3.5-) Gravando parti&ccedil;&otilde;es
+alteradas para o disco</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp;&nbsp; Para gravar as altera&ccedil;&otilde;es feitas
+na(s) parti&ccedil;&otilde;es para o disco ap&oacute;s fazer o particionamento,
+pressione a tecla &lt;w>, esta op&ccedil;&atilde;o faz a saida do fdisk
+gravando todas as altera&ccedil;&otilde;es que fez durante o uso do programa
+fdisk(parti&ccedil;&otilde;es criadas, alteradas, excluidas).
+<br>&nbsp;&nbsp;&nbsp; Enquando voce trabalha no fdisk criando parti&ccedil;&otilde;es,
+modificando tamanhos, excluindo parti&ccedil;&otilde;es, nada do que faz
+&eacute; gravado para o disco automaticamente (por motivos de seguran&ccedil;a
+contra perda de alguma parti&ccedil;&atilde;o j&aacute; existente).
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="3.6"></a><u><font size=+1>3.6-) Abandonando o particionamento
+de disco sem gravar as altera&ccedil;&otilde;es</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; Para sair do fdisk sem gravar as altera&ccedil;&otilde;es
+para o disco pressione &lt;q>. Esta op&ccedil;&atilde;o de sair do fdisk
+sem gravar as altera&ccedil;&otilde;es(abandona o programa), &eacute; bastante
+&uacute;til caso tenha apagado acidentalmente uma parti&ccedil;&atilde;o
+que contenha arquivos e programas importantes armazenados nela.
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="3.7"></a><u><font size=+1>3.7-) Alternando entre parti&ccedil;&atilde;o
+inicializ&aacute;vel e n&atilde;o inicializ&aacute;vel</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp;&nbsp; Parti&ccedil;&atilde;o inicializ&aacute;vel
+&eacute; aquela em que o sistema pode dar a partida(boot) no computador.
+Pressione a tecla &lt;a> para alterar o tipo da parti&ccedil;&atilde;o
+entre inicializ&aacute;vel e n&atilde;o inicaliz&aacute;vel.
+<br><b>OBS</b>: O Linux pode iniciar mesmo que a parti&ccedil;&atilde;o
+que esta instalado esteja&nbsp; marcada como n&atilde;o
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inicializ&aacute;vel,
+utilizando um boot manager(gerenciador de inicializa&ccedil;&atilde;o)
+como o LILO(Linux
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Loader) ou o
+LoadLin no DOS.
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="3.8"></a><u><font size=+1>3.8-) Alterando a unidade de medida
+do tamanho ocupado pela parti&ccedil;&atilde;o</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; Para alterar de uma unidade de medida para outra,
+pressione a tecla &lt;u>. A unidade de medida da parti&ccedil;&atilde;o,
+&eacute; o valor com que ser&aacute; mostrado o tamanho que a parti&ccedil;&atilde;o
+ocupa no disco toda a vez que se pressiona a tecla &lt;p>, para mostrar
+as parti&ccedil;&otilde;es na tela, durante o particionamento de disco
+ou quando se utilizar a op&ccedil;&atilde;o -l na linha de comando, para
+listar as parti&ccedil;&otilde;es de disco.
+<p>As unidades de medida dispon&iacute;veis s&atilde;o:
+<br><i>Cilindros</i> : Este &eacute; o padr&atilde;o do sistema, corresponde
+ao local onde come&ccedil;a e
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+aonde termina a parti&ccedil;&atilde;o, em cilindros.
+<br><i>Setores</i>&nbsp;&nbsp; : corresponde ao local onde come&ccedil;a
+e aonde termina a parti&ccedil;&atilde;o, em
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Setores.
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<br>&nbsp;
+<center>
+<p><a NAME="4"></a><u><font size=+1>4-) Outros tipos de parti&ccedil;&otilde;es
+dispon&iacute;veis no fdisk(para refer&ecirc;ncia t&eacute;cnica)</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp; Abaixo, segue a listagem dos tipos de parti&ccedil;&otilde;es
+compat&iacute;veis com esta vers&atilde;o do fdisk, que pode servir de
+guia durante o processo de particionamento, e para que conhe&ccedil;a a
+compatibilidade deste programa com os diversos tipos de parti&ccedil;&otilde;es
+que suporte.
+<p><b>OBS1</b>: Recomendo que voce use o programa de particionamento que
+acompanha seu sistema
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+operacional para a cria&ccedil;&atilde;o de seu sistema de arquivos, por
+exemplo:
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+- Para criar uma parti&ccedil;&atilde;o DOS, utilize o Fdisk que acompanha
+o&nbsp; DOS.
+<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+- Para criar uma parti&ccedil;&atilde;o Linux, utilize o Fdisk que acompanha
+o Linux.
+<br>&nbsp;
+<p><b><u>Tipo</u>&nbsp;&nbsp;&nbsp;&nbsp; <u>Descri&ccedil;&atilde;o</u></b>
+<p>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vazio
+<br>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOS FAT 12
+<br>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Xenix root
+<br>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Xenix /usr
+<br>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOS 16-bits&lt;32MB
+<br>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Extendida DOS
+<br>6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOS 16-bits >=32MB
+<br>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OS/2 HPFS
+<br>8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AIX
+<br>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AIX inicializ&aacute;vel
+<br>a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OS/2 Boot Manager
+<br>40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Venix 80286
+<br>51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Novell
+<br>52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microport
+<br>63&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GNU hurd
+<br>64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Novell Netware 286
+<br>65&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Novell Netware 386
+<br>75&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PC/IX
+<br>80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OLD Minix
+<br>81&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Linux Minix
+<br>82&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Linux SWAP
+<br>83&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Linux Native
+<br>85&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Linux Extendida
+<br>93&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Amoeba
+<br>94&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Amoeba BBT
+<br>a5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BSD/386
+<br>a6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Open BSD
+<br>a7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NextStep
+<br>b7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BSDI File System
+<br>b8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BSDI Swap
+<br>c7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Syrinx
+<br>db&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CP/M
+<br>e1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOS access
+<br>e3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOS R/O
+<br>f2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dos Secund&aacute;ria
+<br>ff&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BBT
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="5"></a><u><font size=+1>5-) Direitos Autorais</font></u></center>
+
+<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Este documento foi desenvolvido
+com base em minha experi&ecirc;ncia e conhecimento em discos e parti&ccedil;&otilde;es,
+mediante pesquisa em alguns documentos como os How-TO do Linux e verificando
+as principais d&uacute;vidas de usu&aacute;rios durante a utiliza&ccedil;&atilde;o
+de particionadores de disco, tendo como objetivo levar o conhecimento sobre
+discos, parti&ccedil;&otilde;es e utiliza&ccedil;&atilde;o deste programa,
+atendendo tanto usu&aacute;rios iniciantes como avan&ccedil;ados e como
+contribui&ccedil;&atilde;o para a comunidade Linux em geral.
+<br>&nbsp;
+<br>&nbsp;
+<br>
+<br>
+<center>
+<p>Gleydson M. da Silva (<i>gleydson_s@yahoo.com</i> e <i>gleydson@linuxbr.com.br</i>)</center>
+
+<p>&nbsp;&nbsp;&nbsp; Qualquer d&uacute;vida, sugest&atilde;o ou reclama&ccedil;&atilde;o
+podem ser mandadas para um dos E-Mail's Acima. Conto com sua contribui&ccedil;&atilde;o
+para a melhoria deste Manual.
+<center>
+<p><b>&nbsp;&nbsp;&nbsp; Autorizo a reprodu&ccedil;&atilde;o Total ou parcial
+deste texto para que seja utilizado para fins educativos, autoaprendizado,
+coloca&ccedil;&atilde;o em Home pages e qualquer outra forma de distribui&ccedil;&atilde;o
+n&atilde;o comercial do documento desde que sejam mantidos os meus cr&eacute;ditos
+pela pesquisa e elabora&ccedil;&atilde;o deste documento de acordo com
+os termos da GNU (veja abaixo <a href="#6">Licen&ccedil;as e Garantias
+sobre este documento</a>).</b></center>
+&nbsp;
+<div align=right>
+<br><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<center><a NAME="6"></a><font size=+1>6- ) Licen&ccedil;as e garantias
+sobre este documento</font></center>
+
+<p><b>Fdisk-Portugues-HOWTO Copyright (C) 1999 Gleydson M. da Silva</b>
+<p>&nbsp;&nbsp;&nbsp; Este &eacute; um documento de livre distribui&ccedil;&atilde;o,
+que pode ser copiado e distribu&iacute;do sob os termos da Licen&ccedil;a
+P&uacute;blica Geral&nbsp; GNU, conforme publicada pela Free Software Foundation,
+vers&atilde;o 2 da licen&ccedil;a ou (a crit&eacute;rio do autor) qualquer
+vers&atilde;o posterior.
+<br><b>&nbsp;&nbsp; Este documento &eacute; distribu&iacute;do com a iten&ccedil;&atilde;o
+de ser &uacute;til ao seu utilizador, no entanto N&Atilde;O TEM NENHUMA
+GARANTIA,&nbsp; EXPL&Iacute;CITAS OU IMPL&Iacute;CITAS , COMERCIAIS OU
+DE ATENDIMENTO A UMA DETERMINADA FINALIDADE. Consulte a Licen&ccedil;a
+P&uacute;blica Geral&nbsp; GNU para maiores detalhes.</b>
+<p><i>gleydson_s@yahoo.com</i>
+<br><i>gleydson@linuxbr.com.br</i>
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<br>&nbsp;
+<center>
+<p><a NAME="7"></a><font size=+1>7- ) Marcas Registradas</font></center>
+
+<p>Os programas e refer&ecirc;ncias mencionados neste manual s&atilde;o
+de propriedade dos seus respectivos donos:
+<p>MS-DOS, Windows 3.1x, Windows 9x, Windows NT s&atilde;o de propriedade
+da Microsoft.
+<br>OS/2 e OS/2 Warp s&atilde;o de propriedade da IBM
+<div align=right><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+
+<center><a NAME="8"></a><font size=+1>8- ) Agradecimentos</font></center>
+
+<p>Agrade&ccedil;o a todas as pessoas que me mandam corre&ccedil;&otilde;es,
+coment&aacute;rios, cr&iacute;ticas, elogios, d&uacute;vidas sobre este
+documento, pois atrav&eacute;s destas mensagens, est&atilde;o contribuindo
+para a melhoria deste projeto e me icentivando em sua continua&ccedil;&atilde;o.&nbsp;
+<div align=right>
+<br><a href="#Indice">Volta ao &Iacute;ndice</a></div>
+&lt;EOF>
+</body>
+</html>
diff --git a/fdisk/doc/Fdisk-Portuguese.txt b/fdisk/doc/Fdisk-Portuguese.txt
new file mode 100644 (file)
index 0000000..fbf0dcf
--- /dev/null
@@ -0,0 +1,855 @@
+          Fdisk-Portuguese Copyright (C) 1999 Gleydson M. da Silva
+
+
+
+
+
+
+
+
+
+             Gleydson M. da Silva - gleydson@linuxbr.com.br
+                               Versão 1.3
+
+
+
+
+
+
+
+
+
+[ Índice ]
+
+1 - Introdução ao Fdisk
+  1.1 - O que é uma Partição de Disco
+  1.2 - A tabela de partição
+  1.3 - Introdução ao Particionamento de discos
+  1.4 - Identificações utilizadas neste documento
+  1.5 - Identificação de discos e partições no Linux
+  1.6 - Tipos de partições de disco
+  1.7-) Observações sobre o formato DOS 6.XX(FAT 16)
+
+2 - Iniciando o programa Fdisk
+  2.1 - Opções de Linha de comando
+  2.2 - Comandos do Fdisk
+
+3 - Manipulando partições no disco rígido
+  3.1 - Listando partições existentes no disco
+  3.2 - Criando partições de disco
+  3.3 - Mudando o tipo da partição
+  3.4 - Excluindo uma partição de disco
+  3.5 - Gravando partições alteradas para o disco
+  3.6 - Abandonando o programa sem gravar alterações para o disco
+  3.7 - Alternando entre partição inicializável/não inicializável
+  3.8 - Escolhendo a unidade  para mostrar o tamanho ocupado pela partição
+
+4 - Tipos de partições reconhecídas pelo Fdisk
+
+5 - Direitos Autorais
+
+6 - Licenças e Garantias sobre este documento
+
+7 - Marcas Registradas
+
+8 - Agradecimentos
+
+
+
+
+
+
+
+
+
+
+
+
+1-) Introdução ao Fdisk
+
+  Fdisk é um programa utilizado para fazer o particionamento de discos rígidos
+IDE e SCSI.
+  A versão do programa Fdisk descrita neste manual é a 2.8
+ATENÇÃO: ESTE MANUAL TEM COMO OBJETIVO A EXPLICAÇÃO DE FUNCIONAMENTO E 
+         UTILIZAÇÃO DO FDISK DO LINUX (NÃO O FDISK DO DOS), MESMO QUE 
+         SEJA UM USUÁRIO DO DOS, EU RECOMENDO QUE LEIA ESTE MANUAL
+         COMO UMA REFERÊNCIA TÉCNICA E PARA SEU APRENDIZADO.
+
+   Este documento é distribuído com a itenção de ser útil ao seu utilizador,
+no entanto NÃO TEM NENHUMA GARANTIA,  EXPLÍCITAS OU IMPLÍCITAS , COMERCIAIS
+OU DE ATENDIMENTO A UMA DETERMINADA FINALIDADE. Consulte a Licença Pública 
+Geral  GNU para maiores detalhes. 
+
+
+
+1.1-) Partição de Disco
+
+    Uma partição de disco é o local onde o sistema operacional armazena seu
+sistema de arquivos(arquivos, diretórios, FAT, boot sector, etc). 
+
+
+
+1.2-) Tabela de partição
+
+A Tabela de partição é o local do disco rígido onde se localizam os dados sobre
+todas as partições existentes no disco como o sistema de arquivos utilizado, se
+ela é inicializável, a cabeça inicial/final, setor inicial/final, cilindro
+inicial/final, número de setores ocupados por ela no disco.
+
+
+
+1.3-) Introdução ao particionamento de discos
+
+Particionar o disco rígido é dividir ele em partes para armazenamento 
+de arquivos e programas. As partições criadas no disco podem ter o tamanho 
+que desejar (desde que esteja dentro da capacidade máxima do disco rígido).
+
+Uma partição não interfere em outras partições do mesmo disco(é como 
+se tivessemos vários discos rígidos dentro de um).
+
+Em um disco rígido, pode ser criada uma partição única, que neste caso 
+todo o disco rígido é usado para armazenar os arquivos(que é o caso mais 
+comum caso voce tenha o DOS), ou várias partições, que podem ser usadas 
+pelo mesmo SO(Sistema Operacional) ou outros sistemas operacionais diferentes
+(um exemplo de várias partições, é se voce for usar o DOS e o Linux no mesmo
+disco, os dois sistemas vão estar no mesmo disco mas um não interfere no 
+outro).
+
+Este manual tem a itenção de explicar o particionamento de discos utilizando
+o programa fdisk (fdisk do Linux não do DOS!).
+
+
+
+1.4-) Algumas identificações utilizadas neste manual para facilitar a 
+      compreensão do texto
+
+Esta parte descreve algumas características de organização deste manual 
+e algumas identificações que adotei para facilitar o seu entendimento, e as
+explicações que serão dadas.
+
+Explicação de nomes e comandos, sera seguida da palavra "onde" e abaixo
+dela as explicações sobre os comandos, exemplo:
+
+onde:
+nome a ser explicado1  : Descrição 
+nome a ser explicado2  : Descrição 
+nome a ser explicado3  : Descrição 
+
+ou
+
+onde:
+nome a ser explicado1  - Descrição 
+nome a ser explicado2  - Descrição 
+nome a ser explicado3  - Descrição 
+
+
+Quando for feita alguma referência com tecla do teclado, por exemplo, 
+pressione p para listar as partições, a letra sera colocada entre <> para
+facilitar a interpretação:
+
+pressione <p> para listar as partições
+após isto pressione <Enter> para confirmar
+pressione <l> para listar os tipos de partições disponíveis
+
+
+As linhas pontilhadas que aparecem na tela, veja abaixo,
+----------------------------------------------------------------------------
+----------------------------------------------------------------------------
+servem para identificar que o que esta entre as linhas é um exemplo de como 
+será a resposta do comando para a tela de seu computador.
+
+
+
+1.5-) Identificação de discos e partições no Linux
+
+Antes de descrever como se utiliza o programa fdisk, é importante fazer 
+algumas explicações sobre a identificação das partições e unidades de disco 
+no sistema Linux( e outros *nix). Se voce for um usuário que já conhece
+a interpretação de discos e partições neste sistema, voce não precisará ler
+esta parte.
+
+No sistema operacional Linux, os dispositivos existentes no computador
+(como impressoras, unidades de disquetes, discos rígidos, monitor, placa de
+som, etc...) são identificados por um nome referente a este dispositivo e
+colocado no diretório /dev (que é utilizado para identificar dispositivos ou
+periféricos existentes no computador).
+
+A identificação dos discos rígidos segue a seguinte forma:
+
+  /dev/hda1
+  |    | ||
+  |    | ||_Número que identifica a partição do disco rígido(1=Primeira, 2=segunda)
+  |    | |
+  |    | |_Letra que identifica o disco rígido(a=primeiro disco, b=segundo disco, etc..)
+  |    |
+  |    |_Sigla HD - Significa que é um disco rígido IDE(Se tiver um SD significa SCSI)
+  |
+  |_ Identificação do diretório onde os dispositivos do sistema são armazenados
+
+OBS: As unidades de disco rígido SCSI, são identificadas com as letras SD 
+     seguida pela letra da unidade e número da partição e os discos IDE são
+     identificados por HD seguida pela letra da unidade de disco e o número
+     da partição do disco(como visto acima).
+
+Abaixo, algumas identificações de disco do sistema Linux:
+
+/dev/hda1    -   Disco rígido IDE primário principal - Primeira partição
+/dev/hda2    -   Disco rígido IDE primário principal - Segunda partição
+/dev/hda3    -   Disco rígido IDE primário principal - Terceira partição
+/dev/hdb1    -   Disco rígido IDE primário escravo - Primeira partição
+/dev/hdb2    -   Disco rígido IDE primário escravo - Segunda partição
+/dev/hdb3    -   Disco rígido IDE primário escravo - Terceira partição
+/dev/hdc1    -   Disco rígido IDE secundário principal - Primeira partição
+/dev/hdc2    -   Disco rígido IDE secundário principal - Segunda partição
+/dev/hdc3    -   Disco rígido IDE secundário principal - Terceira partição
+/dev/hdd1    -   Disco rígido IDE secundário escravo - Primeira partição
+/dev/hdd2    -   Disco rígido IDE secundário escravo - Segunda partição
+/dev/hdd3    -   Disco rígido IDE secundário escravo - Terceira partição
+/dev/sda1    -   Primeiro disco rígido SCSI - Primeira partição
+/dev/sda2    -   Primeiro disco rígido SCSI - Segunda partição
+/dev/sda3    -   Primeiro disco rígido SCSI - Terceira partição
+/dev/sdb1    -   Segundo disco rígido SCSI - Primeira partição
+/dev/sdb2    -   Segundo disco rígido SCSI - Segunda partição
+/dev/sdb3    -   Segundo disco rígido SCSI - Terceira partição
+
+No exemplo acima foram usadas 3 partições por disco, mas podem existir 
+mais partições no mesmo disco, um exemplo é se o disco rígido possuir 
+partições Lógicas, que são identificadas no sistemas a partir de /dev/hdx5
+em diante.
+
+Abaixo um exemplo de como o Linux identifica as partições em cada disco 
+existente em seu computador:
+
+Vamos supor que eu tenha 2 discos rígidos: 
+o 1ºdisco de 2GB e o 2ºdisco  de 1GB(Giga Byte ou 1.000 Megas!) 
+
+No primeiro disco(de 2GB), a primeira partição é de 800MB do tipo 
+FAT16(DOS), a segunda partição é de 1.2GB do tipo EXT2(Linux)(1.2GB+800MB=2GB
+que é a capacidade total do disco). Então as partições seriam identificadas 
+da seguinte forma no Linux:
+
+/dev/hda - Disco rígido Primário Principal 
+/dev/hda1 - Primeira partição do primeiro disco rígido (de 800MB do tipo DOS)
+/dev/hda2 - Segunda partição do primeiro disco rígido( de 1.2GB do tipo Linux)
+
+Neste caso estariam disponíveis 800MB para serem usados com o DOS e 
+1.2GB para o Linux. 
+Por exemplo, se voce particionar um disco rígido em duas partes e usar 
+as duas partições no DOS, ele reconhecerá as partições como sendo C: e D:.
+
+Lembre-se: Quando um disco é particionado, uma partição não interfere 
+           nas outras, repare que quando voce particiona(divide) um disco,
+           é como se tivesse dois discos rígidos(o único cuidado que 
+           voce deve tomar é com as cópias de segurança, porque se der
+           um problema de parte eletrônica no disco rígido, por exemplo,
+           a sua placa controladora queimar ou o cabeçote dele ir pro 
+           espaço, voce perderá as suas 2 partições que estão armazenadas
+           nele.
+
+
+Voltando ao exemplo das classificações das partições do disco, vamos 
+para o segundo disco: 
+
+No segundo disco(1GB), eu tenho uma partição de 950MB do tipo FAT16(DOS),
+que costumo usar para armazenar arquivos temporários e cópias de segurança 
+de meu sistema, etc..., e outra de 50MB SWAP(Partição de memória virtual 
+como descrevi acima)(950MB+50MB=1GB). Então as partições deste disco seriam
+identificadas da seguinte forma no Linux: 
+
+/dev/hdb - Disco rígido principal escravo 
+/dev/hdb1 - Primeira partição do disco acima ( de 950MB do tipo DOS) 
+/dev/hdb2 - Segunda partição do disco acima ( de 50MB do tipo SWAP) 
+
+No disco acima, 950MB estão disponíveis para serem usados pelo DOS e 50 MB pela
+memória virtual (SWAP) do Linux. 
+
+Note que se voce utiliza o MS-DOS, não será possível ver as partições 
+do Linux e SWAP, porque são imcompatíveis com o formato aceito pelo DOS (ele 
+identificaria a primeira partição do primeiro disco(800MB) como a unidade C:
+e a primeira partição do segundo disco(950MB) como unidade D), mas o 
+contrário não acontece; O Linux tem total compatibilidade com a partição 
+DOS FAT12, FAT16, FAT32, OS/2 HPFS, e muitas outras.
+
+
+
+1.6-) Tipos de partições de discos
+
+As partições de disco são divididas em tres tipos: Primária, Extendida 
+e Lógica. 
+
+Pode se ter no máximo quatro partições primárias e extendidas no mesmo 
+disco. A partição Primária permite o armazenamento de arquivos e diretórios.
+Todos os computadores que possuem somente a unidade C(supondo que voce use o
+DOS), usam este tipo de partição para armazenamento de arquivos e inicialização
+do sistema operacional.
+
+Se for preciso criar mais que 4 partições no mesmo disco, será necessário
+criar uma partição Extendida. A partição Extendida  não pode ser utilizada
+para armazenar arquivos. Ela é usada para a criação de outras partições,
+dentro dela, que são chamadas de partições Lógicas. 
+
+Uma partição extendida podem conter várias partições Lógicas. As partições 
+Lógicas podem armazenar arquivos e diretórios(como as partições primárias).
+
+Um mesmo disco rígido pode armazenar mais de 64 partições independentes
+uma das outras.
+
+OBS: Os arquivos e diretórios podem ser armazenados somente em partições de 
+     disco primárias ou lógicas, a partição extendida não é usada para armazanamento
+     de arquivos e diretórios.
+
+Se possuir duas partições em seu computador (C: e D: no DOS), e não 
+estiver usando a partição D:, a instalação pode ser feita nesta partição 
+desde que ela tenha o espaço necessário para o sistema operacional Linux, 
+os programas que desejar instalar, mais a partição SWAP.
+
+
+
+1.7-) Observações sobre o formato DOS 6.XX(FAT 16)
+
+No formato DOS 6.XX(FAT16), o primeiro setor da área de dados da partição
+é utilizado frequentemente pelo DOS para armazenamento de dados sobre a
+partição de disco, e estes dados são usados pelo sistema para se ter maior
+confiabilidade do que os dados armazenados na tabela de partição. O sistema
+de arquivos DOS, faz o FDISK(do DOS) limpar os primeiros 512 bytes da área
+de dados da partição sempre que uma mudança de tamanho acontecer.
+
+O formatador do DOS(format) verifica este primeiro setor toda vez que
+a upção /U (que é utilizada para não salvar dados para se fazer a desformatação
+do disco) é utilizada.
+
+Isto é considerado uma FALHA no Format(do DOS) e no Fdisk(do DOS).
+A opção abaixo deve ser utilizada caso voce crie uma partição do DOS FAT16
+com o Fdisk, que faz com que os primeiros 512 bytes daquela partição
+sejam "limpos", para manter a compatibilidade com o DOS. Utilize esta opção
+dentro do Linux, após criar a partição com o Fdisk e reiniciar o seu 
+computador. Foi notado que esta opção só funciona corretamente somente quando
+o Sistema Linux estiver instalado em seu computador. Não me responsabilizo 
+caso utiliza-la a partir de um disquete de recuperação.
+
+dd if=/dev/zero of=/dev/hdx1 bs=512 count=1
+
+onde: 
+hdx1 - É a identificação da unidade de disco e a partição que foi criada
+       pelo Fdisk utilizando o sistema de arquivos DOS que terá seu 
+       primeiro setor "limpo".
+
+
+OBS1: Cuidado ao utilizar esta opção, um pequeno descuido pode resultar na
+     perda de dados do seu disco rígido ou outras partição.
+
+OBS2: Não utilize este comando com partições que utilizam o sistema de arquivos
+     FAT32(utilizada nos sistemas operacionais Windows 95 OSR/2 e superiores)
+     se for utilizada em um disco com este sistema, sua FAT será corrompida,
+     se isto acontecer, será necessária a re-formatação da partição.
+
+OBS3: É extremamente recomendado que se utilize o programa de particionamento
+     que acompanha o seu sistema operacional. Por exemplo, se deseja criar
+     uma partição DOS 6.XX, utilize o FDisk qua acompanha o DOS.
+
+
+
+2-) Iniciando o programa Fdisk
+
+Para iniciar o programa fdisk(Linux)digite: 
+fdisk [unidade]
+
+Onde:
+unidade - deve ser a unidade de disco rígido no padrão Linux( /dev/hda, 
+          /dev/hdb, /dev/sda, /dev/sdb, etc... ). Se voce tem apenas 1 
+          disco rígido IDE, use /dev/hda, para fazer o fdisk trabalhar 
+          com este disco. Se possuir 1 disco SCSI, use /dev/sda
+
+Se a unidade não for especificada, o programa fdisk usará /dev/hda como 
+unidade de disco padrão. 
+
+ATENÇÃO : A OPERAÇÃO DE PARTICIONAMENTO DE DISCOS PODE FAZER COM QUE OS DADOS
+          ARMAZENADOS EM SEU DISCO RÍGIDO SEJAM PERDIDOS, SE FOR USADA 
+          INCORRETAMENTE. É SEMPRE RECOMENDADO RETIRAR UMA CÓPIA DE SEGURANÇA
+          DOS SEUS ARQUIVOS EXISTENTES NO MICRO ANTES DE SE EXECUTAR UM
+          PROGRAMA DESTE TIPO, A NÃO SER QUE TENHA CONFIANÇA NO QUE ESTA
+          FAZENDO E QUE ENTENDEU AS EXPLICAÇÕES SOBRE A IDENTIFICAÇÃO DE
+          DISCOS RÍGIDOS E SUAS PARTIÇÕES NO SISTEMA.
+
+
+
+2.1-) Opções de linha de comando
+
+Com a utilização de opções de linha de comando, voce pode fazer com que 
+o programa inicie de uma forma específica, ou personalizada.
+
+fdisk [-b] [-u] [unidade]   - Opções aceitas para o particionamento.
+fdisk [-l] [-b] [-u]        - Opções aceitas para listar as partições atuais.
+fdisk [-s] [unidade]        - Opção aceita para mostrar o Tamanho da partição
+fdisk [-v]                  - Versão do programa
+
+Onde: 
+-b  : Faz com que o fdisk mostre na tela a coluna BEGIN quando utilizar
+      a opção <p> durante o particionamento do disco ou com a opção -l
+      quando se for listar as partições na linha de comando.
+      OBS: Esta opção é geralmente desnecessária, porque seu valor equivale
+           ao valor da coluna START.
+-u  : Muda a unidade de medida padrão para Setores. Se esta opção for usada 
+      na linha de comando para se fazer o particionamento de disco, após
+      pressionar <p>, o programa mostrará na tela o inicio e o fim da 
+      partição em Setores ao invés de utilizar cilindros para a listagem. 
+      Se for utilizada em conjunto com a opção -l, a unidade de medida do 
+      Inicio e Fim da partição será listada Setores ao invés de cilindros.
+-l  : Lista as partições existentes no disco, sem entrar no programa
+      fdisk, ou alterar qualquer partição. Esta opção é equivalente a
+      entrar no programa fdisk e pressionar <p>, mas ela somente lista
+      as partições sem entrar no programa.
+-s  : Mostra o tamanho de uma partição de disco. A única diferença desta
+      para as outras opções, é que se deve especificar a unidade mais a
+      partição que deseja ver o tamanho, por exemplo, digitando-se:
+      fdisk -s /dev/hda1
+      voce visualizará o tamanho total da partição de disco hda1.
+-v  : Mostra a versão do programa fdisk que esta utilizando.
+      
+   
+
+2.2-) Comandos do fdisk. 
+
+O fdisk do Linux manipula as partições de seu disco através de comandos
+digitados no teclado. Cada letra digitada corresponde a um comando diferente
+no fdisk. Estes comandos serão utilizados após iniciar o programa.
+
+Aqui vai a lista de comandos disponíveis no fdisk, recomendo que anote
+em um papel, ou imprima esta parte do texto( ou todo o documento) para que 
+possa consultar estas opções durante o particionamento do seu disco rígido.
+
+a   - Seleciona entre partição inicializável e não inicializável.
+b   - Edita um volume de disco BSD(não usada em computadores com DOS)
+d   - Apaga uma tabela de partição (Delete) 
+l   - Lista os tipos de partições disponíveis (List) 
+m   - Ajuda
+n   - Cria uma nova tabela de partição (New)
+p   - Mostra a tabela de partição atual (Print) 
+q   - sai do fdisk sem gravar as alterações no disco (quit)
+t   - Muda o tipo da partição (Type)
+u   - Altera as unidades de medidas que são mostradas na tela 
+v   - Verifica a tabela de partição (verify)
+w   - grava as alterações feitas para o disco e sai do fdisk (write)
+x   - Comandos especiais do programa(somente para usuários experientes)
+
+
+  
+3-) Manipulando partições no disco rígido
+
+Agora vamos começar realmente a trabalhar com o fdisk, os textos que 
+foram colocados acima, foi para que voce entendesse o que é o particionamento
+de um disco rígido e para que soubesse a diferença entre partição e um disco
+rígido,(já vi muitas pessoas falarem de partição como se fosse disco rígido...)
+
+Abaixo uma explicação passo-a-passo de como particionar um disco usando
+o fdisk e seus comandos. 
+
+ATENÇÃO: O disco rígido usado no particionamento é um exemplo. Ele não deve 
+         ser usado por voce para fazer o particionamento de seu disco, uma 
+         vez que a capacidade e outros parâmetros do disco rígido variam de 
+         um para o outro. Este exemplo serve apenas para que voce entenda 
+         como o fdisk funciona, o que faz cada um de seus comandos e a 
+         fazer o cálculo do tamanho das partições.
+
+A tradução das mensagens que aparecem em Ingles nos exemplos que vou colocar 
+logo abaixo, e a ajuda do programa, não foram feitas porque aparecem exatamente 
+como estão quando fizer o particionamento de seu disco, e não conheço 
+nenhuma versão do fdisk(Linux) em português (caso alguém conheça uma versão
+deste programa em português, favor entrar em contato comigo para que eu 
+possa atualizar este documento, meu endereço de E-mail esta no final do 
+documento). 
+Somente vou explicar o que significa cada mensagem que aparece no fdisk 
+através de uma comparação. 
+
+No exemplo eu vou usar um disco de 1.08GB. Este disco possui 630 cilindros,
+16 cabeças, e 21 setores por trilha(modo LBA). 
+
+
+
+3.1-) Listando partições existentes no disco
+
+Primeiro digite fdisk /dev/hda (supondo que este disco seja o principal),
+se a unidade de disco não for digitada, o fdisk usará /dev/hda como padrão.
+Após voce digitar este comando, o fdisk procura por partições existentes,
+seus tamanhos e outras características(geometria do disco) que serão 
+utilizadas para se fazer o cálculo de partições.
+
+Quando entrar no programa, digite a letra <p> para que o programa mostre
+as tabelas de partição existentes no disco rígido. 
+
+A tela que aparece é a seguinte: 
+
+---------------------------------------------------------------------------- 
+Command (m for help): p 
+Disk /dev/hda: 16 heads, 21 sectors, 630 cylinders 
+Units = cylinders of 630*512 bytes 
+
+ Device      Boot    Begin    Start    End   Blocks   Id   System 
+ /dev/hda1    *        1        1      117   204800    6   DOS 16-bits >=32M 
+
+Command (m for help): 
+----------------------------------------------------------------------------- 
+
+
+Abaixo uma tradução desta tela: 
+---------------------------------------------------------------------------- 
+Commando (m para ajuda): <p> 
+Disco /dev/hda: 16 cabeças, 21 setores, 630 cilindros 
+Unidades = cilindros de 630*512 bytes 
+
+Dispositivo  Partida  Começa  Inicio   Fim  Blocos  Identif.  Sistema 
+/dev/hda1      *        1       1      117  204800     6      DOS 16-bits >=32M 
+
+Comando (m para ajuda): 
+---------------------------------------------------------------------------- 
+
+Onde: 
+Device : É a identificação da partição de disco. 
+Boot   : Se estiver com "*", se a partição pode ser usada para BOOT.
+Begin  : Cilindro inicial da partição de disco 
+Start  : Cilindro inicial da partição de disco 
+End    : Cilindro Final da partição do disco 
+Blocks : Quantidade de blocos ocupados pela partição de disco. No Linux, um 
+         Bloco equivale a 1024 bytes(1KB) 
+ID     : Tipo da partição (conforme a lista de partições existentes quando é 
+         pressionada a letra <L>. 
+System : Descrição do sistema de arquivos que é usado na partição de disco. 
+
+Como vemos acima, o disco rígido possui uma partição do tipo DOS- FAT16
+ocupando 200MB de espaço em disco (200000 Blocos multiplicados por 1024). 
+
+
+
+3.2-) Criando uma partição de Disco
+
+Para criar uma partição de disco, pressionamos a letra <n>. Neste 
+exemplo vamos criar uma partição do tipo Linux EXT2(Nativa) com o tamanho de
+820MB, esta partição é a que conterá todo o sistema de arquivos Linux e seus 
+programas, veja o exemplo: 
+
+---------------------------------------------------------------------------- 
+Command ( m for help): <n> 
+    e  extended 
+    p  primary partition (1-4) 
+<p> 
+Partition number (1-4): <2> 
+First cylinder(118-630): <118> 
+Last cylinder or +size or +sizeK or +sizeM (118-630): <+820M> 
+---------------------------------------------------------------------------- 
+O fdisk perguntará se deseja criar uma partição extendida ou primária. 
+Crie uma partição primária para o sistema de arquivos do Linux, ou uma 
+partição extendida caso voce ja tenha 3 partições primárias criadas em seu 
+disco, conforme foi visto acima.
+
+Como pode ter notado no exemplo acima, como já existia a partição 1,
+digitamos o número 2 para que fosse criada uma segunda partição, se
+a partição número 2 já existisse, seria digitado o número 3 para criar
+uma terceira partição, assim por diante.
+
+Após escolher o tipo de partição que será criada, voce deverá especificar
+o cilindro inicial da partição de disco. No exemplo acima, o valor do cilindro
+inicial é de 118. Utilize sempre o valor do cilindro inicial sugerido pelo 
+fdisk, a não ser que se queira deixar um espaço entre uma partição antiga e 
+a nova partição para a criação de uma partição menor ou por outros motivos.
+
+O último passo é especificar onde terminará a partição de disco. É 
+permitida a utilização de Cilindros, bytes, Kbytes e Mbytes para marcar o
+final da partição de disco (veja detalhes abaixo).
+
+LEMBRE-SE: Em um mesmo disco rígido podem existir até 4 partições primárias 
+           (contando com a partição Extendida).
+
+onde:
+   Partition number : Número da partição que vai ser criada, como já temos 
+                      uma partição no disco, digitamos o número 2 para 
+                      dizer ao fdisk que queremos criar uma segunda partição
+                      primária. Neste exemplo, voce acabou de criar a 
+                      partição /dev/hda2. 
+    First cylinder  : Primeiro cilindro disponível após o último cilindro 
+                      usado pela partição 1. Neste caso usamos o cilindro 
+                      118 até o cilindro final(Last Cylinder). O valor
+                      deve ser digitado em cilindros.
+    Last cylinder or +size or +sizeK or +sizeM : Aqui voce pode especificar 
+                      o final da partição de disco. 
+                      Os seguintes valores podem ser usados para marcar o
+                      final da partição de disco:
+
+                      597         - É o valor equivalente a partição de 820MB 
+                                    (em cilindros) 
+                      +820000000  - É o valor equivalente a partição de 
+                                    820MB (em bytes) 
+                      +820000K    - É o valor equivalente a partição de 
+                                    820MB (em Kbytes) 
+                      +820M       - É o valor equivalente a partição de 
+                                    820MB (em Mbytes) 
+
+Recomendo que especifique o valor em MB ou KB por não exigir o 
+cálculo do espaço do disco usado em cada cilindro, e por ser um dos mais 
+utilizados e mais práticos. Especificando o valor em bytes, Kbytes ou 
+Mbytes, o fdisk se encarregará de converter o tamanho digitado para
+um valor de cilindro final. 
+
+Se digitar um número acima do espaço disponível no disco(ou cilindro
+diponível), será mostrada uma mensagem de erro dizendo que a partição não
+pode ser criada.
+
+OBS: Caso seja criada uma partição DOS FAT16, deverá ser utilizado o comando
+     dd if=/dev/zero of=/dev/hdx1 bs=512 count=1
+     para que a partição criada seja compatível com o formato utilizado pelo
+     DOS. Para maiores detalhes veja Observações sobre o formato DOS 6.XX
+  
+
+    Para verificar as partições existentes no disco tecle <p> 
+---------------------------------------------------------------------------- 
+Command (m for help): p 
+Disk /dev/hda: 16 heads, 21 sectors, 630 cylinders 
+Units = cylinders of 630*512 bytes 
+
+ Device    Boot  Begin  Start  End   Blocks    Id     System 
+/dev/hda1   *      1      1    117   204800     6     DOS 16-bits >=32M 
+/dev/hda2         118    118   597   839680    83     Linux Native 
+
+Command (m for help): 
+---------------------------------------------------------------------------- 
+   
+
+
+
+3.3-) Mudando o tipo de uma partição
+
+O tipo da partição é a identificação de qual sistema de arquvios que ela
+pertence e na qual possuem características próprias e diferentes de outros
+sistemas de arquivos.
+
+Tecle <t> para trocar o tipo de partição usado no disco. 
+Pressione a tecla <l> se desejar ver os tipos de partições compatíveis
+com o programa fdisk. 
+
+Veja o exemplo de como trocar o tipo da partição de Linux Native (tipo 
+83) para Linux Swap (tipo 82):
+
+---------------------------------------------------------------------------- 
+  Command (m for help): <t> 
+  Partition number (1-4): <3> 
+  Hex code (type L to list codes): <82> 
+---------------------------------------------------------------------------- 
+    Agora a partição em /dev/hda3 é do tipo Linux SWAP(tipo 82). 
+
+
+Pressione a tecla <p> para verificar a partição /dev/hda3: 
+---------------------------------------------------------------------------- 
+Command (m for help): p 
+Disk /dev/hda: 16 heads, 21 sectors, 630 cylinders 
+Units = cylinders of 630*512 bytes 
+
+ Device    Boot  Begin  Start  End  Blocks    Id     System 
+/dev/hda1   *      1      1    117  204800     6    DOS 16-bits >=32M 
+/dev/hda2         118    118   597  839680    83    Linux Native 
+/dev/hda3         598    598   630   61440    83    Linux SWAP 
+Command (m for help): 
+---------------------------------------------------------------------------- 
+
+
+
+3.4-) Excluindo uma partição de Disco
+
+Para excluir uma partição, pressione a tecla <d>, será mostrada a seguinte 
+tela: 
+
+---------------------------------------------------------------------------- 
+Command (m for help):<d> 
+Partition number(1-4): 3 
+
+Command(m for help): 
+---------------------------------------------------------------------------- 
+
+Com o comando acima, a partição número 3 (SWAP) foi excluida,. O espaço
+ocupado pela partição 3 é novamente liberado para que voce possa utilizar
+para criar outra (ou outras) partições de disco. 
+
+ATENÇÃO: TENHA MUITO CUIDADE COM O DA OPÇÃO <D>(Delete) DO FDISK. Caso se 
+         tenha apagado acidentalmente alguma partição que contém dados, 
+         pressione a tecla <q> para sair do fdisk sem gravar o que fez.
+         Neste caso, será necessário refazer todo o particionamento do disco.
+         Não pressione a tecla <w> se voce excluiu alguma partição que 
+         utiliza, porque todo o que foi feito no fdisk será gravado, inclusive
+         a partição excluida acidentalmente, sem a possibilidade de
+         recupera-la. 
+
+para verificar se a partição foi excluida pressionamos <p>: 
+---------------------------------------------------------------------------- 
+Command (m for help): p 
+Disk /dev/hda: 16 heads, 21 sectors, 630 cylinders 
+Units = cylinders of 630*512 bytes 
+
+ Device    Boot Begin  Start  End  Blocks    Id     System 
+/dev/hda1   *     1      1    117  204800     6     DOS 16-bits >=32M 
+/dev/hda2        118    118   597  839680    83    Linux Native 
+Command (m for help): 
+---------------------------------------------------------------------------- 
+
+
+
+3.5-) Gravando partições alteradas para o disco
+
+Para gravar as alterações feitas na(s) partições para o disco após 
+fazer o particionamento, pressione a tecla <w>, esta opção faz a saida do 
+fdisk gravando todas as alterações que fez durante o uso do programa
+fdisk(partições criadas, alteradas, excluidas).
+
+Enquando voce trabalha no fdisk criando partições, modificando tamanhos,
+excluindo partições, nada do que faz é gravado para o disco automaticamente
+(por motivos de segurança contra perda de alguma partição já existente).
+
+
+
+3.6-) Abandonando o particionamento de disco sem gravar as alterações
+
+Para sair do fdisk sem gravar as alterações para o disco pressione <q>. 
+Esta opção de sair do fdisk sem gravar as alterações(abandona o programa), 
+é bastante útil caso tenha apagado acidentalmente uma partição que contenha 
+arquivos e programas importantes armazenados nela.
+
+
+
+3.7-) Alternando entre partição inicializável e não inicializável
+
+Partição inicializável é aquela em que o sistema pode dar a partida(boot).
+Pressione a tecla <a> para alterar o tipo da partição entre inicializável
+e não inicalizável.
+
+OBS: O Linux pode iniciar mesmo que a partição que esta instalado esteja
+     marcada como não inicializável, utilizando um boot manager(gerenciador
+     de inicialização) como o LILO(Linux Loader) ou o LoadLin no DOS.
+
+
+
+3.8-) Alterando a unidade de medida do tamanho ocupado pela partição
+
+Para alterar de uma unidade de medida para outra, pressione a tecla <u>.
+A unidade de medida da partição, é o tipo de valor que mostrará o tamanho
+que a partição ocupa no disco toda a vez que se pressiona a tecla <p>, para 
+mostrar as partições na tela, durante o particionamento de disco ou quando 
+se utilizar a opção -l na linha de comando, para listar as partições de 
+disco.
+
+As unidades de medida disponíveis são:
+Cilindros : Este é o padrão do sistema, corresponde ao local onde começa e
+            aonde termina a partição, em cilindros.
+Setores   : corresponde ao local onde começa e aonde termina a partição, em
+            setores.
+
+
+
+
+4-) Outros tipos de partições disponíveis no fdisk(para referência técnica)
+
+Abaixo, segue a listagem dos tipos de partições compatíveis com esta versão
+do fdisk, que pode servir de guia durante o processo de particionamento, e 
+para que conheça a compatibilidade deste programa com os diversos tipos
+de partições que suporte.
+
+OBS1: Recomendo que voce use o programa de particionamento específico de
+      seu sistema operacional, por exemplo: 
+      Para criar uma partição DOS, utilize o Fdisk do dos.
+      Para criar uma partição Linux, utilize o Fdisk dele.
+
+
+Tipo     Descrição
+
+0         Vazio
+1 DOS FAT 12
+2 Xenix root
+3 Xenix /usr
+4 DOS 16-bits<32MB
+5 Extendida DOS
+6 DOS 16-bits >=32MB
+7 OS/2 HPFS
+8 AIX
+9 AIX inicializável
+a OS/2 Boot Manager
+40 Venix 80286
+51 Novell
+52 Microport
+63 GNU hurd
+64 Novell Netware 286
+65 Novell Netware 386
+75 PC/IX
+80 OLD Minix
+81 Linux Minix
+82 Linux SWAP
+83 Linux Native
+85 Linux Extendida
+93 Amoeba
+94 Amoeba BBT
+a5 BSD/386
+a6 Open BSD
+a7 NextStep
+b7 BSDI File System
+b8 BSDI Swap
+c7 Syrinx
+db CP/M
+e1 DOS access
+e3 DOS R/O
+f2 Dos Secundária
+ff BBT
+
+
+
+5-) Direitos Autorais
+
+Este documento foi desenvolvido com base em minha experiência e conhecimento
+em discos e partições, mediante pesquisa em alguns documentos como os How-TO's
+do Linux, e verificando as principais dúvidas de usuários durante a utilização
+de particionadores de disco, tendo como objetivo levar o conhecimento sobre
+discos, partições e utilização deste programa, atendendo tanto usuários
+iniciantes como avançados e como contribuição para a comunidade Linux em geral.
+
+Gleydson M. da Silva (gleydson_s@yahoo.com e gleydson@linuxbr.com.br)
+
+Qualquer dúvida, sugestão ou reclamação podem ser mandadas para um dos E-Mail's
+Acima. Conto com sua contribuição para a melhoria deste Manual.
+
+Autorizo a reprodução Total ou parcial deste texto para que seja utilizado para
+fins educativos, autoaprendizado, colocação em Home pages e qualquer outra forma
+de distribuição não comercial do documento desde que sejam mantidos os meus
+créditos pela pesquisa e elaboração deste documento de acordo com os termos da
+GNU (veja baixo Licenças e Garantias sobre este documento).
+
+
+6- ) Licenças e garantias sobre este documento
+
+Fdisk-Portuguese Copyright (C) 1999 Gleydson M. da Silva
+Este é um documento de livre distribuição, que pode ser copiado e 
+distribuído sob os termos da Licença Pública Geral  GNU, conforme publicada
+pela Free Software Foundation, versão 2 da licença ou (a critério do autor)
+qualquer versão posterior. 
+
+Este documento é distribuído com a itenção de ser útil ao seu utilizador,
+no entanto NÃO TEM NENHUMA GARANTIA,  EXPLÍCITAS OU IMPLÍCITAS , COMERCIAIS
+OU DE ATENDIMENTO A UMA DETERMINADA FINALIDADE. Consulte a Licença Pública 
+Geral  GNU para maiores detalhes. 
+
+gleydson_s@yahoo.com
+gleydson@linuxbr.com.br
+
+
+
+7- ) Marcas Registradas
+
+Os programas e referências mencionados neste manual são de propriedade dos
+seus respectivos donos:
+
+MS-DOS, Windows 3.1x, Windows 9x, Windows NT são de propriedade da Microsoft.
+OS/2 e OS/2 Warp são de propriedade da IBM
+
+
+8- Agradecimentos
+
+Agradeço a todas as pessoas que me mandam correções, comentários, críticas, 
+elogios, dúvidas sobre este documento, pois através destas mensagens, estão
+contribuindo para a melhoria deste projeto e me icentivando para sua continuação.
+
+<EOF> 
\ No newline at end of file
index 6307b98ec207acb29bdaa4424cbcc6bd3c93a6bd..e26baf1c58a7d191208f655f02da23420417cf06 100644 (file)
@@ -5,9 +5,9 @@
 .SH NAME
 fdisk \- Partition table manipulator for Linux
 .SH SYNOPSIS
-.BI "fdisk [\-u] [" device ]
+.BI "fdisk [\-u] " device
 .sp
-.BI "fdisk \-l [\-u] [" "device ..." ]
+.BI "fdisk \-l [\-u] " "device ..."
 .sp
 .BI "fdisk \-s " "partition ..."
 .sp
@@ -189,20 +189,6 @@ of cylinders.
 The
 .I size
 of the partition (in blocks) is printed on the standard output.
-This value is normally used as an argument to the
-.BR mkfs (8)
-program to specify the size of the partition which will be formatted.
-(Older versions of fdisk would do this only if the partition id is
-greater than 10, in an attempt to refuse DOS partitions;
-this test has been deleted.)
-Note that
-.B "sfdisk -s"
-gives different (namely, correct) answers.
-Reasons for the difference are that the kernel and
-.B fdisk
-need not have the same idea about partition numbering
-(e.g., in case you have BSD slices), and have different
-ideas about the size of an extended partition.
 .SH BUGS
 There are several *fdisk programs around.
 Each has its problems and strengths.
@@ -210,6 +196,20 @@ Try them in the order
 .BR cfdisk ,
 .BR fdisk ,
 .BR sfdisk .
+(Indeed,
+.B cfdisk
+is a beautiful program that has strict requirements on
+the partition tables it accepts, and produces high quality partition
+tables. Use it if you can. 
+.B fdisk
+is a buggy program that does fuzzy things - usually it happens to
+produce reasonable results. Its single advantage is that it has
+some support for BSD disk labels and other non-DOS partition tables.
+Avoid it if you can.
+.B sfdisk
+is for hackers only - the user interface is terrible, but it is
+more correct than fdisk and more powerful than both fdisk and cfdisk.
+Moreover, it can be used noninteractively.)
 .PP
 The IRIX/SGI type disklabel is currently not supported by the kernel.
 Moreover, IRIX/SGI header directories are not fully supported yet.
index 8cdc6df84482201e0f43c9779c1eb5fb07fff58d..8270d344f511cceae964066308f901c051bd5707 100644 (file)
  * Modified, Sat Oct  3 14:40:17 MET DST 1998, ANeuper@GUUG.de
  *     Support SGI's partitioning -- an, 980930.
  * Do the verify using LBA, not CHS, limits -- aeb, 981206.
+ * Corrected single-cylinder partition creating a little, now that
+ * ankry@mif.pg.gda.pl pointed out a bug; there are more bugs -- aeb, 990214.
+ * 
+ * Sat Mar 20 09:31:05 EST 1999 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ *     Internationalization
+ *
+ * Corrected deleting last logical partition -- aeb, 990430.
+ * Removed all assumptions on file names -- aeb, 990709
+ *   [modprobe gave ugly error messages, and the number of devices to probe
+ *    increased all the time: hda, sda, eda, rd/c0d0, ida/c0d0, ...
+ *    Also partition naming was very ugly.]
+ *
+ * Corrected a bug where creating an extended hda3, say, then a logical hda5
+ * that does not start at the beginning of hda3, then a logical hda6 that does
+ * start at the beginning of hda3 would wipe out the partition table describing
+ * hda5.  [Patch by Klaus G. Wagner" <kgw@suse.de>] -- aeb, 990711
  */
 
 
@@ -78,6 +94,8 @@
 #include <setjmp.h>
 #include <errno.h>
 #include <getopt.h>
+#include <locale.h>
+#include "nls.h"
 
 #include <sys/stat.h>
 #include <sys/ioctl.h>
 #include <linux/hdreg.h>       /* for HDIO_GETGEO */
 #include <linux/fs.h>          /* for BLKRRPART, BLKGETSIZE */
 
+#include "common.h"
 #include "fdisk.h"
 
 #include "fdisksunlabel.h"
 #include "fdiskaixlabel.h"
 
 #include "../version.h"
+#include "../defines.h"
+#ifdef HAVE_blkpg_h
+#include <linux/blkpg.h>
+#endif
 
 #define hex_val(c)     ({ \
                                char _c = (c); \
                        })
 
 
-#define DEFAULT_DEVICE "/dev/hda"
-#define ALTERNATE_DEVICE "/dev/sda"
 #define LINE_LENGTH    80
 #define offset(b, n)   ((struct partition *)((b) + 0x1be + \
                                (n) * sizeof(struct partition)))
@@ -175,7 +196,7 @@ get_nr_sects(struct partition *p) {
 /* normally O_RDWR, -l option gives O_RDONLY */
 static int type_open = O_RDWR;
 
-char   *disk_device = DEFAULT_DEVICE,  /* hda, unless specified */
+char   *disk_device,                   /* must be specified */
        *line_ptr,                      /* interactive input */
        line_buffer[LINE_LENGTH],
        changed[MAXIMUM_PARTS],         /* marks changed buffers */
@@ -195,8 +216,8 @@ uint        heads,
        cylinders,
        sector_size = DEFAULT_SECTOR_SIZE,
        sector_offset = 1,
-       display_factor = 1,             /* in units/sector */
-       unit_flag = 1,
+       units_per_sector = 1,
+       display_in_cyl_units = 1,
        extended_offset = 0,            /* offset of link pointers */
        offsets[MAXIMUM_PARTS] = {0, 0, 0, 0};
 
@@ -210,58 +231,6 @@ struct     partition *part_table[MAXIMUM_PARTS]    /* partitions */
        *ext_pointers[MAXIMUM_PARTS]            /* link pointers */
                = {NULL, NULL, NULL, NULL};
 
-struct systypes sys_types[] = {
-       {0x00, "Empty"},
-       {0x01, "DOS 12-bit FAT"},
-       {0x02, "XENIX root"},
-       {0x03, "XENIX usr"},
-       {0x04, "DOS 16-bit <32M"},
-       {0x05, "Extended"},
-       {0x06, "DOS 16-bit >=32M"},
-       {0x07, "OS/2 HPFS"},            /* or QNX? */
-       {0x08, "AIX"},
-       {0x09, "AIX bootable"},
-       {0x0a, "OS/2 Boot Manager"},
-       {0x0b, "Win95 FAT32"},
-       {0x0c, "Win95 FAT32 (LBA)"},
-       {0x0e, "Win95 FAT16 (LBA)"},
-       {0x0f, "Win95 Extended (LBA)"},
-       {0x11, "Hidden DOS FAT12"},
-       {0x14, "Hidden DOS FAT16"},
-       {0x16, "Hidden DOS FAT16 (big)"},
-       {0x17, "Hidden OS/2 HPFS or NTFS"},
-       {0x40, "Venix 80286"},
-       {0x41, "PPC PReP Boot"},
-       {0x51, "Novell?"},
-       {0x52, "Microport"},            /* or CPM? */
-       {0x63, "GNU HURD"},             /* or System V/386? */
-       {0x64, "Novell Netware 286"},
-       {0x65, "Novell Netware 386"},
-       {0x75, "PC/IX"},
-       {0x80, "Old MINIX"},            /* Minix 1.4a and earlier */
-
-       {LINUX_PARTITION, "Linux/MINIX"}, /* Minix 1.4b and later */
-       {LINUX_SWAP,      "Linux swap"},
-       {LINUX_NATIVE,    "Linux native"},
-       {LINUX_EXTENDED,  "Linux extended"},
-
-       {0x93, "Amoeba"},
-       {0x94, "Amoeba BBT"},           /* (bad block table) */
-       {0xa5, "BSD/386"},
-       {0xa6, "OpenBSD"},
-       {0xa7, "NEXTSTEP"},
-       {0xb7, "BSDI fs"},
-       {0xb8, "BSDI swap"},
-       {0xc7, "Syrinx"},
-       {0xdb, "CP/M"},                 /* or Concurrent DOS? */
-       {0xe1, "DOS access"},
-       {0xe3, "DOS R/O"},
-       {0xeb, "BeOS fs"},
-       {0xf2, "DOS secondary"},
-       {0xff, "BBT"},                  /* (bad track table) */
-       { 0, NULL }
-};
-
 jmp_buf listingbuf;
 
 void fatal(enum failure why)
@@ -275,39 +244,53 @@ void fatal(enum failure why)
        }
 
        switch (why) {
-               case usage: message =
-"Usage: fdisk [-b SSZ] [-u] [DISK]     Change partition table\n"
-"       fdisk -l [-b SSZ] [-u] [DISK]  List partition table(s)\n"
-"       fdisk -s PARTITION         Give partition size(s) in blocks\n"
-"       fdisk -v                   Give fdisk version\n"
+               case usage: message = _(
+"Usage: fdisk [-b SSZ] [-u] DISK     Change partition table\n"
+"       fdisk -l [-b SSZ] [-u] DISK  List partition table(s)\n"
+"       fdisk -s PARTITION           Give partition size(s) in blocks\n"
+"       fdisk -v                     Give fdisk version\n"
 "Here DISK is something like /dev/hdb or /dev/sda\n"
 "and PARTITION is something like /dev/hda7\n"
 "-u: give Start and End in sector (instead of cylinder) units\n"
-"-b 2048: (for certain MO drives) use 2048-byte sectors\n";
+"-b 2048: (for certain MO drives) use 2048-byte sectors\n");
+                       break;
+               case usage2:
+                 /* msg in cases where fdisk used to probe */
+                       message = _(
+"Usage: fdisk [-l] [-b SSZ] [-u] device\n"
+"E.g.: fdisk /dev/hda  (for the first IDE disk)\n"
+"  or: fdisk /dev/sdc  (for the third SCSI disk)\n"
+"  or: fdisk /dev/eda  (for the first PS/2 ESDI drive)\n"
+"  or: fdisk /dev/rd/c0d0  or: fdisk /dev/ida/c0d0  (for RAID devices)\n"
+"  ...\n");
                        break;
                case no_device:
-                       message = "A disk block device is needed.\n";
+                       message = _("A disk block device is needed.\n");
                        break;
                case no_partition:
-                       message = "Given name does not refer to a partition,\n"
-                                 "or maybe not even to a block device.\n";
+                       message =_("Given name does not refer to a partition,\n"
+                                 "or maybe not even to a block device.\n");
                        break;
                case unable_to_open:
-                       sprintf(error, "Unable to open %s\n", disk_device);
+                       sprintf(error, _("Unable to open %s\n"), disk_device);
                        break;
                case unable_to_read:
-                       sprintf(error, "Unable to read %s\n", disk_device);
+                       sprintf(error, _("Unable to read %s\n"), disk_device);
                        break;
                case unable_to_seek:
-                       sprintf(error, "Unable to seek on %s\n", disk_device);
+                       sprintf(error, _("Unable to seek on %s\n"),disk_device);
                        break;
                case unable_to_write:
-                       sprintf(error, "Unable to write %s\n", disk_device);
+                       sprintf(error, _("Unable to write %s\n"), disk_device);
+                       break;
+               case ioctl_error:
+                       sprintf(error, _("BLKGETSIZE ioctl failed on %s\n"),
+                               disk_device);
                        break;
                case out_of_memory:
-                       message = "Unable to allocate any more memory\n";
+                       message = _("Unable to allocate any more memory\n");
                        break;
-               default: message = "Fatal error\n";
+               default: message = _("Fatal error\n");
        }
 
        fputc('\n', stderr);
@@ -317,104 +300,107 @@ void fatal(enum failure why)
 
 void menu(void)
 {
-       if (sun_label)
-          puts("Command action\n"
-               "   a   toggle a read only flag\n"              /* sun */
-               "   b   edit bsd disklabel\n"
-               "   c   toggle the mountable flag\n"            /* sun */
-               "   d   delete a partition\n"
-               "   l   list known partition types\n"
-               "   m   print this menu\n"
-               "   n   add a new partition\n"
-               "   o   create a new empty DOS partition table\n"
-               "   p   print the partition table\n"
-               "   q   quit without saving changes\n"
-               "   s   create a new empty Sun disklabel\n"     /* sun */
-               "   t   change a partition's system id\n"
-               "   u   change display/entry units\n"
-               "   v   verify the partition table\n"
-               "   w   write table to disk and exit\n"
-               "   x   extra functionality (experts only)"
-          );
-       else if(sgi_label)
-          puts("Command action\n"
-               "   a   select bootable partition\n"    /* sgi flavour */
-               "   b   edit bootfile entry\n"          /* sgi */
-               "   c   select sgi swap partition\n"    /* sgi flavour */
-               "   d   delete a partition\n"
-               "   l   list known partition types\n"
-               "   m   print this menu\n"
-               "   n   add a new partition\n"
-               "   o   create a new empty DOS partition table\n"
-               "   p   print the partition table\n"
-               "   q   quit without saving changes\n"
-               "   t   change a partition's system id\n"
-               "   u   change display/entry units\n"
-               "   v   verify the partition table\n"
-               "   w   write table to disk and exit\n"
-          );
-       else if(aix_label)
-          puts("Command action\n"
-               "   m   print this menu\n"
-               "   o   create a new empty DOS partition table\n"
-               "   q   quit without saving changes\n"
-          );
-       else
-          puts("Command action\n"
-               "   a   toggle a bootable flag\n"
-               "   b   edit bsd disklabel\n"
-               "   c   toggle the dos compatibility flag\n"
-               "   d   delete a partition\n"
-               "   l   list known partition types\n"
-               "   m   print this menu\n"
-               "   n   add a new partition\n"
-               "   o   create a new empty DOS partition table\n"
-               "   p   print the partition table\n"
-               "   q   quit without saving changes\n"
-               "   t   change a partition's system id\n"
-               "   u   change display/entry units\n"
-               "   v   verify the partition table\n"
-               "   w   write table to disk and exit\n"
-               "   x   extra functionality (experts only)"
-          );
+       if (sun_label) {
+          puts(_("Command action"));
+          puts(_("   a   toggle a read only flag"));           /* sun */
+          puts(_("   b   edit bsd disklabel"));
+          puts(_("   c   toggle the mountable flag"));         /* sun */
+          puts(_("   d   delete a partition"));
+          puts(_("   l   list known partition types"));
+          puts(_("   m   print this menu"));
+          puts(_("   n   add a new partition"));
+          puts(_("   o   create a new empty DOS partition table"));
+          puts(_("   p   print the partition table"));
+          puts(_("   q   quit without saving changes"));
+          puts(_("   s   create a new empty Sun disklabel"));  /* sun */
+          puts(_("   t   change a partition's system id"));
+          puts(_("   u   change display/entry units"));
+          puts(_("   v   verify the partition table"));
+          puts(_("   w   write table to disk and exit"));
+          puts(_("   x   extra functionality (experts only)"));
+       }
+       else if(sgi_label) {
+          puts(_("Command action"));
+          puts(_("   a   select bootable partition"));    /* sgi flavour */
+          puts(_("   b   edit bootfile entry"));          /* sgi */
+          puts(_("   c   select sgi swap partition"));    /* sgi flavour */
+          puts(_("   d   delete a partition"));
+          puts(_("   l   list known partition types"));
+          puts(_("   m   print this menu"));
+          puts(_("   n   add a new partition"));
+          puts(_("   o   create a new empty DOS partition table"));
+          puts(_("   p   print the partition table"));
+          puts(_("   q   quit without saving changes"));
+          puts(_("   s   create a new empty Sun disklabel"));  /* sun */
+          puts(_("   t   change a partition's system id"));
+          puts(_("   u   change display/entry units"));
+          puts(_("   v   verify the partition table"));
+          puts(_("   w   write table to disk and exit"));
+       }
+       else if(aix_label) {
+          puts(_("Command action"));
+          puts(_("   m   print this menu"));
+          puts(_("   o   create a new empty DOS partition table"));
+          puts(_("   q   quit without saving changes"));
+          puts(_("   s   create a new empty Sun disklabel"));  /* sun */
+       }
+       else {
+          puts(_("Command action"));
+          puts(_("   a   toggle a bootable flag"));
+          puts(_("   b   edit bsd disklabel"));
+          puts(_("   c   toggle the dos compatibility flag"));
+          puts(_("   d   delete a partition"));
+          puts(_("   l   list known partition types"));
+          puts(_("   m   print this menu"));
+          puts(_("   n   add a new partition"));
+          puts(_("   o   create a new empty DOS partition table"));
+          puts(_("   p   print the partition table"));
+          puts(_("   q   quit without saving changes"));
+          puts(_("   s   create a new empty Sun disklabel"));  /* sun */
+          puts(_("   t   change a partition's system id"));
+          puts(_("   u   change display/entry units"));
+          puts(_("   v   verify the partition table"));
+          puts(_("   w   write table to disk and exit"));
+          puts(_("   x   extra functionality (experts only)"));
+       }
 }
 
 void xmenu(void)
 {
-       if (sun_label)
-          puts("Command action\n"
-               "   a   change number of alternate cylinders\n" /* sun */
-               "   c   change number of cylinders\n"
-               "   d   print the raw data in the partition table\n"
-               "   e   change number of extra sectors per cylinder\n" /*sun*/
-               "   h   change number of heads\n"
-               "   i   change interleave factor\n"             /* sun */
-               "   o   change rotation speed (rpm)\n"          /* sun */
-               "   m   print this menu\n"
-               "   p   print the partition table\n"
-               "   q   quit without saving changes\n"
-               "   r   return to main menu\n"
-               "   s   change number of sectors\n"
-               "   v   verify the partition table\n"
-               "   w   write table to disk and exit\n"
-               "   y   change number of physical cylinders"    /* sun */
-          );
-       else
-          puts("Command action\n"
-               "   b   move beginning of data in a partition\n" /* !sun */
-               "   c   change number of cylinders\n"
-               "   d   print the raw data in the partition table\n"
-               "   e   list extended partitions\n"             /* !sun */
-               "   g   create an IRIX partition table\n"       /* sgi */
-               "   h   change number of heads\n"
-               "   m   print this menu\n"
-               "   p   print the partition table\n"
-               "   q   quit without saving changes\n"
-               "   r   return to main menu\n"
-               "   s   change number of sectors\n"
-               "   v   verify the partition table\n"
-               "   w   write table to disk and exit"
-          );
+       if (sun_label) {
+          puts(_("Command action"));
+          puts(_("   a   change number of alternate cylinders"));       /*sun*/
+          puts(_("   c   change number of cylinders"));
+          puts(_("   d   print the raw data in the partition table"));
+          puts(_("   e   change number of extra sectors per cylinder"));/*sun*/
+          puts(_("   h   change number of heads"));
+          puts(_("   i   change interleave factor"));                  /*sun*/
+          puts(_("   o   change rotation speed (rpm)"));               /*sun*/
+          puts(_("   m   print this menu"));
+          puts(_("   p   print the partition table"));
+          puts(_("   q   quit without saving changes"));
+          puts(_("   r   return to main menu"));
+          puts(_("   s   change number of sectors/track"));
+          puts(_("   v   verify the partition table"));
+          puts(_("   w   write table to disk and exit"));
+          puts(_("   y   change number of physical cylinders"));       /*sun*/
+       }
+       else {
+          puts(_("Command action"));
+          puts(_("   b   move beginning of data in a partition")); /* !sun */
+          puts(_("   c   change number of cylinders"));
+          puts(_("   d   print the raw data in the partition table"));
+          puts(_("   e   list extended partitions"));          /* !sun */
+          puts(_("   g   create an IRIX partition table"));    /* sgi */
+          puts(_("   h   change number of heads"));
+          puts(_("   m   print this menu"));
+          puts(_("   p   print the partition table"));
+          puts(_("   q   quit without saving changes"));
+          puts(_("   r   return to main menu"));
+          puts(_("   s   change number of sectors/track"));
+          puts(_("   v   verify the partition table"));
+          puts(_("   w   write table to disk and exit"));
+        }
 }
 
 int
@@ -428,7 +414,7 @@ struct systypes *
 get_sys_types(void) {
        return (
                sun_label ? sun_sys_types :
-               sgi_label ? sgi_sys_types : sys_types);
+               sgi_label ? sgi_sys_types : i386_sys_types);
 }
 
 char *partition_type(unsigned char type)
@@ -437,8 +423,8 @@ char *partition_type(unsigned char type)
        struct systypes *types = get_sys_types();
 
        for (i=0; types[i].name; i++)
-               if (types[i].index == type)
-                       return types[i].name;
+               if (types[i].type == type)
+                       return _(types[i].name);
 
        return NULL;
 }
@@ -457,7 +443,7 @@ void list_types(struct systypes *sys)
 
        do {
                printf("%c%2x  %-15.15s", i ? ' ' : '\n',
-                       sys[next].index, sys[next].name);
+                       sys[next].type, _(sys[next].name));
                next = last[i++] + done;
                if (i > 3 || next >= last[i]) {
                        i = 0;
@@ -501,7 +487,7 @@ int test_c(char **m, char *mesg)
 {
        int val = 0;
        if (!*m)
-               fprintf(stderr, "You must set");
+               fprintf(stderr, _("You must set"));
        else {
                fprintf(stderr, " %s", *m);
                val = 1;
@@ -515,16 +501,16 @@ int warn_geometry(void)
        char *m = NULL;
        int prev = 0;
        if (!heads)
-               prev = test_c(&m, "heads");
+               prev = test_c(&m, _("heads"));
        if (!sectors)
-               prev = test_c(&m, "sectors");
+               prev = test_c(&m, _("sectors"));
        if (!cylinders)
-               prev = test_c(&m, "cylinders");
+               prev = test_c(&m, _("cylinders"));
        if (!m)
                return 0;
        fprintf(stderr,
-               "%s%s.\nYou can do this from the extra functions menu.\n",
-               prev ? " and " : " ", m);
+               _("%s%s.\nYou can do this from the extra functions menu.\n"),
+               prev ? _(" and ") : " ", m);
        return 1;
 }
 
@@ -532,10 +518,10 @@ void update_units(void)
 {
        int cyl_units = heads * sectors;
 
-       if (unit_flag && cyl_units)
-               display_factor = cyl_units;
+       if (display_in_cyl_units && cyl_units)
+               units_per_sector = cyl_units;
        else
-               display_factor = 1;     /* in sectors */
+               units_per_sector = 1;   /* in sectors */
 }
 
 void warn_cylinders(void)
@@ -558,11 +544,14 @@ void read_extended(struct partition *p)
 
        ext_pointers[ext_index] = part_table[ext_index];
        if (!get_start_sect(p))
-               fprintf(stderr, "Bad offset in primary extended partition\n");
+               fprintf(stderr, _("Bad offset in primary extended partition\n"));
        else while (IS_EXTENDED (p->sys_ind)) {
                if (partitions >= MAXIMUM_PARTS) {
+                       /* This is not a Linux restriction, but
+                          this program uses arrays of size MAXIMUM_PARTS.
+                          Do not try to `improve' this test. */
                        fprintf(stderr,
-                               "Warning: deleting partitions after %d\n",
+                               _("Warning: deleting partitions after %d\n"),
                                partitions);
                        clear_partition(ext_pointers[partitions - 1]);
                        changed[partitions - 1] = 1;
@@ -583,16 +572,16 @@ void read_extended(struct partition *p)
                for (i = 0; i < 4; i++, p++) {
                        if (IS_EXTENDED (p->sys_ind)) {
                                if (ext_pointers[partitions])
-                                       fprintf(stderr, "Warning: extra link "
+                                       fprintf(stderr, _("Warning: extra link "
                                                "pointer in partition table "
-                                               "%d\n", partitions + 1);
+                                               "%d\n"), partitions + 1);
                                else
                                        ext_pointers[partitions] = p;
                        } else if (p->sys_ind) {
                                if (part_table[partitions])
                                        fprintf(stderr,
-                                               "Warning: ignoring extra data "
-                                               "in partition table %d\n",
+                                               _("Warning: ignoring extra data "
+                                               "in partition table %d\n"),
                                                partitions + 1);
                                else
                                        part_table[partitions] = p;
@@ -617,9 +606,9 @@ void create_doslabel(void)
        int i;
 
        fprintf(stderr,
-       "Building a new DOS disklabel. Changes will remain in memory only,\n"
-       "until you decide to write them. After that, of course, the previous\n"
-       "content won't be recoverable.\n\n");
+       _("Building a new DOS disklabel. Changes will remain in memory only,\n"
+         "until you decide to write them. After that, of course, the previous\n"
+         "content won't be recoverable.\n\n"));
 
        sun_nolabel();  /* otherwise always recognised as sun */
        sgi_nolabel();  /* otherwise always recognised as sgi */
@@ -653,9 +642,20 @@ int get_boot(enum action what)
            if ((fd = open(disk_device, O_RDONLY)) < 0)
                fatal(unable_to_open);
            else
-               printf("You will not be able to write the partition table.\n");
+               printf(_("You will not be able to write the partition table.\n"));
        }
 
+#if defined(BLKSSZGET) && defined(HAVE_blkpg_h)
+       /* For a short while BLKSSZGET gave a wrong sector size */
+       { int arg;
+       if (ioctl(fd, BLKSSZGET, &arg) == 0)
+               sector_size = arg;
+       if (sector_size != DEFAULT_SECTOR_SIZE)
+               printf(_("Note: sector size is %d (not %d)\n"),
+                      sector_size, DEFAULT_SECTOR_SIZE);
+       }
+#endif
+
        guess_device_type(fd);
 
        if (sector_size != read(fd, buffer, sector_size))
@@ -673,10 +673,11 @@ int get_boot(enum action what)
                if (dos_compatible_flag)
                        sector_offset = sectors;
        } else {
-               if (!ioctl(fd, BLKGETSIZE, &sectors)) {
+               long longsectors;
+               if (!ioctl(fd, BLKGETSIZE, &longsectors)) {
                        heads = 1;
                        cylinders = 1;
-                       sectors /= sec_fac;
+                       sectors = longsectors / sec_fac;
                } else {
                        heads = cylinders = sectors = 0;
                }
@@ -698,8 +699,8 @@ got_table:
                switch(what) {
                case fdisk:
                        fprintf(stderr,
-                               "Device contains neither a valid DOS partition"
-                               " table, nor Sun or SGI disklabel\n");
+                               _("Device contains neither a valid DOS partition"
+                                 " table, nor Sun or SGI disklabel\n"));
 #ifdef __sparc__
                        create_sunlabel();
 #else
@@ -714,7 +715,7 @@ got_table:
                        break;
                }
 
-               fprintf(stderr, "Internal error\n");
+               fprintf(stderr, _("Internal error\n"));
                exit(1);
        }
 
@@ -724,15 +725,15 @@ got_table:
        for (i = 0; i < 4; i++)
                if(IS_EXTENDED (part_table[i]->sys_ind)) {
                        if (partitions != 4)
-                               fprintf(stderr, "Ignoring extra extended "
-                                       "partition %d\n", i + 1);
+                               fprintf(stderr, _("Ignoring extra extended "
+                                       "partition %d\n"), i + 1);
                        else read_extended(part_table[ext_index = i]);
                }
        for (i = 3; i < partitions; i++)
                if (!valid_part_table_flag(buffers[i])) {
                        fprintf(stderr,
-                               "Warning: invalid flag 0x%04x of partition "
-                               "table %d will be corrected by w(rite)\n",
+                               _("Warning: invalid flag 0x%04x of partition "
+                               "table %d will be corrected by w(rite)\n"),
                                part_table_flag(buffers[i]), i + 1);
                        changed[i] = 1;
                }
@@ -744,9 +745,19 @@ got_table:
 int
 read_line(void)
 {
+       static int got_eof = 0;
+
        line_ptr = line_buffer;
-       if (!fgets(line_buffer, LINE_LENGTH, stdin))
+       if (!fgets(line_buffer, LINE_LENGTH, stdin)) {
+               if (feof(stdin))
+                       got_eof++;      /* user typed ^D ? */
+               if (got_eof >= 3) {
+                       fflush(stdout);
+                       fprintf(stderr, _("\ngot EOF thrice - exiting..\n"));
+                       exit(1);
+               }
                return 0;
+       }
        while (*line_ptr && !isgraph(*line_ptr))
                line_ptr++;
        return *line_ptr;
@@ -779,7 +790,7 @@ read_hex(struct systypes *sys)
 
         while (1)
         {
-           read_char("Hex code (type L to list codes): ");
+           read_char(_("Hex code (type L to list codes): "));
            if (tolower(*line_ptr) == 'l')
                list_types(sys);
           else if (isxdigit (*line_ptr))
@@ -818,7 +829,7 @@ read_int(uint low, uint dflt, uint high, uint base, char *mesg)
                default_ok = 0;
 
        if (default_ok)
-               sprintf(ms, "%s (%d-%d, default %d): ", mesg, low, high, dflt);
+               sprintf(ms, _("%s (%d-%d, default %d): "), mesg, low, high, dflt);
        else
                sprintf(ms, "%s (%d-%d): ", mesg, low, high);
 
@@ -839,26 +850,26 @@ read_int(uint low, uint dflt, uint high, uint base, char *mesg)
                        switch (*line_ptr) {
                                case 'c':
                                case 'C':
-                                       if (!unit_flag)
+                                       if (!display_in_cyl_units)
                                                i *= heads * sectors;
                                        break;
                                case 'k':
                                case 'K':
                                        i *= 2;
                                        i /= (sector_size / 512);
-                                       i /= display_factor;
+                                       i /= units_per_sector;
                                        break;
                                case 'm':
                                case 'M':
                                        i *= 2048;
                                        i /= (sector_size / 512);
-                                       i /= display_factor;
+                                       i /= units_per_sector;
                                        break;
                                case 'g':
                                case 'G':
                                        i *= 2048000;
                                        i /= (sector_size / 512);
-                                       i /= display_factor;
+                                       i /= units_per_sector;
                                        break;
                                default:
                                        break;
@@ -872,18 +883,18 @@ read_int(uint low, uint dflt, uint high, uint base, char *mesg)
                        }
                }
                if (use_default)
-                   printf("Using default value %d\n", i = dflt);
+                   printf(_("Using default value %d\n"), i = dflt);
                if (i >= low && i <= high)
                        break;
                else
-                       printf("Value out of range.\n");
+                       printf(_("Value out of range.\n"));
        }
        return i;
 }
 
 int get_partition(int warn, int max)
 {
-       int i = read_int(1, 0, max, 0, "Partition number") - 1;
+       int i = read_int(1, 0, max, 0, _("Partition number")) - 1;
 
        if (warn && (
             (!sun_label && !sgi_label && !part_table[i]->sys_ind)
@@ -891,23 +902,24 @@ int get_partition(int warn, int max)
                (!sunlabel->partitions[i].num_sectors ||
                 !sunlabel->infos[i].id))
             || (sgi_label && (!sgi_get_num_sectors(i)))
-       )) fprintf(stderr, "Warning: partition %d has empty type\n", i+1);
+       )) fprintf(stderr, _("Warning: partition %d has empty type\n"), i+1);
        return i;
 }
 
-char *const str_units(void)
+char *const str_units(int n)   /* n==1: use singular */
 {
-       return unit_flag ? "cylinder" : "sector";
+       if (n == 1)
+               return display_in_cyl_units ? _("cylinder") : _("sector");
+       else
+               return display_in_cyl_units ? _("cylinders") : _("sectors");
 }
 
 void change_units(void)
 {
-       if ((unit_flag = !unit_flag))
-               display_factor = 1;
-       else display_factor = heads * sectors;
+       display_in_cyl_units = !display_in_cyl_units;
        update_units();
-       printf("Changing display/entry units to %ss\n",
-               str_units());
+       printf(_("Changing display/entry units to %s\n"),
+               str_units(PLURAL));
 }
 
 void toggle_active(int i)
@@ -916,7 +928,7 @@ void toggle_active(int i)
 
        if (IS_EXTENDED (p->sys_ind) && !p->boot_ind)
                fprintf(stderr,
-                       "WARNING: Partition %d is an extended partition\n",
+                       _("WARNING: Partition %d is an extended partition\n"),
                        i + 1);
        if (p->boot_ind)
                p->boot_ind = 0;
@@ -927,14 +939,14 @@ void toggle_active(int i)
 void toggle_dos(void)
 {
        dos_compatible_flag = ~dos_compatible_flag;
-       printf("DOS Compatibility flag is ");
-       if (dos_compatible_flag)
+       if (dos_compatible_flag) {
                sector_offset = sectors;
+               printf(_("DOS Compatibility flag is set\n"));
+       }
        else {
                sector_offset = 1;
-               printf("not ");
+               printf(_("DOS Compatibility flag is not set\n"));
        }
-       printf("set\n");
 }
 
 void delete_partition(int i)
@@ -969,6 +981,7 @@ void delete_partition(int i)
        else if (!q->sys_ind && i > 4) {
                free(buffers[--partitions]);
                clear_partition(ext_pointers[--i]);
+               changed[i] = 1;
        }
        else if (i > 3) {
                if (i > 4) {
@@ -1018,39 +1031,39 @@ void change_sysid(void)
        origsys = sys = get_sysid(i);
 
        if (!sys && !sgi_label)
-                printf("Partition %d does not exist yet!\n", i + 1);
+                printf(_("Partition %d does not exist yet!\n"), i + 1);
         else while (1) {
                sys = read_hex (get_sys_types());
 
                if (!sys && !sgi_label) {
-                       printf("Type 0 means free space to many systems\n"
+                       printf(_("Type 0 means free space to many systems\n"
                               "(but not to Linux). Having partitions of\n"
                               "type 0 is probably unwise. You can delete\n"
-                              "a partition using the `d' command.\n");
+                              "a partition using the `d' command.\n"));
                        /* break; */
                }
 
                if (!sun_label && !sgi_label) {
                        if (IS_EXTENDED (sys) != IS_EXTENDED (p->sys_ind)) {
-                               printf("You cannot change a partition into"
+                               printf(_("You cannot change a partition into"
                                       " an extended one or vice versa\n"
-                                      "Delete it first.\n");
+                                      "Delete it first.\n"));
                                break;
                        }
                }
 
                 if (sys < 256) {
                        if (sun_label && i == 2 && sys != WHOLE_DISK)
-                               printf("Consider leaving partition 3 "
+                               printf(_("Consider leaving partition 3 "
                                       "as Whole disk (5),\n"
                                       "as SunOS/Solaris expects it and "
-                                      "even Linux likes it.\n\n");
+                                      "even Linux likes it.\n\n"));
                        if (sgi_label && ((i == 10 && sys != ENTIRE_DISK)
                                          || (i == 8 && sys != 0)))
-                               printf("Consider leaving partition 9 "
+                               printf(_("Consider leaving partition 9 "
                                       "as volume header (0),\nand "
                                       "partition 11 as entire volume (6)"
-                                      "as IRIX expects it.\n\n");
+                                      "as IRIX expects it.\n\n"));
                         if (sys == origsys)
                             break;
 
@@ -1061,10 +1074,10 @@ void change_sysid(void)
                                sgi_change_sysid(i, sys);
                        } else
                                part_table[i]->sys_ind = sys;
-                        printf ("Changed system type of partition %d "
-                                "to %x (%s)\n", i + 1, sys,
+                        printf (_("Changed system type of partition %d "
+                                "to %x (%s)\n"), i + 1, sys,
                                 (temp = partition_type(sys)) ? temp :
-                                "Unknown");
+                                _("Unknown"));
                         changed[i] = 1;
                         break;
                 }
@@ -1114,45 +1127,45 @@ static void check_consistency(struct partition *p, int partition)
 
 /* Same physical / logical beginning? */
        if (cylinders <= 1024 && (pbc != lbc || pbh != lbh || pbs != lbs)) {
-               printf("Partition %d has different physical/logical "
-                       "beginnings (non-Linux?):\n", partition + 1);
-               printf("     phys=(%d, %d, %d) ", pbc, pbh, pbs);
-               printf("logical=(%d, %d, %d)\n",lbc, lbh, lbs);
+               printf(_("Partition %d has different physical/logical "
+                       "beginnings (non-Linux?):\n"), partition + 1);
+               printf(_("     phys=(%d, %d, %d) "), pbc, pbh, pbs);
+               printf(_("logical=(%d, %d, %d)\n"),lbc, lbh, lbs);
        }
 
 /* Same physical / logical ending? */
        if (cylinders <= 1024 && (pec != lec || peh != leh || pes != les)) {
-               printf("Partition %d has different physical/logical "
-                       "endings:\n", partition + 1);
-               printf("     phys=(%d, %d, %d) ", pec, peh, pes);
-               printf("logical=(%d, %d, %d)\n",lec, leh, les);
+               printf(_("Partition %d has different physical/logical "
+                       "endings:\n"), partition + 1);
+               printf(_("     phys=(%d, %d, %d) "), pec, peh, pes);
+               printf(_("logical=(%d, %d, %d)\n"),lec, leh, les);
        }
 
 #if 0
 /* Beginning on cylinder boundary? */
        if (pbh != !pbc || pbs != 1) {
-               printf("Partition %i does not start on cylinder "
-                       "boundary:\n", partition + 1);
-               printf("     phys=(%d, %d, %d) ", pbc, pbh, pbs);
-               printf("should be (%d, %d, 1)\n", pbc, !pbc);
+               printf(_("Partition %i does not start on cylinder "
+                       "boundary:\n"), partition + 1);
+               printf(_("     phys=(%d, %d, %d) "), pbc, pbh, pbs);
+               printf(_("should be (%d, %d, 1)\n"), pbc, !pbc);
        }
 #endif
 
 /* Ending on cylinder boundary? */
        if (peh != (heads - 1) || pes != sectors) {
-               printf("Partition %i does not end on cylinder boundary:\n",
+               printf(_("Partition %i does not end on cylinder boundary:\n"),
                        partition + 1);
-               printf("     phys=(%d, %d, %d) ", pec, peh, pes);
-               printf("should be (%d, %d, %d)\n",
+               printf(_("     phys=(%d, %d, %d) "), pec, peh, pes);
+               printf(_("should be (%d, %d, %d)\n"),
                pec, heads - 1, sectors);
        }
 }
 
 void list_disk_geometry(void)
 {
-       printf("\nDisk %s: %d heads, %d sectors, %d cylinders\nUnits = "
-              "%ss of %d * %d bytes\n\n", disk_device, heads, sectors,
-              cylinders, str_units(), display_factor, sector_size);
+       printf(_("\nDisk %s: %d heads, %d sectors, %d cylinders\nUnits = "
+              "%s of %d * %d bytes\n\n"), disk_device, heads, sectors,
+              cylinders, str_units(PLURAL), units_per_sector, sector_size);
 }
 
 void list_table(int xtra)
@@ -1183,8 +1196,12 @@ void list_table(int xtra)
 
        if (w < 5)
                w = 5;
-       printf("%*s Boot    Start       End    Blocks   Id  System\n",
-              (digit_last ? w + 2 : w + 1), "Device");
+
+       /* FIXME! let's see how this shows up with other languagues 
+          acme@conectiva.com.br */
+
+       printf(_("%*s Boot    Start       End    Blocks   Id  System\n"),
+              (digit_last ? w + 2 : w + 1), _("Device"));
 
        for (i = 0 ; i < partitions; i++) {
                if ((p = part_table[i])->sys_ind) {
@@ -1209,7 +1226,7 @@ void list_table(int xtra)
 /* odd flag on end */  (long) pblocks, podd ? '+' : ' ',
 /* type id */          p->sys_ind,
 /* type name */                (type = partition_type(p->sys_ind)) ?
-                       type : "Unknown");
+                       type : _("Unknown"));
                        check_consistency(p, i);
                }
        }
@@ -1224,9 +1241,9 @@ void x_list_table(int extend)
                q = ext_pointers;
        else
                q = part_table;
-       printf("\nDisk %s: %d heads, %d sectors, %d cylinders\n\n",
+       printf(_("\nDisk %s: %d heads, %d sectors, %d cylinders\n\n"),
                disk_device, heads, sectors, cylinders);
-        printf("Nr AF  Hd Sec  Cyl  Hd Sec  Cyl   Start    Size ID\n");
+        printf(_("Nr AF  Hd Sec  Cyl  Hd Sec  Cyl   Start    Size ID\n"));
        for (i = 0 ; i < partitions; i++)
                if ((p = q[i]) != NULL) {
                         printf("%2d %02x%4d%4d%5d%4d%4d%5d%8d%8d %02x\n",
@@ -1265,21 +1282,21 @@ void check(int n, uint h, uint s, uint c, uint start)
        real_c = cylinder(s, c);
        total = (real_c * sectors + real_s) * heads + h;
        if (!total)
-               fprintf(stderr, "Warning: partition %d contains sector 0\n", n);
+               fprintf(stderr, _("Warning: partition %d contains sector 0\n"), n);
        if (h >= heads)
                fprintf(stderr,
-                       "Partition %d: head %d greater than maximum %d\n",
+                       _("Partition %d: head %d greater than maximum %d\n"),
                        n, h + 1, heads);
        if (real_s >= sectors)
-               fprintf(stderr, "Partition %d: sector %d greater than "
-                       "maximum %d\n", n, s, sectors);
+               fprintf(stderr, _("Partition %d: sector %d greater than "
+                       "maximum %d\n"), n, s, sectors);
        if (real_c >= cylinders)
-               fprintf(stderr, "Partitions %d: cylinder %d greater than "
-                       "maximum %d\n", n, real_c + 1, cylinders);
+               fprintf(stderr, _("Partitions %d: cylinder %d greater than "
+                       "maximum %d\n"), n, real_c + 1, cylinders);
        if (cylinders <= 1024 && start != total)
                fprintf(stderr,
-                       "Partition %d: previous sectors %d disagrees with "
-                       "total %d\n", n, start, total);
+                       _("Partition %d: previous sectors %d disagrees with "
+                       "total %d\n"), n, start, total);
 }
 
 
@@ -1308,16 +1325,16 @@ void verify(void)
                if (p->sys_ind && !IS_EXTENDED (p->sys_ind)) {
                        check_consistency(p, i);
                        if (get_start_sect(p) + offsets[i] < first[i])
-                               printf("Warning: bad start-of-data in "
-                                       "partition %d\n", i + 1);
+                               printf(_("Warning: bad start-of-data in "
+                                       "partition %d\n"), i + 1);
                        check(i + 1, p->end_head, p->end_sector, p->end_cyl,
                                last[i]);
                        total += last[i] + 1 - first[i];
                        for (j = 0; j < i; j++)
                        if ((first[i] >= first[j] && first[i] <= last[j])
                         || ((last[i] <= last[j] && last[i] >= first[j]))) {
-                               printf("Warning: partition %d overlaps "
-                                       "partition %d.\n", j + 1, i + 1);
+                               printf(_("Warning: partition %d overlaps "
+                                       "partition %d.\n"), j + 1, i + 1);
                                total += first[i] >= first[j] ?
                                        first[i] : first[j];
                                total -= last[i] <= last[j] ?
@@ -1334,21 +1351,21 @@ void verify(void)
                        total++;
                        if (!p->sys_ind) {
                                if (i != 4 || i + 1 < partitions)
-                                       printf("Warning: partition %d "
-                                               "is empty\n", i + 1);
+                                       printf(_("Warning: partition %d "
+                                               "is empty\n"), i + 1);
                        }
                        else if (first[i] < extended_offset ||
                                        last[i] > e_last)
-                               printf("Logical partition %d not entirely in "
-                                       "partition %d\n", i + 1, ext_index + 1);
+                               printf(_("Logical partition %d not entirely in "
+                                       "partition %d\n"), i + 1, ext_index + 1);
                }
        }
 
        if (total > heads * sectors * cylinders)
-               printf("Total allocated sectors %d greater than the maximum "
-                       "%d\n", total, heads * sectors * cylinders);
+               printf(_("Total allocated sectors %d greater than the maximum "
+                       "%d\n"), total, heads * sectors * cylinders);
        else if ((total = heads * sectors * cylinders - total) != 0)
-               printf("%d unallocated sectors\n", total);
+               printf(_("%d unallocated sectors\n"), total);
 }
 
 void add_partition(int n, int sys)
@@ -1360,8 +1377,8 @@ void add_partition(int n, int sys)
                first[partitions], last[partitions];
 
        if (p->sys_ind) {
-               printf("Partition %d is already defined.  Delete "
-                       "it before re-adding it.\n", n + 1);
+               printf(_("Partition %d is already defined.  Delete "
+                       "it before re-adding it.\n"), n + 1);
                return;
        }
        fill_bounds(first, last);
@@ -1377,11 +1394,11 @@ void add_partition(int n, int sys)
                start = extended_offset + sector_offset;
                limit = get_start_sect(q) + get_nr_sects(q) - 1;
        }
-       if (unit_flag)
+       if (display_in_cyl_units)
                for (i = 0; i < partitions; i++)
-                       first[i] = (cround(first[i]) - 1) * display_factor;
+                       first[i] = (cround(first[i]) - 1) * units_per_sector;
 
-       sprintf(mesg, "First %s", str_units());
+       sprintf(mesg, _("First %s"), str_units(SINGULAR));
        do {
                temp = start;
                for (i = 0; i < partitions; i++) {
@@ -1395,8 +1412,8 @@ void add_partition(int n, int sys)
                }
                if (start > limit)
                        break;
-               if (start >= temp+display_factor && read) {
-                       printf("Sector %d is already allocated\n", temp);
+               if (start >= temp+units_per_sector && read) {
+                       printf(_("Sector %d is already allocated\n"), temp);
                        temp = start;
                        read = 0;
                }
@@ -1405,15 +1422,21 @@ void add_partition(int n, int sys)
                        i = start;
                        start = read_int(cround(i), cround(i), cround(limit),
                                         0, mesg);
-                       if (unit_flag) {
-                               start = (start - 1) * display_factor;
+                       if (display_in_cyl_units) {
+                               start = (start - 1) * units_per_sector;
                                if (start < i) start = i;
                        }
                        read = 1;
                }
        } while (start != temp || !read);
-       if (n > 4)                      /* NOT for fifth partition */
+       if (n > 4) {                    /* NOT for fifth partition */
                offsets[n] = start - sector_offset;
+               if (offsets[n] == extended_offset) { /* must be corrected */
+                    offsets[n]++;
+                    if (sector_offset == 1)
+                         start++;
+               }
+       }
 
        for (i = 0; i < partitions; i++) {
                if (start < offsets[i] && limit >= offsets[i])
@@ -1422,22 +1445,22 @@ void add_partition(int n, int sys)
                        limit = first[i] - 1;
        }
        if (start > limit) {
-               printf("No free sectors available\n");
+               printf(_("No free sectors available\n"));
                if (n > 4) {
                        free(buffers[n]);
                        partitions--;
                }
                return;
        }
-       if (cround(start) == cround(limit))
-               stop = start;
-       else {
-               sprintf(mesg, "Last %s or +size or +sizeM or +sizeK",
-                       str_units());
+       if (cround(start) == cround(limit)) {
+               stop = limit;
+       else {
+               sprintf(mesg, _("Last %s or +size or +sizeM or +sizeK"),
+                       str_units(SINGULAR));
                stop = read_int(cround(start), cround(limit), cround(limit),
                                cround(start), mesg);
-               if (unit_flag) {
-                       stop = stop * display_factor - 1;
+               if (display_in_cyl_units) {
+                       stop = stop * units_per_sector - 1;
                        if (stop >limit)
                                stop = limit;
                }
@@ -1455,16 +1478,15 @@ void add_partition(int n, int sys)
                ext_pointers[4] = part_table[4] + 1;
                changed[4] = 1;
                partitions = 5;
-       }
-       else {
+       } else {
                if (n > 4)
                        set_partition(n - 1, ext_pointers[n - 1],
-                               start - sector_offset, stop, EXTENDED,
+                               offsets[n], stop, EXTENDED,
                                extended_offset);
 #if 0
                if ((limit = get_nr_sects(p)) & 1)
-                       printf("Warning: partition %d has an odd "
-                               "number of sectors.\n", n + 1);
+                       printf(_("Warning: partition %d has an odd "
+                               "number of sectors.\n"), n + 1);
 #endif
        }
 }
@@ -1500,7 +1522,7 @@ void new_partition(void)
        }
 
        if (partitions >= MAXIMUM_PARTS) {
-               printf("The maximum number of partitions has been created\n");
+               printf(_("The maximum number of partitions has been created\n"));
                return;
        }
 
@@ -1510,13 +1532,13 @@ void new_partition(void)
                if (extended_offset)
                        add_logical();
                else
-                       printf("You must delete some partition and add "
-                               "an extended partition first\n");
+                       printf(_("You must delete some partition and add "
+                               "an extended partition first\n"));
        } else {
                char c, line[LINE_LENGTH];
-               sprintf(line, "Command action\n   %s\n   p   primary "
-                       "partition (1-4)\n", extended_offset ?
-                       "l   logical (5 or over)" : "e   extended");
+               sprintf(line, _("Command action\n   %s\n   p   primary "
+                       "partition (1-4)\n"), extended_offset ?
+                       _("l   logical (5 or over)") : _("e   extended"));
                while (1)
                        if ((c = tolower(read_char(line))) == 'p') {
                                add_partition(get_partition(0, 4),
@@ -1533,8 +1555,8 @@ void new_partition(void)
                                return;
                        }
                        else
-                               printf("Invalid partition number "
-                                      "for type `%c'\n", c);
+                               printf(_("Invalid partition number "
+                                      "for type `%c'\n"), c);
                
        }
 }
@@ -1565,9 +1587,9 @@ void write_table(void)
            }
        }
 
-       printf("The partition table has been altered!\n\n");
+       printf(_("The partition table has been altered!\n\n"));
 
-       printf("Calling ioctl() to re-read partition table.\n");
+       printf(_("Calling ioctl() to re-read partition table.\n"));
        sync();
        sleep(2);
        if ((i = ioctl(fd, BLKRRPART)) != 0) {
@@ -1584,20 +1606,20 @@ void write_table(void)
 
        close(fd);
 
-       printf("Syncing disks.\n");
+       printf(_("Syncing disks.\n"));
        sync();
        sleep(4);               /* for sync() */
 
        if (i < 0)
-               printf("Re-read table failed with error %d: %s.\nReboot your "
-                       "system to ensure the partition table is updated.\n",
+               printf(_("Re-read table failed with error %d: %s.\nReboot your "
+                       "system to ensure the partition table is updated.\n"),
                        error, strerror(error));
 
        if (!sun_label && !sgi_label)
            printf(
-               "\nWARNING: If you have created or modified any DOS 6.x\n"
+               _("\nWARNING: If you have created or modified any DOS 6.x\n"
                "partitions, please see the fdisk manual page for additional\n"
-               "information.\n");
+               "information.\n"));
 
        exit(0);
 }
@@ -1626,7 +1648,7 @@ void print_raw(void)
 {
        int i;
 
-       printf("Device: %s\n", disk_device);
+       printf(_("Device: %s\n"), disk_device);
        if (sun_label || sgi_label)
                print_buffer(buffer);
        else for (i = 3; i < partitions; i++)
@@ -1641,13 +1663,13 @@ void move_begin(int i)
        if (warn_geometry())
                return;
        if (!p->sys_ind || !get_nr_sects(p) || IS_EXTENDED (p->sys_ind)) {
-               printf("Partition %d has no data area\n", i + 1);
+               printf(_("Partition %d has no data area\n"), i + 1);
                return;
        }
        first = get_start_sect(p) + offsets[i];
        new = read_int(first, first, 
                       get_start_sect(p) + get_nr_sects(p) + offsets[i] - 1,
-                      first, "New beginning of data") - offsets[i];
+                      first, _("New beginning of data")) - offsets[i];
 
        if (new != get_nr_sects(p)) {
                first = get_nr_sects(p) + get_start_sect(p) - new;
@@ -1661,7 +1683,7 @@ void xselect(void)
 {
        while(1) {
                putchar('\n');
-               switch (tolower(read_char("Expert command (m for help): "))) {
+               switch (tolower(read_char(_("Expert command (m for help): ")))) {
                case 'a':
                        if (sun_label)
                                sun_set_alt_cyl();
@@ -1672,7 +1694,7 @@ void xselect(void)
                        break;
                case 'c':
                        cylinders = read_int(1, cylinders, 65535,
-                                            0, "Number of cylinders");
+                                            0, _("Number of cylinders"));
                        if (sun_label)
                                sun_set_ncyl(cylinders);
                        warn_cylinders();
@@ -1693,7 +1715,7 @@ void xselect(void)
                        break;
                case 'h':
                        heads = read_int(1, heads, 256, 0,
-                                        "Number of heads");
+                                        _("Number of heads"));
                        update_units();
                        break;
                case 'i':
@@ -1712,17 +1734,18 @@ void xselect(void)
                        break;
                case 'q':
                        close(fd);
+                       printf("\n");
                        exit(0);
                case 'r':
                        return;
                case 's':
                        sectors = read_int(1, sectors, 63, 0,
-                                          "Number of sectors");
+                                          _("Number of sectors"));
                        if (dos_compatible_flag) {
                                sector_offset = sectors;
-                               fprintf(stderr, "Warning: setting "
+                               fprintf(stderr, _("Warning: setting "
                                        "sector offset for DOS "
-                                       "compatiblity\n");
+                                       "compatiblity\n"));
                        }
                        update_units();
                        break;
@@ -1782,8 +1805,8 @@ void try(char *device, int user_specified)
                                list_disk_geometry();
                                if (btrydev(device) < 0)
                                        fprintf(stderr,
-                                               "Disk %s doesn't contain a valid "
-                                               "partition table\n", device);
+                                               _("Disk %s doesn't contain a valid "
+                                               "partition table\n"), device);
                                close(fd);
                        } else {
                                close(fd);
@@ -1796,39 +1819,52 @@ void try(char *device, int user_specified)
                                   and SCSI hard disks which may not be
                                   installed on the system. */
                        if(errno == EACCES) {
-                           fprintf(stderr, "Cannot open %s\n", device);
+                           fprintf(stderr, _("Cannot open %s\n"), device);
                            return;
                        }
                }
        }
 }
 
+int
+dir_exists(char *dirname) {
+       struct stat statbuf;
+
+       return (stat(dirname, &statbuf) == 0 && S_ISDIR(statbuf.st_mode));
+}
+
 void
 dummy(int *kk) {}
 
 int
 main(int argc, char **argv)
 {
-       int i, j, s, c;
+       int j, c;
        int optl = 0, opts = 0;
-       char *part;
+       int user_set_sector_size = 0;
 
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
 
        /*
         * Calls:
         *  fdisk -v
-        *  fdisk -l [-b sectorsize] [-u] [device] ...
+        *  fdisk -l [-b sectorsize] [-u] device ...
         *  fdisk -s [partition] ...
-        *  fdisk [-b sectorsize] [-u] [device]
+        *  fdisk [-b sectorsize] [-u] device
         */
        while ((c = getopt(argc, argv, "b:lsuv")) != EOF) {
                switch (c) {
                case 'b':
+                       /* ugly: this sector size is really per device,
+                          so cannot be combined with multiple disks */
                        sector_size = atoi(optarg);
                        if (sector_size != 512 && sector_size != 1024 &&
                            sector_size != 2048)
                                fatal(usage);
                        sector_offset = 2;
+                       user_set_sector_size = 1;
                        break;
                case 'l':
                        optl = 1;
@@ -1837,7 +1873,7 @@ main(int argc, char **argv)
                        opts = 1;
                        break;
                case 'u':
-                       unit_flag = 0;
+                       display_in_cyl_units = 0;
                        break;
                case 'v':
                        printf("fdisk v" UTIL_LINUX_VERSION "\n");
@@ -1847,6 +1883,14 @@ main(int argc, char **argv)
                }
        }
 
+#if 0
+       printf(_("This kernel finds the sector size itself - -b option ignored\n"));
+#else
+       if (user_set_sector_size && argc-optind != 1)
+               printf(_("Warning: the -b (set sector size) option should"
+                        " be used with one specified device\n"));
+#endif
+
        if (optl) {
                listing = 1;
                nowarn = 1;
@@ -1859,39 +1903,16 @@ main(int argc, char **argv)
                        for(k=optind; k<argc; k++)
                                try(argv[k], 1);
                } else {
-                       try("/dev/hda", 0);
-                       try("/dev/hdb", 0);
-                       try("/dev/hdc", 0); /* often a CDROM */
-                       try("/dev/hdd", 0);
-                       try("/dev/sda", 0);
-                       try("/dev/sdb", 0);
-                       try("/dev/sdc", 0);
-                       try("/dev/sdd", 0);
-                       try("/dev/sde", 0);
-                       try("/dev/sdf", 0);
-                       try("/dev/sdg", 0);
-                       try("/dev/sdh", 0);
-                       try("/dev/eda", 0); /* PS/2 ESDI drives */
-                       try("/dev/edb", 0);
-                       try("/dev/edc", 0);
-                       try("/dev/edd", 0);
-                       try("/dev/rd/c0d0", 0); /* DAC960 RAID disks */
-                       try("/dev/rd/c0d1", 0);
-                       try("/dev/rd/c0d2", 0);
-                       try("/dev/rd/c0d3", 0);
-                       try("/dev/rd/c0d4", 0);
-                       try("/dev/rd/c0d5", 0);
-                       try("/dev/rd/c0d6", 0);
-                       try("/dev/rd/c0d7", 0);
+                       /* we no longer have default device names */
+                       fatal(usage2);
                }
                exit(0);
        }
 
        if (opts) {
-               /* Very silly assumptions here about device naming */
-               /* All this junk will disappear again */
+               long size;
+
                nowarn = 1;
-               disk_device = (char *) malloc(16);
                type_open = O_RDONLY;
 
                opts = argc - optind;
@@ -1899,46 +1920,16 @@ main(int argc, char **argv)
                        fatal(usage);
 
                for (j = optind; j < argc; j++) {
-                       part = argv[j];
-                        if (strncmp(part, "/dev/rd/", 8) == 0) {
-                                char *p = strrchr(part, 'p');
-                                if (p == NULL)
-                                        fatal(usage);
-                                if (!(i = atoi(p + 1)))
-                                        fatal(usage);
-                               i--;    /* count from 0 */
-                                *p = '\0';
-                                strcpy(disk_device, part);
-                        } else {
-                               if (strlen(part) < 9)
-                                       fatal(usage);
-                               if (!(i = atoi(part + 8)))
-                                       fatal(usage);
-                               i--;    /* count from 0 */
-                               strncpy(disk_device, part, 8);
-                               disk_device[8] = 0;
-                       }
+                       disk_device = argv[j];
                        if ((fd = open(disk_device, type_open)) < 0)
                                fatal(unable_to_open);
+                       if (ioctl(fd, BLKGETSIZE, &size))
+                               fatal(ioctl_error);
                        close(fd);
-                       if (get_boot(require) < 0)
-                               exit(1);
-                       if (i >= partitions)
-                               exit(1);
-#if defined(sparc)
-                       if (!sun_label) {
-                               int id = sunlabel->infos[i].id;
-
-                               if (!(id > 1 && id != WHOLE_DISK))
-                                       exit(1);
-                               s = get_num_sectors(sunlabel->partitions[i]);
-                       } else
-#endif
-                               s = get_nr_sects(part_table[i]);
                        if (opts == 1)
-                               printf("%d\n", s/2);
+                               printf("%ld\n", size/2);
                        else
-                               printf("%s: %d\n", argv[j], s/2);
+                               printf("%s: %ld\n", argv[j], size/2);
                }
                exit(0);
        }
@@ -1947,17 +1938,14 @@ main(int argc, char **argv)
                disk_device = argv[optind];
        else if (argc-optind != 0)
                fatal(usage);
-       else {
-               if ((fd = open(DEFAULT_DEVICE, O_RDWR)) < 0)
-                       disk_device = ALTERNATE_DEVICE;
-               else close(fd);
-               printf("Using %s as default device!\n", disk_device);
-       }
+       else
+               fatal(usage2);
+
        get_boot(fdisk);
 
        while (1) {
                putchar('\n');
-               switch (tolower(read_char("Command (m for help): "))) {
+               switch (tolower(read_char(_("Command (m for help): ")))) {
                case 'a':
                        if (sun_label)
                                toggle_sunflags(get_partition(1, partitions),
@@ -1971,11 +1959,11 @@ main(int argc, char **argv)
                        break;
                case 'b':
                        if (sgi_label) {
-                               printf("\nThe current boot file is: %s\n",
+                               printf(_("\nThe current boot file is: %s\n"),
                                       sgi_get_bootfile());
-                               if (read_chars("Please enter the name of the "
-                                              "new boot file: ") == '\n')
-                                       printf("Boot file unchanged\n");
+                               if (read_chars(_("Please enter the name of the "
+                                              "new boot file: ")) == '\n')
+                                       printf(_("Boot file unchanged\n"));
                                else
                                        sgi_set_bootfile(line_ptr);
                        } else
@@ -2015,6 +2003,7 @@ main(int argc, char **argv)
                        break;
                case 'q':
                        close(fd);
+                       printf("\n");
                        exit(0);
                case 's':
                        create_sunlabel();
@@ -2034,8 +2023,8 @@ main(int argc, char **argv)
                case 'x':
                        if( sgi_label ) {
                                fprintf(stderr,
-                                       "\n\tSorry, no experts menu for SGI "
-                                       "partition tables available.\n\n");
+                                       _("\n\tSorry, no experts menu for SGI "
+                                       "partition tables available.\n\n"));
                        } else
                                xselect();
                        break;
index 080515e5ff967a6b6f5f534e59faba02705972ba..ace1b0cd94aaa6ad09944d2d945b9856750b4e2b 100644 (file)
@@ -21,7 +21,8 @@
 
 #define SIZE(a)        (sizeof(a)/sizeof((a)[0]))
 
-#define cround(n)      (((n) + display_factor * unit_flag) / display_factor)
+#define cround(n)      (display_in_cyl_units ? ((n)/units_per_sector)+1 : (n))
+#define scround(x)     (((x)+units_per_sector-1)/units_per_sector)
 
 #if defined(__GNUC__) || defined(HAS_LONG_LONG)
 typedef long long ext2_loff_t;
@@ -46,23 +47,19 @@ struct partition {
        unsigned char size4[4];         /* nr of sectors in partition */
 };
 
-enum failure {usage, unable_to_open, unable_to_read, unable_to_seek,
+enum failure {usage, usage2, ioctl_error,
+       unable_to_open, unable_to_read, unable_to_seek,
        unable_to_write, out_of_memory, no_partition, no_device};
 
 enum action {fdisk, require, try_only, create_empty};
 
-struct systypes {
-  unsigned char index;
-  char *name;
-};
-
 /* prototypes for fdisk.c */
 extern char *disk_device,
             *line_ptr;
 extern int fd,
            partitions;
-extern uint unit_flag,
-            display_factor;
+extern uint display_in_cyl_units,
+            units_per_sector;
 extern struct partition *part_table[];
 extern void fatal(enum failure why);
 extern int get_boot(enum action what);
@@ -72,7 +69,10 @@ extern int read_line (void);
 extern char read_char(char *mesg);
 extern int read_hex(struct systypes *sys);
 uint read_int(uint low, uint dflt, uint high, uint base, char *mesg);
-extern char *const str_units(void);
+
+#define PLURAL 0
+#define SINGULAR 1
+extern char *const str_units(int);
 
 extern unsigned int get_start_sect(struct partition *p);
 extern unsigned int get_nr_sects(struct partition *p);
index 848a6ece838fd5c725957bbd2b9e9e15dcbe57ff..7540f9a6db3fd5dee27d4b7650ee3f8fd67e8681 100644 (file)
@@ -1,3 +1,8 @@
+/*
+  Changes:
+  Sat Mar 20 09:51:38 EST 1999 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+       Internationalization
+*/
 #include <stdio.h>              /* stderr */
 #include <stdlib.h>             /* uint */
 #include <string.h>             /* strstr */
@@ -5,8 +10,10 @@
 
 #include <endian.h>
 
+#include "common.h"
 #include "fdisk.h"
 #include "fdiskaixlabel.h"
+#include "nls.h"
 
 static int     other_endian = 0;
 static  short  volumes=1;
@@ -18,8 +25,8 @@ static  short volumes=1;
 void
 aix_info( void )
 {
-    printf(
-       "\n\tThere is a valid AIX label on this disk.\n"
+    puts(
+       _("\n\tThere is a valid AIX label on this disk.\n"
        "\tUnfortunately Linux cannot handle these\n"
        "\tdisks at the moment.  Nevertheless some\n"
        "\tadvice:\n"
@@ -29,7 +36,7 @@ aix_info( void )
        "\t   erase the other disks as well, if unmirrored.)\n"
        "\t3. Before deleting this physical volume be sure\n"
        "\t   to remove the disk logically from your AIX\n"
-       "\t   machine.  (Otherwise you become an AIXpert).\n"
+       "\t   machine.  (Otherwise you become an AIXpert).")
     );
 }
 
index 8edec23314bd46114ad5fe41216c12900b96a443..64a7927340e552142dd207d40c621555aa7191c3 100644 (file)
@@ -33,6 +33,9 @@
    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    SUCH DAMAGE.
+
+   Changes:
+   19990319 - Arnaldo Carvalho de Melo <acme@conectiva.com.br> - i18n/nls
 */
 
 #include <unistd.h>
 #include <ctype.h>
 #include <setjmp.h>
 #include <errno.h>
+#include "nls.h"
 
 #include <sys/ioctl.h>
 #include <sys/param.h>
 
 #include <linux/hdreg.h>       /* for HDIO_GETGEO */
 
+#include "common.h"
 #include "fdisk.h"
 #define NETBSD_PARTITION 0xa5
 #define DKTYPENAMES
@@ -89,7 +94,7 @@ int
 btrydev (char * dev) {
     if (xbsd_readlabel (NULL, &xbsd_dlabel) == 0)
       return -1;
-    printf("\nBSD label for device: %s\n", dev);
+    printf(_("\nBSD label for device: %s\n"), dev);
     xbsd_print_disklabel (0);
     return 0;
 }
@@ -97,25 +102,24 @@ btrydev (char * dev) {
 void
 bmenu (void)
 {
-  puts ("Command action\n"
-       "   d   delete a BSD partition\n"
-       "   e   edit drive data\n"
-       "   i   install bootstrap\n"
-       "   l   list known filesystem types\n"
-       "   m   print this menu\n"
-       "   n   add a new BSD partition\n"
-       "   p   print BSD partition table\n"
-       "   q   quit without saving changes\n"
+  puts (_("Command action"));
+  puts (_("   d   delete a BSD partition"));
+  puts (_("   e   edit drive data"));
+  puts (_("   i   install bootstrap"));
+  puts (_("   l   list known filesystem types"));
+  puts (_("   m   print this menu"));
+  puts (_("   n   add a new BSD partition"));
+  puts (_("   p   print BSD partition table"));
+  puts (_("   q   quit without saving changes"));
 #if defined (i386) || defined (sparc)
-       "   r   return to main menu\n"
+  puts (_("   r   return to main menu"));
 #endif
-       "   s   show complete disklabel\n"
-       "   t   change a partition's filesystem id\n"
-       "   w   write disklabel to disk\n"
+  puts (_("   s   show complete disklabel"));
+  puts (_("   t   change a partition's filesystem id"));
+  puts (_("   w   write disklabel to disk"));
 #if defined (i386) || defined (sparc)
-       "   x   link BSD partition to non-BSD partition"
+  puts (_("   x   link BSD partition to non-BSD partition"));
 #endif
-       );
 }
 
 int
@@ -139,11 +143,11 @@ bselect (void) {
       xbsd_part_index = t;
       ss = get_start_sect(xbsd_part);
       if (ss == 0) {
-        fprintf (stderr, "Partition %s%d has invalid starting sector 0.\n",
+        fprintf (stderr, _("Partition %s%d has invalid starting sector 0.\n"),
                 disk_device, t+1);
         return;
       }
-      printf ("Reading disklabel of %s%d at sector %d.\n",
+      printf (_("Reading disklabel of %s%d at sector %d.\n"),
              disk_device, t+1, ss + BSD_LABELSECTOR);
       if (xbsd_readlabel (xbsd_part, &xbsd_dlabel) == 0)
         if (xbsd_create_disklabel () == 0)
@@ -152,7 +156,7 @@ bselect (void) {
     }
 
   if (t == 4) {
-    printf ("There is no *BSD partition on %s.\n", disk_device);
+    printf (_("There is no *BSD partition on %s.\n"), disk_device);
     return;
   }
 
@@ -167,7 +171,7 @@ bselect (void) {
   while (1)
   {
     putchar ('\n');
-    switch (tolower (read_char ("BSD disklabel command (m for help): ")))
+    switch (tolower (read_char (_("BSD disklabel command (m for help): "))))
     {
       case 'd':
         xbsd_delete_part ();
@@ -245,18 +249,18 @@ xbsd_new_part (void)
   end = xbsd_dlabel.d_secperunit;
 #endif
 
-  sprintf (mesg, "First %s", str_units());
+  sprintf (mesg, _("First %s"), str_units(SINGULAR));
   begin = read_int (cround (begin), cround (begin), cround (end),
                    0, mesg);
 
-  sprintf (mesg, "Last %s or +size or +sizeM or +sizeK", str_units());
+  sprintf (mesg, _("Last %s or +size or +sizeM or +sizeK"), str_units(SINGULAR));
   end = read_int (cround (begin), cround (end), cround (end),
                  cround (begin), mesg);
 
-  if (unit_flag)
+  if (display_in_cyl_units)
   {
-    begin = (begin - 1) * display_factor;
-    end = end * display_factor - 1;
+    begin = (begin - 1) * units_per_sector;
+    end = end * units_per_sector - 1;
   }
   xbsd_dlabel.d_partitions[i].p_size   = end - begin + 1;
   xbsd_dlabel.d_partitions[i].p_offset = begin;
@@ -279,33 +283,33 @@ xbsd_print_disklabel (int show_all)
     fprintf(f, "# %s:\n", disk_device);
 #endif
     if ((unsigned) lp->d_type < BSD_DKMAXTYPES)
-      fprintf(f, "type: %s\n", xbsd_dktypenames[lp->d_type]);
+      fprintf(f, _("type: %s\n"), xbsd_dktypenames[lp->d_type]);
     else
-      fprintf(f, "type: %d\n", lp->d_type);
-    fprintf(f, "disk: %.*s\n", (int) sizeof(lp->d_typename), lp->d_typename);
-    fprintf(f, "label: %.*s\n", (int) sizeof(lp->d_packname), lp->d_packname);
-    fprintf(f, "flags:");
+      fprintf(f, _("type: %d\n"), lp->d_type);
+    fprintf(f, _("disk: %.*s\n"), (int) sizeof(lp->d_typename), lp->d_typename);
+    fprintf(f, _("label: %.*s\n"), (int) sizeof(lp->d_packname), lp->d_packname);
+    fprintf(f, _("flags:"));
     if (lp->d_flags & BSD_D_REMOVABLE)
-      fprintf(f, " removable");
+      fprintf(f, _(" removable"));
     if (lp->d_flags & BSD_D_ECC)
-      fprintf(f, " ecc");
+      fprintf(f, _(" ecc"));
     if (lp->d_flags & BSD_D_BADSECT)
-      fprintf(f, " badsect");
+      fprintf(f, _(" badsect"));
     fprintf(f, "\n");
     /* On various machines the fields of *lp are short/int/long */
     /* In order to avoid problems, we cast them all to long. */
-    fprintf(f, "bytes/sector: %ld\n", (long) lp->d_secsize);
-    fprintf(f, "sectors/track: %ld\n", (long) lp->d_nsectors);
-    fprintf(f, "tracks/cylinder: %ld\n", (long) lp->d_ntracks);
-    fprintf(f, "sectors/cylinder: %ld\n", (long) lp->d_secpercyl);
-    fprintf(f, "cylinders: %ld\n", (long) lp->d_ncylinders);
-    fprintf(f, "rpm: %d\n", lp->d_rpm);
-    fprintf(f, "interleave: %d\n", lp->d_interleave);
-    fprintf(f, "trackskew: %d\n", lp->d_trackskew);
-    fprintf(f, "cylinderskew: %d\n", lp->d_cylskew);
-    fprintf(f, "headswitch: %ld\t\t# milliseconds\n", (long) lp->d_headswitch);
-    fprintf(f, "track-to-track seek: %ld\t# milliseconds\n", (long) lp->d_trkseek);
-    fprintf(f, "drivedata: ");
+    fprintf(f, _("bytes/sector: %ld\n"), (long) lp->d_secsize);
+    fprintf(f, _("sectors/track: %ld\n"), (long) lp->d_nsectors);
+    fprintf(f, _("tracks/cylinder: %ld\n"), (long) lp->d_ntracks);
+    fprintf(f, _("sectors/cylinder: %ld\n"), (long) lp->d_secpercyl);
+    fprintf(f, _("cylinders: %ld\n"), (long) lp->d_ncylinders);
+    fprintf(f, _("rpm: %d\n"), lp->d_rpm);
+    fprintf(f, _("interleave: %d\n"), lp->d_interleave);
+    fprintf(f, _("trackskew: %d\n"), lp->d_trackskew);
+    fprintf(f, _("cylinderskew: %d\n"), lp->d_cylskew);
+    fprintf(f, _("headswitch: %ld\t\t# milliseconds\n"), (long) lp->d_headswitch);
+    fprintf(f, _("track-to-track seek: %ld\t# milliseconds\n"), (long) lp->d_trkseek);
+    fprintf(f, _("drivedata: "));
     for (i = NDDATA - 1; i >= 0; i--)
       if (lp->d_drivedata[i])
        break;
@@ -314,8 +318,8 @@ xbsd_print_disklabel (int show_all)
     for (j = 0; j <= i; j++)
       fprintf(f, "%ld ", (long) lp->d_drivedata[j]);
   }
-  fprintf (f, "\n%d partitions:\n", lp->d_npartitions);
-  fprintf (f, "#        size   offset    fstype   [fsize bsize   cpg]\n");
+  fprintf (f, _("\n%d partitions:\n"), lp->d_npartitions);
+  fprintf (f, _("#        size   offset    fstype   [fsize bsize   cpg]\n"));
   pp = lp->d_partitions;
   for (i = 0; i < lp->d_npartitions; i++, pp++) {
     if (pp->p_size) {
@@ -371,10 +375,10 @@ static void
 xbsd_write_disklabel (void)
 {
 #if defined (i386) || defined (sparc)
-  printf ("Writing disklabel to %s%d.\n", disk_device, xbsd_part_index+1);
+  printf (_("Writing disklabel to %s%d.\n"), disk_device, xbsd_part_index+1);
   xbsd_writelabel (xbsd_part, &xbsd_dlabel);
 #elif defined (__alpha__)
-  printf ("Writing disklabel to %s.\n", disk_device);
+  printf (_("Writing disklabel to %s.\n"), disk_device);
   xbsd_writelabel (NULL, &xbsd_dlabel);
 #endif
 }
@@ -385,14 +389,14 @@ xbsd_create_disklabel (void)
   char c;
 
 #if defined (i386) || defined (sparc)
-  fprintf (stderr, "%s%d contains no disklabel.\n",
+  fprintf (stderr, _("%s%d contains no disklabel.\n"),
           disk_device, xbsd_part_index+1);
 #elif defined (__alpha__)
-  fprintf (stderr, "%s contains no disklabel.\n", disk_device);
+  fprintf (stderr, _("%s contains no disklabel.\n"), disk_device);
 #endif
 
   while (1)
-    if ((c = tolower (read_char ("Do you want to create a disklabel? (y/n) "))) == 'y')
+    if ((c = tolower (read_char (_("Do you want to create a disklabel? (y/n) ")))) == 'y')
     {
 #if defined (i386) || defined (sparc)
       if (xbsd_initlabel (xbsd_part, &xbsd_dlabel, xbsd_part_index) == 1)
@@ -431,28 +435,28 @@ xbsd_edit_disklabel (void)
   d = &xbsd_dlabel;
 
 #ifdef __alpha__
-  d -> d_secsize    = (u_long) edit_int ((u_long) d -> d_secsize     ,"bytes/sector");
-  d -> d_nsectors   = (u_long) edit_int ((u_long) d -> d_nsectors    ,"sectors/track");
-  d -> d_ntracks    = (u_long) edit_int ((u_long) d -> d_ntracks     ,"tracks/cylinder");
-  d -> d_ncylinders = (u_long) edit_int ((u_long) d -> d_ncylinders  ,"cylinders");
+  d -> d_secsize    = (u_long) edit_int ((u_long) d -> d_secsize     ,_("bytes/sector"));
+  d -> d_nsectors   = (u_long) edit_int ((u_long) d -> d_nsectors    ,_("sectors/track"));
+  d -> d_ntracks    = (u_long) edit_int ((u_long) d -> d_ntracks     ,_("tracks/cylinder"));
+  d -> d_ncylinders = (u_long) edit_int ((u_long) d -> d_ncylinders  ,_("cylinders"));
 #endif
 
   /* d -> d_secpercyl can be != d -> d_nsectors * d -> d_ntracks */
   while (1)
   {
     d -> d_secpercyl = (u_long) edit_int ((u_long) d -> d_nsectors * d -> d_ntracks,
-                                         "sectors/cylinder");
+                                         _("sectors/cylinder"));
     if (d -> d_secpercyl <= d -> d_nsectors * d -> d_ntracks)
       break;
 
-    printf ("Must be <= sectors/track * tracks/cylinder (default).\n");
+    printf (_("Must be <= sectors/track * tracks/cylinder (default).\n"));
   }
-  d -> d_rpm        = (u_short) edit_int ((u_short) d -> d_rpm       ,"rpm");
-  d -> d_interleave = (u_short) edit_int ((u_short) d -> d_interleave,"interleave");
-  d -> d_trackskew  = (u_short) edit_int ((u_short) d -> d_trackskew ,"trackskew");
-  d -> d_cylskew    = (u_short) edit_int ((u_short) d -> d_cylskew   ,"cylinderskew");
-  d -> d_headswitch = (u_long) edit_int ((u_long) d -> d_headswitch  ,"headswitch");
-  d -> d_trkseek    = (u_long) edit_int ((u_long) d -> d_trkseek     ,"track-to-track seek");
+  d -> d_rpm        = (u_short) edit_int ((u_short) d -> d_rpm       ,_("rpm"));
+  d -> d_interleave = (u_short) edit_int ((u_short) d -> d_interleave,_("interleave"));
+  d -> d_trackskew  = (u_short) edit_int ((u_short) d -> d_trackskew ,_("trackskew"));
+  d -> d_cylskew    = (u_short) edit_int ((u_short) d -> d_cylskew   ,_("cylinderskew"));
+  d -> d_headswitch = (u_long) edit_int ((u_long) d -> d_headswitch  ,_("headswitch"));
+  d -> d_trkseek    = (u_long) edit_int ((u_long) d -> d_trkseek     ,_("track-to-track seek"));
 
   d -> d_secperunit = d -> d_secpercyl * d -> d_ncylinders;
 }
@@ -493,7 +497,7 @@ xbsd_write_bootstrap (void)
   else
     dkbasename = "wd";
 
-  printf ("Bootstrap: %sboot -> boot%s (%s): ", dkbasename, dkbasename, dkbasename);
+  printf (_("Bootstrap: %sboot -> boot%s (%s): "), dkbasename, dkbasename, dkbasename);
   if (read_line ())
   {
     line_ptr[strlen (line_ptr)-1] = '\0';
@@ -519,7 +523,7 @@ xbsd_write_bootstrap (void)
   for (p=d; p < e; p++)
     if (*p)
     {
-      fprintf (stderr, "Bootstrap overlaps with disk label!\n");
+      fprintf (stderr, _("Bootstrap overlaps with disk label!\n"));
       exit ( EXIT_FAILURE );
     }
 
@@ -540,9 +544,9 @@ xbsd_write_bootstrap (void)
     fatal (unable_to_write);
 
 #if defined (i386) || defined (sparc)
-  printf ("Bootstrap installed on %s%d.\n", disk_device, xbsd_part_index+1);
+  printf (_("Bootstrap installed on %s%d.\n"), disk_device, xbsd_part_index+1);
 #elif defined (__alpha__)
-  printf ("Bootstrap installed on %s.\n", disk_device);
+  printf (_("Bootstrap installed on %s.\n"), disk_device);
 #endif
 
   sync_disks ();
@@ -563,7 +567,7 @@ xbsd_get_part_index (int max)
   char prompt[40];
   char l;
 
-  sprintf (prompt, "Partition (a-%c): ", 'a' + max - 1);
+  sprintf (prompt, _("Partition (a-%c): "), 'a' + max - 1);
   do
      l = tolower (read_char (prompt));
   while (l < 'a' || l > 'a' + max - 1);
@@ -583,7 +587,7 @@ xbsd_check_new_partition (int *i)
 
     if (t == BSD_MAXPARTITIONS)
     {
-      fprintf (stderr, "The maximum number of partitions has been created\n");
+      fprintf (stderr, _("The maximum number of partitions has been created\n"));
       return 0;
     }
   }
@@ -594,7 +598,7 @@ xbsd_check_new_partition (int *i)
 
   if (xbsd_dlabel.d_partitions[*i].p_size != 0)
   {
-    fprintf (stderr, "This partition already exists.\n");
+    fprintf (stderr, _("This partition already exists.\n"));
     return 0;
   }
   return 1;
@@ -716,7 +720,7 @@ xbsd_readlabel (struct partition *p, struct xbsd_disklabel *d)
     return 0;
 
   if (d -> d_npartitions > BSD_MAXPARTITIONS)
-    fprintf (stderr, "Warning: too many partitions (%d, maximum is %d).\n",
+    fprintf (stderr, _("Warning: too many partitions (%d, maximum is %d).\n"),
             d -> d_npartitions, BSD_MAXPARTITIONS);
   return 1;
 }
@@ -762,7 +766,7 @@ xbsd_writelabel (struct partition *p, struct xbsd_disklabel *d)
 static void
 sync_disks (void)
 {
-  printf ("\nSyncing disks.\n");
+  printf (_("\nSyncing disks.\n"));
   sync ();
   sleep (4);
 }
index 42f7363e4fe5a477982b6b17312fcd0e1b06d3fb..25ed31a3e1894c9867e803a5c660ac5e7dee0e8d 100644 (file)
@@ -5,6 +5,9 @@
  * Copyright (C) Andreas Neuper, Sep 1998.
  *     This file may be modified and redistributed under
  *     the terms of the GNU Public License.
+ *
+ * Sat Mar 20 EST 1999 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ *     Internationalization
  */
 #include <stdio.h>              /* stderr */
 #include <stdlib.h>             /* uint */
 #include <assert.h>             /* assert */
 
 #include <endian.h>
+#include "nls.h"
 #include <linux/major.h>        /* FLOPPY_MAJOR */
 #include <linux/hdreg.h>        /* HDIO_GETGEO */
 
+#include "common.h"
 #include "fdisk.h"
 #include "fdisksgilabel.h"
 
@@ -47,23 +52,22 @@ int  isinfreelist( int b )          \
 /*
  * end of free blocks section
  */
-
 struct systypes sgi_sys_types[] = {
-    {SGI_VOLHDR,  "SGI volhdr"},
-    {0x01,       "SGI trkrepl"},
-    {0x02,       "SGI secrepl"},
-    {SGI_SWAP,   "SGI raw"},
-    {0x04,       "SGI bsd"},
-    {0x05,       "SGI sysv"},
-    {ENTIRE_DISK, "SGI volume"},
-    {SGI_EFS,    "SGI efs"},
-    {0x08,       "SGI lvol"},
-    {0x09,       "SGI rlvol"},
-    {0x0A,       "SGI xfs"},
-    {0x0B,       "SGI xlvol"},
-    {0x0C,       "SGI rxlvol"},
-    {LINUX_SWAP,  "Linux swap"},
-    {LINUX_NATIVE,"Linux native"},
+    {SGI_VOLHDR,  N_("SGI volhdr")},
+    {0x01,       N_("SGI trkrepl")},
+    {0x02,       N_("SGI secrepl")},
+    {SGI_SWAP,   N_("SGI raw")},
+    {0x04,       N_("SGI bsd")},
+    {0x05,       N_("SGI sysv")},
+    {ENTIRE_DISK, N_("SGI volume")},
+    {SGI_EFS,    N_("SGI efs")},
+    {0x08,       N_("SGI lvol")},
+    {0x09,       N_("SGI rlvol")},
+    {0x0A,       N_("SGI xfs")},
+    {0x0B,       N_("SGI xlvol")},
+    {0x0C,       N_("SGI rxlvol")},
+    {LINUX_SWAP,  N_("Linux swap")},
+    {LINUX_NATIVE,N_("Linux native")},
     {0, NULL }
 };
 
@@ -136,8 +140,8 @@ int check_sgi_label()
 {
     if (sizeof(sgilabel) > 512) {
            fprintf(stderr,
-                   "According to MIPS Computer Systems, Inc the "
-                   "Label must not contain more than 512 bytes\n");
+                   _("According to MIPS Computer Systems, Inc the "
+                   "Label must not contain more than 512 bytes\n"));
            exit(1);
     }
 
@@ -155,7 +159,7 @@ int check_sgi_label()
     if( two_s_complement_32bit_sum( (unsigned int*)sgilabel,
                        sizeof(*sgilabel) ) )
     {
-       fprintf( stderr, "Detected sgi disklabel with wrong checksum.\n" );
+       fprintf( stderr, _("Detected sgi disklabel with wrong checksum.\n"));
     } else
     {
        heads = sgi_get_ntrks();
@@ -179,27 +183,28 @@ sgi_list_table( int xtra )
 
     if( xtra )
     {
-       printf( "\nDisk %s (SGI disk label): %d heads, %d sectors\n"
+       printf(_("\nDisk %s (SGI disk label): %d heads, %d sectors\n"
               "%d cylinders, %d physical cylinders\n"
               "%d extra sects/cyl, interleave %d:1\n"
               "%s\n"
-              "Units = %ss of %d * 512 bytes\n\n",
+              "Units = %s of %d * 512 bytes\n\n"),
               disk_device, heads, sectors, cylinders,
               SSWAP16(sgiparam.pcylcount),
               SSWAP16(sgiparam.sparecyl),
               SSWAP16(sgiparam.ilfact),
               (char *)sgilabel,
-              str_units(), display_factor);
+              str_units(PLURAL), units_per_sector);
     } else
     {
-       printf( "\nDisk %s (SGI disk label): %d heads, %d sectors, %d cylinders\n"
-               "Units = %ss of %d * 512 bytes\n\n",
+       printf( _("\nDisk %s (SGI disk label): "
+               "%d heads, %d sectors, %d cylinders\n"
+               "Units = %s of %d * 512 bytes\n\n"),
                disk_device, heads, sectors, cylinders,
-               str_units(), display_factor );
+               str_units(PLURAL), units_per_sector );
     }
-    printf("----- partitions -----\n"
-          "%*s  Info      Start       End   Sectors  Id  System\n",
-          w + 1, "Device");
+    printf(_("----- partitions -----\n"
+          "%*s  Info      Start       End   Sectors  Id  System\n"),
+          w + 1, _("Device"));
     for (i = 0 ; i < partitions; i++)
     {
        if( sgi_get_num_sectors(i) || debug )
@@ -216,12 +221,12 @@ sgi_list_table( int xtra )
 /* no odd flag on end */  (long) len, 
 /* type id */             sgi_get_sysid(i),
 /* type name */           (type = partition_type(sgi_get_sysid(i)))
-                   ? type : "Unknown");
+                   ? type : _("Unknown"));
        }
     }
-    printf(    "----- bootinfo -----\nBootfile: %s\n"
-               "----- directory entries -----\n",
-               sgilabel->boot_file );
+    printf(_("----- bootinfo -----\nBootfile: %s\n"
+            "----- directory entries -----\n"),
+          sgilabel->boot_file );
     for (i = 0 ; i < volumes; i++)
     {
        if (sgilabel->directory[i].vol_file_size)
@@ -229,7 +234,7 @@ sgi_list_table( int xtra )
            __u32 start = SSWAP32(sgilabel->directory[i].vol_file_start);
            __u32 len = SSWAP32(sgilabel->directory[i].vol_file_size);
            char*name = sgilabel->directory[i].vol_file_name;
-           printf("%2d: %-10s sector%5u size%8u\n",
+           printf(_("%2d: %-10s sector%5u size%8u\n"),
                    i, name, (unsigned int) start, (unsigned int) len);
        }
     }
@@ -290,25 +295,25 @@ sgi_check_bootfile( const char* aFile )
 {
     if( strlen( aFile ) < 3 ) /* "/a\n" is minimum */
     {
-       printf( "\nInvalid Bootfile!\n"
+       printf( _("\nInvalid Bootfile!\n"
                "\tThe bootfile must be an absolute non-zero pathname,\n"
-               "\te.g. \"/unix\" or \"/unix.save\".\n" );
+               "\te.g. \"/unix\" or \"/unix.save\".\n") );
        return 0;
     } else
     if( strlen( aFile ) > 16 )
     {
-       printf( "\n\tName of Bootfile too long:  16 bytes maximum.\n" );
+       printf( _("\n\tName of Bootfile too long:  16 bytes maximum.\n") );
        return 0;
     } else
     if( aFile[0] != '/' )
     {
-       printf( "\n\tBootfile must have a fully qualified pathname.\n" );
+       printf( _("\n\tBootfile must have a fully qualified pathname.\n") );
        return 0;
     }
     if( strncmp( aFile, sgilabel->boot_file, 16 ) )
     {
-       printf( "\n\tBe aware, that the bootfile is not checked for existence.\n\t"
-               "SGI's default is \"/unix\" and for backup \"/unix.save\".\n" );
+       printf( _("\n\tBe aware, that the bootfile is not checked for existence.\n\t"
+               "SGI's default is \"/unix\" and for backup \"/unix.save\".\n") );
        /* filename is correct and did change */
        return 1;
     }
@@ -335,7 +340,7 @@ sgi_set_bootfile( const char* aFile )
                sgilabel->boot_file[i] = 0;
            i++;
        }
-       printf( "\n\tBootfile is changed to \"%s\".\n", sgilabel->boot_file );
+       printf( _("\n\tBootfile is changed to \"%s\".\n"), sgilabel->boot_file );
     }
     return;
 }
@@ -385,7 +390,7 @@ sgi_write_table( void )
 
 static
 int
-compare_start( int*x, int*y )
+compare_start( int *x, int *y )
 {
     /*
      * sort according to start sectors
@@ -423,7 +428,6 @@ verify_sgi( int verbose )
 {
     int Index[16];     /* list of valid partitions */
     int sortcount = 0; /* number of used partitions, i.e. non-zero lengths */
-    int compare_start();/* comparison function above */
     int entire = 0, i = 0;     /* local counters */
     int start = 0;
     int gap = 0;       /* count unused blocks */
@@ -441,7 +445,7 @@ verify_sgi( int verbose )
                if( entire++ == 1 )
                {
                    if(verbose)
-                       printf("More than one entire disk entriy present.\n");
+                       printf(_("More than one entire disk entry present.\n"));
                }
            }
        }
@@ -449,27 +453,27 @@ verify_sgi( int verbose )
     if( sortcount == 0 )
     {
        if(verbose)
-           printf("No partitions defined\n");
+           printf(_("No partitions defined\n"));
         return lastblock;
     }
     qsort( Index, sortcount, sizeof(Index[0]), (void*)compare_start );
     if( sgi_get_sysid( Index[0] ) == ENTIRE_DISK )
     {
        if( ( Index[0] != 10 ) && verbose )
-           printf( "IRIX likes when Partition 11 covers the entire disk.\n" );
+           printf( _("IRIX likes when Partition 11 covers the entire disk.\n") );
        if( ( sgi_get_start_sector( Index[0] ) != 0 ) && verbose )
-           printf( "The entire disk partition should start at block 0,\nnot "
-                   "at diskblock %d.\n", sgi_get_start_sector(Index[0] ) );
+           printf( _("The entire disk partition should start at block 0,\nnot "
+                   "at diskblock %d.\n"), sgi_get_start_sector(Index[0] ) );
     if(debug)  /* I do not understand how some disks fulfil it */
        if( ( sgi_get_num_sectors( Index[0] ) != lastblock ) && verbose )
-           printf( "The entire disk partition is only %d diskblock large,\n"
-                   "but the disk is %d diskblocks long.\n",
+           printf( _("The entire disk partition is only %d diskblock large,\n"
+                   "but the disk is %d diskblocks long.\n"),
                    sgi_get_num_sectors( Index[0] ), lastblock );
        lastblock = sgi_get_num_sectors( Index[0] );
     } else
     {
        if( verbose )
-           printf( "One Partition (#11) should cover the entire disk.\n" );
+           printf( _("One Partition (#11) should cover the entire disk.\n") );
        if(debug>2)
            printf( "sysid=%d\tpartition=%d\n",
                        sgi_get_sysid( Index[0] ), Index[0]+1 );
@@ -481,14 +485,14 @@ verify_sgi( int verbose )
        {
        if(debug)       /* I do not understand how some disks fulfil it */
            if( verbose )
-               printf( "Partition %d does not start on cylinder boundary.\n",
+               printf( _("Partition %d does not start on cylinder boundary.\n"),
                        Index[i]+1 );
        }
        if( sgi_get_num_sectors( Index[i] ) % cylsize != 0 )
        {
        if(debug)       /* I do not understand how some disks fulfil it */
            if( verbose )
-               printf( "Partition %d does not end on cylinder boundary.\n",
+               printf( _("Partition %d does not end on cylinder boundary.\n"),
                        Index[i]+1 );
        }
        /* We cannot handle several "entire disk" entries. */
@@ -496,7 +500,7 @@ verify_sgi( int verbose )
        if( start > sgi_get_start_sector( Index[i] ) )
        {
            if( verbose )
-               printf( "The Partition %d and %d overlap by %d sectors.\n",
+               printf( _("The Partition %d and %d overlap by %d sectors.\n"),
                        Index[i-1]+1, Index[i]+1,
                        start - sgi_get_start_sector( Index[i] ) );
            if( gap >  0 ) gap = -gap;
@@ -505,7 +509,7 @@ verify_sgi( int verbose )
        if( start < sgi_get_start_sector( Index[i] ) )
        {
            if( verbose )
-               printf( "Unused gap of %8d sectors - sectors %8d-%d\n",
+               printf( _("Unused gap of %8d sectors - sectors %8d-%d\n"),
                        sgi_get_start_sector( Index[i] ) - start,
                        start, sgi_get_start_sector( Index[i] )-1 );
            gap += sgi_get_start_sector( Index[i] ) - start;
@@ -525,7 +529,7 @@ verify_sgi( int verbose )
     if( ( start < lastblock ) )
     {
        if( verbose )
-           printf( "Unused gap of %8d sectors - sectors %8d-%d\n",
+           printf( _("Unused gap of %8d sectors - sectors %8d-%d\n"),
                    lastblock - start, start, lastblock-1 );
        gap += lastblock - start;
        add2freelist( start, lastblock );
@@ -538,20 +542,20 @@ verify_sgi( int verbose )
     {
        if( !sgi_get_num_sectors( sgi_get_bootpartition() ) )
        {
-           printf( "\nThe boot partition does not exist.\n" );
+           printf( _("\nThe boot partition does not exist.\n") );
        }
        if( !sgi_get_num_sectors( sgi_get_swappartition() ) )
        {
-           printf( "\nThe swap partition does not exist.\n" );
+           printf( _("\nThe swap partition does not exist.\n") );
        } else
        if( ( sgi_get_sysid( sgi_get_swappartition() ) != SGI_SWAP )
        &&  ( sgi_get_sysid( sgi_get_swappartition() ) != LINUX_SWAP ) )
        {
-           printf( "\nThe swap partition has no swap type.\n" );
+           printf( _("\nThe swap partition has no swap type.\n") );
        }
        if( sgi_check_bootfile( "/unix" ) )
        {
-           printf( "\tYou have chosen an unusual boot file name.\n" );
+           printf( _("\tYou have chosen an unusual boot file name.\n") );
        }
     }
     return gap;
@@ -562,18 +566,18 @@ sgi_change_sysid( int i, int sys )
 {
     if( sgi_get_num_sectors(i) == 0 ) /* caught already before, ... */
     {
-       printf("Sorry You may change the Tag of non-empty partitions.\n");
+       printf(_("Sorry You may change the Tag of non-empty partitions.\n"));
        return;
     }
     if( ((sys != ENTIRE_DISK ) && (sys != SGI_VOLHDR))
      && (sgi_get_start_sector(i)<1) )
     {
        read_chars(
-       "It is highly recommended that the partition at offset 0\n"
+       _("It is highly recommended that the partition at offset 0\n"
        "is of type \"SGI volhdr\", the IRIX system will rely on it to\n"
        "retrieve from its directory standalone tools like sash and fx.\n"
        "Only the \"SGI volume\" entire disk section may violate this.\n"
-       "Type YES if you are sure about tagging this partition differently.\n" );
+       "Type YES if you are sure about tagging this partition differently.\n"));
        if (strcmp (line_ptr, "YES\n"))
                     return;
     }
@@ -614,9 +618,7 @@ sgi_set_partition( int i, uint start, uint length, int sys )
            SSWAP32( start );
     changed[i] = 1;
     if( sgi_gaps(0) < 0 )      /* rebuild freelist */
-    {
-       printf( "Do You know, You got a partition overlap on the disk?\n" );
-    }
+       printf(_("Do You know, You got a partition overlap on the disk?\n"));
     return;
 }
 
@@ -679,38 +681,36 @@ sgi_add_partition( int n, int sys )
     }
     if( sgi_get_num_sectors(n) )
     {
-       printf( "Partition %d is already defined.  Delete "
-               "it before re-adding it.\n", n + 1);
+       printf(_("Partition %d is already defined.  Delete "
+               "it before re-adding it.\n"), n + 1);
        return;
     }
     if( (sgi_entire() == -1)
     &&  (sys != SGI_VOLUME) )
     {
-       printf( "Attempting to generate entire disk entry automatically.\n" );
+       printf(_("Attempting to generate entire disk entry automatically.\n"));
        sgi_set_entire();
        sgi_set_volhdr();
     }
     if( (sgi_gaps() == 0)
     &&  (sys != SGI_VOLUME) )
     {
-       printf( "The entire disk is already covered with partitions.\n" );
+       printf(_("The entire disk is already covered with partitions.\n"));
        return;
     }
     if( sgi_gaps() < 0 )
     {
-       printf( "You got a partition overlap on the disk. Fix it first!\n" );
+       printf(_("You got a partition overlap on the disk. Fix it first!\n"));
        return;
     }
-    sprintf(mesg, "First %s", str_units());
-    for(;;)
-    {
-       if(sys == SGI_VOLUME)
-       {
+    sprintf(mesg, _("First %s"), str_units(SINGULAR));
+    for(;;) {
+       if(sys == SGI_VOLUME) {
            last = sgi_get_lastblock();
            first = read_int(0, 0, last-1, 0, mesg);
            if( first != 0 ) {
-               printf( "It is highly recommended that eleventh partition\n"
-                       "covers the entire disk and is of type `SGI volume'\n");
+               printf(_("It is highly recommended that eleventh partition\n"
+                      "covers the entire disk and is of type `SGI volume'\n"));
            }
        } else {
            first = freelist[0].first;
@@ -718,30 +718,28 @@ sgi_add_partition( int n, int sys )
            first = read_int(scround(first), scround(first), scround(last)-1,
                             0, mesg);
        }
-       if (unit_flag)
-           first *= display_factor;
+       if (display_in_cyl_units)
+           first *= units_per_sector;
        else
            first = first; /* align to cylinder if you know how ... */
        if( !last )
            last = isinfreelist(first);
        if( last == 0 ) {
-           printf( "You will get a partition overlap on the disk. "
-                   "Fix it first!\n" );
+           printf(_("You will get a partition overlap on the disk. "
+                   "Fix it first!\n"));
        } else
            break;
     }
-    sprintf(mesg, " Last %s", str_units());
+    sprintf(mesg, _(" Last %s"), str_units(SINGULAR));
     last = read_int(scround(first), scround(last)-1, scround(last)-1,
                    scround(first), mesg)+1;
-    if (unit_flag)                                                   
-       last *= display_factor;                                     
+    if (display_in_cyl_units)
+       last *= units_per_sector;                                     
     else                                                             
        last = last; /* align to cylinder if You know how ... */
     if( (sys == SGI_VOLUME) && ( first != 0 || last != sgi_get_lastblock() ) )
-    {
-       printf( "It is highly recommended that eleventh partition\n"
-               "covers the entire disk and is of type `SGI volume'\n");
-    }
+       printf(_("It is highly recommended that eleventh partition\n"
+               "covers the entire disk and is of type `SGI volume'\n"));
     sgi_set_partition( n, first, last-first, sys );
     return;
 }
@@ -755,9 +753,9 @@ create_sgilabel( void )
             int sysid; } old[4];
     int i=0;
     fprintf( stderr,
-       "Building a new SGI disklabel. Changes will remain in memory only,\n"
+       _("Building a new SGI disklabel. Changes will remain in memory only,\n"
        "until you decide to write them. After that, of course, the previous\n"
-       "content will be unrecoverable lost.\n\n");
+       "content will be unrecoverable lost.\n\n"));
 #if BYTE_ORDER == LITTLE_ENDIAN
     other_endian = 1;
 #else
@@ -783,9 +781,9 @@ create_sgilabel( void )
                old[i].sysid = part_table[i]->sys_ind;
                old[i].start = get_start_sect( part_table[i] );
                old[i].nsect = get_nr_sects( part_table[i] );
-               printf( "Trying to keep parameters of partition %d.\n", i );
+               printf( _("Trying to keep parameters of partition %d.\n"), i );
                if( debug )
-                   printf( "ID=%02x\tSTART=%d\tLENGTH=%d\n",
+                   printf( _("ID=%02x\tSTART=%d\tLENGTH=%d\n"),
                            old[i].sysid, old[i].start, old[i].nsect );
            }
        }
index 6eb7293f9c8427765cb30e070134ce1bd3fd149c..fa35f8f3e7bc9d7935ee342ba5cba4bbeedf3e89 100644 (file)
@@ -91,7 +91,6 @@ typedef struct {
                                  : (__u16)(x))
 #define SSWAP32(x) (other_endian ? __swap32(x) \
                                  : (__u32)(x))
-#define scround(x) ((x+(display_factor-1)*unit_flag)/display_factor)
 
 /* fdisk.c */
 #define sgilabel ((sgi_partition *)buffer)
index 70837737919b006ae594a3fa45e5ea2b2f831523..d484e7932169e9d184ec37c5abe9551f9495222a 100644 (file)
@@ -5,6 +5,9 @@
  *     Jakub Jelinek (jj@sunsite.mff.cuni.cz), July 1996
  *
  * Merged with fdisk for other architectures, aeb, June 1998.
+ *
+ * Sat Mar 20 EST 1999 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ *      Internationalization
  */
 
 #include <stdio.h>             /* stderr */
 #include <unistd.h>            /* write */
 #include <sys/ioctl.h>         /* ioctl */
 #include <sys/stat.h>          /* stat */
+#include "nls.h"
 
 #include <endian.h>
-#if 1
+#include "../defines.h"                /* for HAVE_scsi_h */
+#ifdef HAVE_scsi_h
+#define u_char unsigned char
 #include <scsi/scsi.h>         /* SCSI_IOCTL_GET_IDLUN */
+#undef u_char
 #endif
 #include <linux/major.h>       /* FLOPPY_MAJOR */
 #include <linux/hdreg.h>       /* HDIO_GETGEO */
 
+#include "common.h"
 #include "fdisk.h"
 #include "fdisksunlabel.h"
 
@@ -32,17 +40,17 @@ static int     floppy = 0;
 #define LINUX_NATIVE    0x83
 
 struct systypes sun_sys_types[] = {
-       {0, "Empty"},
-       {1, "Boot"},
-       {2, "SunOS root"},
-       {SUNOS_SWAP, "SunOS swap"},
-       {4, "SunOS usr"},
-       {WHOLE_DISK, "Whole disk"},
-       {6, "SunOS stand"},
-       {7, "SunOS var"},
-       {8, "SunOS home"},
-       {LINUX_SWAP, "Linux swap"},
-       {LINUX_NATIVE, "Linux native"},
+       {0, N_("Empty")},
+       {1, N_("Boot")},
+       {2, N_("SunOS root")},
+       {SUNOS_SWAP, N_("SunOS swap")},
+       {4, N_("SunOS usr")},
+       {WHOLE_DISK, N_("Whole disk")},
+       {6, N_("SunOS stand")},
+       {7, N_("SunOS var")},
+       {8, N_("SunOS home")},
+       {LINUX_SWAP, N_("Linux swap")},
+       {LINUX_NATIVE, N_("Linux native")},
        { 0, NULL }
 };
 
@@ -111,10 +119,10 @@ int check_sun_label(void)
        ush = ((unsigned short *) (sunlabel + 1)) - 1;
        for (csum = 0; ush >= (unsigned short *)sunlabel;) csum ^= *ush--;
        if (csum) {
-               fprintf(stderr, "Detected sun disklabel with wrong checksum.\n"
+               fprintf(stderr,_("Detected sun disklabel with wrong checksum.\n"
                                "Probably you'll have to set all the values,\n"
                                "e.g. heads, sectors, cylinders and partitions\n"
-                               "or force a fresh label (s command in main menu)\n");
+                               "or force a fresh label (s command in main menu)\n"));
        } else {
                heads = SSWAP16(sunlabel->ntrks);
                cylinders = SSWAP16(sunlabel->ncyl);
@@ -204,7 +212,7 @@ sun_autoconfigure_scsi() {
                                             continue;
                                         if (!strstr(model, sun_drives[i].model))
                                             continue;
-                                        printf("Autoconfigure found a %s%s%s\n",sun_drives[i].vendor,(*sun_drives[i].vendor) ? " " : "",sun_drives[i].model);
+                                        printf(_("Autoconfigure found a %s%s%s\n"),sun_drives[i].vendor,(*sun_drives[i].vendor) ? " " : "",sun_drives[i].model);
                                         p = sun_drives + i;
                                         break;
                                     }
@@ -230,9 +238,10 @@ void create_sunlabel(void)
        unsigned char c;
        struct sun_predefined_drives *p = NULL;
 
-       fprintf(stderr, "Building a new sun disklabel. Changes will remain in memory only,\n"
-                       "until you decide to write them. After that, of course, the previous\n"
-                       "content won't be recoverable.\n\n");
+       fprintf(stderr,
+       _("Building a new sun disklabel. Changes will remain in memory only,\n"
+               "until you decide to write them. After that, of course, the previous\n"
+       "content won't be recoverable.\n\n"));
 #if BYTE_ORDER == LITTLE_ENDIAN
        other_endian = 1;
 #else
@@ -241,9 +250,9 @@ void create_sunlabel(void)
        memset(buffer, 0, SECTOR_SIZE);
        sunlabel->magic = SSWAP16(SUN_LABEL_MAGIC);
        if (!floppy) {
-           puts("Drive type\n"
+           puts(_("Drive type\n"
                 "   ?   auto configure\n"
-                "   0   custom (with hardware detected defaults)");
+                "   0   custom (with hardware detected defaults)"));
            for (i = 0; i < SIZE(sun_drives); i++) {
                printf("   %c   %s%s%s\n",
                       i + 'a', sun_drives[i].vendor,
@@ -251,7 +260,7 @@ void create_sunlabel(void)
                       sun_drives[i].model);
            }
            for (;;) {
-               c = read_char("Select type (? for auto, 0 for custom): ");
+               c = read_char(_("Select type (? for auto, 0 for custom): "));
                if (c >= 'a' && c < 'a' + SIZE(sun_drives)) {
                    p = sun_drives + c - 'a';
                    break;
@@ -263,7 +272,7 @@ void create_sunlabel(void)
                } else if (c == '?' && scsi_disk) {
                    p = sun_autoconfigure_scsi();
                    if (!p)
-                       printf("Autoconfigure failed.\n");
+                       printf(_("Autoconfigure failed.\n"));
                    else
                        break;
                }
@@ -290,26 +299,26 @@ void create_sunlabel(void)
                sunlabel->ilfact = SSWAP16(1);
                sunlabel->sparecyl = 0;
            } else {
-               heads = read_int(1,heads,1024,0,"Heads");
-               sectors = read_int(1,sectors,1024,0,"Sectors/track");
+               heads = read_int(1,heads,1024,0,_("Heads"));
+               sectors = read_int(1,sectors,1024,0,_("Sectors/track"));
                if (cylinders)
-                   cylinders = read_int(1,cylinders-2,65535,0,"Cylinders");
+                   cylinders = read_int(1,cylinders-2,65535,0,_("Cylinders"));
                else
-                   cylinders = read_int(1,0,65535,0,"Cylinders");
+                   cylinders = read_int(1,0,65535,0,_("Cylinders"));
                sunlabel->nacyl =
                        SSWAP16(read_int(0,2,65535,0,
-                                        "Alternate cylinders"));
+                                        _("Alternate cylinders")));
                sunlabel->pcylcount =
                        SSWAP16(read_int(0,cylinders+SSWAP16(sunlabel->nacyl),
-                                        65535,0,"Physical cylinders"));
+                                        65535,0,_("Physical cylinders")));
                sunlabel->rspeed =
                        SSWAP16(read_int(1,5400,100000,0,
-                                        "Rotation speed (rpm)"));
+                                        _("Rotation speed (rpm)")));
                sunlabel->ilfact =
-                       SSWAP16(read_int(1,1,32,0,"Interleave factor"));
+                       SSWAP16(read_int(1,1,32,0,_("Interleave factor")));
                sunlabel->sparecyl =
                        SSWAP16(read_int(0,0,sectors,0,
-                                        "Extra sectors per cylinder"));
+                                        _("Extra sectors per cylinder")));
            }
        } else {
            sunlabel->sparecyl = SSWAP16(p->sparecyl);
@@ -322,10 +331,10 @@ void create_sunlabel(void)
            cylinders = p->ncyl;
            heads = p->ntrks;
            sectors = p->nsect;
-           puts("You may change all the disk params from the x menu");
+           puts(_("You may change all the disk params from the x menu"));
        }
        sprintf(buffer, "%s%s%s cyl %d alt %d hd %d sec %d", 
-                       p ? p->vendor : "", (p && *p->vendor) ? " " : "", p ? p->model : (floppy ? "3,5\" floppy" : "Linux custom"),
+                       p ? p->vendor : "", (p && *p->vendor) ? " " : "", p ? p->model : (floppy ? _("3,5\" floppy") : _("Linux custom")),
                        cylinders, SSWAP16(sunlabel->nacyl), heads, sectors);
        sunlabel->ntrks = SSWAP16(heads);
        sunlabel->nsect = SSWAP16(sectors);
@@ -406,7 +415,7 @@ void verify_sun(void)
     for (k = 0; k < 7; k++) {
        for (i = 0; i < 8; i++) {
            if (k && (lens[i] % (heads * sectors))) {
-               printf("Partition %d doesn't end on cylinder boundary\n", i+1);
+               printf(_("Partition %d doesn't end on cylinder boundary\n"), i+1);
            }
            if (lens[i]) {
                for (j = 0; j < i; j++)
@@ -426,8 +435,8 @@ void verify_sun(void)
                                endo = starts[i]+lens[i];
                                if (starts[j]+lens[j] < endo)
                                        endo = starts[j]+lens[j];
-                               printf("Partition %d overlaps with others in "
-                                      "sectors %d-%d\n", i+1, starto, endo);
+                               printf(_("Partition %d overlaps with others in "
+                                      "sectors %d-%d\n"), i+1, starto, endo);
                            }
                        }
                    }
@@ -443,18 +452,18 @@ void verify_sun(void)
     qsort(array,SIZE(array),sizeof(array[0]),
          (int (*)(const void *,const void *)) verify_sun_cmp);
     if (array[0] == -1) {
-       printf("No partitions defined\n");
+       printf(_("No partitions defined\n"));
        return;
     }
     stop = cylinders * heads * sectors;
     if (starts[array[0]])
-        printf("Unused gap - sectors 0-%d\n",starts[array[0]]);
+        printf(_("Unused gap - sectors 0-%d\n"),starts[array[0]]);
     for (i = 0; i < 7 && array[i+1] != -1; i++) {
-        printf("Unused gap - sectors %d-%d\n",starts[array[i]]+lens[array[i]],starts[array[i+1]]);
+        printf(_("Unused gap - sectors %d-%d\n"),starts[array[i]]+lens[array[i]],starts[array[i+1]]);
     }
     start = starts[array[i]]+lens[array[i]];
     if (start < stop)
-        printf("Unused gap - sectors %d-%d\n",start,stop);
+        printf(_("Unused gap - sectors %d-%d\n"),start,stop);
 }
 
 void add_sun_partition(int n, int sys)
@@ -467,8 +476,8 @@ void add_sun_partition(int n, int sys)
        int i, first, last;
 
        if (sunlabel->partitions[n].num_sectors && sunlabel->infos[n].id) {
-               printf("Partition %d is already defined.  Delete "
-                       "it before re-adding it.\n", n + 1);
+               printf(_("Partition %d is already defined.  Delete "
+                       "it before re-adding it.\n"), n + 1);
                return;
        }
        
@@ -477,20 +486,20 @@ void add_sun_partition(int n, int sys)
                if (n == 2)
                        whole_disk = 1;
                else {
-                       printf("Other partitions already cover the whole disk.\nDelete "
-                              "some/shrink them before retry.\n");
+                       printf(_("Other partitions already cover the whole disk.\nDelete "
+                              "some/shrink them before retry.\n"));
                        return;
                }
        }
-       sprintf(mesg, "First %s", str_units());
+       sprintf(mesg, _("First %s"), str_units(SINGULAR));
        for (;;) {
                if (whole_disk)
                        first = read_int(0, 0, 0, 0, mesg);
                else
                        first = read_int(scround(start), scround(stop)+1,
                                         scround(stop), 0, mesg);
-               if (unit_flag)
-                       first *= display_factor;
+               if (display_in_cyl_units)
+                       first *= units_per_sector;
                else
                        /* Starting sector has to be properly aligned */
                        first = (first + heads * sectors - 1) / (heads * sectors);
@@ -507,7 +516,7 @@ and is of type `Whole disk'\n");
                            whole_disk = 1;
                            break;
                        }
-                       printf("Sector %d is already allocated\n", first);
+                       printf(_("Sector %d is already allocated\n"), first);
                } else
                        break;
        }
@@ -517,7 +526,7 @@ and is of type `Whole disk'\n");
                if (starts[i] > first && starts[i] < stop)
                        stop = starts[i];
        }
-       sprintf(mesg, "Last %s or +size or +sizeM or +sizeK", str_units());
+       sprintf(mesg, _("Last %s or +size or +sizeM or +sizeK"), str_units(SINGULAR));
        if (whole_disk)
                last = read_int(scround(stop2), scround(stop2), scround(stop2),
                                0, mesg);
@@ -527,16 +536,19 @@ and is of type `Whole disk'\n");
        else
                last = read_int(scround(first), scround(stop), scround(stop),
                                scround(first), mesg);
-       if (unit_flag)
-               last *= display_factor;
+       if (display_in_cyl_units)
+               last *= units_per_sector;
        if (n == 2 && !first) {
                if (last >= stop2) {
                    whole_disk = 1;
                    last = stop2;
                } else if (last > stop) {
-                   printf ("You haven't covered whole disk with 3rd partition, but your value\n"
-                           "%d %s coveres some other partition. Your entry have been changed\n"
-                           "to %d %s\n", scround(last), str_units(), scround(stop), str_units());
+                   printf (
+   _("You haven't covered the whole disk with the 3rd partition, but your value\n"
+     "%d %s covers some other partition. Your entry has been changed\n"
+     "to %d %s\n"),
+                       scround(last), str_units(SINGULAR),
+                       scround(stop), str_units(SINGULAR));
                    last = stop;
                }
        } else if (!whole_disk && last > stop)
@@ -552,10 +564,10 @@ sun_delete_partition(int i) {
            !sunlabel->partitions[i].start_cylinder && 
            SSWAP32(sunlabel->partitions[i].num_sectors)
              == heads * sectors * cylinders)
-               printf("If you want to maintain SunOS/Solaris compatibility, "
+               printf(_("If you want to maintain SunOS/Solaris compatibility, "
                       "consider leaving this\n"
                       "partition as Whole disk (5), starting at 0, with %u "
-                      "sectors\n",
+                      "sectors\n"),
                       (uint) SSWAP32(sunlabel->partitions[i].num_sectors));
        sunlabel->infos[i].id = 0;
        sunlabel->partitions[i].num_sectors = 0;
@@ -565,11 +577,11 @@ void
 sun_change_sysid(int i, int sys) {
        if (sys == LINUX_SWAP && !sunlabel->partitions[i].start_cylinder) {
            read_chars(
-             "It is highly recommended that the partition at offset 0\n"
+             _("It is highly recommended that the partition at offset 0\n"
              "is UFS, EXT2FS filesystem or SunOS swap. Putting Linux swap\n"
              "there may destroy your partition table and bootblock.\n"
              "Type YES if you're very sure you would like that partition\n"
-             "tagged with 82 (Linux swap): ");
+             "tagged with 82 (Linux swap): "));
            if (strcmp (line_ptr, "YES\n"))
                    return;
        }
@@ -595,26 +607,28 @@ sun_list_table(int xtra) {
 
        w = strlen(disk_device);
        if (xtra)
-               printf("\nDisk %s (Sun disk label): %d heads, %d sectors, %d rpm\n"
-                      "%d cylinders, %d alternate cylinders, %d physical cylinders\n"
-                      "%d extra sects/cyl, interleave %d:1\n"
-                      "%s\n"
-                      "Units = %ss of %d * 512 bytes\n\n",
+               printf(
+               _("\nDisk %s (Sun disk label): %d heads, %d sectors, %d rpm\n"
+               "%d cylinders, %d alternate cylinders, %d physical cylinders\n"
+               "%d extra sects/cyl, interleave %d:1\n"
+               "%s\n"
+               "Units = %s of %d * 512 bytes\n\n"),
                       disk_device, heads, sectors, SSWAP16(sunlabel->rspeed),
                       cylinders, SSWAP16(sunlabel->nacyl),
                       SSWAP16(sunlabel->pcylcount),
                       SSWAP16(sunlabel->sparecyl),
                       SSWAP16(sunlabel->ilfact),
                       (char *)sunlabel,
-                      str_units(), display_factor);
+                      str_units(PLURAL), units_per_sector);
        else
-               printf("\nDisk %s (Sun disk label): %d heads, %d sectors, %d cylinders\n"
-                      "Units = %ss of %d * 512 bytes\n\n",
+               printf(
+       _("\nDisk %s (Sun disk label): %d heads, %d sectors, %d cylinders\n"
+       "Units = %s of %d * 512 bytes\n\n"),
                       disk_device, heads, sectors, cylinders,
-                      str_units(), display_factor);
+                      str_units(PLURAL), units_per_sector);
 
-       printf("%*s Flag     Start       End    Blocks   Id  System\n",
-              w + 1, "Device");
+       printf(_("%*s Flag    Start       End    Blocks   Id  System\n"),
+              w + 1, _("Device"));
        for (i = 0 ; i < partitions; i++) {
                if (sunlabel->partitions[i].num_sectors) {
                        __u32 start = SSWAP32(sunlabel->partitions[i].start_cylinder) * heads * sectors;
@@ -629,7 +643,7 @@ sun_list_table(int xtra) {
 /* odd flag on end */    (long) len / 2, len & 1 ? '+' : ' ',
 /* type id */            sunlabel->infos[i].id,
 /* type name */                  (type = partition_type(sunlabel->infos[i].id))
-                               ? type : "Unknown");
+                               ? type : _("Unknown"));
                }
        }
 }
@@ -638,7 +652,7 @@ void
 sun_set_alt_cyl(void) {
        sunlabel->nacyl =
                SSWAP16(read_int(0,SSWAP16(sunlabel->nacyl), 65535, 0,
-                                "Number of alternate cylinders"));
+                                _("Number of alternate cylinders")));
 }
 
 void
@@ -650,28 +664,28 @@ void
 sun_set_xcyl(void) {
        sunlabel->sparecyl =
                SSWAP16(read_int(0, SSWAP16(sunlabel->sparecyl), sectors, 0,
-                                "Extra sectors per cylinder"));
+                                _("Extra sectors per cylinder")));
 }
 
 void
 sun_set_ilfact(void) {
        sunlabel->ilfact =
                SSWAP16(read_int(1, SSWAP16(sunlabel->ilfact), 32, 0,
-                                "Interleave factor"));
+                                _("Interleave factor")));
 }
 
 void
 sun_set_rspeed(void) {
        sunlabel->rspeed =
                SSWAP16(read_int(1, SSWAP16(sunlabel->rspeed), 100000, 0,
-                                "Rotation speed (rpm)"));
+                                _("Rotation speed (rpm)")));
 }
 
 void
 sun_set_pcylcount(void) {
        sunlabel->pcylcount =
                SSWAP16(read_int(0, SSWAP16(sunlabel->pcylcount), 65535, 0,
-                                "Number of physical cylinders"));
+                                _("Number of physical cylinders")));
 }
 
 void
index d9d3706d30e804c09445c9e3b8a10129ef054f76..1a75713c8f8010dd23f4275bb2507e28a33d0650 100644 (file)
@@ -36,8 +36,6 @@ typedef struct {
 #define SSWAP32(x) (other_endian ? __swap32(x) \
                                 : (__u32)(x))
                                 
-#define scround(x) ((x+(display_factor-1)*unit_flag)/display_factor)
-
 /* fdisk.c */
 extern char changed[MAXIMUM_PARTS];
 extern char buffer[MAX_SECTOR_SIZE];
diff --git a/fdisk/i386_sys_types.c b/fdisk/i386_sys_types.c
new file mode 100644 (file)
index 0000000..f362472
--- /dev/null
@@ -0,0 +1,86 @@
+/* DOS partition types */
+#include "common.h"
+#include "nls.h"
+
+struct systypes i386_sys_types[] = {
+       {0x00, N_("Empty")},
+       {0x01, N_("FAT12")},
+       {0x02, N_("XENIX root")},
+       {0x03, N_("XENIX usr")},
+       {0x04, N_("FAT16 <32M")},
+       {0x05, N_("Extended")},         /* DOS 3.3+ extended partition */
+       {0x06, N_("FAT16")},            /* DOS 16-bit >=32M */
+       {0x07, N_("HPFS/NTFS")},        /* OS/2 IFS, eg, HPFS or NTFS or QNX */
+       {0x08, N_("AIX")},              /* AIX boot (AIX -- PS/2 port) or SplitDrive */
+       {0x09, N_("AIX bootable")},     /* AIX data or Coherent */
+       {0x0a, N_("OS/2 Boot Manager")},/* OS/2 Boot Manager */
+       {0x0b, N_("Win95 FAT32")},
+       {0x0c, N_("Win95 FAT32 (LBA)")},/* LBA really is `Extended Int 13h' */
+       {0x0e, N_("Win95 FAT16 (LBA)")},
+       {0x0f, N_("Win95 Ext'd (LBA)")},
+       {0x10, N_("OPUS")},
+       {0x11, N_("Hidden FAT12")},
+       {0x12, N_("Compaq diagnostics")},
+       {0x14, N_("Hidden FAT16 <32M")},
+       {0x16, N_("Hidden FAT16")},
+       {0x17, N_("Hidden HPFS/NTFS")},
+       {0x18, N_("AST Windows swapfile")},
+       {0x1b, N_("Hidden Win95 FAT32")},
+       {0x1c, N_("Hidden Win95 FAT32 (LBA)")},
+       {0x1e, N_("Hidden Win95 FAT16 (LBA)")},
+       {0x24, N_("NEC DOS")},
+       {0x3c, N_("PartitionMagic recovery")},
+       {0x40, N_("Venix 80286")},
+       {0x41, N_("PPC PReP Boot")},
+       {0x42, N_("SFS")},
+       {0x4d, N_("QNX4.x")},
+       {0x4e, N_("QNX4.x 2nd part")},
+       {0x4f, N_("QNX4.x 3rd part")},
+       {0x50, N_("OnTrack DM")},
+       {0x51, N_("OnTrack DM6 Aux1")}, /* (or Novell) */
+       {0x52, N_("CP/M")},             /* CP/M or Microport SysV/AT */
+       {0x53, N_("OnTrack DM6 Aux3")},
+       {0x54, N_("OnTrackDM6")},
+       {0x55, N_("EZ-Drive")},
+       {0x56, N_("Golden Bow")},
+       {0x5c, N_("Priam Edisk")},
+       {0x61, N_("SpeedStor")},
+       {0x63, N_("GNU HURD or SysV")}, /* GNU HURD or Mach or Sys V/386 (such as ISC UNIX) */
+       {0x64, N_("Novell Netware 286")},
+       {0x65, N_("Novell Netware 386")},
+       {0x70, N_("DiskSecure Multi-Boot")},
+       {0x75, N_("PC/IX")},
+       {0x80, N_("Old Minix")},        /* Minix 1.4a and earlier */
+       {0x81, N_("Minix / old Linux")},/* Minix 1.4b and later */
+       {0x82, N_("Linux swap")},       /* also Solaris */
+       {0x83, N_("Linux")},
+       {0x84, N_("OS/2 hidden C: drive")},
+       {0x85, N_("Linux extended")},
+       {0x86, N_("NTFS volume set")},
+       {0x87, N_("NTFS volume set")},
+       {0x93, N_("Amoeba")},
+       {0x94, N_("Amoeba BBT")},       /* (bad block table) */
+       {0xa0, N_("IBM Thinkpad hibernation")},
+       {0xa5, N_("BSD/386")},
+       {0xa6, N_("OpenBSD")},
+       {0xa7, N_("NeXTSTEP")},
+       {0xb7, N_("BSDI fs")},
+       {0xb8, N_("BSDI swap")},
+       {0xc1, N_("DRDOS/sec (FAT-12)")},
+       {0xc4, N_("DRDOS/sec (FAT-16 < 32M)")},
+       {0xc6, N_("DRDOS/sec (FAT-16)")},
+       {0xc7, N_("Syrinx")},
+       {0xdb, N_("CP/M / CTOS / ...")},/* CP/M or Concurrent CP/M or Concurrent DOS or CTOS */
+       {0xe1, N_("DOS access")},       /* DOS access or SpeedStor 12-bit FAT extended partition */
+       {0xe3, N_("DOS R/O")},          /* DOS R/O or SpeedStor */
+       {0xe4, N_("SpeedStor")},        /* SpeedStor 16-bit FAT extended partition < 1024 cyl. */
+       {0xeb, N_("BeOS fs")},
+       {0xf1, N_("SpeedStor")},
+       {0xf4, N_("SpeedStor")},        /* SpeedStor large partition */
+       {0xf2, N_("DOS secondary")},    /* DOS 3.3+ secondary */
+       {0xfd, N_("Linux raid autodetect")},/* New (2.2.x) raid partition with autodetect
+                                              using persistent superblock */
+       {0xfe, N_("LANstep")},          /* SpeedStor >1024 cyl. or LANstep */
+       {0xff, N_("BBT")},              /* Xenix Bad Block Table */
+       { 0, 0 }
+};
index c3f470f895174aa60480df6c0440a88ca63132da..d25543dd32936461e37e675d34a535ab8198b36b 100644 (file)
@@ -25,6 +25,9 @@
  * Well, a good user interface is still lacking. On the other hand,
  * many configurations cannot be handled by any other fdisk.
  * I changed the name to sfdisk to prevent confusion. - aeb, 970501
+ *
+ * Changes:
+ * 19990319 - Arnaldo Carvalho de Melo <acme@conectiva.com.br> - i18n
  */
 
 #define PROGNAME "sfdisk"
@@ -45,6 +48,9 @@
 #include <linux/unistd.h>      /* _syscall */
 #include <linux/hdreg.h>       /* HDIO_GETGEO */
 #include <linux/fs.h>          /* BLKGETSIZE */
+#include <locale.h>
+#include "nls.h"
+#include "common.h"
 
 #define SIZE(a)        (sizeof(a)/sizeof(a[0]))
 
@@ -139,12 +145,12 @@ sseek(char *dev, unsigned int fd, unsigned long s) {
         if ((out = lseek(fd, in, SEEK_SET)) != in) {
 #endif
        perror("llseek");
-       error("seek error on %s - cannot seek to %lu\n", dev, s);
+       error(_("seek error on %s - cannot seek to %lu\n"), dev, s);
        return 0;
     }
 
     if (in != out) {
-       error("seek error: wanted 0x%08x%08x, got 0x%08x%08x\n",
+       error(_("seek error: wanted 0x%08x%08x, got 0x%08x%08x\n"),
               (uint)(in>>32), (uint)(in & 0xffffffff),
               (uint)(out>>32), (uint)(out & 0xffffffff));
        return 0;
@@ -190,11 +196,11 @@ get_sector(char *dev, int fd, unsigned long sno) {
        return 0;
 
     if (!(s = (struct sector *) malloc(sizeof(struct sector))))
-       fatal("out of memory - giving up\n");
+       fatal(_("out of memory - giving up\n"));
 
     if (read(fd, s->data, sizeof(s->data)) != sizeof(s->data)) {
        perror("read");
-       error("read error on %s - cannot read sector %lu\n", dev, sno);
+       error(_("read error on %s - cannot read sector %lu\n"), dev, sno);
        free(s);
        return 0;
     }
@@ -210,7 +216,7 @@ get_sector(char *dev, int fd, unsigned long sno) {
 int
 msdos_signature (struct sector *s) {
     if (*(unsigned short *) (s->data + 0x1fe) != 0xaa55) {
-       error("ERROR: sector %lu does not have an msdos signature\n",
+       error(_("ERROR: sector %lu does not have an msdos signature\n"),
               s->sectornumber);
        return 0;
     }
@@ -227,7 +233,7 @@ write_sectors(char *dev, int fd) {
                return 0;
            if (write(fd, s->data, sizeof(s->data)) != sizeof(s->data)) {
                perror("write");
-               error("write error on %s - cannot write sector %lu\n",
+               error(_("write error on %s - cannot write sector %lu\n"),
                       dev, s->sectornumber);
                return 0;
            }
@@ -265,7 +271,7 @@ save_sectors(char *dev, int fdin) {
     fdout = open(save_sector_file, O_WRONLY | O_CREAT, 0444);
     if (fdout < 0) {
        perror(save_sector_file);
-       error("cannot open partition sector save file (%s)\n",
+       error(_("cannot open partition sector save file (%s)\n"),
               save_sector_file);
        return 0;
     }
@@ -277,13 +283,13 @@ save_sectors(char *dev, int fdin) {
                return 0;
            if (read(fdin, ss+4, 512) != 512) {
                perror("read");
-               error("read error on %s - cannot read sector %lu\n",
+               error(_("read error on %s - cannot read sector %lu\n"),
                       dev, s->sectornumber);
                return 0;
            }
            if (write(fdout, ss, sizeof(ss)) != sizeof(ss)) {
                perror("write");
-               error("write error on %s\n", save_sector_file);
+               error(_("write error on %s\n"), save_sector_file);
                return 0;
            }
        }
@@ -301,35 +307,35 @@ restore_sectors(char *dev) {
 
     if (stat(restore_sector_file, &statbuf) < 0) {
        perror(restore_sector_file);
-       error("cannot stat partition restore file (%s)\n",
+       error(_("cannot stat partition restore file (%s)\n"),
               restore_sector_file);
        return 0;
     }
     if (statbuf.st_size % 516) {
-       error("partition restore file has wrong size - not restoring\n");
+       error(_("partition restore file has wrong size - not restoring\n"));
        return 0;
     }
     if (!(ss = (char *) malloc(statbuf.st_size))) {
-       error("out of memory?\n");
+       error(_("out of memory?\n"));
        return 0;
     }
     fdin = open(restore_sector_file, O_RDONLY);
     if (fdin < 0) {
        perror(restore_sector_file);
-       error("cannot open partition restore file (%s)\n",
+       error(_("cannot open partition restore file (%s)\n"),
               restore_sector_file);
        return 0;
     }
     if (read(fdin, ss, statbuf.st_size) != statbuf.st_size) {
        perror("read");
-       error("error reading %s\n", restore_sector_file);
+       error(_("error reading %s\n"), restore_sector_file);
        return 0;
     }
 
     fdout = open(dev, O_WRONLY);
     if (fdout < 0) {
        perror(dev);
-       error("cannot open device %s for writing\n", dev);
+       error(_("cannot open device %s for writing\n"), dev);
        return 0;
     }
 
@@ -341,7 +347,7 @@ restore_sectors(char *dev) {
          return 0;
        if (write(fdout, ss+4, 512) != 512) {
            perror(dev);
-           error("error writing sector %lu on %s\n", sno, dev);
+           error(_("error writing sector %lu on %s\n"), sno, dev);
            return 0;
        }
        ss += 516;
@@ -367,61 +373,70 @@ restore_sectors(char *dev) {
  * };
  */
 
-unsigned long cylindersize;
-unsigned long heads, sectors, cylinders;
-unsigned long specified_heads, specified_sectors, specified_cylinders;
+/*
+ * We consider several geometries for a disk:
+ * B - the BIOS geometry, gotten from the kernel via HDIO_GETGEO
+ * F - the fdisk geometry
+ * U - the user-specified geometry
+ *
+ * 0 means unspecified / unknown
+ */
+struct geometry {
+       unsigned long cylindersize;
+       unsigned long heads, sectors, cylinders;
+} B, F, U;
 
 void
 get_cylindersize(char *dev, int fd, int silent) {
     struct hd_geometry g;
     int ioctl_ok = 0;
 
-    heads = sectors = cylinders = 0;
+    B.heads = B.sectors = B.cylinders = 0;
 
     if (!ioctl(fd, HDIO_GETGEO, &g)) {
        ioctl_ok = 1;
 
-       heads = g.heads;
-       sectors = g.sectors;
-       cylinders = g.cylinders;
+       B.heads = g.heads;
+       B.sectors = g.sectors;
+       B.cylinders = g.cylinders;
     }
 
-    if (specified_heads)
-      heads = specified_heads;
-    if (specified_sectors)
-      sectors = specified_sectors;
-    if (specified_cylinders)
-      cylinders = specified_cylinders;
+    if (U.heads)
+      B.heads = U.heads;
+    if (U.sectors)
+      B.sectors = U.sectors;
+    if (U.cylinders)
+      B.cylinders = U.cylinders;
 
-    cylindersize = heads * sectors;
+    B.cylindersize = B.heads * B.sectors;
 
     if (ioctl_ok) {
        if (g.start && !force) {
            warn(
-                "Warning: start=%d - this looks like a partition rather than\n"
+                _("Warning: start=%d - this looks like a partition rather than\n"
                 "the entire disk. Using fdisk on it is probably meaningless.\n"
-                "[Use the --force option if you really want this]\n", g.start);
+                "[Use the --force option if you really want this]\n"), g.start);
            exit(1);
        }
-       if (heads != g.heads)
-         warn("Warning: HDIO_GETGEO says that there are %d heads\n",
+       if (B.heads != g.heads)
+         warn(_("Warning: HDIO_GETGEO says that there are %d heads\n"),
               g.heads);
-       if (sectors != g.sectors)
-         warn("Warning: HDIO_GETGEO says that there are %d sectors\n",
+       if (B.sectors != g.sectors)
+         warn(_("Warning: HDIO_GETGEO says that there are %d sectors\n"),
               g.sectors);
-       if (cylinders != g.cylinders)
-         warn("Warning: HDIO_GETGEO says that there are %d cylinders\n",
+       if (B.cylinders != g.cylinders)
+         warn(_("Warning: HDIO_GETGEO says that there are %d cylinders\n"),
               g.cylinders);
     } else if (!silent)
-      if (!heads || !sectors || !cylinders)
-       printf("Disk %s: cannot get geometry\n", dev);
-    if (sectors > 63)
-      warn("Warning: unlikely number of sectors (%d) - usually at most 63\n"
-          "This will give problems with all software that uses C/H/S addressing.\n",
-          sectors);
+      if (!B.heads || !B.sectors || !B.cylinders)
+       printf(_("Disk %s: cannot get geometry\n"), dev);
+    if (B.sectors > 63)
+      warn(_("Warning: unlikely number of sectors (%d) - usually at most 63\n"
+          "This will give problems with all software that uses C/H/S addressing.\n"),
+          B.sectors);
     if (!silent)
-      printf("\nDisk %s: %lu heads, %lu sectors, %lu cylinders\n",
-            dev, heads, sectors, cylinders);
+      printf(_("\nDisk %s: %lu cylinders, %lu heads, %lu sectors/track\n"),
+            dev, B.cylinders, B.heads, B.sectors);
 }
 
 typedef struct { unsigned char h,s,c; } chs; /* has some c bits in s */
@@ -431,19 +446,19 @@ typedef struct { unsigned long h,s,c; } longchs;
 longchs zero_longchs;
 
 chs
-longchs_to_chs (longchs aa) {
+longchs_to_chs (longchs aa, struct geometry G) {
     chs a;
 
     if (aa.h < 256 && aa.s < 64 && aa.c < 1024) {
        a.h = aa.h;
        a.s = aa.s | ((aa.c >> 2) & 0xc0);
        a.c = (aa.c & 0xff);
-    } else if (heads && sectors) {
-       a.h = heads - 1;
-       a.s = sectors | 0xc0;
+    } else if (G.heads && G.sectors) {
+       a.h = G.heads - 1;
+       a.s = G.sectors | 0xc0;
        a.c = 0xff;
     } else
-      a = zero_chs;
+        a = zero_chs;
     return a;
 }
 
@@ -459,13 +474,13 @@ chs_to_longchs (chs a) {
 }
 
 longchs
-ulong_to_longchs (unsigned long sno) {
+ulong_to_longchs (unsigned long sno, struct geometry G) {
     longchs aa;
 
-    if (heads && sectors && cylindersize) {
-       aa.s = 1 + sno % sectors;
-       aa.h = (sno / sectors) % heads;
-       aa.c = sno / cylindersize;
+    if (G.heads && G.sectors && G.cylindersize) {
+       aa.s = 1 + sno % G.sectors;
+       aa.h = (sno / G.sectors) % G.heads;
+       aa.c = sno / G.cylindersize;
        return aa;
     } else {
        return zero_longchs;
@@ -473,18 +488,18 @@ ulong_to_longchs (unsigned long sno) {
 }
 
 unsigned long
-longchs_to_ulong (longchs aa) {
-    return (aa.c*cylindersize + aa.h*sectors + aa.s - 1);
+longchs_to_ulong (longchs aa, struct geometry G) {
+    return (aa.c*G.cylindersize + aa.h*G.sectors + aa.s - 1);
 }
 
 chs
-ulong_to_chs (unsigned long sno) {
-    return longchs_to_chs(ulong_to_longchs(sno));
+ulong_to_chs (unsigned long sno, struct geometry G) {
+    return longchs_to_chs(ulong_to_longchs(sno, G), G);
 }
 
 unsigned long
-chs_to_ulong (chs a) {
-    return longchs_to_ulong(chs_to_longchs(a));
+chs_to_ulong (chs a, struct geometry G) {
+    return longchs_to_ulong(chs_to_longchs(a), G);
 }
 
 int
@@ -499,19 +514,19 @@ chs_ok (chs a, char *v, char *w) {
 
     if (is_equal_chs(a, zero_chs))
       return 1;
-    if (heads && aa.h >= heads) {
-       warn("%s of partition %s has impossible value for head: "
-            "%d (should be in 0-%d)\n", w, v, aa.h, heads-1);
+    if (B.heads && aa.h >= B.heads) {
+       warn(_("%s of partition %s has impossible value for head: "
+            "%d (should be in 0-%d)\n"), w, v, aa.h, B.heads-1);
        ret = 0;
     }
-    if (sectors && (aa.s == 0 || aa.s > sectors)) {
-       warn("%s of partition %s has impossible value for sector: "
-            "%d (should be in 1-%d)\n", w, v, aa.s, sectors);
+    if (B.sectors && (aa.s == 0 || aa.s > B.sectors)) {
+       warn(_("%s of partition %s has impossible value for sector: "
+            "%d (should be in 1-%d)\n"), w, v, aa.s, B.sectors);
        ret = 0;
     }
-    if (cylinders && aa.c >= cylinders) {
-       warn("%s of partition %s has impossible value for cylinders: "
-            "%d (should be in 0-%d)\n", w, v, aa.c, cylinders-1);
+    if (B.cylinders && aa.c >= B.cylinders) {
+       warn(_("%s of partition %s has impossible value for cylinders: "
+            "%d (should be in 0-%d)\n"), w, v, aa.c, B.cylinders-1);
        ret = 0;
     }
     return ret;
@@ -533,109 +548,25 @@ chs_ok (chs a, char *v, char *w) {
 #define LINUX_EXTENDED         0x85
 #define BSD_PARTITION          0xa5
 
-/*
- * List of system Id's, adapted from fdisk 2.0d and <linux/genhd.h>
- * and SFS and several other sources.
- */
-struct systypes {
-    unsigned char type;
-    char *name;
-} sys_types[] = {
-    {0, "Empty"},
-    {1, "DOS 12-bit FAT"},             /* Primary DOS with 12-bit FAT */
-    {2, "XENIX /"},                    /* XENIX / filesystem */
-    {3, "XENIX /usr"},                 /* XENIX /usr filesystem */
-    {4, "DOS 16-bit FAT <32M"},                /* Primary DOS with 16-bit FAT */
-    {5, "DOS Extended"},               /* DOS 3.3+ extended partition */
-    {6, "DOS 16-bit FAT >=32M"},
-    {7, "HPFS / NTFS"},
-    {8, "AIX boot or SplitDrive"},
-    {9, "AIX data or Coherent"},
-    {0x0a, "OS/2 Boot Manager"},
-    {0x0b, "Win95 FAT32"},
-    {0x0c, "Win95 FAT32 (LBA)"},
-    {0x0e, "Win95 FAT16 (LBA)"},
-    {0x0f, "Win95 Extended (LBA)"},
-    {0x10, "OPUS"},
-    {0x11, "Hidden DOS FAT12"},
-    {0x12, "Compaq diagnostics"},
-    {0x14, "Hidden DOS FAT16"},
-    {0x16, "Hidden DOS FAT16 (big)"},
-    {0x17, "Hidden HPFS/NTFS"},
-    {0x18, "AST Windows swapfile"},
-    {0x24, "NEC DOS"},
-    {0x3c, "PartitionMagic recovery"},
-    {0x40, "Venix 80286"},
-    {0x41, "Linux/MINIX (sharing disk with DRDOS)"},
-    {0x42, "SFS or Linux swap (sharing disk with DRDOS)"},
-    {0x43, "Linux native (sharing disk with DRDOS)"},
-    {0x50, "DM (disk manager)"},
-    {0x51, "DM6 Aux1 (or Novell)"},
-    {0x52, "CP/M or Microport SysV/AT"},
-    {0x53, "DM6 Aux3"},
-    {0x54, "DM6"},
-    {0x55, "EZ-Drive (disk manager)"},
-    {0x56, "Golden Bow (disk manager)"},
-    {0x5c, "Priam Edisk (disk manager)"},
-    {0x61, "SpeedStor"},
-    {0x63, "GNU HURD or Mach or Sys V/386 (such as ISC UNIX)"},
-    {0x64, "Novell Netware 286"},
-    {0x65, "Novell Netware 386"},
-    {0x70, "DiskSecure Multi-Boot"},
-    {0x75, "PC/IX"},
-    {0x77, "QNX4.x"},
-    {0x78, "QNX4.x 2nd part"},
-    {0x79, "QNX4.x 3rd part"},
-    {0x80, "MINIX until 1.4a"},
-    {0x81, "MINIX / old Linux"},
-    {0x82, "Linux swap"},
-    {0x83, "Linux native"},
-    {0x84, "OS/2 hidden C: drive"},
-    {0x85, "Linux extended"},
-    {0x86, "NTFS volume set"},
-    {0x87, "NTFS volume set"},
-    {0x93, "Amoeba"},
-    {0x94, "Amoeba BBT"},              /* (bad block table) */
-    {0xa0, "IBM Thinkpad hibernation"}, /* according to dan@fch.wimsey.bc.ca */
-    {0xa5, "BSD/386"},                 /* 386BSD */
-    {0xa6, "OpenBSD"},
-    {0xa7, "NeXTSTEP 486"},
-    {0xb7, "BSDI fs"},
-    {0xb8, "BSDI swap"},
-    {0xc1, "DRDOS/sec (FAT-12)"},
-    {0xc4, "DRDOS/sec (FAT-16, < 32M)"},
-    {0xc6, "DRDOS/sec (FAT-16, >= 32M)"},
-    {0xc7, "Syrinx"},
-    {0xdb, "CP/M or Concurrent CP/M or Concurrent DOS or CTOS"},
-    {0xe1, "DOS access or SpeedStor 12-bit FAT extended partition"},
-    {0xe3, "DOS R/O or SpeedStor"},
-    {0xe4, "SpeedStor 16-bit FAT extended partition < 1024 cyl."},
-    {0xeb, "BeOS fs"},
-    {0xf1, "SpeedStor"},
-    {0xf2, "DOS 3.3+ secondary"},
-    {0xf4, "SpeedStor large partition"},
-    {0xfe, "SpeedStor >1024 cyl. or LANstep"},
-    {0xff, "Xenix Bad Block Table"}
-};
-
+/* List of partition types now in i386_sys_types.c */
 
 const char *
 sysname(unsigned char type) {
     struct systypes *s;
 
-    for (s = sys_types; s - sys_types < SIZE(sys_types); s++)
+    for (s = i386_sys_types; s->name; s++)
       if (s->type == type)
-       return s->name;
-    return "Unknown";
+       return _(s->name);
+    return _("Unknown");
 }
 
 void
 list_types(void) {
     struct systypes *s;
 
-    printf("Id  Name\n\n");
-    for (s = sys_types; s - sys_types < SIZE(sys_types); s++)
-      printf("%2x  %s\n", s->type, s->name);
+    printf(_("Id  Name\n\n"));
+    for (s = i386_sys_types; s->name; s++)
+      printf("%2x  %s\n", s->type, _(s->name));
 }
 
 int
@@ -767,7 +698,8 @@ add_sector_and_offset(struct disk_desc *z) {
 }
 
 /* tell the kernel to reread the partition tables */
-int reread_ioctl(int fd) {
+int
+reread_ioctl(int fd) {
     if(ioctl(fd, BLKRRPART)) {
        perror("BLKRRPART");
        return -1;
@@ -775,21 +707,28 @@ int reread_ioctl(int fd) {
     return 0;
 }
 
+int
+is_blockdev(int fd) {
+    struct stat statbuf;
+
+    return(fstat(fd, &statbuf) == 0 && S_ISBLK(statbuf.st_mode));
+}
+
 /* reread after writing */
 void
 reread_disk_partition(char *dev, int fd) {
-    printf("Re-reading the partition table ...\n");
+    printf(_("Re-reading the partition table ...\n"));
     fflush(stdout);
     sync();
     sleep(3);                  /* superfluous since 1.3.20 */
 
-    if(reread_ioctl(fd))
-      printf("The command to re-read the partition table failed\n"
-            "Reboot your system now, before using mkfs\n");
+    if(reread_ioctl(fd) && is_blockdev(fd))
+      printf(_("The command to re-read the partition table failed\n"
+            "Reboot your system now, before using mkfs\n"));
 
     if (close(fd)) {
        perror(dev);
-       printf("Error closing %s\n", dev);
+       printf(_("Error closing %s\n"), dev);
     }
     printf("\n");
 }
@@ -827,7 +766,7 @@ asc_to_index(char *pnam, struct disk_desc *z) {
        pno = linux_to_index(pnum, z);
     }
     if (!(pno >= 0 && pno < z->partno))
-      fatal("%s: no such partition\n", pnam);
+      fatal(_("%s: no such partition\n"), pnam);
     return pno;
 }
 
@@ -850,7 +789,7 @@ void
 set_format(char c) {
     switch(c) {
       default:
-       printf("unrecognized format - using sectors\n");
+       printf(_("unrecognized format - using sectors\n"));
       case 'S': specified_format = F_SECTOR; break;
       case 'B': specified_format = F_BLOCK; break;
       case 'C': specified_format = F_CYLINDER; break;
@@ -860,14 +799,15 @@ set_format(char c) {
 
 unsigned long
 unitsize(int format) {
-    default_format = (cylindersize ? F_CYLINDER : F_MEGABYTE);
+    default_format = (B.cylindersize ? F_CYLINDER : F_MEGABYTE);
     if (!format && !(format = specified_format))
       format = default_format;
 
     switch(format) {
       default:
       case F_CYLINDER:
-       if(cylindersize) return cylindersize;
+       if(B.cylindersize)
+         return B.cylindersize;
       case F_SECTOR:
        return 1;
       case F_BLOCK:
@@ -879,51 +819,51 @@ unitsize(int format) {
 
 unsigned long
 get_disksize(int format) {
-    unsigned long cs = cylinders;
+    unsigned long cs = B.cylinders;
     if (cs && leave_last)
       cs--;
-    return (cs * cylindersize) / unitsize(format);
+    return (cs * B.cylindersize) / unitsize(format);
 }
 
 void
-out_partition_header(char *dev, int format) {
+out_partition_header(char *dev, int format, struct geometry G) {
     if (dump) {
-       printf("# partition table of %s\n", dev);
-       printf("unit: sectors\n\n");
+       printf(_("# partition table of %s\n"), dev);
+       printf(_("unit: sectors\n\n"));
        return;
     }
 
-    default_format = (cylindersize ? F_CYLINDER : F_MEGABYTE);
+    default_format = (G.cylindersize ? F_CYLINDER : F_MEGABYTE);
     if (!format && !(format = specified_format))
       format = default_format;
 
     switch(format) {
       default:
-       printf("unimplemented format - using %s\n",
-              cylindersize ? "cylinders" : "sectors");
+       printf(_("unimplemented format - using %s\n"),
+              G.cylindersize ? _("cylinders") : _("sectors"));
       case F_CYLINDER:
-       if (cylindersize) {
-         printf("Units = cylinders of %lu bytes, blocks of 1024 bytes"
-                ", counting from %d\n\n",
-                cylindersize<<9, increment);
-           printf("   Device Boot Start     End   #cyls   #blocks   Id  System\n");
+       if (G.cylindersize) {
+         printf(_("Units = cylinders of %lu bytes, blocks of 1024 bytes"
+                ", counting from %d\n\n"),
+                G.cylindersize<<9, increment);
+           printf(_("   Device Boot Start     End   #cyls   #blocks   Id  System\n"));
            break;
        }
        /* fall through */
       case F_SECTOR:
-       printf("Units = sectors of 512 bytes, counting from %d\n\n",
+       printf(_("Units = sectors of 512 bytes, counting from %d\n\n"),
               increment);
-       printf("   Device Boot    Start       End  #sectors  Id  System\n");
+       printf(_("   Device Boot    Start       End  #sectors  Id  System\n"));
        break;
       case F_BLOCK:
-       printf("Units = blocks of 1024 bytes, counting from %d\n\n",
+       printf(_("Units = blocks of 1024 bytes, counting from %d\n\n"),
               increment);
-       printf("   Device Boot   Start       End   #blocks   Id  System\n");
+       printf(_("   Device Boot   Start       End   #blocks   Id  System\n"));
        break;
       case F_MEGABYTE:
-       printf("Units = megabytes of 1048576 bytes, blocks of 1024 bytes"
-              ", counting from %d\n\n", increment);
-       printf("   Device Boot Start   End     MB   #blocks   Id  System\n");
+       printf(_("Units = megabytes of 1048576 bytes, blocks of 1024 bytes"
+              ", counting from %d\n\n"), increment);
+       printf(_("   Device Boot Start   End     MB   #blocks   Id  System\n"));
        break;
     }
 }
@@ -955,8 +895,19 @@ out_roundup_size(int width, unsigned long n, unsigned long unit) {
     putchar(' ');
 }
 
+int
+get_fdisk_geometry(struct part_desc *p) {
+    chs b = p->p.end_chs;
+    longchs bb = chs_to_longchs(b);
+    F.heads = bb.h+1;
+    F.sectors = bb.s;
+    F.cylindersize = F.heads*F.sectors;
+    return (F.sectors != B.sectors || F.heads != B.heads);
+}
+
 void
-out_partition(char *dev, int format, struct part_desc *p, struct disk_desc *z) {
+out_partition(char *dev, int format, struct part_desc *p,
+             struct disk_desc *z, struct geometry G) {
     unsigned long start, end, size;
     int pno, lpno;
 
@@ -978,12 +929,12 @@ out_partition(char *dev, int format, struct part_desc *p, struct disk_desc *z) {
     size = p->size;
 
     if (dump) {
-       printf(" start=%9lu", start);
-       printf(", size=%8lu", size);
+       printf(_(" start=%9lu"), start);
+       printf(_(", size=%8lu"), size);
        if (p->ptype == DOS_TYPE) {
-           printf(", Id=%2x", p->p.sys_type);
+           printf(_(", Id=%2x"), p->p.sys_type);
            if (p->p.bootable == 0x80)
-               printf(", bootable");
+               printf(_(", bootable"));
        }
        printf("\n");
        return;
@@ -998,10 +949,10 @@ out_partition(char *dev, int format, struct part_desc *p, struct disk_desc *z) {
 
     switch(format) {
       case F_CYLINDER:
-       if (cylindersize) {
-           out_rounddown(6, start, cylindersize, increment);
-           out_roundup(6, end, cylindersize, increment);
-           out_roundup_size(6, size, cylindersize);
+       if (G.cylindersize) {
+           out_rounddown(6, start, G.cylindersize, increment);
+           out_roundup(6, end, G.cylindersize, increment);
+           out_roundup_size(6, size, G.cylindersize);
            out_rounddown(8, size, 2, 0);
            break;
        }
@@ -1039,22 +990,22 @@ out_partition(char *dev, int format, struct part_desc *p, struct disk_desc *z) {
     if (!quiet && p->ptype == DOS_TYPE) {
        chs a, b;
        longchs aa, bb;
-       a = (size ? ulong_to_chs(start) : zero_chs);
+       a = (size ? ulong_to_chs(start,G) : zero_chs);
        b = p->p.begin_chs;
        aa = chs_to_longchs(a);
        bb = chs_to_longchs(b);
        if(a.s && !is_equal_chs(a, b))
-         printf("\t\tstart: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n",
+         printf(_("\t\tstart: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"),
                 aa.c, aa.h, aa.s, bb.c, bb.h, bb.s);
-       a = (size ? ulong_to_chs(end) : zero_chs);
+       a = (size ? ulong_to_chs(end,G) : zero_chs);
        b = p->p.end_chs;
        aa = chs_to_longchs(a);
        bb = chs_to_longchs(b);
        if(a.s && !is_equal_chs(a, b))
-         printf("\t\tend: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n",
+         printf(_("\t\tend: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"),
                 aa.c, aa.h, aa.s, bb.c, bb.h, bb.s);
-       if(cylinders && cylinders < 1024 && bb.c > cylinders)
-         printf("partition ends on cylinder %ld, beyond the end of the disk\n",
+       if(G.cylinders && G.cylinders < 1024 && bb.c > G.cylinders)
+         printf(_("partition ends on cylinder %ld, beyond the end of the disk\n"),
               bb.c);
     }
 }
@@ -1064,11 +1015,16 @@ out_partitions(char *dev, struct disk_desc *z) {
     int pno, format = 0;
 
     if (z->partno == 0)
-       printf("No partitions found\n");
+       printf(_("No partitions found\n"));
     else {
-       out_partition_header(dev, format);
+       if (get_fdisk_geometry(&(z->partitions[0])))
+           printf(_("Warning: The first partition looks like it was made\n"
+                    "  for C/H/S=*/%ld/%ld (instead of %ld/%ld/%ld).\n"
+                    "For this listing I'll assume that geometry.\n"),
+                  F.heads, F.sectors, B.cylinders, B.heads, B.sectors);
+       out_partition_header(dev, format, F);
        for(pno=0; pno < z->partno; pno++) {
-           out_partition(dev, format, &(z->partitions[pno]), z);
+           out_partition(dev, format, &(z->partitions[pno]), z, F);
            if(show_extended && pno%4==3)
              printf("\n");
        }
@@ -1109,9 +1065,9 @@ partitions_ok(struct disk_desc *z) {
     /* Have at least 4 partitions been defined? */
     if (partno < 4) {
          if (!partno)
-             fatal("no partition table present.\n");
+             fatal(_("no partition table present.\n"));
         else
-             fatal("strange, only %d partitions defined.\n", partno);
+             fatal(_("strange, only %d partitions defined.\n"), partno);
         return 0;
     }
 
@@ -1120,13 +1076,13 @@ partitions_ok(struct disk_desc *z) {
     for (p = partitions; p - partitions < partno; p++)
       if (p->size == 0) {
          if(p->p.sys_type != EMPTY_PARTITION)
-           warn("Warning: partition %s has size 0 but is not marked Empty\n",
+           warn(_("Warning: partition %s has size 0 but is not marked Empty\n"),
                 PNO(p));
          else if(p->p.bootable != 0)
-           warn("Warning: partition %s has size 0 and is bootable\n",
+           warn(_("Warning: partition %s has size 0 and is bootable\n"),
                 PNO(p));
          else if(p->p.start_sect != 0)
-           warn("Warning: partition %s has size 0 and nonzero start\n",
+           warn(_("Warning: partition %s has size 0 and nonzero start\n"),
                 PNO(p));
          /* all this is probably harmless, no error return */
       }
@@ -1137,8 +1093,8 @@ partitions_ok(struct disk_desc *z) {
       if (p->size && !is_extended(p->p.sys_type)) {
          q = p->ep;
          if (p->start < q->start || p->start + p->size > q->start + q->size) {
-             warn("Warning: partition %s ", PNO(p));
-             warn("is not contained in partition %s\n", PNO(q));
+             warn(_("Warning: partition %s "), PNO(p));
+             warn(_("is not contained in partition %s\n"), PNO(q));
              return 0;
          }
       }
@@ -1149,8 +1105,8 @@ partitions_ok(struct disk_desc *z) {
        for (q = p+1; q < partitions+partno; q++)
          if (q->size && !is_extended(q->p.sys_type))
            if(!((p->start > q-> start) ? disj(q,p) : disj(p,q))) {
-               warn("Warning: partitions %s ", PNO(p));
-               warn("and %s overlap\n", PNO(q));
+               warn(_("Warning: partitions %s "), PNO(p));
+               warn(_("and %s overlap\n"), PNO(q));
                return 0;
            }
 
@@ -1161,9 +1117,9 @@ partitions_ok(struct disk_desc *z) {
         for (q = partitions; q < partitions+partno; q++)
           if (is_extended(q->p.sys_type))
             if (p->start <= q->start && p->start + p->size > q->start) {
-                warn("Warning: partition %s contains part of ", PNO(p));
-               warn("the partition table (sector %lu),\n", q->start);
-               warn("and will destroy it when filled\n");
+                warn(_("Warning: partition %s contains part of "), PNO(p));
+               warn(_("the partition table (sector %lu),\n"), q->start);
+               warn(_("and will destroy it when filled\n"));
                return 0;
            }
 
@@ -1172,11 +1128,11 @@ partitions_ok(struct disk_desc *z) {
     for (p = partitions; p < partitions+partno; p++)
       if (p->size) {
          if(p->start == 0) {
-             warn("Warning: partition %s starts at sector 0\n", PNO(p));
+             warn(_("Warning: partition %s starts at sector 0\n"), PNO(p));
              return 0;
           }
           if (p->size && p->start + p->size > ds) {
-             warn("Warning: partition %s extends past end of disk\n", PNO(p));
+             warn(_("Warning: partition %s extends past end of disk\n"), PNO(p));
              return 0;
           }
       }
@@ -1190,8 +1146,8 @@ partitions_ok(struct disk_desc *z) {
        if (p->p.sys_type == EXTENDED_PARTITION)
          ect++;
       if (ect > 1 && !Linux) {
-         warn("Among the primary partitions, at most one can be extended\n");
-         warn(" (although this is not a problem under Linux)\n");
+         warn(_("Among the primary partitions, at most one can be extended\n"));
+         warn(_(" (although this is not a problem under Linux)\n"));
          return 0;
       }
     }
@@ -1202,20 +1158,20 @@ partitions_ok(struct disk_desc *z) {
      * The first partition starts after MBR.
      * Logical partitions start slightly after the containing extended partn.
      */
-    if (cylindersize) {
+    if (B.cylindersize) {
        for(p = partitions; p < partitions+partno; p++)
          if (p->size) {
-             if(p->start % cylindersize != 0
-                && (!p->ep || p->start / cylindersize != p->ep->start / cylindersize)
-                && (p->p.start_sect >= cylindersize)) {
-                 warn("Warning: partition %s does not start "
-                      "at a cylinder boundary\n", PNO(p));
+             if(p->start % B.cylindersize != 0
+                && (!p->ep || p->start / B.cylindersize != p->ep->start / B.cylindersize)
+                && (p->p.start_sect >= B.cylindersize)) {
+                 warn(_("Warning: partition %s does not start "
+                      "at a cylinder boundary\n"), PNO(p));
                  if (!Linux)
                    return 0;
              }
-             if((p->start + p->size) % cylindersize) {
-                 warn("Warning: partition %s does not end "
-                      "at a cylinder boundary\n", PNO(p));
+             if((p->start + p->size) % B.cylindersize) {
+                 warn(_("Warning: partition %s does not end "
+                      "at a cylinder boundary\n"), PNO(p));
                  if (!Linux)
                    return 0;
              }
@@ -1232,22 +1188,22 @@ partitions_ok(struct disk_desc *z) {
          if (pno == -1)
            pno = p - partitions;
          else if (p - partitions < 4) {
-             warn("Warning: more than one primary partition is marked "
+             warn(_("Warning: more than one primary partition is marked "
                   "bootable (active)\n"
                   "This does not matter for LILO, but the DOS MBR will "
-                  "not boot this disk.\n");
+                  "not boot this disk.\n"));
              break;
           }
          if (p - partitions >= 4) {
-             warn("Warning: usually one can boot from primary partitions "
-                  "only\n" "LILO disregards the `bootable' flag.\n");
+             warn(_("Warning: usually one can boot from primary partitions "
+                  "only\nLILO disregards the `bootable' flag.\n"));
              break;
           }
       }
       if (pno == -1 || pno >= 4)
-       warn("Warning: no primary partition is marked bootable (active)\n"
+       warn(_("Warning: no primary partition is marked bootable (active)\n"
             "This does not matter for LILO, but the DOS MBR will "
-            "not boot this disk.\n");
+            "not boot this disk.\n"));
     }
 
     /* Is chs as we expect? */
@@ -1255,26 +1211,26 @@ partitions_ok(struct disk_desc *z) {
       if(p->ptype == DOS_TYPE) {
        chs a, b;
        longchs aa, bb;
-       a = p->size ? ulong_to_chs(p->start) : zero_chs;
+       a = p->size ? ulong_to_chs(p->start,B) : zero_chs;
        b = p->p.begin_chs;
        aa = chs_to_longchs(a);
        bb = chs_to_longchs(b);
        if (!chs_ok(b, PNO(p), "start"))
          return 0;
        if(a.s && !is_equal_chs(a, b))
-         warn("partition %s: start: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n",
+         warn(_("partition %s: start: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"),
               PNO(p), aa.c, aa.h, aa.s, bb.c, bb.h, bb.s);
-       a = p->size ? ulong_to_chs(p->start + p->size - 1) : zero_chs;
+       a = p->size ? ulong_to_chs(p->start + p->size - 1, B) : zero_chs;
        b = p->p.end_chs;
        aa = chs_to_longchs(a);
        bb = chs_to_longchs(b);
        if (!chs_ok(b, PNO(p), "end"))
          return 0;
        if(a.s && !is_equal_chs(a, b))
-         warn("partition %s: end: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n",
+         warn(_("partition %s: end: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"),
               PNO(p), aa.c, aa.h, aa.s, bb.c, bb.h, bb.s);
-       if(cylinders && cylinders < 1024 && bb.c > cylinders)
-         warn("partition %s ends on cylinder %ld, beyond the end of the disk\n",
+       if(B.cylinders && B.cylinders < 1024 && bb.c > B.cylinders)
+         warn(_("partition %s ends on cylinder %ld, beyond the end of the disk\n"),
               PNO(p), bb.c);
     }
 
@@ -1307,7 +1263,7 @@ extended_partition(char *dev, int fd, struct part_desc *ep, struct disk_desc *z)
        cp = s->data + 0x1be;
 
        if (pno+4 >= SIZE(z->partitions)) {
-           printf("too many partitions - ignoring those past nr (%d)\n",
+           printf(_("too many partitions - ignoring those past nr (%d)\n"),
                   pno-1);
            break;
        }
@@ -1320,9 +1276,11 @@ extended_partition(char *dev, int fd, struct part_desc *ep, struct disk_desc *z)
            partitions[pno].ep = ep;
            copy_to_part(cp,&p);
            if (is_extended(p.sys_type)) {
+               partitions[pno].start = start + p.start_sect;
                if (next)
-                 printf("tree of partitions?\n");
-               partitions[pno].start = next = start + p.start_sect;
+                 printf(_("tree of partitions?\n"));
+               else
+                 next = partitions[pno].start;         /* follow `upper' branch */
                moretodo = 1;
            } else {
                partitions[pno].start = here + p.start_sect;
@@ -1382,8 +1340,8 @@ bsd_partition(char *dev, int fd, struct part_desc *ep, struct disk_desc *z) {
        bp = bp0 = &l->d_partitions[0];
        while (bp - bp0 <= BSD_MAXPARTITIONS) {
                if (pno+1 >= SIZE(z->partitions)) {
-                       printf("too many partitions - ignoring those "
-                              "past nr (%d)\n", pno-1);
+                       printf(_("too many partitions - ignoring those "
+                              "past nr (%d)\n"), pno-1);
                        break;
                }
                if (bp->p_fstype != BSD_FS_UNUSED) {
@@ -1424,14 +1382,14 @@ msdos_partition(char *dev, int fd, unsigned long start, struct disk_desc *z) {
        || pt.sys_type == EZD_PARTITION
        || pt.sys_type == DM6_AUX1PARTITION
        || pt.sys_type == DM6_AUX3PARTITION) {
-       printf("detected Disk Manager - unable to handle that\n");
+       printf(_("detected Disk Manager - unable to handle that\n"));
        return 0;
     }
     { unsigned int sig = *(unsigned short *)(s->data + 2);
       if (sig <= 0x1ae
          && *(unsigned short *)(s->data + sig) == 0x55aa
          && (1 & *(unsigned char *)(s->data + sig + 2))) {
-         printf("DM6 signature found - giving up\n");
+         printf(_("DM6 signature found - giving up\n"));
          return 0;
       }
     }
@@ -1451,14 +1409,14 @@ msdos_partition(char *dev, int fd, unsigned long start, struct disk_desc *z) {
     for (i=0; i<4; i++) {
        if (is_extended(partitions[i].p.sys_type)) {
            if (!partitions[i].size) {
-               printf("strange..., an extended partition of size 0?\n");
+               printf(_("strange..., an extended partition of size 0?\n"));
                continue;
            }
            extended_partition(dev, fd, &partitions[i], z);
        }
        if (is_bsd(partitions[i].p.sys_type)) {
            if (!partitions[i].size) {
-               printf("strange..., a BSD partition of size 0?\n");
+               printf(_("strange..., a BSD partition of size 0?\n"));
                continue;
            }
            bsd_partition(dev, fd, &partitions[i], z);
@@ -1490,7 +1448,7 @@ get_partitions(char *dev, int fd, struct disk_desc *z) {
        && !osf_partition(dev, fd, 0, z)
        && !sun_partition(dev, fd, 0, z)
        && !amiga_partition(dev, fd, 0, z)) {
-       printf(" %s: unrecognized partition\n", dev);
+       printf(_(" %s: unrecognized partition\n"), dev);
        return;
     }
 }
@@ -1502,7 +1460,7 @@ write_partitions(char *dev, int fd, struct disk_desc *z) {
     int pno = z->partno;
 
     if (no_write) {
-       printf("-n flag was given: Nothing changed\n");
+       printf(_("-n flag was given: Nothing changed\n"));
        exit(0);
     }
 
@@ -1515,12 +1473,12 @@ write_partitions(char *dev, int fd, struct disk_desc *z) {
     }
     if (save_sector_file) {
        if (!save_sectors(dev, fd)) {
-           fatal("Failed saving the old sectors - aborting\n");
+           fatal(_("Failed saving the old sectors - aborting\n"));
            return 0;
        }
     }
     if (!write_sectors(dev, fd)) {
-       error("Failed writing the partition on %s\n", dev);
+       error(_("Failed writing the partition on %s\n"), dev);
        return 0;
     }
     return 1;
@@ -1597,7 +1555,7 @@ read_stdin(unsigned char **fields, unsigned char *line, int fieldssize, int line
        return RD_EOF;
     }
     if (!(lp = index(lp, '\n')))
-      fatal("long or incomplete input line - quitting\n");
+      fatal(_("long or incomplete input line - quitting\n"));
     *lp = 0;
 
     /* remove comments, if any */
@@ -1633,20 +1591,20 @@ read_stdin(unsigned char **fields, unsigned char *line, int fieldssize, int line
                        while(isalnum(*ip))     /* 0x07FF */
                          ip++;
                    } else
-                     fatal("input error: `=' expected after %s field\n",
+                     fatal(_("input error: `=' expected after %s field\n"),
                            d->fldname);
                    if (fno <= d->fldno)
                      fno = d->fldno + 1;
                    if(*ip == 0)
                      return fno;
                    if(*ip != ',' && *ip != ';')
-                     fatal("input error: unexpected character %c after %s field\n",
+                     fatal(_("input error: unexpected character %c after %s field\n"),
                            *ip, d->fldname);
                    *ip = 0;
                    goto nxtfld;
                }
            }
-           fatal("unrecognized input: %s\n", ip);
+           fatal(_("unrecognized input: %s\n"), ip);
     }
 
     /* split line into fields */
@@ -1678,11 +1636,11 @@ get_ul(char *u, unsigned long *up, unsigned long def, int base) {
        errno = 0;
        *up = strtoul(u, &nu, base);
        if (errno == ERANGE) {
-           printf("number too big\n");
+           printf(_("number too big\n"));
            return -1;
        }
        if (*nu) {
-           printf("trailing junk after number\n");
+           printf(_("trailing junk after number\n"));
            return -1;
        }
     } else
@@ -1783,7 +1741,7 @@ max_length(int pno, int is_extended, struct part_desc *ep, int format,
 int
 compute_start_sect(struct part_desc *p, struct part_desc *ep) {
     unsigned long base;
-    int inc = (DOS && sectors) ? sectors : 1;
+    int inc = (DOS && B.sectors) ? B.sectors : 1;
     int delta;
 
     if (ep && p->start + p->size >= ep->start + 1)
@@ -1798,7 +1756,7 @@ compute_start_sect(struct part_desc *p, struct part_desc *ep) {
        if (is_extended(p->p.sys_type) && boxes == ONESECTOR)
          p->size = inc;
        else if ((int)(p->size) <= 0) {
-           warn("no room for partition descriptor\n");
+           warn(_("no room for partition descriptor\n"));
            return 0;
        }
     }
@@ -1812,8 +1770,8 @@ compute_start_sect(struct part_desc *p, struct part_desc *ep) {
        p->p.end_chs = zero_chs;
     } else {
         p->p.start_sect = p->start - base;
-       p->p.begin_chs = ulong_to_chs(p->start);
-       p->p.end_chs = ulong_to_chs(p->start + p->size - 1);
+       p->p.begin_chs = ulong_to_chs(p->start,B);
+       p->p.end_chs = ulong_to_chs(p->start + p->size - 1,B);
     }
     p->p.nr_sects = p->size;
     return 1;
@@ -1823,7 +1781,7 @@ compute_start_sect(struct part_desc *p, struct part_desc *ep) {
 int
 build_surrounding_extended(struct part_desc *p, struct part_desc *ep,
                           struct disk_desc *z) {
-    int inc = (DOS && sectors) ? sectors : 1;
+    int inc = (DOS && B.sectors) ? B.sectors : 1;
     int format = F_SECTOR;
     struct part_desc *p0 = &(z->partitions[0]), *eep = ep->ep;
 
@@ -1831,7 +1789,7 @@ build_surrounding_extended(struct part_desc *p, struct part_desc *ep,
        ep->start = first_free(ep-p0, 1, eep, format, p->start, z);
        ep->size = max_length(ep-p0, 1, eep, format, ep->start, z);
        if (ep->start > p->start || ep->start + ep->size < p->start + p->size) {
-           warn("cannot build surrounding extended partition\n");
+           warn(_("cannot build surrounding extended partition\n"));
            return 0;
        }
     } else {
@@ -1882,7 +1840,7 @@ read_line(int pno, struct part_desc *ep, char *dev, int interactive,
     if (fno == RD_EOF) {
        return -1;
     } else if (fno > 10 && *(fields[10]) != 0) {
-       printf("too many input fields\n");
+       printf(_("too many input fields\n"));
        return 0;
     }
 
@@ -1893,7 +1851,7 @@ read_line(int pno, struct part_desc *ep, char *dev, int interactive,
 
     /* use specified format, but round to cylinders if F_MEGABYTE specified */
     format = 0;
-    if (cylindersize && specified_format == F_MEGABYTE)
+    if (B.cylindersize && specified_format == F_MEGABYTE)
       format = F_CYLINDER;
 
     orig = (one_only ? &(oldp.partitions[pno]) : 0);
@@ -1916,7 +1874,7 @@ read_line(int pno, struct part_desc *ep, char *dev, int interactive,
        }
        if (ml == 0 && pno >= 4) {
            /* no free blocks left - don't read any further */
-           warn("No room for more\n");
+           warn(_("No room for more\n"));
            return -1;
        }
     }
@@ -1935,7 +1893,7 @@ read_line(int pno, struct part_desc *ep, char *dev, int interactive,
     else if (get_ul(fields[2], &ul, LINUX_NATIVE, 16))
       return 0;
     if (ul > 255) {
-       warn("Illegal type\n");
+       warn(_("Illegal type\n"));
        return 0;
     }
     p.p.sys_type = ul;
@@ -1967,12 +1925,12 @@ read_line(int pno, struct part_desc *ep, char *dev, int interactive,
        p.size -= (p.size % unitsize(format));
     }
     if (p.size > ml1) {
-       warn("Warning: exceeds max allowable size (%lu)\n", ml1 / unitsize(0));
+       warn(_("Warning: exceeds max allowable size (%lu)\n"), ml1 / unitsize(0));
        if (!force)
          return 0;
     }
     if (p.size == 0 && pno >= 4 && (fno < 2 || !*(fields[1]))) {
-       warn("Warning: empty partition\n");
+       warn(_("Warning: empty partition\n"));
        if (!force)
          return 0;
     }
@@ -1986,7 +1944,7 @@ read_line(int pno, struct part_desc *ep, char *dev, int interactive,
     }
 
     if (p.start < ff1 && p.size > 0) {
-       warn("Warning: bad partition start (earliest %lu)\n",
+       warn(_("Warning: bad partition start (earliest %lu)\n"),
             (ff1 + unitsize(0) - 1) / unitsize(0));
        if (!force)
          return 0;
@@ -1999,7 +1957,7 @@ read_line(int pno, struct part_desc *ep, char *dev, int interactive,
     else if (!strcmp(fields[3], "*") || !strcmp(fields[3], "+"))
       ul = 0x80;
     else {
-       warn("unrecognized bootable flag - choose - or *\n");
+       warn(_("unrecognized bootable flag - choose - or *\n"));
        return 0;
     }
     p.p.bootable = ul;
@@ -2016,31 +1974,31 @@ read_line(int pno, struct part_desc *ep, char *dev, int interactive,
       if (fno < 5) {
          bb = aa;
       } else if (fno < 7) {
-         warn("partial c,h,s specification?\n");
+         warn(_("partial c,h,s specification?\n"));
          return 0;
       } else if(get_ul(fields[4], &bb.c, aa.c, 0) ||
                get_ul(fields[5], &bb.h, aa.h, 0) ||
                get_ul(fields[6], &bb.s, aa.s, 0))
        return 0;
-      p.p.begin_chs = longchs_to_chs(bb);
+      p.p.begin_chs = longchs_to_chs(bb,B);
     }
     { longchs aa = chs_to_longchs(p.p.end_chs), bb;
 
       if (fno < 8) {
          bb = aa;
       } else if (fno < 10) {
-         warn("partial c,h,s specification?\n");
+         warn(_("partial c,h,s specification?\n"));
          return 0;
       } else if(get_ul(fields[7], &bb.c, aa.c, 0) ||
                get_ul(fields[8], &bb.h, aa.h, 0) ||
                get_ul(fields[9], &bb.s, aa.s, 0))
        return 0;
-      p.p.end_chs = longchs_to_chs(bb);
+      p.p.end_chs = longchs_to_chs(bb, B);
     }
 
     if (pno > 3 && p.size && show_extended && p.p.sys_type != EMPTY_PARTITION
                && (is_extended(p.p.sys_type) != (pct == 1))) {
-       warn("Extended partition not where expected\n");
+       warn(_("Extended partition not where expected\n"));
        if (!force)
          return 0;
     }
@@ -2050,7 +2008,7 @@ read_line(int pno, struct part_desc *ep, char *dev, int interactive,
       z->partno += 4;          /* reqd for out_partition() */
 
     if (interactive)
-      out_partition(dev, 0, &(z->partitions[pno]), z);
+      out_partition(dev, 0, &(z->partitions[pno]), z, B);
 
     return 1;
 }
@@ -2072,7 +2030,7 @@ read_partition(char *dev, int interactive, int pno, struct part_desc *ep,
 
     while (!(i = read_line(pno, ep, dev, interactive, z)))
       if (!interactive)
-       fatal("bad input\n");
+       fatal(_("bad input\n"));
     if (i < 0) {
        p->ep = ep;
        return 0;
@@ -2094,7 +2052,7 @@ read_partition_chain(char *dev, int interactive, struct part_desc *ep,
     while (1) {
        base = z->partno;
        if (base+4 > SIZE(z->partitions)) {
-           printf("too many partitions\n");
+           printf(_("too many partitions\n"));
            break;
        }
        for (i=0; i<4; i++)
@@ -2127,11 +2085,9 @@ read_input(char *dev, int interactive, struct disk_desc *z) {
     z->partno = 0;
 
     if (interactive)
-      warn("
-Input in the following format; absent fields get a default value.
-<start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s>
-Usually you only need to specify <start> and <size> (and perhaps <type>).
-");
+      warn(_("Input in the following format; absent fields get a default value.\n"
+             "<start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s>\n"
+             "Usually you only need to specify <start> and <size> (and perhaps <type>).\n"));
     eof = 0;
 
     for (i=0; i<4; i++)
@@ -2149,54 +2105,51 @@ Usually you only need to specify <start> and <size> (and perhaps <type>).
  */
 
 static void version(void) {
-    printf(PROGNAME " version " VERSION " (aeb@cwi.nl, " DATE ")\n");
+    printf("%s %s %s (aeb@cwi.nl, %s)\n", PROGNAME, _("version"), VERSION, DATE);
 }
 
 static void
 usage(void) {
     version();
-    printf("Usage:
-       " PROGNAME " [options] device ...
-device: something like /dev/hda or /dev/sda
-useful options:
-    -s [or --show-size]: list size of a partition
-    -c [or --id]:        print or change partition Id
-    -l [or --list]:      list partitions of each device
-    -d [or --dump]:      idem, but in a format suitable for later input
-    -i [or --increment]: number cylinders etc. from 1 instead of from 0
-    -uS, -uB, -uC, -uM:  accept/report in units of sectors/blocks/cylinders/MB
-    -T [or --list-types]:list the known partition types
-    -D [or --DOS]:       for DOS-compatibility: waste a little space
-    -R [or --re-read]:   make kernel reread partition table
-    -N# :                change only the partition with number #
-    -n :                 do not actually write to disk
-    -O file :            save the sectors that will be overwritten to file
-    -I file :            restore these sectors again
-    -v [or --version]:   print version
-    -? [or --help]:      print this message
-dangerous options:
-    -g [or --show-geometry]: print the kernel's idea of the geometry
-    -x [or --show-extended]: also list extended partitions on output
-                           or expect descriptors for them on input
-    -L  [or --Linux]:      do not complain about things irrelevant for Linux
-    -q  [or --quiet]:      suppress warning messages
-    You can override the detected geometry using:
-    -C# [or --cylinders #]:set the number of cylinders to use
-    -H# [or --heads #]:    set the number of heads to use
-    -S# [or --sectors #]:  set the number of sectors to use
-    You can disable all consistency checking with:
-    -f  [or --force]:      do what I say, even if it is stupid
-");
+    printf(_("Usage: %s [options] device ...\n"), PROGNAME);
+    puts (_("device: something like /dev/hda or /dev/sda"));
+    puts (_("useful options:"));
+    puts (_("    -s [or --show-size]: list size of a partition"));
+    puts (_("    -c [or --id]:        print or change partition Id"));
+    puts (_("    -l [or --list]:      list partitions of each device"));
+    puts (_("    -d [or --dump]:      idem, but in a format suitable for later input"));
+    puts (_("    -i [or --increment]: number cylinders etc. from 1 instead of from 0"));
+    puts (_("    -uS, -uB, -uC, -uM:  accept/report in units of sectors/blocks/cylinders/MB"));
+    puts (_("    -T [or --list-types]:list the known partition types"));
+    puts (_("    -D [or --DOS]:       for DOS-compatibility: waste a little space"));
+    puts (_("    -R [or --re-read]:   make kernel reread partition table"));
+    puts (_("    -N# :                change only the partition with number #"));
+    puts (_("    -n :                 do not actually write to disk"));
+    puts (_("    -O file :            save the sectors that will be overwritten to file"));
+    puts (_("    -I file :            restore these sectors again"));
+    puts (_("    -v [or --version]:   print version"));
+    puts (_("    -? [or --help]:      print this message"));
+    puts (_("dangerous options:"));
+    puts (_("    -g [or --show-geometry]: print the kernel's idea of the geometry"));
+    puts (_("    -x [or --show-extended]: also list extended partitions on output\n"
+          "                             or expect descriptors for them on input"));
+    puts (_("    -L  [or --Linux]:      do not complain about things irrelevant for Linux"));
+    puts (_("    -q  [or --quiet]:      suppress warning messages"));
+    puts (_("    You can override the detected geometry using:"));
+    puts (_("    -C# [or --cylinders #]:set the number of cylinders to use"));
+    puts (_("    -H# [or --heads #]:    set the number of heads to use"));
+    puts (_("    -S# [or --sectors #]:  set the number of sectors to use"));
+    puts (_("You can disable all consistency checking with:"));
+    puts (_("    -f  [or --force]:      do what I say, even if it is stupid"));
     exit(1);
 }
 
 static void
 activate_usage(char *progn) {
-    printf("Usage:
-  %s device            list active partitions on device
-  %s device n1 n2 ...  activate partitions n1 ..., inactivate the rest
-  %s device            activate partition n, inactivate the other ones
-", progn, progn, PROGNAME " -An");
+    puts (_("Usage:"));
+    printf(_("%s device                 list active partitions on device\n"), progn);
+    printf(_("%s device n1 n2 ... activate partitions n1 ..., inactivate the rest\n"), progn);
+    printf(_("%s -An device     activate partition n, inactivate the other ones\n"), PROGNAME);
     exit(1);
 }
 
@@ -2310,8 +2263,12 @@ main(int argc, char **argv) {
     char *activatearg = 0;
     char *unhidearg = 0;
 
+    setlocale(LC_ALL, "");
+    bindtextdomain(PACKAGE, LOCALEDIR);
+    textdomain(PACKAGE);
+
     if (argc < 1)
-      fatal("no command?\n");
+      fatal(_("no command?\n"));
     if ((progn = rindex(argv[0], '/')) == NULL)
       progn = argv[0];
     else
@@ -2358,11 +2315,11 @@ main(int argc, char **argv) {
            activatearg = optarg;
            activate = 1; break;
          case 'C':
-           specified_cylinders = atoi(optarg); break;
+           U.cylinders = atoi(optarg); break;
          case 'D':
            DOS = 1; break;
          case 'H':
-           specified_heads = atoi(optarg); break;
+           U.heads = atoi(optarg); break;
          case 'L':
            Linux = 1; break;
          case 'N':
@@ -2374,7 +2331,7 @@ main(int argc, char **argv) {
          case 'R':
            opt_reread = 1; break;
          case 'S':
-           specified_sectors = atoi(optarg); break;
+           U.sectors = atoi(optarg); break;
          case 'T':
            list_types();
            exit(0);
@@ -2434,7 +2391,7 @@ main(int argc, char **argv) {
        }
 
        if (opt_size)
-         printf("total: %d blocks\n", total_size);
+         printf(_("total: %d blocks\n"), total_size);
 
        exit(exit_status);
     }
@@ -2471,18 +2428,18 @@ main(int argc, char **argv) {
     }
     if (do_id) {
         if ((do_id & PRINT_ID) != 0 && optind != argc-2)
-         fatal("usage: sfdisk --print-id device partition-number\n");
+         fatal(_("usage: sfdisk --print-id device partition-number\n"));
        else if ((do_id & CHANGE_ID) != 0 && optind != argc-3)
-         fatal("usage: sfdisk --change-id device partition-number Id\n");
+         fatal(_("usage: sfdisk --change-id device partition-number Id\n"));
        else if (optind != argc-3 && optind != argc-2)
-         fatal("usage: sfdisk --id device partition-number [Id]\n");
+         fatal(_("usage: sfdisk --id device partition-number [Id]\n"));
        do_change_id(argv[optind], argv[optind+1],
                     (optind == argc-2) ? 0 : argv[optind+2]);
        exit(exit_status);
     }
       
     if (optind != argc-1)
-      fatal("can specify only one device (except with -l or -s)\n");
+      fatal(_("can specify only one device (except with -l or -s)\n"));
     dev = argv[optind];
 
     if (opt_reread)
@@ -2507,7 +2464,7 @@ my_open (char *dev, int rw, int silent) {
     fd = open(dev, mode);
     if (fd < 0 && !silent) {
        perror(dev);
-       fatal("cannot open %s %s\n", dev, rw ? "read-write" : "for reading");
+       fatal(_("cannot open %s %s\n"), dev, rw ? _("read-write") : _("for reading"));
     }
     return fd;
 }
@@ -2532,7 +2489,7 @@ do_list (char *dev, int silent) {
 
     if (verify) {
        if (partitions_ok(z))
-         warn("%s: OK\n", dev);
+         warn(_("%s: OK\n"), dev);
        else
          exit_status = 1;
     }
@@ -2549,16 +2506,17 @@ do_geom (char *dev, int silent) {
 
     /* get_cylindersize(dev, fd, silent); */
     if (!ioctl(fd, HDIO_GETGEO, &g))
-       printf("%s: %d cylinders, %d heads, %d sectors/track\n",
+       printf(_("%s: %d cylinders, %d heads, %d sectors/track\n"),
               dev, g.cylinders, g.heads, g.sectors);
     else
-       printf("%s: unknown geometry\n", dev);
+       printf(_("%s: unknown geometry\n"), dev);
 }
 
 /* for compatibility with earlier fdisk: provide option -s */
 void
 do_size (char *dev, int silent) {
-    int fd, size;
+    int fd;
+    long size;
 
     fd = my_open(dev, 0, silent);
     if (fd < 0)
@@ -2567,7 +2525,7 @@ do_size (char *dev, int silent) {
     if(ioctl(fd, BLKGETSIZE, &size)) {
        if(!silent) {
            perror(dev);
-           fatal("BLKGETSIZE ioctl failed for %s\n", dev);
+           fatal(_("BLKGETSIZE ioctl failed for %s\n"), dev);
        }
        return;
     }
@@ -2579,9 +2537,9 @@ do_size (char *dev, int silent) {
       return;
 
     if (silent)
-      printf("%s: %9d\n", dev, size);
+      printf("%s: %9ld\n", dev, size);
     else
-      printf("%d\n", size);
+      printf("%ld\n", size);
 
     total_size += size;
 }
@@ -2644,7 +2602,7 @@ do_activate (char **av, int ac, char *arg) {
                else
                  printf("%s#%d\n", dev, pno);
                if (z->partitions[pno].p.bootable != 0x80)
-                 warn("bad active byte: 0x%x instead of 0x80\n",
+                 warn(_("bad active byte: 0x%x instead of 0x80\n"),
                       z->partitions[pno].p.bootable);
            }
        }
@@ -2661,7 +2619,7 @@ do_activate (char **av, int ac, char *arg) {
 
        /* then write to disk */
        if(write_partitions(dev, fd, z))
-         warn("Done\n\n");
+         warn(_("Done\n\n"));
        else
          exit_status = 1;
     }
@@ -2670,8 +2628,8 @@ do_activate (char **av, int ac, char *arg) {
       if (z->partitions[pno].p.bootable)
        i++;
     if (i != 1)
-      warn("You have %d active primary partitions. This does not matter for LILO,\n"
-          "but the DOS MBR will only boot a disk with 1 active partition.\n", i);
+      warn(_("You have %d active primary partitions. This does not matter for LILO,\n"
+          "but the DOS MBR will only boot a disk with 1 active partition.\n"), i);
 }
 
 void
@@ -2684,7 +2642,7 @@ set_unhidden (struct disk_desc *z, char *pnam) {
     if (id == 0x11 || id == 0x14 || id == 0x16 || id == 0x17)
       id -= 0x10;
     else
-      fatal("partition %s has id %x and is not hidden\n", pnam, id);
+      fatal(_("partition %s has id %x and is not hidden\n"), pnam, id);
     z->partitions[pno].p.sys_type = id;
 }
 
@@ -2714,7 +2672,7 @@ do_unhide (char **av, int ac, char *arg) {
 
     /* then write to disk */
     if(write_partitions(dev, fd, z))
-      warn("Done\n\n");
+      warn(_("Done\n\n"));
     else
       exit_status = 1;
 }
@@ -2740,11 +2698,11 @@ void do_change_id(char *dev, char *pnam, char *id) {
     }
     i = strtoul(id, NULL, 16);
     if (i > 255)
-      fatal("Bad Id %x\n", i);
+      fatal(_("Bad Id %x\n"), i);
     z->partitions[pno].p.sys_type = i;
 
     if(write_partitions(dev, fd, z))
-      warn("Done\n\n");
+      warn(_("Done\n\n"));
     else
       exit_status = 1;
 }
@@ -2755,7 +2713,7 @@ do_reread(char *dev) {
 
     fd = my_open(dev, 0, 0);
     if(reread_ioctl(fd))
-      printf("This disk is currently in use.\n");
+      printf(_("This disk is currently in use.\n"));
 }
 
 /*
@@ -2772,26 +2730,26 @@ do_fdisk(char *dev){
 
     if (stat(dev, &statbuf) < 0) {
        perror(dev);
-       fatal("Fatal error: cannot find %s\n", dev);
+       fatal(_("Fatal error: cannot find %s\n"), dev);
     }
     if (!S_ISBLK(statbuf.st_mode)) {
-       warn("Warning: %s is not a block device\n", dev);
+       warn(_("Warning: %s is not a block device\n"), dev);
+       no_reread = 1;
     }
     fd = my_open(dev, !no_write, 0);
 
     if(!no_write && !no_reread) {
-       warn("Checking that no-one is using this disk right now ...\n");
+       warn(_("Checking that no-one is using this disk right now ...\n"));
        if(reread_ioctl(fd)) {
-           printf("
-This disk is currently in use - repartitioning is probably a bad idea.
-Umount all file systems, and swapoff all swap partitions on this disk.
-Use the --no-reread flag to suppress this check.\n");
+           printf(_("\nThis disk is currently in use - repartitioning is probably a bad idea."
+                  "Umount all file systems, and swapoff all swap partitions on this disk."
+                  "Use the --no-reread flag to suppress this check.\n"));
            if (!force) {
-               printf("Use the --force flag to overrule all checks.\n");
+               printf(_("Use the --force flag to overrule all checks.\n"));
                exit(1);
            }
        } else
-         warn("OK");
+         warn(_("OK"));
     }
 
     z = &oldp;
@@ -2800,11 +2758,11 @@ Use the --no-reread flag to suppress this check.\n");
     get_cylindersize(dev, fd, 0);
     get_partitions(dev, fd, z);
 
-    printf("Old situation:\n");
+    printf(_("Old situation:\n"));
     out_partitions(dev, z);
 
     if (one_only && (one_only_pno = linux_to_index(one_only, z)) < 0)
-      fatal("Partition %d does not exist, cannot change it\n", one_only);
+      fatal(_("Partition %d does not exist, cannot change it\n"), one_only);
 
     z = &newp;
 
@@ -2812,35 +2770,35 @@ Use the --no-reread flag to suppress this check.\n");
 
        read_input(dev, interactive, z);
 
-       printf("New situation:\n");
+       printf(_("New situation:\n"));
        out_partitions(dev, z);
 
        if (!partitions_ok(z) && !force) {
            if(!interactive)
-             fatal("I don't like these partitions - nothing changed.\n"
-                   "(If you really want this, use the --force option.)\n");
+             fatal(_("I don't like these partitions - nothing changed.\n"
+                     "(If you really want this, use the --force option.)\n"));
            else
-             printf("I don't like this - probably you should answer No\n");
+             printf(_("I don't like this - probably you should answer No\n"));
        }
       ask:
        if (interactive) {
            if (no_write)
-             printf("Are you satisfied with this? [ynq] ");
+             printf(_("Are you satisfied with this? [ynq] "));
            else
-             printf("Do you want to write this to disk? [ynq] ");
+             printf(_("Do you want to write this to disk? [ynq] "));
            answer = c = getchar();
            while (c != '\n' && c != EOF)
              c = getchar();
            if (c == EOF)
-               printf("\nsfdisk: premature end of input\n");
+               printf(_("\nsfdisk: premature end of input\n"));
            if (c == EOF || answer == 'q' || answer == 'Q') {
-               fatal("Quitting - nothing changed\n");
+               fatal(_("Quitting - nothing changed\n"));
            } else if (answer == 'n' || answer == 'N') {
                continue;
            } else if (answer == 'y' || answer == 'Y') {
                break;
            } else {
-               printf("Please answer one of y,n,q\n");
+               printf(_("Please answer one of y,n,q\n"));
                goto ask;
            }
        } else
@@ -2848,15 +2806,15 @@ Use the --no-reread flag to suppress this check.\n");
     }
 
     if(write_partitions(dev, fd, z))
-      printf("Successfully wrote the new partition table\n\n");
+      printf(_("Successfully wrote the new partition table\n\n"));
     else
       exit_status = 1;
 
     reread_disk_partition(dev, fd);
     
-    warn("If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)\n"
+    warn(_("If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)\n"
         "to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1\n"
-        "(See fdisk(8).)\n");
+        "(See fdisk(8).)\n"));
     
     sync();                    /* superstition */
     sleep(3);
index 58a8f8f6b1718225b6342fdd33dd7ae1d3ee53af..23297857a1c3395f51a7481ad47ab40d5365a181 100644 (file)
@@ -4,7 +4,7 @@
 # Copyright 1992, 1993, 1994, 1995 Rickard E. Faith (faith@cs.unc.edu)
 # May be distributed under the GPL
 #
-
+include ../make_include
 include ../MCONFIG
 
 # Where to put man pages?
index 400076e635a786d0ae722afcbc20819fe4531138..a429c84218f45f9195760649f2bb48fec71a0a6b 100644 (file)
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
+ *
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
  */
 
-/*
+/* 
  * banner - prints large signs
  * banner [-w#] [-d] [-t] message ...
  */
@@ -41,6 +44,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include "nls.h"
 
 #define MAXMSG 1024
 #define DWIDTH 132
@@ -1019,11 +1023,12 @@ main(argc, argv)
        char **argv;
 { 
        int ch;
-
-#ifdef __linux__
        extern char *__progname;
        __progname = argv[0];
-#endif
+
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
 
        while ((ch = getopt(argc, argv, "w:td")) != EOF)
                switch(ch) {
@@ -1040,7 +1045,7 @@ main(argc, argv)
                        break;
                case '?':
                default:
-                       fprintf(stderr, "usage: banner [-w width]\n");
+                       fprintf(stderr, _("usage: banner [-w width]\n"));
                        exit(1);
                }
        argc -= optind;
@@ -1060,7 +1065,7 @@ main(argc, argv)
                }
                nchars = strlen(message);
        } else {
-               fprintf(stderr,"Message: ");
+               fprintf(stderr,_("Message: "));
                (void)fgets(message, sizeof(message), stdin);
                nchars = strlen(message);
                message[nchars--] = '\0';       /* get rid of newline */
@@ -1094,7 +1099,7 @@ main(argc, argv)
        for (i = 0; i < nchars; i++)
                if ((u_char) message[i] >= NCHARS ||
                    asc_ptr[(u_char) message[i]] == 0) {
-                       warnx("The character '%c' is not in my character set",
+                       warnx(_("The character '%c' is not in my character set"),
                                message[i]);
                        j++;
                }
@@ -1102,7 +1107,7 @@ main(argc, argv)
                exit(1);
 
        if (trace)
-               printf("Message '%s' is OK\n",message);
+               printf(_("Message '%s' is OK\n"),message);
        /* Now have message. Print it one character at a time.  */
 
        for (i = 0; i < nchars; i++) {
similarity index 100%
rename from getopt-1.0.3a/COPYING
rename to getopt-1.0.3b/COPYING
similarity index 97%
rename from getopt-1.0.3a/Makefile
rename to getopt-1.0.3b/Makefile
index 0d4a5ad0640a8fb506f2ccd5a372b55e6540b371..92e99e9de2efc9956e4d7c632c0f50b732f6f16d 100644 (file)
@@ -1,5 +1,6 @@
 .SUFFIXES:
 
+include ../make_include
 include ../MCONFIG
 
 GETOPTDIR=$(USRLIBDIR)/getopt
similarity index 100%
rename from getopt-1.0.3a/README
rename to getopt-1.0.3b/README
similarity index 100%
rename from getopt-1.0.3a/TODO
rename to getopt-1.0.3b/TODO
similarity index 85%
rename from getopt-1.0.3a/getopt.c
rename to getopt-1.0.3b/getopt.c
index de643f1a7c62241297cdf8ca876d71ce09631f94..345c1b977ad8efdc0830c068fb572f0895ceee87 100644 (file)
  * Version 1.0.2: Thu Jun 11 1998 (not present)
  *   Fixed gcc-2.8.1 warnings
  *   Fixed --version/-V option (not present)
+ * Version 1.0.3
+ *   1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ *   - added Native Language Support
+ *   
  */
 
 #include <stdio.h>
@@ -35,6 +39,7 @@
 #include <string.h>
 #include <unistd.h>
 #include <ctype.h>
+#include "../lib/nls.h"
 
 #if LIBCGETOPT
 #include <getopt.h>
@@ -77,7 +82,7 @@ void *our_malloc(size_t size)
 {
        void *ret=malloc(size);
        if (! ret) {
-               fputs("getopt: Out of memory!",stderr);
+               fprintf(stderr,_("%s: Out of memory!\n"),"getopt");
                exit(3);
        }
        return(ret);
@@ -87,7 +92,7 @@ void *our_realloc(void *ptr, size_t size)
 {
         void *ret=realloc(ptr,size);
         if (! ret && size) {
-                fputs("getopt: Out of memory!",stderr);
+               fprintf(stderr,_("%s: Out of memory!\n"), "getopt");
                 exit(3);
         }
         return(ret);
@@ -221,7 +226,7 @@ void parse_error(const char *message)
 {
        if (message)
                fprintf(stderr,"getopt: %s\n",message);
-       fputs("Try `getopt --help' for more information.\n",stderr);
+       fputs(_("Try `getopt --help' for more information.\n"),stderr);
        exit(2);
 }
 
@@ -287,8 +292,8 @@ void add_long_options(char *options)
                                        arg_opt=required_argument;
                                }
                                if (strlen(tokptr) == 0)
-                                       parse_error("empty long option after "
-                                                     "-l or --long argument");
+                                       parse_error(_("empty long option after "
+                                                     "-l or --long argument"));
                        }
                        add_longopt(tokptr,arg_opt);
                }
@@ -307,25 +312,25 @@ void set_shell(const char *new_shell)
        else if (!strcmp(new_shell,"csh"))
                shell=TCSH;
        else
-               parse_error("unknown shell after -s or --shell argument");
+               parse_error(_("unknown shell after -s or --shell argument"));
 }
 
 void print_help(void)
 {
-       fputs("Usage: getopt optstring parameters\n",stderr);
-       fputs("       getopt [options] [--] optstring parameters\n",stderr);
-       fputs("       getopt [options] -o|--options optstring [options] [--]\n",stderr);
-        fputs("              parameters\n",stderr);
-       fputs("  -a, --alternative            Allow long options starting with single -\n",stderr);
-       fputs("  -h, --help                   This small usage guide\n",stderr);
-       fputs("  -l, --longoptions=longopts   Long options to be recognized\n",stderr);
-       fputs("  -n, --name=progname          The name under which errors are reported\n",stderr);
-       fputs("  -o, --options=optstring      Short options to be recognized\n",stderr);
-        fputs("  -q, --quiet                  Disable error reporting by getopt(3)\n",stderr);
-       fputs("  -Q, --quiet-output           No normal output\n",stderr);
-       fputs("  -s, --shell=shell            Set shell quoting conventions\n",stderr); 
-       fputs("  -T, --test                   Test for getopt(1) version\n",stderr);
-       fputs("  -V, --version                Output version information\n",stderr);
+       fputs(_("Usage: getopt optstring parameters\n"),stderr);
+       fputs(_("       getopt [options] [--] optstring parameters\n"),stderr);
+       fputs(_("       getopt [options] -o|--options optstring [options] [--]\n"),stderr);
+        fputs(_("              parameters\n"),stderr);
+       fputs(_("  -a, --alternative            Allow long options starting with single -\n"),stderr);
+       fputs(_("  -h, --help                   This small usage guide\n"),stderr);
+       fputs(_("  -l, --longoptions=longopts   Long options to be recognized\n"),stderr);
+       fputs(_("  -n, --name=progname          The name under which errors are reported\n"),stderr);
+       fputs(_("  -o, --options=optstring      Short options to be recognized\n"),stderr);
+        fputs(_("  -q, --quiet                  Disable error reporting by getopt(3)\n"),stderr);
+       fputs(_("  -Q, --quiet-output           No normal output\n"),stderr);
+       fputs(_("  -s, --shell=shell            Set shell quoting conventions\n"),stderr);      
+       fputs(_("  -T, --test                   Test for getopt(1) version\n"),stderr);
+       fputs(_("  -V, --version                Output version information\n"),stderr);
        exit(2);
 }
        
@@ -361,6 +366,10 @@ int main(int argc, char *argv[])
        int opt;
        int compatible=0;
 
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+
        init_longopt();
 
        if (getenv("GETOPT_COMPATIBLE")) 
@@ -375,7 +384,7 @@ int main(int argc, char *argv[])
                        exit(0);
                }
                else
-                       parse_error("missing optstring argument");
+                       parse_error(_("missing optstring argument"));
        }
        
        if (argv[1][0] != '-' || compatible) {
@@ -421,19 +430,19 @@ int main(int argc, char *argv[])
                case 'T':
                        exit(4);
                case 'V':
-                       printf("getopt (enhanced) 1.0.3\n");
+                       printf(_("getopt (enhanced) 1.0.3\n"));
                        exit(0);
                case '?':
                case ':':
                        parse_error(NULL);
                default:
-                       parse_error("internal error, contact the author.");
+                       parse_error(_("internal error, contact the author."));
                }
        
        if (!optstr) 
        {
                if (optind >= argc)
-                       parse_error("missing optstring argument");
+                       parse_error(_("missing optstring argument"));
                else {
                        optstr=our_malloc(strlen(argv[optind])+1);
                        strcpy(optstr,argv[optind]);
diff --git a/getpoe.sh b/getpoe.sh
deleted file mode 100644 (file)
index 6c80894..0000000
--- a/getpoe.sh
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/bash -x
-adm=/tmp/admutil
-poe=/tmp/poeigl
-tmp=/tmp/$$
-diffs=poe.diffs
-
-if [ -e $diffs ]; then rm $diffs; fi
-if [ ! -d $tmp ]; then mkdir $tmp; fi
-
-function cmpandcp () {
-    dir=$1;
-    i=$2;
-    name=${i#$poe/};
-    name=${name#$adm/};
-    target=$dir/$name;
-    diff -u $target.c $i.c >> $diffs;
-    mv $target.c $tmp/$name.c;
-    mv $i.c $target.c;
-    for k in man 1 8; do
-        if [ -e $i.$k ]; then
-            for j in 1 8; do
-                if [ -e $target.$j ]; then
-                    diff -u $target.$j $i.$k >> $diffs;
-                    mv $target.$j $tmp/$name.$j;
-                    mv $i.$k $target.$j;
-                fi
-            done
-        fi
-    done
-}
-
-
-# login-utils
-for i in $poe/agetty $adm/last $poe/login $adm/newgrp $adm/passwd \
-        $adm/shutdown $poe/simpleinit; do
-    cmpandcp login-utils $i;
-done
-
-# misc-utils
-cmpandcp misc-utils $poe/hostid;
-cmpandcp misc-utils $poe/domainname;
-
-# sys-utils
-cmpandcp sys-utils $adm/ctrlaltdel;
-
-# READMEs
-diff -u $adm/README login-utils/README.admutil >> $diffs
-mv $adm/README login-utils/README.admutil
-
-diff -u $poe/README login-utils/README.poeigl >> $diffs
-mv $poe/README login-utils/README.poeigl
-
-diff -u $poe/README.getty login-utils >> $diffs
-mv $poe/README.getty login-utils
-
-exit
diff --git a/kbd/Makefile b/kbd/Makefile
new file mode 100644 (file)
index 0000000..30bfb0e
--- /dev/null
@@ -0,0 +1,25 @@
+# Makefile -- Makefile for util-linux Linux utilities
+#
+include ../make_include
+include ../MCONFIG
+
+# Where to put man pages?
+
+MAN8=          kbdrate.8
+
+# Where to put binaries?
+# See the "install" rule for the links. . .
+
+SBIN=          kbdrate
+
+all: $(SBIN)
+
+kbdrate: kbdrate.o
+
+install: all
+       $(INSTALLDIR) $(SBINDIR) $(MAN8DIR)
+       $(INSTALLBIN) $(SBIN) $(SBINDIR)
+       $(INSTALLMAN) $(MAN8) $(MAN8DIR)
+
+clean:
+       -rm -f *.o *~ core $(SBIN)
diff --git a/kbd/README b/kbd/README
new file mode 100644 (file)
index 0000000..97ca5bd
--- /dev/null
@@ -0,0 +1,2 @@
+This stuff belongs in the kbd package and will disappear here.
+It is left for a while - version in kbd* and here will be identical.
diff --git a/kbd/README.clear b/kbd/README.clear
new file mode 100644 (file)
index 0000000..7684132
--- /dev/null
@@ -0,0 +1,7 @@
+RedHat and SuSE take the program clear from ncurses.
+ A 20KB program equivalent to "tput clear".
+
+Slackware uses the script.
+
+So, both versions will behave identically, and
+Slackware saves 20 KB.
diff --git a/kbd/README.reset b/kbd/README.reset
new file mode 100644 (file)
index 0000000..8060d26
--- /dev/null
@@ -0,0 +1,20 @@
+RedHat and SuSE take the program reset from ncurses,
+ where reset is a name for the program tset.
+ It is approximately equivalent to
+       stty sane; tputs rs1; tputs rs2; tputs rf
+ with `tputs rf' replaced by `tputs if' when there is an
+ init_file but no reset_file. In the comments it wonders
+ whether also sending rs3, rmacs, rmul, rmm might be a good idea.
+
+Slackware uses the small script given here.
+ The part `echo -e \\033c' is the canonical reset of the kernel
+ console status, and is equivalent to `tputs rs1' for a linux
+ terminal.
+
+So, both versions are approximately the same.
+
+
+[A disadvantage of `echo -e \\033c' might be that it is potentially
+wrong on a non-vt100, non-xterm, non-linux terminal.
+An advantage is that there are terminfo entries for xterm around
+that only use rs1=^O as reset, and then \Ec is much better.]
diff --git a/kbd/clear b/kbd/clear
new file mode 100755 (executable)
index 0000000..73d1ebe
--- /dev/null
+++ b/kbd/clear
@@ -0,0 +1,2 @@
+#! /bin/sh
+tput clear
diff --git a/kbd/clear.1 b/kbd/clear.1
new file mode 100644 (file)
index 0000000..9d20823
--- /dev/null
@@ -0,0 +1,31 @@
+.\" Copyright 1992 Rickard E. Faith (faith@cs.unc.edu)
+.\" May be distributed under the GNU General Public License
+.TH CLEAR 1 "10 October 1993" "Linux 0.99" "Linux Programmer's Manual"
+.SH NAME
+clear \- clear terminal screen
+.SH SYNOPSIS
+.BR clear
+.SH DESCRIPTION
+.B clear
+calls
+.BR tput (1)
+with the
+.I clear
+argument.  This causes
+.B tput
+to attempt to clear the screen checking the data in
+.I /etc/termcap
+(for the GNU or BSD
+.BR tput )
+or in the terminfo database
+(for the
+.B ncurses
+.BR tput )
+and sending the appropriate sequence to the terminal.  This command can be
+redirected to clear the screen of some other terminal.
+.SH "SEE ALSO"
+.BR reset (1),
+.BR stty (1),
+.BR tput (1)
+.SH AUTHOR
+Rik Faith (faith@cs.unc.edu)
diff --git a/kbd/kbdrate.8 b/kbd/kbdrate.8
new file mode 100644 (file)
index 0000000..66715de
--- /dev/null
@@ -0,0 +1,68 @@
+.\" Copyright 1992, 1994 Rickard E. Faith (faith@cs.unc.edu)
+.\" May be distributed under the GNU General Public License
+.\" Updated Wed Jun 22 21:09:43 1994, faith@cs.unc.edu
+.\"
+.TH KBDRATE 8 "22 June 1994" "Linux 1.1.19" "Linux Programmer's Manual"
+.SH NAME
+kbdrate \- reset the keyboard repeat rate and delay time
+.SH SYNOPSIS
+.B "kbdrate [ \-s ] [ \-r"
+rate
+.B "] [ \-d"
+delay
+.B ]
+.SH DESCRIPTION
+.B kbdrate
+is used to change the keyboard repeat rate and delay time.  The delay
+is the amount of time that a key must be depressed before it will start to
+repeat.
+
+Using
+.B kbdrate
+without any options will reset the repeat rate to 10.9 characters per second (cps)
+and the delay to 250 milliseconds (ms) for Intel- and M68K-based systems.
+These are the IBM defaults. On SPARC-based systems it will reset the repeat rate
+to 5 cps and the delay to 200 ms.
+
+.SH OPTIONS
+.TP
+.B \-s
+Silent.  No messages are printed.
+.TP
+.BI \-r " rate"
+Change the keyboard repeat rate to
+.I rate
+cps.   For Intel-based systems, the allowable range is from 2.0 to 30.0 cps.
+Only certain, specific values are possible, and the program will select the
+nearest possible value to the one specified.  The possible values are given,
+in characters per second, as follows: 2.0, 2.1, 2.3, 2.5, 2.7, 3.0, 3.3, 3.7,
+4.0, 4.3, 4.6, 5.0, 5.5, 6.0, 6.7, 7.5, 8.0, 8.6, 9.2, 10.0, 10.9, 12.0, 13.3,
+15.0, 16.0, 17.1, 18.5, 20.0, 21.8, 24.0, 26.7, 30.0.
+For SPARC-based systems, the allowable range is from 0 (no repeat) to 50 cps.
+.TP
+.BI \-d " delay"
+Change the delay to
+.I delay
+milliseconds.
+For Intel-based systems, the allowable range is from 250 to 1000 ms,
+in 250 ms steps. For SPARC systems, possible values are between 10 ms and 1440 ms,
+in 10 ms steps.
+.SH BUGS
+Not all keyboards support all rates.
+.PP
+Not all keyboards have the rates mapped in the same way.
+.PP
+Setting the repeat rate on the Gateway AnyKey keyboard does not work.  If
+someone with a Gateway figures out how to program the keyboard, please send
+mail to util-linux@math.uio.no.
+.PP
+All this is very architecture dependent.
+Nowadays
+.B kbdrate
+first tries the KDKBDREP and KIOCSRATE ioctls.
+(The former usually works on an m68k machine, the latter for SPARC.)
+When these ioctls fail an ioport interface as on i386 is assumed.
+.SH FILES
+.I /etc/rc.local
+.br
+.I /dev/port
similarity index 58%
rename from sys-utils/kbdrate.c
rename to kbd/kbdrate.c
index 504429452507e35c28e9277e3fafb095c5afb3b9..5388a6ef015db2950e77f04a67a64e1088d7afc8 100644 (file)
@@ -15,10 +15,10 @@ will start to repeat.
 
 Usage examples:
 
-kbdrate                 set rate to IBM default (10.9 cps, 250mS delay)
-kbdrate -r 30.0         set rate to 30 cps and delay to 250mS
-kbdrate -r 20.0 -s      set rate to 20 cps (delay 250mS) -- don't print message
-kbdrate -r 0 -d 0       set rate to 2.0 cps and delay to 250 mS
+kbdrate                 set rate to IBM default (10.9 cps, 250ms delay)
+kbdrate -r 30.0         set rate to 30 cps and delay to 250ms
+kbdrate -r 20.0 -s      set rate to 20 cps (delay 250ms) -- don't print message
+kbdrate -r 0 -d 0       set rate to 2.0 cps and delay to 250 ms
 
 I find it useful to put kbdrate in my /etc/rc file so that the keyboard
 rate is set to something that I find comfortable at boot time.  This sure
@@ -57,6 +57,15 @@ beats rebuilding the kernel!
   kbdrate now first tries if the KDKBDREP ioctl is available. If it
   is, it is used, else the old method is applied.
 
+  1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+  - added Native Language Support
+
+  1999-03-17
+  Linux/SPARC modifications by Jeffrey Connell <ankh@canuck.gen.nz>:
+  It seems that the KDKBDREP ioctl is not available on this platform.
+  However, Linux/SPARC has its own ioctl for this, with yet another
+  different measurement system.  Thus, try for KIOCSRATE, too.
+
 */
 
 #include <stdio.h>
@@ -65,14 +74,18 @@ beats rebuilding the kernel!
 #include <errno.h>
 #include <sys/file.h>
 #include <sys/ioctl.h>
-#include <linux/version.h>
-#if LINUX_VERSION_CODE >= 131072
-/* kd.h is not available with all linux versions.  131072 is equivalent
-   to linux 2.0.0 */
+
+#include "../defines.h"
+#ifdef HAVE_kd_h
 #include <linux/kd.h>
 #endif
+#ifdef __sparc__
+#include <asm/param.h>
+#include <asm/kbio.h>
+#endif
 
-#define VERSION "1.3"
+#include "nls.h"
+#include "../version.h"
 
 static int valid_rates[] = { 300, 267, 240, 218, 200, 185, 171, 160, 150,
                                    133, 120, 109, 100, 92, 86, 80, 75, 67,
@@ -83,15 +96,98 @@ static int valid_rates[] = { 300, 267, 240, 218, 200, 185, 171, 160, 150,
 static int valid_delays[] = { 250, 500, 750, 1000 };
 #define DELAY_COUNT (sizeof( valid_delays ) / sizeof( int ))
 
+int
+KDKBDREP_ioctl_ok(double rate, int delay, int silent) {
 #ifdef KDKBDREP
-static int ioctl_possible = 0;
-struct kbd_repeat kbdrep_s;
-#endif
+     /* This ioctl is defined in <linux/kd.h> but is not
+       implemented anywhere - must be in some m68k patches. */
+   struct kbd_repeat kbdrep_s;
+
+   /* don't change, just test */
+   kbdrep_s.rate = -1;
+   kbdrep_s.delay = -1;
+   if (ioctl( 0, KDKBDREP, &kbdrep_s )) {
+     if (errno == EINVAL)
+       return 0;
+     perror( "ioctl(KDKBDREP)" );
+     exit( 1 );
+   }
+
+   /* do the change */
+   if (rate == 0)                              /* switch repeat off */
+     kbdrep_s.rate = 0;
+   else
+     kbdrep_s.rate  = 1000.0 / rate;           /* convert cps to msec */
+   if (kbdrep_s.rate < 1)
+     kbdrep_s.rate = 1;
+   kbdrep_s.delay = delay;
+   if (kbdrep_s.delay < 1)
+     kbdrep_s.delay = 1;
+   
+   if (ioctl( 0, KDKBDREP, &kbdrep_s )) {
+     perror( "ioctl(KDKBDREP)" );
+     exit( 1 );
+   }
+
+   /* report */
+   if (kbdrep_s.rate == 0)
+     rate = 0;
+   else
+     rate = 1000.0 / (double) kbdrep_s.rate;
+
+   if (!silent)
+     printf( _("Typematic Rate set to %.1f cps (delay = %d ms)\n"),
+            rate, kbdrep_s.delay );
+
+   return 1;                   /* success! */
+
+#else /* no KDKBDREP */
+   return 0;
+#endif /* KDKBDREP */
+}
+
+int
+KIOCSRATE_ioctl_ok(double rate, int delay, int silent) {
+#ifdef KIOCSRATE
+   struct kbd_rate kbdrate_s;
+   int fd;
+
+   fd = open("/dev/kbd", O_RDONLY);
+   if (fd == -1) {
+     perror( "open(/dev/kbd)" );
+     exit( 1 );
+   }
+
+   kbdrate_s.rate = (int) (rate + 0.5);  /* must be integer, so round up */
+   kbdrate_s.delay = delay * HZ / 1000;  /* convert ms to Hz */
+   if (kbdrate_s.rate > 50)
+     kbdrate_s.rate = 50;
+
+   if (ioctl( fd, KIOCSRATE, &kbdrate_s )) {
+     perror( "ioctl(KIOCSRATE)" );
+     exit( 1 );
+   }
+   close( fd );
+
+   if (!silent)
+     printf( "Typematic Rate set to %d cps (delay = %d ms)\n",
+            kbdrate_s.rate, kbdrate_s.delay * 1000 / HZ );
+
+   return 1;
+#else /* no KIOCSRATE */
+   return 0;
+#endif /* KIOCSRATE */
+}
 
 int main( int argc, char **argv )
 {
+#ifdef __sparc__
+   double      rate = 5.0;      /* Default rate */
+   int         delay = 200;     /* Default delay */
+#else
    double      rate = 10.9;     /* Default rate */
    int         delay = 250;     /* Default delay */
+#endif
    int         value = 0x7f;    /* Maximum delay with slowest rate */
                                 /* DO NOT CHANGE this value */
    int         silent = 0;
@@ -101,7 +197,12 @@ int main( int argc, char **argv )
    int         i;
    extern char *optarg;
 
-   while ( (c = getopt( argc, argv, "r:d:sv" )) != EOF )
+   setlocale(LC_ALL, "");
+   bindtextdomain(PACKAGE, LOCALEDIR);
+   textdomain(PACKAGE);
+   
+
+   while ( (c = getopt( argc, argv, "r:d:sv" )) != EOF ) {
          switch (c) {
          case 'r':
             rate = atof( optarg );
@@ -113,43 +214,17 @@ int main( int argc, char **argv )
             silent = 1;
             break;
         case 'v':
-           fprintf( stderr, "util-linux kbdrate " VERSION "\n");
+           fprintf( stderr, "util-linux %s kbdrate\n", UTIL_LINUX_VERSION);
            exit(0);
          }
+   }
+
+   if(KDKBDREP_ioctl_ok(rate, delay, silent))  /* m68k? */
+       return 0;
+
+   if(KIOCSRATE_ioctl_ok(rate, delay, silent)) /* sparc? */
+       return 0;
 
-#ifdef KDKBDREP
-   kbdrep_s.rate = -1; /* don't change, just test */
-   kbdrep_s.delay = -1;
-   if (ioctl( 0, KDKBDREP, &kbdrep_s )) {
-     if (errno == EINVAL)
-       ioctl_possible = 0;
-     else {
-       perror( "ioctl(KDKBDREP)" );
-       exit( 1 );
-     }
-   } else ioctl_possible = 1;
-
-   if (ioctl_possible) {
-     if (rate == 0)                            /* switch repeat off */
-       kbdrep_s.rate = 0;
-     else
-       kbdrep_s.rate  = 1000.0 / rate;         /* convert cps to msec */
-     if (kbdrep_s.rate < 1)
-       kbdrep_s.rate = 1;
-     kbdrep_s.delay = delay;
-     if (kbdrep_s.delay < 1)
-       kbdrep_s.delay = 1;
-     
-     if (ioctl( 0, KDKBDREP, &kbdrep_s )) {
-       perror( "ioctl(KDKBDREP)" );
-       exit( 1 );
-     }
-          
-     if (!silent)
-       printf( "Typematic Rate set to %.1f cps (delay = %d mS)\n",
-              1000.0 / (double)kbdrep_s.rate, kbdrep_s.delay );
-   } else {
-#endif
 
     /* The ioport way */
 
@@ -169,7 +244,7 @@ int main( int argc, char **argv )
        }
 
       if ( (fd = open( "/dev/port", O_RDWR )) < 0) {
-       perror( "Cannot open /dev/port" );
+       perror( _("Cannot open /dev/port") );
        exit( 1 );
       }
 
@@ -193,13 +268,9 @@ int main( int argc, char **argv )
 
       close( fd );
 
-      if (!silent) printf( "Typematic Rate set to %.1f cps (delay = %d mS)\n",
+      if (!silent) printf( _("Typematic Rate set to %.1f cps (delay = %d ms)\n"),
                            valid_rates[value & 0x1f] / 10.0,
                            valid_delays[ (value & 0x60) >> 5 ] );
 
-#ifdef KDKBDREP
-   }
-#endif
-
    return 0;
 }
diff --git a/kbd/reset b/kbd/reset
new file mode 100755 (executable)
index 0000000..fb9834d
--- /dev/null
+++ b/kbd/reset
@@ -0,0 +1,11 @@
+#!/bin/sh
+stty sane
+tput clear
+tput rmacs
+tput rmm
+tput rmso
+tput rmul
+tput rs1
+tput rs2
+tput rs3
+echo -e \\033c
index 5503a605928da2972e10756d76a90dd2036b4ff3..a9f8596d1cd07a723e78f3199c9a21c161bafb2b 100644 (file)
@@ -1,13 +1,16 @@
+include ../make_include
 include ../MCONFIG
 
 CFLAGS=-I$(LIB) $(OPT)
 
-all: err.o my_reboot.o setproctitle.o
+all: err.o my_reboot.o setproctitle.o env.o
 
 err.o: err.c
 
 my_reboot.o: my_reboot.c linux_reboot.h
 
+env.o: env.h
+
 setproctitle.o: setproctitle.h
 
 .PHONY: clean
diff --git a/lib/env.c b/lib/env.c
new file mode 100644 (file)
index 0000000..69c821c
--- /dev/null
+++ b/lib/env.c
@@ -0,0 +1,73 @@
+/*
+ * Security checks of enviroment
+ * Added from shadow-utils package
+ * by Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ *
+ */ 
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "env.h"
+
+extern char **environ;
+
+static char * const forbid[] = {
+        "_RLD_=",
+        "BASH_ENV=",    /* GNU creeping featurism strikes again... */
+        "ENV=",
+        "HOME=",
+        "IFS=",
+        "KRB_CONF=",
+        "LD_",          /* anything with the LD_ prefix */
+        "LIBPATH=",
+        "MAIL=",
+        "NLSPATH=",
+        "PATH=",
+        "SHELL=",
+        "SHLIB_PATH=",
+        (char *) 0
+};
+
+/* these are allowed, but with no slashes inside
+   (to work around security problems in GNU gettext) */
+static char * const noslash[] = {
+        "LANG=",
+        "LANGUAGE=",
+        "LC_",          /* anything with the LC_ prefix */
+        (char *) 0
+};
+
+void
+sanitize_env(void)
+{
+        char **envp = environ;
+        char * const *bad;
+        char **cur;
+        char **move;
+
+        for (cur = envp; *cur; cur++) {
+                for (bad = forbid; *bad; bad++) {
+                        if (strncmp(*cur, *bad, strlen(*bad)) == 0) {
+                                for (move = cur; *move; move++)
+                                        *move = *(move + 1);
+                                cur--;
+                                break;
+                        }
+                }
+        }
+
+        for (cur = envp; *cur; cur++) {
+                for (bad = noslash; *bad; bad++) {
+                        if (strncmp(*cur, *bad, strlen(*bad)) != 0)
+                                continue;
+                        if (!strchr(*cur, '/'))
+                                continue;  /* OK */
+                        for (move = cur; *move; move++)
+                                *move = *(move + 1);
+                        cur--;
+                        break;
+                }
+        }
+}
+
diff --git a/lib/env.h b/lib/env.h
new file mode 100644 (file)
index 0000000..d69b4f2
--- /dev/null
+++ b/lib/env.h
@@ -0,0 +1,2 @@
+extern void sanitize_env (void);
+
index 2731a714faddfe148104571797fcddfb2035c809..d531922409f707d14121566086e740d7079133f2 100644 (file)
--- a/lib/err.c
+++ b/lib/err.c
 #include <varargs.h>
 #endif
 
+#include "../defines.h"
+#ifdef HAVE_progname
 extern char *__progname;               /* Program name, from crt0. */
-#ifdef __linux__
-char *__progname;
+#else
+char *__progname = "foo";              /* probably libc4 */
 #endif
 
 __dead void
diff --git a/lib/nls.h b/lib/nls.h
new file mode 100644 (file)
index 0000000..67b42a9
--- /dev/null
+++ b/lib/nls.h
@@ -0,0 +1,33 @@
+
+#include "../defines.h"                /* for HAVE_locale_h */
+
+#ifndef PACKAGE
+#define PACKAGE        "util-linux"
+#endif
+
+#ifndef LOCALEDIR
+#define LOCALEDIR "/usr/share/locale"
+#endif
+
+#ifdef HAVE_locale_h
+# include <locale.h>
+#endif
+
+#ifdef ENABLE_NLS
+# include <libintl.h>
+# define _(Text) gettext (Text)
+# ifdef gettext_noop
+#  define N_(String) gettext_noop (String)
+# else
+#  define N_(String) (String)
+# endif
+#else
+# undef bindtextdomain
+# define bindtextdomain(Domain, Directory) /* empty */
+# undef textdomain
+# define textdomain(Domain) /* empty */
+# define _(Text) (Text)
+# define N_(Text) (Text)
+#endif
+
+
index bff1362daddd51b8824aee570e15ffa35e09b319..319bc6a9fa295e6fc0c1170450c285cd0c31d6a3 100644 (file)
 #include <stdarg.h>
 #include "setproctitle.h"
 
-#ifndef SPT_PADCHAR
-#define SPT_PADCHAR     ' '
-#endif
-
 #ifndef SPT_BUFSIZE
 #define SPT_BUFSIZE     2048
 #endif
@@ -65,7 +61,6 @@ initproctitle (int argc, char **argv) {
 /* Nice code, but many places do not know about vsnprintf ... */
 void
 setproctitle (const char *fmt,...) {
-       char       *p;
        int        i;
        char       buf[SPT_BUFSIZE];
        va_list    ap;
@@ -82,16 +77,14 @@ setproctitle (const char *fmt,...) {
                i = argv_lth - 2;
                buf[i] = '\0';
        }
+       memset(argv0[0], '\0', argv_lth);       /* clear the memory area */
        (void) strcpy (argv0[0], buf);
-       p = &argv0[0][i];
-       while (i < argv_lth)
-               *p++ = SPT_PADCHAR, i++;
+
        argv0[1] = NULL;
 }
 #else
 void
 setproctitle (const char *prog, const char *txt) {
-        char       *p;
         int        i;
         char       buf[SPT_BUFSIZE];
 
@@ -108,10 +101,9 @@ setproctitle (const char *prog, const char *txt) {
                 i = argv_lth - 2;
                 buf[i] = '\0';
         }
+       memset(argv0[0], '\0', argv_lth);       /* clear the memory area */
         (void) strcpy (argv0[0], buf);
-        p = &argv0[0][i];
-        while (i < argv_lth)
-                *p++ = SPT_PADCHAR, i++;
+
         argv0[1] = NULL;
 }
 #endif
similarity index 100%
rename from COPYING.GPL
rename to licenses/COPYING.GPL
similarity index 100%
rename from COPYING.UCB
rename to licenses/COPYING.UCB
index f4bbc5a99e40643860c6906a747f0aa5bc540b4f..4dcfee26f30b68224d20669431841842aede24ff 100644 (file)
@@ -3,9 +3,10 @@
 # Revised: Sun Nov 10 20:28:43 1996 by faith@cs.unc.edu
 # Copyright 1992, 1993, 1994, 1995 Rickard E. Faith (faith@cs.unc.edu)
 #
-# Suggested changed from Bauke Jan Douma <bjdouma@xs4all.nl> have been
+# Suggested changes from Bauke Jan Douma <bjdouma@xs4all.nl> have been
 # implemented to handle shadow and sysvinit systems 
 
+include ../make_include
 include ../MCONFIG
 
 # Where to put man pages?
@@ -37,7 +38,7 @@ USRBIN.PASSWD=        passwd
 
 USRSBIN.PUTILS=        vipw
 
-ifeq "$(HAVE_LIBCRYPT)" "yes"
+ifeq "$(NEED_LIBCRYPT)" "yes"
 CRYPT=-lcrypt
 endif
 
@@ -84,9 +85,9 @@ all-misc: $(USRBIN.MISC)
 
 agetty.o: $(LIB)/pathnames.h
 agetty: agetty.o
-chfn: chfn.o islocal.o setpwnam.o
+chfn: chfn.o islocal.o setpwnam.o $(LIB)/env.o
        $(CC) $(LDFLAGS) -o $@ $^ $(CRYPT) $(PAM)
-chsh: chsh.o islocal.o setpwnam.o
+chsh: chsh.o islocal.o setpwnam.o $(LIB)/env.o
        $(CC) $(LDFLAGS) -o $@ $^ $(CRYPT) $(PAM)
 islocal.o: $(LIB)/pathnames.h
 last.o: $(LIB)/pathnames.h
@@ -101,13 +102,17 @@ login: login.o $(LIB)/setproctitle.o checktty.o
 endif
 
 mesg: mesg.o $(ERR_O)
+
 newgrp: newgrp.o 
        $(CC) $(LDFLAGS) -o $@ $^ $(CRYPT) $(PAM)
+
 setpwnam.o: $(LIB)/pathnames.h
 shutdown.o: $(LIB)/pathnames.h $(LIB)/linux_reboot.h
 shutdown: shutdown.o $(LIB)/my_reboot.o
 simpleinit.o: $(LIB)/pathnames.h $(LIB)/linux_reboot.h
 simpleinit: simpleinit.o $(LIB)/my_reboot.o
+       $(CC) $(LDFLAGS) -o $@ $^ $(CRYPT)
+
 vipw.o: $(LIB)/pathnames.h
 vipw: vipw.o
 
@@ -127,7 +132,7 @@ login.o: $(LIB)/pathnames.h
 mesg.o: $(LIB)/err.h
 endif
 
-passwd: passwd.o islocal.o setpwnam.o
+passwd: passwd.o islocal.o setpwnam.o $(LIB)/env.o
        $(CC) $(LDFLAGS) -o $@ $^ $(CRYPT)
 
 ifeq "$(REQUIRE_PASSWORD)" "yes"
index 96d7b38d035ebc1bce4941b3ee0930ad7fedabf3..c85526dc0259d6943ff8a1cb660559a512f67c1d 100644 (file)
@@ -4,6 +4,13 @@
    be here. Now read the real man-page agetty.8 instead.
 
    -f option added by Eric Rasmussen <ear@usfirst.org> - 12/28/95
+   
+   1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+   - added Native Language Support
+
+   1999-05-05 Thorsten Kranzkowski <dl8bcu@gmx.net>
+   - enable hardware flow control before displaying /etc/issue
+   
 */
 
 #include <stdio.h>
@@ -23,6 +30,7 @@
 #include <getopt.h>
 #include <memory.h>
 #include <sys/file.h>
+#include "nls.h"
 
 #ifdef __linux__
 #include "pathnames.h"
@@ -255,6 +263,10 @@ main(argc, argv)
        0,                              /* no baud rates known yet */
     };
 
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+    
     /* The BSD-style init command passes us a useless process name. */
 
 #ifdef SYSV_STYLE
@@ -288,7 +300,7 @@ main(argc, argv)
     update_utmp(options.tty);
 #endif
 
-    debug("calling open_tty\n");
+    debug(_("calling open_tty\n"));
     /* Open the tty as standard { input, output, error }. */
     open_tty(options.tty, &termio, options.flags & F_LOCAL);
 
@@ -301,12 +313,12 @@ main(argc, argv)
        }
 #endif
     /* Initialize the termio settings (raw mode, eight-bit, blocking i/o). */
-    debug("calling termio_init\n");
-    termio_init(&termio, options.speeds[FIRST_SPEED], options.flags & F_LOCAL);
+    debug(_("calling termio_init\n"));
+    termio_init(&termio, options.speeds[FIRST_SPEED], &options);
 
     /* write the modem init string and DON'T flush the buffers */
     if (options.flags & F_INITSTRING) {
-       debug("writing init string\n");
+       debug(_("writing init string\n"));
        write(1, options.initstring, strlen(options.initstring));
     }
 
@@ -316,7 +328,7 @@ main(argc, argv)
     }
 
     /* Optionally detect the baud rate from the modem status message. */
-    debug("before autobaud\n");
+    debug(_("before autobaud\n"));
     if (options.flags & F_PARSE)
        auto_baud(&termio);
 
@@ -328,11 +340,11 @@ main(argc, argv)
     if (options.flags & F_WAITCRLF) {
        char ch;
 
-       debug("waiting for cr-lf\n");
+       debug(_("waiting for cr-lf\n"));
        while(read(0, &ch, 1) == 1) {
            ch &= 0x7f;   /* strip "parity bit" */
 #ifdef DEBUGGING
-           fprintf(dbf, "read %c\n", ch);
+           fprintf(dbf, _("read %c\n"), ch);
 #endif
            if (ch == '\n' || ch == '\r') break;
        }
@@ -341,7 +353,7 @@ main(argc, argv)
     chardata = init_chardata;
     if (!(options.flags & F_NOPROMPT)) {
        /* Read the login name. */
-       debug("reading login name\n");
+       debug(_("reading login name\n"));
        while ((logname = get_logname(&options, &chardata, &termio)) == 0)
          next_speed(&termio, &options);
     }
@@ -362,7 +374,7 @@ main(argc, argv)
     /* Let the login program take care of password validation. */
 
     (void) execl(options.login, options.login, "--", logname, (char *) 0);
-    error("%s: can't exec %s: %m", options.tty, options.login);
+    error(_("%s: can't exec %s: %m"), options.tty, options.login);
     exit(0);  /* quiet GCC */
 }
 
@@ -382,7 +394,7 @@ parse_args(argc, argv, op)
        switch (c) {
        case 'I':
            if (!(op->initstring = malloc(strlen(optarg)))) {
-               error("can't malloc initstring");
+               error(_("can't malloc initstring"));
                break;
            }
            {
@@ -444,7 +456,7 @@ parse_args(argc, argv, op)
            break;
        case 't':                               /* time out */
            if ((op->timeout = atoi(optarg)) <= 0)
-               error("bad timeout value: %s", optarg);
+               error(_("bad timeout value: %s"), optarg);
            break;
        case 'w':
            op->flags |= F_WAITCRLF;
@@ -453,7 +465,7 @@ parse_args(argc, argv, op)
            usage();
        }
     }
-       debug("after getopt loop\n");
+       debug(_("after getopt loop\n"));
     if (argc < optind + 2)                     /* check parameter count */
        usage();
 
@@ -471,7 +483,7 @@ parse_args(argc, argv, op)
     if (argc > optind && argv[optind])
        setenv ("TERM", argv[optind], 1);
 
-    debug("exiting parseargs\n");
+    debug(_("exiting parseargs\n"));
 }
 
 /* parse_speeds - parse alternate baud rates */
@@ -484,14 +496,14 @@ parse_speeds(op, arg)
     char   *strtok();
     char   *cp;
 
-       debug("entered parse_speeds\n");
+       debug(_("entered parse_speeds\n"));
     for (cp = strtok(arg, ","); cp != 0; cp = strtok((char *) 0, ",")) {
        if ((op->speeds[op->numspeed++] = bcode(cp)) <= 0)
-           error("bad speed: %s", cp);
+           error(_("bad speed: %s"), cp);
        if (op->numspeed > MAX_SPEED)
-           error("too many alternate speeds");
+           error(_("too many alternate speeds"));
     }
-    debug("exiting parsespeeds\n");
+    debug(_("exiting parsespeeds\n"));
 }
 
 #ifdef SYSV_STYLE
@@ -503,7 +515,6 @@ update_utmp(line)
 {
     struct  utmp ut;
     time_t  t;
-    int     ut_fd;
     int     mypid = getpid();
     long    time();
     long    lseek();
@@ -548,6 +559,7 @@ update_utmp(line)
 #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1)
        updwtmp(_PATH_WTMP, &ut);
 #else
+       int ut_fd;
        int lf;
 
        if ((lf = open(_PATH_WTMPLOCK, O_CREAT|O_WRONLY, 0660)) >= 0) {
@@ -562,24 +574,26 @@ update_utmp(line)
 #endif
     }
 #else /* not __linux__ */
-    if ((ut_fd = open(UTMP_FILE, 2)) < 0) {
-       error("%s: open for update: %m", UTMP_FILE);
-    } else {
-       long    ut_size = sizeof(ut);       /* avoid nonsense */
-
-       while (read(ut_fd, (char *) &ut, sizeof(ut)) == sizeof(ut)) {
-           if (ut.ut_type == INIT_PROCESS && ut.ut_pid == mypid) {
-               ut.ut_type = LOGIN_PROCESS;
-               ut.ut_time = time((long *) 0);
-               (void) strncpy(ut.ut_name, "LOGIN", sizeof(ut.ut_name));
-               (void) strncpy(ut.ut_line, line, sizeof(ut.ut_line));
-               (void) lseek(ut_fd, -ut_size, 1);
-               (void) write(ut_fd, (char *) &ut, sizeof(ut));
-               (void) close(ut_fd);
-               return;
-           }
-       }
-       error("%s: no utmp entry", line);
+    { int     ut_fd;
+      if ((ut_fd = open(UTMP_FILE, 2)) < 0) {
+         error(_("%s: open for update: %m"), UTMP_FILE);
+      } else {
+         long    ut_size = sizeof(ut);       /* avoid nonsense */
+
+         while (read(ut_fd, (char *) &ut, sizeof(ut)) == sizeof(ut)) {
+             if (ut.ut_type == INIT_PROCESS && ut.ut_pid == mypid) {
+                 ut.ut_type = LOGIN_PROCESS;
+                 ut.ut_time = time((long *) 0);
+                 (void) strncpy(ut.ut_name, "LOGIN", sizeof(ut.ut_name));
+                 (void) strncpy(ut.ut_line, line, sizeof(ut.ut_line));
+                 (void) lseek(ut_fd, -ut_size, 1);
+                 (void) write(ut_fd, (char *) &ut, sizeof(ut));
+                 (void) close(ut_fd);
+                 return;
+             }
+         }
+         error(_("%s: no utmp entry"), line);
+      }
     }
 #endif /* __linux__ */
 }
@@ -607,20 +621,20 @@ open_tty(tty, tp, local)
        /* Sanity checks... */
 
        if (chdir("/dev"))
-           error("/dev: chdir() failed: %m");
+           error(_("/dev: chdir() failed: %m"));
        if (stat(tty, &st) < 0)
            error("/dev/%s: %m", tty);
        if ((st.st_mode & S_IFMT) != S_IFCHR)
-           error("/dev/%s: not a character device", tty);
+           error(_("/dev/%s: not a character device"), tty);
 
        /* Open the tty as standard input. */
 
        (void) close(0);
        errno = 0;                              /* ignore close(2) errors */
 
-       debug("open(2)\n");
+       debug(_("open(2)\n"));
        if (open(tty, O_RDWR|O_NONBLOCK, 0) != 0)
-           error("/dev/%s: cannot open as standard input: %m", tty);
+           error(_("/dev/%s: cannot open as standard input: %m"), tty);
 
     } else {
 
@@ -630,13 +644,13 @@ open_tty(tty, tp, local)
         */
 
        if ((fcntl(0, F_GETFL, 0) & O_RDWR) != O_RDWR)
-           error("%s: not open for read/write", tty);
+           error(_("%s: not open for read/write"), tty);
     }
 
     /* Set up standard output and standard error file descriptors. */
-    debug("duping\n");
+    debug(_("duping\n"));
     if (dup(0) != 1 || dup(0) != 2)            /* set up stdout and stderr */
-       error("%s: dup problem: %m", tty);      /* we have a problem */
+       error(_("%s: dup problem: %m"), tty);   /* we have a problem */
 
     /*
      * The following ioctl will fail if stdin is not a tty, but also when
@@ -668,10 +682,10 @@ char gbuf[1024];
 char area[1024];
 
 void
-termio_init(tp, speed, local)
+termio_init(tp, speed, op)
      struct termio *tp;
      int     speed;
-     int       local;
+     struct options *op;
 {
 
     /*
@@ -686,19 +700,27 @@ termio_init(tp, speed, local)
 #endif
 
     tp->c_cflag = CS8 | HUPCL | CREAD | speed;
-    if (local) {
+    if (op->flags & F_LOCAL) {
        tp->c_cflag |= CLOCAL;
     }
 
     tp->c_iflag = tp->c_lflag = tp->c_oflag = tp->c_line = 0;
     tp->c_cc[VMIN] = 1;
     tp->c_cc[VTIME] = 0;
+
+    /* Optionally enable hardware flow control */
+
+#ifdef CRTSCTS
+    if (op->flags & F_RTSCTS)
+       tp->c_cflag |= CRTSCTS;
+#endif
+
     (void) ioctl(0, TCSETA, tp);
 
     /* go to blocking input even in local mode */
     fcntl(0, F_SETFL, fcntl(0, F_GETFL, 0) & ~O_NONBLOCK);
 
-    debug("term_io 2\n");
+    debug(_("term_io 2\n"));
 }
 
 /* auto_baud - extract baud rate from modem status message */
@@ -878,9 +900,9 @@ do_prompt(op, tp)
                        if (ut->ut_type == USER_PROCESS)
                          users++;
                      endutent();
-                     printf ("%d", users);
+                     printf ("%d ", users);
                      if (c == 'U')
-                       printf (" user%s", users == 1 ? "" : "s");
+                       printf ((users == 1) ? _("user") : _("users"));
                      break;
                    }
                  default:
@@ -968,7 +990,7 @@ char   *get_logname(op, cp, tp)
            if (read(0, &c, 1) < 1) {
                if (errno == EINTR || errno == EIO)
                    exit(0);
-               error("%s: read: %m", op->tty);
+               error(_("%s: read: %m"), op->tty);
            }
            /* Do BREAK handling elsewhere. */
 
@@ -1014,7 +1036,7 @@ char   *get_logname(op, cp, tp)
                if (!isascii(ascval) || !isprint(ascval)) {
                     /* ignore garbage characters */ ;
                } else if (bp - logname >= sizeof(logname) - 1) {
-                   error("%s: input overrun", op->tty);
+                   error(_("%s: input overrun"), op->tty);
                } else {
                    (void) write(1, &c, 1);     /* echo the character */
                    *bp++ = ascval;             /* and store it */
@@ -1138,10 +1160,7 @@ bcode(s)
 void
 usage()
 {
-    static char msg[] =
-    "[-hiLmw] [-l login_program] [-t timeout] [-I initstring] baud_rate,... line [termtype]\nor\t[-hiLmw] [-l login_program] [-t timeout] [-I initstring] line baud_rate,... [termtype]";
-
-    fprintf(stderr, "Usage: %s %s\n", progname, msg);
+    fprintf(stderr, _("Usage: %s [-hiLmw] [-l login_program] [-t timeout] [-I initstring] baud_rate,... line [termtype]\nor\t[-hiLmw] [-l login_program] [-t timeout] [-I initstring] line baud_rate,... [termtype]\n"), progname);
     exit(1);
 }
 
@@ -1220,6 +1239,6 @@ error(va_alist)
        (void) close(fd);
     }
 #endif
-    (void) sleep((unsigned) 10);                       /* be kind to init(8) */
+    (void) sleep((unsigned) 10);               /* be kind to init(8) */
     exit(1);
 }
index 15873aa44e1c60c2ae271e9e68382cdcde52f8cb..66fee73385cf96ff9888f1346f8800534aba1429 100644 (file)
@@ -1,6 +1,10 @@
 /* checktty.c - linked into login, checks user against /etc/usertty
    Created 25-Aug-95 by Peter Orbaek <poe@daimi.aau.dk>
    Fixed by JDS June 1996 to clear lists and close files
+
+   1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+   - added Native Language Support
+
 */
 
 #include <sys/types.h>
@@ -17,6 +21,7 @@
 #include <malloc.h>
 #include <netdb.h>
 #include <sys/syslog.h>
+#include "nls.h"
 
 #ifdef __linux__
 #  include <sys/sysmacros.h>
@@ -38,13 +43,13 @@ char *hostname;
 void 
 badlogin(const char *s)
 {
-    printf("badlogin: %s\n", s);
+    printf(_("badlogin: %s\n"), s);
 }
 
 void
 sleepexit(int x)
 {
-    printf("sleepexit %d\n", x);
+    printf(_("sleepexit %d\n"), x);
     exit(1);
 }
 #endif
@@ -100,8 +105,8 @@ new_class(char *class)
 
     tc = (struct ttyclass *)malloc(sizeof(struct ttyclass));
     if (tc == NULL) {
-       printf("login: memory low, login may fail\n");
-       syslog(LOG_WARNING, "can't malloc for ttyclass");
+       printf(_("login: memory low, login may fail\n"));
+       syslog(LOG_WARNING, _("can't malloc for ttyclass"));
        return NULL;
     }
 
@@ -122,8 +127,8 @@ add_to_class(struct ttyclass *tc, char *tty)
 
     ge = (struct grplist *)malloc(sizeof(struct grplist));
     if (ge == NULL) {
-       printf("login: memory low, login may fail\n");
-       syslog(LOG_WARNING, "can't malloc for grplist");
+       printf(_("login: memory low, login may fail\n"));
+       syslog(LOG_WARNING, _("can't malloc for grplist"));
        return;
     }
 
@@ -135,8 +140,6 @@ add_to_class(struct ttyclass *tc, char *tty)
 
 
 /* return true if tty is a pty. Very linux dependent */
-/* Note that the new dynamic ptys (say /dev/pty/0 etc) have major in 128-135 */
-/* We might try TIOCGPTN or so to recognise these new ones, if desired */
 static int
 isapty(const char *tty)
 {
@@ -150,16 +153,25 @@ isapty(const char *tty)
 
 #if defined(__linux__)
     if((stat(devname, &stb) >= 0) && S_ISCHR(stb.st_mode)) {
+           int majordev = major(stb.st_rdev);
+
+           /* this is for linux versions before 1.3: use major 4 */
+           if(majordev == TTY_MAJOR && minor(stb.st_rdev) >= 192)
+                   return 1;
 
 #if defined(PTY_SLAVE_MAJOR)
-           /* this is for linux 1.3 and newer */
-           if(major(stb.st_rdev) == PTY_SLAVE_MAJOR)
+           /* this is for linux 1.3 and newer: use major 3 */
+           if(majordev == PTY_SLAVE_MAJOR)
                    return 1;
 #endif
 
-           /* this is for linux versions before 1.3, backward compat. */
-           if(major(stb.st_rdev) == TTY_MAJOR && minor(stb.st_rdev) >= 192)
+#if defined(UNIX98_PTY_SLAVE_MAJOR) && defined(UNIX98_PTY_MAJOR_COUNT)
+           /* this is for linux 2.1.116 and newer: use majors 136-143 */
+           if(majordev >= UNIX98_PTY_SLAVE_MAJOR &&
+              majordev < UNIX98_PTY_SLAVE_MAJOR + UNIX98_PTY_MAJOR_COUNT)
                    return 1;
+#endif
+
     }
 #endif
     return 0;
@@ -416,7 +428,7 @@ checktty(const char *user, const char *tty, struct passwd *pwd)
        }
 
        /* there was a default rule, but user didn't match, reject! */
-       printf("Login on %s from %s denied by default.\n", tty, hostname);
+       printf(_("Login on %s from %s denied by default.\n"), tty, hostname);
        badlogin(user);
        sleepexit(1);
     }
@@ -427,7 +439,7 @@ checktty(const char *user, const char *tty, struct passwd *pwd)
           name of the tty where the user is trying to log in.
           So deny access! */
 
-       printf("Login on %s from %s denied.\n", tty, hostname);
+       printf(_("Login on %s from %s denied.\n"), tty, hostname);
        badlogin(user);
        sleepexit(1);
     }
index 3da2360f1de45487fb4610d3796783e1f766d499..5fe5025de6d04c890163414dc2cfb42e19496a29 100644 (file)
  * Updated Thu Oct 12 09:19:26 1995 by faith@cs.unc.edu with security
  * patches from Zefram <A.Main@dcs.warwick.ac.uk>
  *
- *  Hacked by Peter Breitenlohner, peb@mppmu.mpg.de,
- *    to remove trailing empty fields.  Oct 5, 96.
+ * Hacked by Peter Breitenlohner, peb@mppmu.mpg.de,
+ * to remove trailing empty fields.  Oct 5, 96.
+ *
+ *  1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ *  - added Native Language Support
+ *    
  *
  */
 
@@ -32,6 +36,8 @@
 #include <locale.h>
 #include "my_crypt.h"
 #include "../version.h"
+#include "nls.h"
+#include "env.h"
 
 #if REQUIRE_PASSWORD && USE_PAM
 #include <security/pam_appl.h>
@@ -79,14 +85,14 @@ extern int setpwnam P((struct passwd *pwd));
 
 #define memzero(ptr, size) memset((char *) ptr, 0, size)
 
-/* we do not accept gecos field sizes lengther than MAX_FIELD_SIZE */
+/* we do not accept gecos field sizes longer than MAX_FIELD_SIZE */
 #define MAX_FIELD_SIZE         256
 
 int main (argc, argv)
     int argc;
     char *argv[];
 {
-    char *cp, *pwdstr;
+    char *cp;
     uid_t uid;
     struct finfo oldf, newf;
     boolean interactive;
@@ -98,15 +104,17 @@ int main (argc, argv)
     struct pam_conv conv = { misc_conv, NULL };
 #endif
 
+    sanitize_env();
+    setlocale(LC_ALL, "");     /* both for messages and for iscntrl() below */
+    bindtextdomain(PACKAGE, LOCALEDIR);
+    textdomain(PACKAGE);
+
     /* whoami is the program name for error messages */
     whoami = argv[0];
     if (! whoami) whoami = "chfn";
     for (cp = whoami; *cp; cp++)
        if (*cp == '/') whoami = cp + 1;
 
-    /* iscntrl() below should not reject actual names */
-    setlocale(LC_ALL,"");
-
     /*
      * "oldf" contains the users original finger information.
      * "newf" contains the changed finger information, and contains NULL
@@ -125,19 +133,19 @@ int main (argc, argv)
     if (! newf.username) {
        parse_passwd (getpwuid (uid), &oldf);
        if (! oldf.username) {
-           fprintf (stderr, "%s: you (user %d) don't exist.\n", whoami, uid);
+           fprintf (stderr, _("%s: you (user %d) don't exist.\n"), whoami, uid);
            return (-1); }
     }
     else {
        parse_passwd (getpwnam (newf.username), &oldf);
        if (! oldf.username) {
            cp = newf.username;
-           fprintf (stderr, "%s: user \"%s\" does not exist.\n", whoami, cp);
+           fprintf (stderr, _("%s: user \"%s\" does not exist.\n"), whoami, cp);
            return (-1); }
     }
 
     if (!(is_local(oldf.username))) {
-       fprintf (stderr, "%s: can only change local entries; use yp%s instead.\n",
+       fprintf (stderr, _("%s: can only change local entries; use yp%s instead.\n"),
            whoami, whoami);
        exit(1);
     }
@@ -149,28 +157,28 @@ int main (argc, argv)
        return (-1);
     }
 
-    printf ("Changing finger information for %s.\n", oldf.username);
+    printf (_("Changing finger information for %s.\n"), oldf.username);
 
 #if REQUIRE_PASSWORD
 # if USE_PAM
     if(uid != 0) {
         if (pam_start("chfn", oldf.username, &conv, &pamh)) {
-           puts("Password error.");
+           puts(_("Password error."));
            exit(1);
        }
         if (pam_authenticate(pamh, 0)) {
-           puts("Password error.");
+           puts(_("Password error."));
            exit(1);
        }
         retcode = pam_acct_mgmt(pamh, 0);
         if (retcode == PAM_NEW_AUTHTOK_REQD) {
            retcode = pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK);
         } else if (retcode) {
-           puts("Password error.");
+           puts(_("Password error."));
            exit(1);
        }
         if (pam_setcred(pamh, 0)) {
-           puts("Password error.");
+           puts(_("Password error."));
            exit(1);
        }
         /* no need to establish a session; this isn't a session-oriented
@@ -179,10 +187,10 @@ int main (argc, argv)
 # else /* USE_PAM */
     /* require password, unless root */
     if(uid != 0 && oldf.pw->pw_passwd && oldf.pw->pw_passwd[0]) {
-       pwdstr = getpass("Password: ");
+       char *pwdstr = getpass(_("Password: "));
        if(strncmp(oldf.pw->pw_passwd,
                   crypt(pwdstr, oldf.pw->pw_passwd), 13)) {
-           puts("Incorrect password.");
+           puts(_("Incorrect password."));
            exit(1);
        }
     }
@@ -193,7 +201,7 @@ int main (argc, argv)
     if (interactive) ask_info (&oldf, &newf);
 
     if (! set_changed_data (&oldf, &newf)) {
-       printf ("Finger information not changed.\n");
+       printf (_("Finger information not changed.\n"));
        return 0;
     }
     status = save_new_data (&oldf);
@@ -296,9 +304,9 @@ static boolean parse_argv (argc, argv, pinfo)
 static void usage (fp)
     FILE *fp;
 {
-    fprintf (fp, "Usage: %s [ -f full-name ] [ -o office ] ", whoami);
-    fprintf (fp, "[ -p office-phone ]\n        [ -h home-phone ] ");
-    fprintf (fp, "[ --help ] [ --version ]\n");
+    fprintf (fp, _("Usage: %s [ -f full-name ] [ -o office ] "), whoami);
+    fprintf (fp, _("[ -p office-phone ]\n      [ -h home-phone ] "));
+    fprintf (fp, _("[ --help ] [ --version ]\n"));
 }
 
 /*
@@ -367,7 +375,7 @@ static char *prompt (question, def_val)
        printf("%s [%s]: ", question, def_val);
        *buf = 0;
        if (fgets (buf, sizeof (buf), stdin) == NULL) {
-           printf ("\nAborted.\n");
+           printf (_("\nAborted.\n"));
            exit (-1);
        }
        /* remove the newline at the end of buf. */
@@ -400,7 +408,7 @@ static int check_gecos_string (msg, gecos)
     if (strlen(gecos) > MAX_FIELD_SIZE) {
        if (msg != NULL)
            printf("%s: ", msg);
-       printf("field is too long.\n");
+       printf(_("field is too long.\n"));
        return -1;
     }
 
@@ -408,12 +416,12 @@ static int check_gecos_string (msg, gecos)
        c = gecos[i];
        if (c == ',' || c == ':' || c == '=' || c == '"' || c == '\n') {
            if (msg) printf ("%s: ", msg);
-           printf ("'%c' is not allowed.\n", c);
+           printf (_("'%c' is not allowed.\n"), c);
            return (-1);
        }
        if (iscntrl (c)) {
            if (msg) printf ("%s: ", msg);
-           printf ("Control characters are not allowed.\n");
+           printf (_("Control characters are not allowed.\n"));
            return (-1);
        }
     }
@@ -478,10 +486,10 @@ static int save_new_data (pinfo)
     pinfo->pw->pw_gecos = gecos;
     if (setpwnam (pinfo->pw) < 0) {
        perror ("setpwnam");
-       printf( "Finger information *NOT* changed.  Try again later.\n" );
+       printf( _("Finger information *NOT* changed.  Try again later.\n" ));
        return (-1);
     }
-    printf ("Finger information changed.\n");
+    printf (_("Finger information changed.\n"));
     return 0;
 }
 
@@ -495,7 +503,7 @@ static void *xmalloc (bytes)
 
     vp = malloc (bytes);
     if (! vp && bytes > 0) {
-       perror ("malloc failed");
+       perror (_("malloc failed"));
        exit (-1);
     }
     return vp;
index 8e8a51bc0e569e178f0ca886680e6081b6ddd24a..f9c4d743fa17c92026be807e79073cce0203c50d 100644 (file)
  *   suggestion from Zefram.  Disallowing users with shells not in /etc/shells
  *   from changing their shell.
  *
+ *   1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ *   - added Native Language Support
+ *
+ *
  */
 
 #if 0
@@ -34,6 +38,8 @@
 #include <getopt.h>
 #include "my_crypt.h"
 #include "../version.h"
+#include "nls.h"
+#include "env.h"
 
 #if REQUIRE_PASSWORD && USE_PAM
 #include <security/pam_appl.h>
@@ -79,7 +85,7 @@ int main (argc, argv)
     int argc;
     char *argv[];
 {
-    char *cp, *shell, *oldshell, *pwdstr;
+    char *cp, *shell, *oldshell;
     uid_t uid;
     struct sinfo info;
     struct passwd *pw;
@@ -90,6 +96,11 @@ int main (argc, argv)
     struct pam_conv conv = { misc_conv, NULL };
 #endif
 
+    sanitize_env();
+    setlocale(LC_ALL, "");
+    bindtextdomain(PACKAGE, LOCALEDIR);
+    textdomain(PACKAGE);
+
     /* whoami is the program name for error messages */
     whoami = argv[0];
     if (! whoami) whoami = "chsh";
@@ -104,20 +115,19 @@ int main (argc, argv)
     if (! info.username) {
        pw = getpwuid (uid);
        if (! pw) {
-           fprintf (stderr, "%s: you (user %d) don't exist.\n", whoami, uid);
+           fprintf (stderr, _("%s: you (user %d) don't exist.\n"), whoami, uid);
            return (-1); }
     }
     else {
        pw = getpwnam (info.username);
        if (! pw) {
            cp = info.username;
-           fprintf (stderr, "%s: user \"%s\" does not exist.\n", whoami, cp);
+           fprintf (stderr, _("%s: user \"%s\" does not exist.\n"), whoami, cp);
            return (-1); }
     }
 
     if (!(is_local(pw->pw_name))) {
-       fprintf (stderr, "%s: can only change local entries; use yp%s instead.\n
-",
+       fprintf (stderr, _("%s: can only change local entries; use yp%s instead.\n"),
            whoami, whoami);
        exit(1);
     }
@@ -128,35 +138,35 @@ int main (argc, argv)
     /* reality check */
     if (uid != 0 && (uid != pw->pw_uid || !get_shell_list(oldshell))) {
        errno = EACCES;
-       fprintf(stderr,"%s: Your shell is not in /etc/shells, shell change"
-               " denied\n",whoami);
+       fprintf(stderr,_("%s: Your shell is not in /etc/shells, shell change"
+               " denied\n"),whoami);
        return (-1);
     }
     
     shell = info.shell;
 
-    printf( "Changing shell for %s.\n", pw->pw_name );
+    printf( _("Changing shell for %s.\n"), pw->pw_name );
 
 #if REQUIRE_PASSWORD
 # if USE_PAM
     if(uid != 0) {
         if (pam_start("chsh", pw->pw_name, &conv, &pamh)) {
-           puts("Password error.");
+           puts(_("Password error."));
            exit(1);
        }
         if (pam_authenticate(pamh, 0)) {
-           puts("Password error.");
+           puts(_("Password error."));
            exit(1);
        }
         retcode = pam_acct_mgmt(pamh, 0);
         if (retcode == PAM_NEW_AUTHTOK_REQD) {
            retcode = pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK);
         } else if (retcode) {
-           puts("Password error.");
+           puts(_("Password error."));
            exit(1);
        }
         if (pam_setcred(pamh, 0)) {
-           puts("Password error.");
+           puts(_("Password error."));
            exit(1);
        }
         /* no need to establish a session; this isn't a session-oriented
@@ -165,10 +175,10 @@ int main (argc, argv)
 # else /* USE_PAM */
     /* require password, unless root */
     if(uid != 0 && pw->pw_passwd && pw->pw_passwd[0]) {
-       pwdstr = getpass("Password: ");
+       char *pwdstr = getpass(_("Password: "));
        if(strncmp(pw->pw_passwd,
                   crypt(pwdstr, pw->pw_passwd), 13)) {
-           puts("Incorrect password.");
+           puts(_("Incorrect password."));
            exit(1);
        }
     }
@@ -176,24 +186,24 @@ int main (argc, argv)
 #endif /* REQUIRE_PASSWORD */
 
     if (! shell) {
-       shell = prompt ("New shell", oldshell);
+       shell = prompt (_("New shell"), oldshell);
        if (! shell) return 0;
     }
     
     if (check_shell (shell) < 0) return (-1);
 
     if (! strcmp (pw->pw_shell, shell)) {
-       printf ("Shell not changed.\n");
+       printf (_("Shell not changed.\n"));
        return 0;
     }
     if (!strcmp(shell, "/bin/sh")) shell = "";
     pw->pw_shell = shell;
     if (setpwnam (pw) < 0) {
        perror ("setpwnam");
-       printf( "Shell *NOT* changed.  Try again later.\n" );
+       printf( _("Shell *NOT* changed.  Try again later.\n") );
        return (-1);
     }
-    printf ("Shell changed.\n");
+    printf (_("Shell changed.\n"));
     return 0;
 }
 
@@ -261,9 +271,9 @@ static void parse_argv (argc, argv, pinfo)
 static void usage (fp)
     FILE *fp;
 {
-    fprintf (fp, "Usage: %s [ -s shell ] ", whoami);
-    fprintf (fp, "[ --list-shells ] [ --help ] [ --version ]\n");
-    fprintf (fp, "       [ username ]\n");
+    fprintf (fp, _("Usage: %s [ -s shell ] "), whoami);
+    fprintf (fp, _("[ --list-shells ] [ --help ] [ --version ]\n"));
+    fprintf (fp, _("       [ username ]\n"));
 }
 
 /*
@@ -281,7 +291,7 @@ static char *prompt (question, def_val)
     printf("%s [%s]: ", question, def_val);
     *buf = 0;
     if (fgets (buf, sizeof (buf), stdin) == NULL) {
-       printf ("\nAborted.\n");
+       printf (_("\nAborted.\n"));
        exit (-1);
     }
     /* remove the newline at the end of buf. */
@@ -307,44 +317,44 @@ static int check_shell (shell)
     int i, c;
 
     if (*shell != '/') {
-       printf ("%s: shell must be a full path name.\n", whoami);
+       printf (_("%s: shell must be a full path name.\n"), whoami);
        return (-1);
     }
     if (access (shell, F_OK) < 0) {
-       printf ("%s: \"%s\" does not exist.\n", whoami, shell);
+       printf (_("%s: \"%s\" does not exist.\n"), whoami, shell);
        return (-1);
     }
     if (access (shell, X_OK) < 0) {
-       printf ("%s: \"%s\" is not executable.\n", whoami, shell);
+       printf (_("%s: \"%s\" is not executable.\n"), whoami, shell);
        return (-1);
     }
     /* keep /etc/passwd clean. */
     for (i = 0; i < strlen (shell); i++) {
        c = shell[i];
        if (c == ',' || c == ':' || c == '=' || c == '"' || c == '\n') {
-           printf ("%s: '%c' is not allowed.\n", whoami, c);
+           printf (_("%s: '%c' is not allowed.\n"), whoami, c);
            return (-1);
        }
        if (iscntrl (c)) {
-           printf ("%s: Control characters are not allowed.\n", whoami);
+           printf (_("%s: Control characters are not allowed.\n"), whoami);
            return (-1);
        }
     }
 #if ONLY_LISTED_SHELLS
     if (! get_shell_list (shell)) {
        if (!getuid())
-         printf ("Warning: \"%s\" is not listed in /etc/shells\n", shell);
+         printf (_("Warning: \"%s\" is not listed in /etc/shells\n"), shell);
        else {
-         printf ("%s: \"%s\" is not listed in /etc/shells.\n",
+         printf (_("%s: \"%s\" is not listed in /etc/shells.\n"),
                  whoami, shell);
-         printf( "%s: use -l option to see list\n", whoami );
+         printf( _("%s: use -l option to see list\n"), whoami );
          exit(1);
        }
     }
 #else
     if (! get_shell_list (shell)) {
-       printf ("Warning: \"%s\" is not listed in /etc/shells.\n", shell);
-       printf( "Use %s -l to see list.\n", whoami );
+       printf (_("Warning: \"%s\" is not listed in /etc/shells.\n"), shell);
+       printf( _("Use %s -l to see list.\n"), whoami );
     }
 #endif
     return 0;
@@ -365,7 +375,7 @@ static boolean get_shell_list (shell_name)
     found = false;
     fp = fopen ("/etc/shells", "r");
     if (! fp) {
-       if (! shell_name) printf ("No known shells.\n");
+       if (! shell_name) printf (_("No known shells.\n"));
        return true;
     }
     while (fgets (buf, sizeof (buf), fp) != NULL) {
@@ -399,7 +409,7 @@ static void *xmalloc (bytes)
 
     vp = malloc (bytes);
     if (! vp && bytes > 0) {
-       perror ("malloc failed");
+       perror (_("malloc failed"));
        exit (-1);
     }
     return vp;
index b3edc6fd4b8159750a907d0e8949bd90eef2f26f..1195b2eb80093fb22438b6d51162558d81367a82 100644 (file)
    The sources for this code are maintained in
 
       ftp://ftp.daimi.aau.dk/pub/linux/poe/poeigl-X.XX.tar.gz
+
+      1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+      - added Native Language Support
+
 */
 #ifdef CRYPTOCARD
 
@@ -40,6 +44,7 @@
 #include <pwd.h>
 #include <sys/param.h>
 #include <sys/stat.h>
+#include "nls.h"
 
 #ifdef KOONTZ_DES
 #include "../koontz-des/des.h"
@@ -62,12 +67,12 @@ generate_challenge(void)
 
     /* create and present a challenge string */
     if ((rfd = open("/dev/urandom", O_RDONLY)) < 0) {
-       syslog(LOG_NOTICE, "couldn't open /dev/urandom");
+       syslog(LOG_NOTICE, _("couldn't open /dev/urandom"));
        return NULL;
     }
     if (read(rfd, &clong, 4) < 4) {
        close(rfd);
-       syslog(LOG_NOTICE, "couldn't read random data from /dev/urandom");
+       syslog(LOG_NOTICE, _("couldn't read random data from /dev/urandom"));
        return NULL;
     }
     close(rfd);
@@ -90,22 +95,22 @@ get_key()
     sprintf(keyfile, "%s/.cryptocard", pwd->pw_dir);
 
     if ((rfd = open(keyfile, O_RDONLY)) < 0) {
-       syslog(LOG_NOTICE, "can't open %s for reading", keyfile);
+       syslog(LOG_NOTICE, _("can't open %s for reading"), keyfile);
        goto bail_out;
     }
     if (fstat(rfd, &statbuf) < 0) {
-       syslog(LOG_NOTICE, "can't stat(%s)", keyfile);
+       syslog(LOG_NOTICE, _("can't stat(%s)"), keyfile);
        goto close_and_bail_out;
     }
     if ((statbuf.st_uid != pwd->pw_uid)
        || ((statbuf.st_mode & S_IFMT) != S_IFREG)
        || (statbuf.st_mode & (S_IRWXU|S_IRWXG|S_IRWXO))) {
-       syslog(LOG_NOTICE, "%s doesn't have the correct filemodes", keyfile);
+       syslog(LOG_NOTICE, _("%s doesn't have the correct filemodes"), keyfile);
        goto close_and_bail_out;
     }
     
     if (read(rfd, key, 8) < 8) {
-       syslog(LOG_NOTICE, "can't read data from %s", keyfile);
+       syslog(LOG_NOTICE, _("can't read data from %s"), keyfile);
        goto close_and_bail_out;
     }
 
index 5480c5744aa7290cd0f837bf5f1e27d29f558fbf..10a709b5653a9fd97d628e40fecdc6d336388831 100644 (file)
      to distinguish user names where one is a prefix of the other,
      and to use "pathnames.h". Oct 5, 96.   
 
+   1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+   - added Native Language Support
+     
+
 */
 
 #include <stdio.h>
 #include <string.h>
 
+#include "nls.h"
 #include "pathnames.h"
 
 #define MAX_LENGTH     1024
@@ -28,7 +33,7 @@ is_local(char *user)
        int len;
 
         if(!(fd = fopen(_PATH_PASSWD, "r"))) {
-                fprintf(stderr,"Can't read %s, exiting.",_PATH_PASSWD);
+                fprintf(stderr,_("Can't read %s, exiting."),_PATH_PASSWD);
                 exit(1);
         }
 
index cf59b8ea6ed5babbda04a2ddf18ee5240112d20a..b78d00b86827b1022f33fc5b369d51eacbd40b57 100644 (file)
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  */
 
+ /* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+  * - added Native Language Support
+  */
+
 /*
  * last
  */
 #include <sys/param.h>
 #include <sys/stat.h>
 #include <sys/file.h>
+#include <sys/types.h>
 #include <signal.h>
 #include <string.h>
 #include <time.h>
 #include <getopt.h>
 #include <stdlib.h>
 #include <unistd.h>
+
+#include <sys/socket.h>
+#include <netinet/in.h>
 #include <arpa/inet.h>
+
 #include "pathnames.h"
+#include "nls.h"
 
 #define        SECDAY  (24*60*60)                      /* seconds in a day */
 #define        NO      0                               /* false/no */
 #define        YES     1                               /* true/yes */
 
-static struct utmp     buf[1024];              /* utmp read buffer */
+static struct utmp     utmpbuf;
 
-#define        HMAX    (int)sizeof(buf[0].ut_host)     /* size of utmp host field */
-#define        LMAX    (int)sizeof(buf[0].ut_line)     /* size of utmp tty field */
-#define        NMAX    (int)sizeof(buf[0].ut_name)     /* size of utmp name field */
+#define        HMAX    (int)sizeof(utmpbuf.ut_host)    /* size of utmp host field */
+#define        LMAX    (int)sizeof(utmpbuf.ut_line)    /* size of utmp tty field */
+#define        NMAX    (int)sizeof(utmpbuf.ut_name)    /* size of utmp name field */
 
 #ifndef MIN
 #define MIN(a,b)       (((a) < (b)) ? (a) : (b))
@@ -94,6 +104,10 @@ main(argc, argv)
        extern char     *optarg;
        int     ch;
 
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+
        while ((ch = getopt(argc, argv, "0123456789yli:f:h:t:")) != EOF)
                switch((char)ch) {
                case '0': case '1': case '2': case '3': case '4':
@@ -126,7 +140,7 @@ main(argc, argv)
                        break;
                case '?':
                default:
-                       fputs("usage: last [-#] [-f file] [-t tty] [-h hostname] [user ...]\n", stderr);
+                       fputs(_("usage: last [-#] [-f file] [-t tty] [-h hostname] [user ...]\n"), stderr);
                        exit(1);
                }
        for (argv += optind; *argv; ++argv) {
@@ -183,31 +197,39 @@ wtmp()
 {
        register struct utmp    *bp;            /* current structure */
        register TTY    *T;                     /* tty list entry */
-       struct stat     stb;                    /* stat of file for size */
-       long    bl, delta,                      /* time difference */
-               lseek(), time();
-       int     bytes, wfd;
+       long    delta;                          /* time difference */
        void    onintr();
-       char    *ct, *crmsg = NULL;
+       char *crmsg = NULL;
+       char *ct = NULL;
+       struct utmp **utmplist = NULL;
+       int listlen = 0;
+       int listnr = 0;
+       int i;
+       
+       utmpname(file);
+
+       (void)time(&utmpbuf.ut_time);
+       (void)signal(SIGINT, onintr);
+       (void)signal(SIGQUIT, onintr);
 
-       if ((wfd = open(file, O_RDONLY, 0)) < 0 || fstat(wfd, &stb) == -1) {
-               perror(file);
-               exit(1);
+       setutent();
+       while((bp = getutent())) {
+               if(listnr >= listlen) {
+                       listlen += 10;
+                       listlen *= 2;   /* avoid quadratic behaviour */
+                       utmplist = realloc(utmplist, sizeof(bp) * listlen);
+               }
+
+               utmplist[listnr] = malloc(sizeof(*bp));
+               memcpy(utmplist[listnr++], bp, sizeof(*bp));
        }
-       bl = (stb.st_size + sizeof(buf) - 1) / sizeof(buf);
+       endutent();
 
-       (void)time(&buf[0].ut_time);
-       (void)signal(SIGINT, onintr);
-       (void)signal(SIGQUIT, onintr);
+       if(listnr) 
+               ct = ctime(&utmplist[0]->ut_time);
 
-       while (--bl >= 0) {
-           if (lseek(wfd, (long)(bl * sizeof(buf)), SEEK_SET) == -1 ||
-               (bytes = read(wfd, (char *)buf, sizeof(buf))) == -1) {
-               fprintf(stderr, "last: %s: ", file);
-               perror((char *)NULL);
-               exit(1);
-           }
-           for (bp = &buf[bytes / sizeof(buf[0]) - 1]; bp >= buf; --bp) {
+       for(i = listnr - 1; i >= 0; i--) {
+               bp = utmplist[i];
                /*
                 * if the terminal line is '~', the machine stopped.
                 * see utmp(5) for more info.
@@ -258,7 +280,7 @@ wtmp()
                    print_partial_line(bp);
 
                    if (!T->logout)
-                       puts("  still logged in");
+                       puts(_("  still logged in"));
                    else {
                        if (T->logout < 0) {
                            T->logout = -T->logout;
@@ -276,10 +298,11 @@ wtmp()
                        return;
                }
                T->logout = bp->ut_time;
-           }
+               utmpbuf.ut_time = bp->ut_time;
+               free(bp);
        }
-       ct = ctime(&buf[0].ut_time);
-       printf("\nwtmp begins %10.10s %5.5s \n", ct, ct + 11);
+       if(utmplist) free(utmplist);
+       if(ct) printf(_("\nwtmp begins %s"), ct);       /* ct already ends in \n */
 }
 
 /*
@@ -293,7 +316,7 @@ want(bp, check)
 {
        register ARG    *step;
 
-       if (check)
+       if (check) {
                /*
                 * when uucp and ftp log in over a network, the entry in
                 * the utmp file is the name plus their process id.  See
@@ -303,6 +326,7 @@ want(bp, check)
                        bp->ut_line[3] = '\0';
                else if (!strncmp(bp->ut_line, "uucp", sizeof("uucp") - 1))
                        bp->ut_line[4] = '\0';
+       }
        if (!arglist)
                return(YES);
 
@@ -340,7 +364,7 @@ addarg(type, arg)
        register ARG    *cur;
 
        if (!(cur = (ARG *)malloc((unsigned int)sizeof(ARG)))) {
-               fputs("last: malloc failure.\n", stderr);
+               fputs(_("last: malloc failure.\n"), stderr);
                exit(1);
        }
        cur->next = arglist;
@@ -360,7 +384,7 @@ addtty(ttyname)
        register TTY    *cur;
 
        if (!(cur = (TTY *)malloc((unsigned int)sizeof(TTY)))) {
-               fputs("last: malloc failure.\n", stderr);
+               fputs(_("last: malloc failure.\n"), stderr);
                exit(1);
        }
        cur->next = ttylist;
@@ -389,7 +413,7 @@ hostconv(arg)
        if (first) {
                first = 0;
                if (gethostname(name, sizeof(name))) {
-                       perror("last: gethostname");
+                       perror(_("last: gethostname"));
                        exit(1);
                }
                hostdot = strchr(name, '.');
@@ -415,7 +439,7 @@ ttyconv(arg)
        if (strlen(arg) == 2) {
                /* either 6 for "ttyxx" or 8 for "console" */
                if (!(mval = malloc((unsigned int)8))) {
-                       fputs("last: malloc failure.\n", stderr);
+                       fputs(_("last: malloc failure.\n"), stderr);
                        exit(1);
                }
                if (!strcmp(arg, "co"))
@@ -441,8 +465,8 @@ onintr(signo)
 {
        char    *ct;
 
-       ct = ctime(&buf[0].ut_time);
-       printf("\ninterrupted %10.10s %5.5s \n", ct, ct + 11);
+       ct = ctime(&utmpbuf.ut_time);
+       printf(_("\ninterrupted %10.10s %5.5s \n"), ct, ct + 11);
        if (signo == SIGINT)
                exit(1);
        (void)fflush(stdout);                   /* fix required for rsh */
index a2acbd9f78a9e2bf2a5f80a15a8d52d5b8c0e731..88bb4d89ed3dc41e314738eeb9c1be6994754d9b 100644 (file)
@@ -25,7 +25,7 @@ If the user is
 .I not
 root, and if
 .I /etc/nologin
-exists, the contents of of this file are printed to the screen, and the
+exists, the contents of this file are printed to the screen, and the
 login is terminated.  This is typically used to prevent logins when the
 system is being taken down.
 
@@ -243,7 +243,8 @@ the user to for example run the command: xterm -e /bin/login.
 .PP
 .IP o
 A domain name suffix such as @.some.dom, meaning that the user may
-rlogin/telnet from any host whose domain name has the suffix .some.dom.
+rlogin/telnet from any host whose domain name has the suffix
+\&.some.dom.
 .PP
 .IP o
 A range of IPv4 addresses, written @x.x.x.x/y.y.y.y where x.x.x.x is
@@ -307,6 +308,16 @@ The undocumented BSD
 option is not supported.  This may be required by some
 .BR rlogind (8)
 programs.
+
+A recursive login, as used to be possible in the good old days,
+no longer works; for most purposes
+.BR su (1)
+is a satisfactory substitute. Indeed, for security reasons,
+login does a vhangup() system call to remove any possible
+listening processes on the tty. This is to avoid password
+sniffing. If one uses the command "login", then the surrounding shell
+gets killed by vhangup() because it's no longer the true owner of the tty.
+This can be avoided by using "exec login" in a top-level shell or xterm.
 .SH AUTHOR
 Derived from BSD login 5.40 (5/9/89) by Michael Glad (glad@daimi.dk)
 for HP-UX
index c742af75c1d1a6b8b9562f309bc22733b9d74610..fa0450164f6d80d5bc350aa6048ab4661a04555c 100644 (file)
    1992-02-05 poe@daimi.aau.dk: Ported the stuff to Linux 0.12
    From 1992 till now (1997) this code for Linux has been maintained at
    ftp.daimi.aau.dk:/pub/linux/poe/
+
+   1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+    - added Native Language Support
+   Sun Mar 21 1999 - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+    - fixed strerr(errno) in gettext calls
  */
 
 /*
 #include <sys/sysmacros.h>
 #include <netdb.h>
 #include "my_crypt.h"
+#include "nls.h"
 
 #ifdef __linux__
 #  include <sys/sysmacros.h>
@@ -275,7 +281,7 @@ main(int argc, char **argv)
     struct group *gr;
     register int ch;
     register char *p;
-    int ask, fflag, hflag, pflag, cnt;
+    int ask, fflag, hflag, pflag, cnt, errsv;
     int quietlog, passwd_req;
     char *domain, *ttyn;
     char tbuf[MAXPATHLEN + 2], tname[sizeof(_PATH_TTY) + 10];
@@ -292,7 +298,6 @@ main(int argc, char **argv)
     pam_handle_t *pamh = NULL;
     struct pam_conv conv = { misc_conv, NULL };
     pid_t childPid;
-    void (*oldSigHandler) ();
 #else
     char *salt, *pp;
 #endif
@@ -304,6 +309,10 @@ main(int argc, char **argv)
     alarm((unsigned int)timeout);
     signal(SIGQUIT, SIG_IGN);
     signal(SIGINT, SIG_IGN);
+
+    setlocale(LC_ALL, "");
+    bindtextdomain(PACKAGE, LOCALEDIR);
+    textdomain(PACKAGE);
     
     setpriority(PRIO_PROCESS, 0, 0);
 #ifdef HAVE_QUOTA
@@ -337,14 +346,14 @@ main(int argc, char **argv)
        case 'h':
          if (getuid()) {
              fprintf(stderr,
-                     "login: -h for super-user only.\n");
+                     _("login: -h for super-user only.\n"));
              exit(1);
          }
          hflag = 1;
          if (domain && (p = index(optarg, '.')) &&
              strcasecmp(p, domain) == 0)
            *p = 0;
-         hostname = optarg;
+         hostname = strdup(optarg);    /* strdup: Ambrose C. Li */
          { 
              struct hostent *he = gethostbyname(hostname);
              if (he) {
@@ -362,7 +371,7 @@ main(int argc, char **argv)
        case '?':
        default:
          fprintf(stderr,
-                 "usage: login [-fp] [username]\n");
+                 _("usage: login [-fp] [username]\n"));
          exit(1);
       }
     argc -= optind;
@@ -450,6 +459,12 @@ main(int argc, char **argv)
     
     openlog("login", LOG_ODELAY, LOG_AUTHPRIV);
 
+#if 0
+    /* other than iso-8859-1 */
+    printf("\033(K");
+    fprintf(stderr,"\033(K");
+#endif
+
 #ifdef USE_PAM
     /* username is initialized to NULL
        and if specified on the command line it is set.
@@ -458,9 +473,9 @@ main(int argc, char **argv)
 
     retcode = pam_start("login",username, &conv, &pamh);
     if(retcode != PAM_SUCCESS) {
-       fprintf(stderr,"login: PAM Failure, aborting: %s\n",
+       fprintf(stderr,_("login: PAM Failure, aborting: %s\n"),
        pam_strerror(pamh, retcode));
-       syslog(LOG_ERR,"Couldn't initialize PAM: %s", pam_strerror(pamh, retcode));
+       syslog(LOG_ERR,_("Couldn't initialize PAM: %s"), pam_strerror(pamh, retcode));
        exit(99);
     }
     /* hostname & tty are either set to NULL or their correct values,
@@ -469,6 +484,15 @@ main(int argc, char **argv)
     PAM_FAIL_CHECK;
     retcode = pam_set_item(pamh, PAM_TTY, tty);
     PAM_FAIL_CHECK;
+
+#if 0
+    /* other than iso-8859-1
+     * one more time due to reset tty by PAM
+     */
+    printf("\033(K");
+    fprintf(stderr,"\033(K");
+#endif
+           
     /* if fflag == 1, then the user has already been authenticated */
     if (fflag && (getuid() == 0))
        passwd_req = 0;
@@ -491,9 +515,9 @@ main(int argc, char **argv)
               (retcode == PAM_CRED_INSUFFICIENT) ||
               (retcode == PAM_AUTHINFO_UNAVAIL))) {
            pam_get_item(pamh, PAM_USER, (const void **) &username);
-           syslog(LOG_NOTICE,"FAILED LOGIN %d FROM %s FOR %s, %s",
+           syslog(LOG_NOTICE,_("FAILED LOGIN %d FROM %s FOR %s, %s"),
            failcount, hostname, username, pam_strerror(pamh, retcode));
-           fprintf(stderr,"Login incorrect\n\n");
+           fprintf(stderr,_("Login incorrect\n\n"));
            pam_set_item(pamh,PAM_USER,NULL);
            retcode = pam_authenticate(pamh, 0);
        }
@@ -502,14 +526,14 @@ main(int argc, char **argv)
            pam_get_item(pamh, PAM_USER, (const void **) &username);
 
            if (retcode == PAM_MAXTRIES) 
-               syslog(LOG_NOTICE,"TOO MANY LOGIN TRIES (%d) FROM %s FOR "
-                       "%s, %s", failcount, hostname, username,
+               syslog(LOG_NOTICE,_("TOO MANY LOGIN TRIES (%d) FROM %s FOR "
+                       "%s, %s"), failcount, hostname, username,
                         pam_strerror(pamh, retcode));
            else
-               syslog(LOG_NOTICE,"FAILED LOGIN SESSION FROM %s FOR %s, %s",
+               syslog(LOG_NOTICE,_("FAILED LOGIN SESSION FROM %s FOR %s, %s"),
                        hostname, username, pam_strerror(pamh, retcode));
 
-           fprintf(stderr,"\nLogin incorrect\n");
+           fprintf(stderr,_("\nLogin incorrect\n"));
            pam_end(pamh, retcode);
            exit(0);
        }
@@ -558,7 +582,7 @@ main(int argc, char **argv)
           Feb 95 <alvaro@etsit.upm.es> */
        
        if (username[0] == '+') {
-           puts("Illegal username");
+           puts(_("Illegal username"));
            badlogin(username);
            sleepexit(1);
        }
@@ -601,16 +625,16 @@ main(int argc, char **argv)
         */
        if (pwd && pwd->pw_uid == 0 && !rootterm(tty)) {
            fprintf(stderr,
-                   "%s login refused on this terminal.\n",
+                   _("%s login refused on this terminal.\n"),
                    pwd->pw_name);
            
            if (hostname)
              syslog(LOG_NOTICE,
-                    "LOGIN %s REFUSED FROM %s ON TTY %s",
+                    _("LOGIN %s REFUSED FROM %s ON TTY %s"),
                     pwd->pw_name, hostname, tty);
            else
              syslog(LOG_NOTICE,
-                    "LOGIN %s REFUSED ON TTY %s",
+                    _("LOGIN %s REFUSED ON TTY %s"),
                     pwd->pw_name, tty);
            continue;
        }
@@ -623,7 +647,7 @@ main(int argc, char **argv)
          break;
        
        setpriority(PRIO_PROCESS, 0, -4);
-       pp = getpass("Password: ");
+       pp = getpass(_("Password: "));
        
 #  ifdef CRYPTOCARD
        if (strncmp(pp, "CRYPTO", 6) == 0) {
@@ -662,7 +686,7 @@ main(int argc, char **argv)
        if (pwd && !strcmp(p, pwd->pw_passwd))
          break;
        
-       printf("Login incorrect\n");
+       printf(_("Login incorrect\n"));
        badlogin(username); /* log ALL bad logins */
        failures++;
        
@@ -684,11 +708,11 @@ main(int argc, char **argv)
        switch(errno) {
          case EUSERS:
            fprintf(stderr,
-                   "Too many users logged on already.\nTry again later.\n");
+                   _("Too many users logged on already.\nTry again later.\n"));
            break;
          case EPROCLIM:
            fprintf(stderr,
-                   "You have too many processes running.\n");
+                   _("You have too many processes running.\n"));
            break;
          default:
            perror("quota (Q_SETUID)");
@@ -734,7 +758,7 @@ main(int argc, char **argv)
 #ifndef __linux__
 #  ifdef KERBEROS
     if (notickets && !quietlog)
-      printf("Warning: no Kerberos tickets issued\n");
+      printf(_("Warning: no Kerberos tickets issued\n"));
 #  endif
     
 #  ifndef USE_PAM                      /* PAM does all of this for us */
@@ -746,13 +770,13 @@ main(int argc, char **argv)
 
        if (pwd->pw_change) {
            if (tp.tv_sec >= pwd->pw_change) {
-               printf("Sorry -- your password has expired.\n");
+               printf(_("Sorry -- your password has expired.\n"));
                sleepexit(1);
            }
            else if (tp.tv_sec - pwd->pw_change < TWOWEEKS && !quietlog) {
                struct tm *ttp;
                ttp = localtime(&pwd->pw_change);
-               printf("Warning: your password expires on %s %d, %d\n",
+               printf(_("Warning: your password expires on %s %d, %d\n"),
                       months[ttp->tm_mon], ttp->tm_mday,
                       TM_YEAR_BASE + ttp->tm_year);
            }
@@ -760,13 +784,13 @@ main(int argc, char **argv)
 
        if (pwd->pw_expire) {
            if (tp.tv_sec >= pwd->pw_expire) {
-               printf("Sorry -- your account has expired.\n");
+               printf(_("Sorry -- your account has expired.\n"));
                sleepexit(1);
            }
            else if (tp.tv_sec - pwd->pw_expire < TWOWEEKS && !quietlog) {
                struct tm *ttp;
                ttp = localtime(&pwd->pw_expire);
-               printf("Warning: your account expires on %s %d, %d\n",
+               printf(_("Warning: your account expires on %s %d, %d\n"),
                       months[ttp->tm_mon], ttp->tm_mday,
                       TM_YEAR_BASE + ttp->tm_year);
            }
@@ -796,7 +820,6 @@ main(int argc, char **argv)
        struct utmp ut;
        int wtmp;
        struct utmp *utp;
-       time_t t;
        pid_t mypid = getpid();
        
        utmpname(_PATH_UTMP);
@@ -814,6 +837,16 @@ Michael Riepe <michael@stud.uni-hannover.de>
                    && utp->ut_type >= INIT_PROCESS
                    && utp->ut_type <= DEAD_PROCESS)
                        break;
+
+       /* If we can't find a pre-existing entry by pid, try by line.
+          BSD network daemons may rely on this. (anonymous) */
+       if (utp == NULL) {
+            setutent();
+            ut.ut_type = LOGIN_PROCESS;
+            strncpy(ut.ut_id, ttyn + 8, sizeof(ut.ut_id));
+            strncpy(ut.ut_line, ttyn + 5, sizeof(ut.ut_line));
+            utp = getutid(&ut);
+       }
        
        if (utp) {
            memcpy(&ut, utp, sizeof(ut));
@@ -821,7 +854,6 @@ Michael Riepe <michael@stud.uni-hannover.de>
            /* some gettys/telnetds don't initialize utmp... */
            memset(&ut, 0, sizeof(ut));
        }
-       /* endutent(); superfluous, error for glibc */
        
        if (ut.ut_id[0] == 0)
          strncpy(ut.ut_id, ttyn + 8, sizeof(ut.ut_id));
@@ -829,9 +861,16 @@ Michael Riepe <michael@stud.uni-hannover.de>
        strncpy(ut.ut_user, username, sizeof(ut.ut_user));
        strncpy(ut.ut_line, ttyn + 5, sizeof(ut.ut_line));
        ut.ut_line[sizeof(ut.ut_line)-1] = 0;
-       time(&t);
-       ut.ut_time = t;         /* ut_time is not always a time_t */
-                               /* (we might test #ifdef _HAVE_UT_TV ) */
+#ifdef _HAVE_UT_TV             /* in <utmpbits.h> included by <utmp.h> */
+       gettimeofday(&ut.ut_tv, NULL);
+#else
+       {
+         time_t t;
+         time(&t);
+         ut.ut_time = t;       /* ut_time is not always a time_t */
+                               /* glibc2 #defines it as ut_tv.tv_sec */
+       }
+#endif
        ut.ut_type = USER_PROCESS;
        ut.ut_pid = mypid;
        if (hostname) {
@@ -985,23 +1024,23 @@ Michael Riepe <michael@stud.uni-hannover.de>
 #endif
     
     if (tty[sizeof("tty")-1] == 'S')
-      syslog(LOG_INFO, "DIALUP AT %s BY %s", tty, pwd->pw_name);
+      syslog(LOG_INFO, _("DIALUP AT %s BY %s"), tty, pwd->pw_name);
     
     /* allow tracking of good logins.
        -steve philp (sphilp@mail.alliance.net) */
     
     if (pwd->pw_uid == 0) {
        if (hostname)
-         syslog(LOG_NOTICE, "ROOT LOGIN ON %s FROM %s",
+         syslog(LOG_NOTICE, _("ROOT LOGIN ON %s FROM %s"),
                 tty, hostname);
        else
-         syslog(LOG_NOTICE, "ROOT LOGIN ON %s", tty);
+         syslog(LOG_NOTICE, _("ROOT LOGIN ON %s"), tty);
     } else {
        if (hostname) 
-         syslog(LOG_INFO, "LOGIN ON %s BY %s FROM %s", tty, 
+         syslog(LOG_INFO, _("LOGIN ON %s BY %s FROM %s"), tty, 
                 pwd->pw_name, hostname);
        else 
-         syslog(LOG_INFO, "LOGIN ON %s BY %s", tty, 
+         syslog(LOG_INFO, _("LOGIN ON %s BY %s"), tty, 
                 pwd->pw_name);
     }
     
@@ -1012,8 +1051,8 @@ Michael Riepe <michael@stud.uni-hannover.de>
        motd();
        mail = getenv("MAIL");
        if (mail && stat(mail, &st) == 0 && st.st_size != 0) {
-               printf("You have %smail.\n",
-                      (st.st_mtime > st.st_atime) ? "new " : "");
+               printf(_("You have %smail.\n"),
+                      (st.st_mtime > st.st_atime) ? _("new ") : "");
        }
     }
     
@@ -1029,8 +1068,9 @@ Michael Riepe <michael@stud.uni-hannover.de>
     signal(SIGINT, SIG_IGN);
     childPid = fork();
     if (childPid < 0) {
+       int errsv = errno;
        /* error in fork() */
-       fprintf(stderr,"login: failure forking: %s", strerror(errno));
+       fprintf(stderr,_("login: failure forking: %s"), strerror(errsv));
        PAM_END;
        exit(0);
     } else if (childPid) {
@@ -1045,17 +1085,17 @@ Michael Riepe <michael@stud.uni-hannover.de>
     
     /* discard permissions last so can't get killed and drop core */
     if(setuid(pwd->pw_uid) < 0 && pwd->pw_uid) {
-       syslog(LOG_ALERT, "setuid() failed");
+       syslog(LOG_ALERT, _("setuid() failed"));
        exit(1);
     }
     
     /* wait until here to change directory! */
     if (chdir(pwd->pw_dir) < 0) {
-       printf("No directory %s!\n", pwd->pw_dir);
+       printf(_("No directory %s!\n"), pwd->pw_dir);
        if (chdir("/"))
          exit(0);
        pwd->pw_dir = "/";
-       printf("Logging in with home = \"/\".\n");
+       printf(_("Logging in with home = \"/\".\n"));
     }
     
     /* if the shell field has a space: treat it like a shell script */
@@ -1063,7 +1103,7 @@ Michael Riepe <michael@stud.uni-hannover.de>
        buff = malloc(strlen(pwd->pw_shell) + 6);
 
        if (!buff) {
-           fprintf(stderr, "login: no memory for shell script.\n");
+           fprintf(stderr, _("login: no memory for shell script.\n"));
            exit(0);
        }
 
@@ -1088,11 +1128,13 @@ Michael Riepe <michael@stud.uni-hannover.de>
 
     execvp(childArgv[0], childArgv + 1);
 
-    if (!strcmp(childArgv[0], "/bin/sh")) 
-           fprintf(stderr, "login: couldn't exec shell script: %s.\n",
-                   strerror(errno));
+    errsv = errno;
+
+    if (!strcmp(childArgv[0], "/bin/sh"))
+       fprintf(stderr, _("login: couldn't exec shell script: %s.\n"),
+               strerror(errsv));
     else
-           fprintf(stderr, "login: no shell: %s.\n", strerror(errno));
+       fprintf(stderr, _("login: no shell: %s.\n"), strerror(errsv));
 
     exit(0);
 }
@@ -1108,7 +1150,7 @@ getloginname()
     cnt2 = 0;
     for (;;) {
        cnt = 0;
-       printf("\n%s login: ", thishost); fflush(stdout);
+       printf(_("\n%s login: "), thishost); fflush(stdout);
        for (p = nbuf; (ch = getchar()) != '\n'; ) {
            if (ch == EOF) {
                badlogin("EOF");
@@ -1119,15 +1161,15 @@ getloginname()
            
            cnt++;
            if (cnt > UT_NAMESIZE + 20) {
-               fprintf(stderr, "login name much too long.\n");
-               badlogin("NAME too long");
+               fprintf(stderr, _("login name much too long.\n"));
+               badlogin(_("NAME too long"));
                exit(0);
            }
        }
        if (p > nbuf) {
          if (nbuf[0] == '-')
            fprintf(stderr,
-                   "login names may not start with '-'.\n");
+                   _("login names may not start with '-'.\n"));
          else {
              *p = '\0';
              username = nbuf;
@@ -1137,8 +1179,8 @@ getloginname()
        
        cnt2++;
        if (cnt2 > 50) {
-           fprintf(stderr, "too many bare linefeeds.\n");
-           badlogin("EXCESSIVE linefeeds");
+           fprintf(stderr, _("too many bare linefeeds.\n"));
+           badlogin(_("EXCESSIVE linefeeds"));
            exit(0);
        }
     }
@@ -1149,7 +1191,7 @@ timedout()
 {
     struct termio ti;
     
-    fprintf(stderr, "Login timed out after %d seconds\n", timeout);
+    fprintf(stderr, _("Login timed out after %d seconds\n"), timeout);
     
     /* reset echo */
     ioctl(0, TCGETA, &ti);
@@ -1171,7 +1213,7 @@ rootterm(ttyn)
 { 
     int fd;
     char buf[100],*p;
-    int cnt, more;
+    int cnt, more = 0;
     
     fd = open(SECURETTY, O_RDONLY);
     if(fd < 0) return 1;
@@ -1249,14 +1291,14 @@ dolastlog(quiet)
        if (!quiet) {
            if (read(fd, (char *)&ll, sizeof(ll)) == sizeof(ll) &&
                ll.ll_time != 0) {
-               printf("Last login: %.*s ",
+               printf(_("Last login: %.*s "),
                       24-5, (char *)ctime(&ll.ll_time));
                
                if (*ll.ll_host != '\0')
-                 printf("from %.*s\n",
+                 printf(_("from %.*s\n"),
                         (int)sizeof(ll.ll_host), ll.ll_host);
                else
-                 printf("on %.*s\n",
+                 printf(_("on %.*s\n"),
                         (int)sizeof(ll.ll_line), ll.ll_line);
            }
            lseek(fd, (off_t)pwd->pw_uid * sizeof(ll), SEEK_SET);
@@ -1277,12 +1319,21 @@ dolastlog(quiet)
 void
 badlogin(const char *name)
 {
-    if (hostname)
-      syslog(LOG_NOTICE, "%d LOGIN FAILURE%s FROM %s, %s",
-            failures, failures > 1 ? "S" : "", hostname, name);
-    else
-      syslog(LOG_NOTICE, "%d LOGIN FAILURE%s ON %s, %s",
-            failures, failures > 1 ? "S" : "", tty, name);
+    if (failures == 1) {
+       if (hostname)
+         syslog(LOG_NOTICE, _("LOGIN FAILURE FROM %s, %s"),
+                hostname, name);
+       else
+         syslog(LOG_NOTICE, _("LOGIN FAILURE ON %s, %s"),
+                tty, name);
+    } else {
+       if (hostname)
+         syslog(LOG_NOTICE, _("%d LOGIN FAILURES FROM %s, %s"),
+                failures, hostname, name);
+       else
+         syslog(LOG_NOTICE, _("%d LOGIN FAILURES ON %s, %s"),
+                failures, tty, name);
+    }
 }
 
 #undef UNKNOWN
index d05d333c96caf303e537b0909b4923bde061ee8d..cc8c4010df6d6364e2c2c15bf16705487bb51e75 100644 (file)
  * Modified Fri Mar 10 20:27:19 1995, faith@cs.unc.edu, for Linux
  * Modified Mon Jul  1 18:14:10 1996, janl@ifi.uio.no, writing to stdout
  *     as suggested by Michael Meskes <meskes@Informatik.RWTH-Aachen.DE>
+ *
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ *
  * 
  */
 
@@ -50,6 +54,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include "nls.h"
 
 int
 main(argc, argv)
@@ -60,6 +65,11 @@ main(argc, argv)
        char *tty;
        int ch;
 
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+
+
        while ((ch = getopt(argc, argv, "")) != EOF)
                switch (ch) {
                case '?':
@@ -76,10 +86,10 @@ main(argc, argv)
 
        if (*argv == NULL) {
                if (sb.st_mode & (S_IWGRP | S_IWOTH)) {
-                       (void)fprintf(stdout, "is y\n");
+                       (void)fprintf(stdout, _("is y\n"));
                        exit(0);
                }
-               (void)fprintf(stdout, "is n\n");
+               (void)fprintf(stdout, _("is n\n"));
                exit(1);
        }
 
@@ -99,6 +109,6 @@ main(argc, argv)
                exit(1);
        }
 
-usage: (void)fprintf(stderr, "usage: mesg [y | n]\n");
+usage: (void)fprintf(stderr, _("usage: mesg [y | n]\n"));
        exit(2);
 }
index 5c26a4a0e563c4512af54789a4327f8bb9ecee59..1f8be95f2269e5204299c9733138699aeae7b273 100644 (file)
@@ -3,6 +3,10 @@
 /* Vesa Roukonen added code for asking password */
 /* Currently maintained at ftp://ftp.daimi.aau.dk/pub/linux/poe/ */
 
+/* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ */
+
 #include <unistd.h>
 #include <pwd.h>
 #include <grp.h>
@@ -11,6 +15,7 @@
 #include <errno.h>
 #include "pathnames.h"
 #include "my_crypt.h"
+#include "nls.h"
 
 #ifndef TRUE
 # define TRUE 1
@@ -39,7 +44,7 @@ allow_setgid(struct passwd *pe, struct group *ge)
 
     if(ge->gr_passwd && ge->gr_passwd[0] != 0) {
        if(strcmp(ge->gr_passwd, 
-                 crypt(getpass("Password: "), ge->gr_passwd)) == 0) {
+                 crypt(getpass(_("Password: ")), ge->gr_passwd)) == 0) {
            return TRUE;                /* password accepted */
        }
     }
@@ -53,9 +58,13 @@ main(int argc, char *argv[])
     struct passwd *pw_entry;
     struct group *gr_entry;
     char *shell;
+
+    setlocale(LC_ALL, "");
+    bindtextdomain(PACKAGE, LOCALEDIR);
+    textdomain(PACKAGE);
     
     if (!(pw_entry = getpwuid(getuid()))) {
-       perror("newgrp: Who are you?");
+       perror(_("newgrp: Who are you?"));
        exit(1);
     }
     
@@ -63,34 +72,34 @@ main(int argc, char *argv[])
     
     if (argc < 2) {
        if(setgid(pw_entry->pw_gid) < 0) {
-           perror("newgrp: setgid");
+           perror(_("newgrp: setgid"));
            exit(1);
        }
     } else {
        if (!(gr_entry = getgrnam(argv[1]))) {
-           perror("newgrp: No such group.");
+           perror(_("newgrp: No such group."));
            exit(1);
        } else {
            if(allow_setgid(pw_entry, gr_entry)) {
                if(setgid(gr_entry->gr_gid) < 0) {
-                   perror("newgrp: setgid");
+                   perror(_("newgrp: setgid"));
                    exit(1);
                }
            } else {
-               puts("newgrp: Permission denied");
+               puts(_("newgrp: Permission denied"));
                exit(1);
            }
        }
     }
 
     if(setuid(getuid()) < 0) {
-       perror("newgrp: setuid");
+       perror(_("newgrp: setuid"));
        exit(1);
     }
 
     fflush(stdout); fflush(stderr);
     execl(shell,shell,(char*)0);
-    perror("No shell");
+    perror(_("No shell"));
     fflush(stderr);
     exit(1);
 }
index 0057a283b46c9534473c6d07479cc5de16c30d05..90054ccca57f9c7eca3a4ceb36c99685232fb669 100644 (file)
  *     auth.warning. (Of course, the password itself is not logged.)
  */
 
+ /* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+  * - added Native Language Support
+  * Sun Mar 21 1999 - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+  * - fixed strerr(errno) in gettext calls
+  */
+
 /*
  * Usage: passwd [username [password]]
  * Only root may use the one and two argument forms. 
 #include <errno.h>
 #include <sys/resource.h>
 #include "my_crypt.h"
+#include "nls.h"
+#include "env.h"
 
-#if 0
-#  include "../version.h"
-#else
-char version[] = "admutil 1.18, 15-Oct-95";
-#endif
+#include "../version.h"
 
 #ifndef _PATH_CHFN
 # define _PATH_CHFN "/usr/bin/chfn"
@@ -156,7 +160,7 @@ int check_passwd(char *passwd, char *oldpasswd, char *user, char *gecos)
     char *c, *g, *p;
 
     if ( (strlen(passwd) < 6) ) {
-       printf("The password must have at least 6 characters, try again.\n");
+       printf(_("The password must have at least 6 characters, try again.\n"));
        return 0;
     }
        
@@ -169,19 +173,19 @@ int check_passwd(char *passwd, char *oldpasswd, char *user, char *gecos)
     }
        
     if ( (other + digit + ucase + lcase) < 2) {
-       printf("The password must contain characters out of two of the following\n");
-       printf("classes:  upper and lower case letters, digits and non alphanumeric\n");
-       printf("characters. See passwd(1) for more information.\n");
+       printf(_("The password must contain characters out of two of the following\n"));
+       printf(_("classes:  upper and lower case letters, digits and non alphanumeric\n"));
+       printf(_("characters. See passwd(1) for more information.\n"));
        return 0;
     }
        
     if ( oldpasswd[0] && !strncmp(oldpasswd, crypt(passwd, oldpasswd), 13) ) {
-       printf("You cannot reuse the old password.\n");
+       printf(_("You cannot reuse the old password.\n"));
        return 0;
     }
        
     if ( !check_passwd_string(passwd, user) ) {
-       printf("Please don't use something like your username as password!\n");
+       printf(_("Please don't use something like your username as password!\n"));
        return 0;
     }
 
@@ -192,14 +196,14 @@ int check_passwd(char *passwd, char *oldpasswd, char *user, char *gecos)
            g[c-gecos] = 0;
            while ( (c=rindex(g, ' ')) ) {
                if ( !check_passwd_string(passwd, c+1) ) {
-                   printf("Please don't use something like your realname as password!\n");
+                   printf(_("Please don't use something like your realname as password!\n"));
                    free (g);
                    return 0;
                }
                *c = '\0';
            } /* while */
            if ( !check_passwd_string(passwd, g) ) {
-               printf("Please don't use something like your realname as password!\n");
+               printf(_("Please don't use something like your realname as password!\n"));
                free (g);
                return 0;
            }
@@ -216,8 +220,8 @@ int check_passwd(char *passwd, char *oldpasswd, char *user, char *gecos)
 
 void usage()
 {
-    printf ("Usage: passwd [username [password]]\n");
-    printf("Only root may use the one and two argument forms.\n");
+    printf (_("Usage: passwd [username [password]]\n"));
+    printf(_("Only root may use the one and two argument forms.\n"));
 }
 
 int
@@ -248,6 +252,11 @@ main(argc, argv)
        {0, 0, 0, 0}
        };
 
+    sanitize_env();
+    setlocale(LC_ALL, "");
+    bindtextdomain(PACKAGE, LOCALEDIR);
+    textdomain(PACKAGE);
+
     optind = 0;
     while ( (c = getopt_long(argc, argv, "foqsvV", long_options, &opt_index)) != -1 ) {
        switch (c) {
@@ -265,17 +274,17 @@ main(argc, argv)
            break;
        case 'V':
        case 'v':
-           printf("%s\n", version);
+           printf("%s\n", util_linux_version);
            exit(0);
        default:
-           fprintf(stderr, "Usage: passwd [-foqsvV] [user [password]]\n");
+           fprintf(stderr, _("Usage: passwd [-foqsvV] [user [password]]\n"));
            exit(1);
        } /* switch (c) */
     } /* while */
 
     if (fullname || shell) {
        char *args[100];
-       int i, j;
+       int i, j, errsv;
 
        setuid(getuid()); /* drop special privs. */
        if (fullname)
@@ -288,29 +297,33 @@ main(argc, argv)
 
        args[j] = NULL;
        execv(args[0], args);
-       fprintf(stderr, "Can't exec %s: %s\n", args[0], strerror(errno));
+       errsv = errno;
+       fprintf(stderr, _("Can't exec %s: %s\n"), args[0], strerror(errsv));
        exit(1);
     }
     
     switch (argc - optind) {
     case 0:
-       if ( !(user = getlogin()) ) {
+       /* Why use getlogin()? Some systems allow having several
+          usernames with the same uid, especially several root accounts.
+          One changes the password for the username, not the uid. */
+       if ( !(user = getlogin()) || !*user ) {
            if ( !(pe = getpwuid( getuid() )) ) {
-               pexit("Cannot find login name");
+               pexit(_("Cannot find login name"));
            } else
                user = pe->pw_name;
        }
        break;
     case 1:
        if(gotuid) {
-           printf("Only root can change the password for others.\n");
+           printf(_("Only root can change the password for others.\n"));
            exit (1);
        } else
            user = argv[optind];
        break;
     case 2:
        if(gotuid) {
-           printf("Only root can change the password for others.\n");
+           printf(_("Only root can change the password for others.\n"));
            exit(1);
        } else {
            user = argv[optind];
@@ -318,33 +331,33 @@ main(argc, argv)
        }
        break;
     default:
-       printf("Too many arguments.\n");
+       printf(_("Too many arguments.\n"));
        exit (1);
     } /* switch */
 
     if(!(pe = getpwnam(user))) {
-       pexit("Can't find username anywhere. Is `%s' really a user?", user);
+       pexit(_("Can't find username anywhere. Is `%s' really a user?"), user);
     }
     
     if (!(is_local(user))) {
-       puts("Sorry, I can only change local passwords. Use yppasswd instead.");
+       puts(_("Sorry, I can only change local passwords. Use yppasswd instead."));
        exit(1);
     }
     
     /* if somebody got into changing utmp... */
     if(gotuid && gotuid != pe->pw_uid) {
-       puts("UID and username does not match, imposter!");
+       puts(_("UID and username does not match, imposter!"));
        exit(1);
     }
     
     if ( !silent )
-       printf( "Changing password for %s\n", user );
+       printf( _("Changing password for %s\n"), user );
     
     if ( (gotuid && pe->pw_passwd && pe->pw_passwd[0]) 
        || (!gotuid && !strcmp(user,"root")) ) {
-       oldstr = getpass("Enter old password: ");
+       oldstr = getpass(_("Enter old password: "));
        if(strncmp(pe->pw_passwd, crypt(oldstr, pe->pw_passwd), 13)) {
-           puts("Illegal password, imposter.");
+           puts(_("Illegal password, imposter."));
            exit(1);
        }
     }
@@ -356,9 +369,9 @@ main(argc, argv)
        /* password not set on command line by root, ask for it ... */
        
       redo_it:
-       pwdstr = getpass("Enter new password: ");
+       pwdstr = getpass(_("Enter new password: "));
        if (pwdstr[0] == '\0') {
-           puts("Password not changed.");
+           puts(_("Password not changed."));
            exit(1);
        }
 
@@ -368,10 +381,10 @@ main(argc, argv)
        
        strncpy(pwdstr1, pwdstr, 9);
        pwdstr1[9] = 0;
-       pwdstr = getpass("Re-type new password: ");
+       pwdstr = getpass(_("Re-type new password: "));
        
        if(strncmp(pwdstr, pwdstr1, 8)) {
-           puts("You misspelled it. Password not changed.");
+           puts(_("You misspelled it. Password not changed."));
            exit(1);
        }
     } /* pwdstr i.e. password set on command line */
@@ -386,28 +399,28 @@ main(argc, argv)
 #ifdef LOGALL
     openlog("passwd", 0, LOG_AUTH);
     if (gotuid)
-       syslog(LOG_NOTICE,"password changed, user %s",user);
+       syslog(LOG_NOTICE,_("password changed, user %s"),user);
     else {
        if ( !strcmp(user, "root") )
-           syslog(LOG_WARNING,"ROOT PASSWORD CHANGED");
+           syslog(LOG_WARNING,_("ROOT PASSWORD CHANGED"));
        else
-           syslog(LOG_NOTICE,"password changed by root, user %s",user);
+           syslog(LOG_NOTICE,_("password changed by root, user %s"),user);
     }
     closelog();
 #endif /* LOGALL */
 
     pe->pw_passwd = cryptstr;
 #ifdef DEBUG
-    printf ("calling setpwnam to set password.\n");
+    printf (_("calling setpwnam to set password.\n"));
 #else
     if (setpwnam( pe ) < 0) {
        perror( "setpwnam" );
-       printf( "Password *NOT* changed.  Try again later.\n" );
+       printf( _("Password *NOT* changed.  Try again later.\n" ));
        exit( 1 );
     }
 #endif
 
     if ( !silent )
-       printf("Password changed.\n");  
+       printf(_("Password changed.\n"));       
     exit(0);
 }
index 1f1067cf1de089e387f97f69b932601df7f0dc58..8631e7adc6e7b5035d4072bded4f6551453ff09f 100644 (file)
@@ -41,6 +41,7 @@
  *   $Author: poer $
  *   $Revision: 1.13 $
  *   $Date: 1997/06/23 08:26:29 $
+ *
  */
 
 #undef DEBUG
index 8ba13b647cc8aa9afe1b05b08969485594bb9a8f..7ccb748ac96843e3a7fe7500a8f0c72cc35205ab 100644 (file)
  *
  * Changes by Richard Gooch <rgooch@atnf.csiro.au> (butchered by aeb)
  * introducing shutdown.conf.
+ *
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ *
  */
 
 #include <stdio.h>
@@ -48,6 +52,7 @@
 #include <sys/resource.h>
 #include "linux_reboot.h"
 #include "pathnames.h"
+#include "nls.h"
 
 static void usage(), int_handler(), write_user(struct utmp *);
 static void wall(), write_wtmp(), unmount_disks(), unmount_disks_ourselves();
@@ -69,6 +74,7 @@ char  halt_action[256];               /* to find out what to do upon halt */
 /* #define DEBUGGING */
 
 #define WR(s) write(fd, s, strlen(s))
+#define WRCRLF write(fd, "\r\n", 2)
 #define ERRSTRING sys_errlist[errno]
 
 
@@ -76,7 +82,7 @@ void
 usage()
 {
        fprintf(stderr,
-               "Usage: shutdown [-h|-r] [-fqs] [now|hh:ss|+mins]\n");
+               _("Usage: shutdown [-h|-r] [-fqs] [now|hh:ss|+mins]\n"));
        exit(1);
 }
 
@@ -94,7 +100,7 @@ int_handler()
 {
        unlink(_PATH_NOLOGIN);
        signal(SIGINT, SIG_DFL);
-       my_puts("Shutdown process aborted");
+       my_puts(_("Shutdown process aborted"));
        exit(1);
 }
 
@@ -110,9 +116,13 @@ main(int argc, char *argv[])
        int fd;
        char *ptr;
        
+        setlocale(LC_ALL, "");
+        bindtextdomain(PACKAGE, LOCALEDIR);
+        textdomain(PACKAGE);
+
 #ifndef DEBUGGING
        if(geteuid()) {
-               fprintf(stderr, "%s: Only root can shut a system down.\n",
+               fprintf(stderr, _("%s: Only root can shut a system down.\n"),
                        argv[0]);
                exit(1);
        }
@@ -206,8 +216,8 @@ main(int argc, char *argv[])
                        then = 3600 * hour + 60 * minute;
                        timeout = then - now;
                        if(timeout < 0) {
-                               fprintf(stderr, "That must be tomorrow, "
-                                       "can't you wait till then?\n");
+                               fprintf(stderr, _("That must be tomorrow, "
+                                                 "can't you wait till then?\n"));
                                exit(1);
                        }
                } else {
@@ -233,6 +243,9 @@ main(int argc, char *argv[])
                        if (fgets (line, sizeof(line), fp) != NULL &&
                            strncasecmp (line, "HALT_ACTION", 11) == 0 &&
                            iswhitespace(line[11])) {
+                               p = index(line, '\n');
+                               if (p)
+                                       *p = 0;         /* strip final '\n' */
                                p = line+11;
                                while(iswhitespace(*p))
                                        p++;
@@ -255,16 +268,16 @@ main(int argc, char *argv[])
                }
                *ptr = '\0';
        } else if (!opt_msgset) {
-               strcpy(message, "for maintenance; bounce, bounce");
+               strcpy(message, _("for maintenance; bounce, bounce"));
        }
 
 #ifdef DEBUGGING
-       printf("timeout = %d, quiet = %d, reboot = %d\n",
+       printf(_("timeout = %d, quiet = %d, reboot = %d\n"),
                timeout, opt_quiet, opt_reboot);
 #endif
        
        /* so much for option-processing, now begin termination... */
-       if(!(whom = getlogin())) whom = "ghost";
+       if(!(whom = getlogin()) || !*whom) whom = "ghost";
        if(strlen(whom) > 40) whom[40] = 0; /* see write_user() */
 
        setpriority(PRIO_PROCESS, 0, PRIO_MIN);
@@ -282,9 +295,14 @@ main(int argc, char *argv[])
 
        
        if((fd = open(_PATH_NOLOGIN, O_WRONLY|O_CREAT, 0644)) >= 0) {
-               WR("\r\nThe system is being shut down within 5 minutes\r\n");
+               /* keep xgettext happy and leave \r\n outside strings */
+               WRCRLF;
+               WR(_("The system is being shut down within 5 minutes"));
+               WRCRLF;
                write(fd, message, strlen(message));
-               WR("\r\nLogin is therefore prohibited.\r\n");
+               WRCRLF;
+               WR(_("Login is therefore prohibited."));
+               WRCRLF;
                close(fd);
        }
        
@@ -304,8 +322,8 @@ main(int argc, char *argv[])
 
        /* do syslog message... */
        openlog(prog, LOG_CONS, LOG_AUTH);
-       syslog(LOG_NOTICE, "%s by %s: %s"
-              opt_reboot ? "rebooted" : "halted", whom, message);
+       syslog(LOG_NOTICE, _("%s by %s: %s")
+              opt_reboot ? _("rebooted") : _("halted"), whom, message);
        closelog();
 
        if(opt_fast)
@@ -335,6 +353,14 @@ main(int argc, char *argv[])
        /* turn off accounting */
        acct(NULL);
 #endif
+       /* RedHat and SuSE like to remove /etc/nologin.
+          Perhaps the usual sequence is
+             touch nologin; shutdown -h; fiddle with hardware;
+             boot; fiddle with software; rm nologin
+          and removing it here will be counterproductive.
+          Let us see whether people complain. */
+       unlink(_PATH_NOLOGIN);
+
        sync();
        sleep(2);
 
@@ -348,9 +374,9 @@ main(int argc, char *argv[])
        
        if(opt_reboot) {
                my_reboot(LINUX_REBOOT_CMD_RESTART); /* RB_AUTOBOOT */
-               my_puts("\nWhy am I still alive after reboot?");
+               my_puts(_("\nWhy am I still alive after reboot?"));
        } else {
-               my_puts("\nNow you can turn off the power...");
+               my_puts(_("\nNow you can turn off the power..."));
 
                /* allow C-A-D now, faith@cs.unc.edu, re-fixed 8-Jul-96 */
                my_reboot(LINUX_REBOOT_CMD_CAD_ON); /* RB_ENABLE_CAD */
@@ -365,10 +391,10 @@ main(int argc, char *argv[])
 void
 do_halt(char *action) {
        if (strcasecmp (action, "power_off") == 0) {
-               printf("Calling kernel power-off facility...\n");
+               printf(_("Calling kernel power-off facility...\n"));
                fflush(stdout);
                my_reboot(LINUX_REBOOT_CMD_POWER_OFF);
-               printf("Error powering off\t%s\n", ERRSTRING);
+               printf(_("Error powering off\t%s\n"), ERRSTRING);
                fflush(stdout);
                sleep (2);
        } else
@@ -376,10 +402,10 @@ do_halt(char *action) {
        /* This should be improved; e.g. Mike Jagdis wants "/sbin/mdstop -a" */
        /* Maybe we should also fork and wait */
        if (action[0] == '/') {
-               printf("Executing the program \"%s\" ...\n", action);
+               printf(_("Executing the program \"%s\" ...\n"), action);
                fflush(stdout);
                execl(action, action, NULL);
-               printf("Error executing\t%s\n", ERRSTRING);
+               printf(_("Error executing\t%s\n"), ERRSTRING);
                fflush(stdout);
                sleep (2);
        }
@@ -402,23 +428,27 @@ write_user(struct utmp *ut)
        if((fd = open(term, O_WRONLY|O_NONBLOCK)) < 0)
                return;
 
-       sprintf(msg, "\007\r\nURGENT: broadcast message from %s:\r\n", whom);
+       sprintf(msg, _("\007URGENT: broadcast message from %s:"), whom);
+       WRCRLF;
        WR(msg);
+       WRCRLF;
 
        if(minutes == 0) {
-           sprintf(msg, "System going down IMMEDIATELY!\r\n\n");
+           sprintf(msg, _("System going down IMMEDIATELY!\n"));
        } else if(minutes > 60) {
            hours = minutes / 60;
-           sprintf(msg, "System going down in %d hour%s %d minutes\r\n",
-                   hours, hours == 1 ? "" : "s", minutes - 60*hours);
+           sprintf(msg, _("System going down in %d hour%s %d minutes"),
+                   hours, hours == 1 ? "" : _("s"), minutes - 60*hours);
        } else {
-           sprintf(msg, "System going down in %d minute%s\r\n\n",
-                   minutes, minutes == 1 ? "" : "s");
+           sprintf(msg, _("System going down in %d minute%s\n"),
+                   minutes, minutes == 1 ? "" : _("s"));
        }
        WR(msg);
+       WRCRLF;
 
-       sprintf(msg, "\t... %s ...\r\n\n", message);
+       sprintf(msg, _("\t... %s ...\n"), message);
        WR(msg);
+       WRCRLF;
 
        close(fd);
 }
@@ -473,7 +503,7 @@ swap_off()
 
        sync();
        if ((pid = fork()) < 0) {
-               my_puts("Cannot fork for swapoff. Shrug!");
+               my_puts(_("Cannot fork for swapoff. Shrug!"));
                return;
        }
        if (!pid) {
@@ -481,8 +511,8 @@ swap_off()
                execl("/etc/swapoff", SWAPOFF_ARGS, NULL);
                execl("/bin/swapoff", SWAPOFF_ARGS, NULL);
                execlp("swapoff", SWAPOFF_ARGS, NULL);
-               my_puts("Cannot exec swapoff, "
-                         "hoping umount will do the trick.");
+               my_puts(_("Cannot exec swapoff, "
+                         "hoping umount will do the trick."));
                exit(0);
        }
        while ((result = wait(&status)) != -1 && result != pid)
@@ -500,20 +530,25 @@ unmount_disks()
 
        sync();
        if ((pid = fork()) < 0) {
-               my_puts("Cannot fork for umount, trying manually.");
+               my_puts(_("Cannot fork for umount, trying manually."));
                unmount_disks_ourselves();
                return;
        }
        if (!pid) {
                execl(_PATH_UMOUNT, UMOUNT_ARGS, NULL);
-               my_puts("Cannot exec " _PATH_UMOUNT ", trying umount.");
+
+               /* need my_printf instead of my_puts here */
+               freopen(_PATH_CONSOLE, "w", stdout);
+               printf(_("Cannot exec %s, trying umount.\n"), _PATH_UMOUNT);
+               fflush(stdout);
+
                execlp("umount", UMOUNT_ARGS, NULL);
-               my_puts("Cannot exec umount, giving up on umount.");
+               my_puts(_("Cannot exec umount, giving up on umount."));
                exit(0);
        }
        while ((result = wait(&status)) != -1 && result != pid)
                ;
-       my_puts("Unmounting any remaining filesystems...");
+       my_puts(_("Unmounting any remaining filesystems..."));
        unmount_disks_ourselves();
 }
 
@@ -549,7 +584,7 @@ unmount_disks_ourselves()
                printf("umount %s\n", filesys);
 #else
                if (umount(mntlist[i]) < 0)
-                       printf("shutdown: Couldn't umount %s\n", filesys);
+                       printf(_("shutdown: Couldn't umount %s\n"), filesys);
 #endif
        }
 }
index 1664404c353571ac279bc0ced96b15c628105dfd..1e496ad59724a3ee789556b3122551f956e14301 100644 (file)
@@ -1,6 +1,10 @@
 /* simpleinit.c - poe@daimi.aau.dk */
 /* Version 1.21 */
 
+/* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ */
+
 #include <sys/types.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -21,6 +25,7 @@
 #include "my_crypt.h"
 #include "pathnames.h"
 #include "linux_reboot.h"
+#include "nls.h"
 
 #define CMDSIZ 150     /* max size of a line in inittab */
 #define NUMCMD 30      /* max number of lines in inittab */
@@ -71,15 +76,15 @@ enter_single()
     pid_t pid;
     int i;
 
-    err("Booting to single user mode.\n");
+    err(_("Booting to single user mode.\n"));
     if((pid = fork()) == 0) {
        /* the child */
        execl(_PATH_BSHELL, _PATH_BSHELL, NULL);
-       err("exec of single user shell failed\n");
+       err(_("exec of single user shell failed\n"));
     } else if(pid > 0) {
        while(wait(&i) != pid) /* nothing */;
     } else if(pid < 0) {
-       err("fork of single user shell failed\n");
+       err(_("fork of single user shell failed\n"));
     }
     unlink(_PATH_SINGLE);
 }
@@ -95,6 +100,11 @@ int main(int argc, char *argv[])
        signal(SIGTSTP, tstp_handler);
        signal(SIGINT, int_handler);
 
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+
+
        /* 
         * start up in single user mode if /etc/singleboot exists or if
         * argv[1] is "single".
@@ -206,14 +216,14 @@ int boot_single(int singlearg, int argc, char *argv[])
                          return 1; /* a bad /etc/passwd should not lock out */
 
                        for(i = 0; i < MAXTRIES; i++) {
-                               pass = getpass("Password: ");
+                               pass = getpass(_("Password: "));
                                if(pass == NULL) continue;
                                
                                if(!strcmp(crypt(pass, rootpass), rootpass)) {
                                        return 1;
                                }
 
-                               puts("\nWrong password.\n");
+                               puts(_("\nWrong password.\n"));
                        }
                } else return 1;
        }
@@ -239,16 +249,16 @@ int do_rc()
                close(0);
                if(open(_PATH_RC, O_RDONLY, 0) == 0) {
                        execv(_PATH_BSHELL, argv);
-                       err("exec rc failed\n");
+                       err(_("exec rc failed\n"));
                        _exit(2);
                }
-               err("open of rc file failed\n");
+               err(_("open of rc file failed\n"));
                _exit(1);
        } else if(pid > 0) {
                /* parent, wait till rc process dies before spawning */
                while(wait(&stat) != pid) /* nothing */;
        } else if(pid < 0) {
-               err("fork of rc shell failed\n");
+               err(_("fork of rc shell failed\n"));
        }
        return WEXITSTATUS(stat);
 }
@@ -260,7 +270,7 @@ void spawn(int i)
        
        if((pid = fork()) < 0) {
                inittab[i].pid = -1;
-               err("fork failed\n");
+               err(_("fork failed\n"));
                return;
        }
        if(pid) {
@@ -289,7 +299,7 @@ void spawn(int i)
                env[2] = (char *)0;
 
                execve(inittab[i].toks[0], inittab[i].toks, env);
-               err("exec failed\n");
+               err(_("exec failed\n"));
                sleep(5);
                _exit(1);
        }
@@ -311,7 +321,7 @@ void read_inittab()
        /* termenv = "vt100"; */
                        
        if(!(f = fopen(_PATH_INITTAB, "r"))) {
-               err("cannot open inittab\n");
+               err(_("cannot open inittab\n"));
                _exit(1);
        }
 
@@ -349,7 +359,7 @@ void read_inittab()
                /* special-case termcap for the console ttys */
                (void) sprintf(tty, "/dev/%s", inittab[i].tty);
                if(!termenv || stat(tty, &stb) < 0) {
-                       err("no TERM or cannot stat tty\n");
+                       err(_("no TERM or cannot stat tty\n"));
                } else {
                        /* is it a console tty? */
                        if(major(stb.st_rdev) == 4 && minor(stb.st_rdev) < 64) {
index 7caf35be3a58bcd55d6b53c4ab86c5ebaad88f83..6bf2f82f6830767fbf4fbba098f1e96fbd205c8a 100644 (file)
  *
  */
 
+ /* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+  * - added Native Language Support
+  * Sun Mar 21 1999 - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+  * - fixed strerr(errno) in gettext calls
+  */
+
 #include <sys/types.h>
 #include <sys/uio.h>
 #include <signal.h>
@@ -45,6 +51,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
+#include "nls.h"
 
 #ifdef __linux__
 #include "pathnames.h"
@@ -68,19 +75,20 @@ ttymsg(iov, iovcnt, line, tmout)
        static char errbuf[MAXNAMLEN+1024];
        register int cnt, fd, left, wret;
        struct iovec localiov[6];
-       int forked = 0;
+       int forked = 0, errsv;
 
        if (iovcnt > sizeof(localiov) / sizeof(localiov[0]))
-               return ("too many iov's (change code in wall/ttymsg.c)");
+               return (_("too many iov's (change code in wall/ttymsg.c)"));
+
+       /* The old code here rejected the line argument when it contained a '/',
+          saying: "A slash may be an attempt to break security...".
+          However, if a user can control the line argument here
+          then he can make this routine write to /dev/hda or /dev/sda
+          already. So, this test was worthless, and these days it is
+          also wrong since people use /dev/pts/xxx. */
 
-       if (strchr(line, '/')) {
-               /* A slash is an attempt to break security... */
-               (void) sprintf(errbuf, "'/' in \"%s\"", device);
-               errbuf[1024] = 0;       /* protect caller */
-               return (errbuf);
-       }
        if (strlen(line) + sizeof(_PATH_DEV) + 1 > sizeof(device)) {
-               (void) sprintf(errbuf, "excessively long line arg");
+               (void) sprintf(errbuf, _("excessively long line arg"));
                return (errbuf);
        }
        (void) sprintf(device, "%s%s", _PATH_DEV, line);
@@ -134,10 +142,12 @@ ttymsg(iov, iovcnt, line, tmout)
                        cpid = fork();
                        if (cpid < 0) {
                                if (strlen(strerror(errno)) > 1000)
-                                       (void) sprintf(errbuf, "cannot fork");
-                               else
+                                       (void) sprintf(errbuf, _("cannot fork"));
+                               else {
+                                       errsv = errno;
                                        (void) sprintf(errbuf,
-                                                "fork: %s", strerror(errno));
+                                                _("fork: %s"), strerror(errsv));
+                               }
                                (void) close(fd);
                                return (errbuf);
                        }
@@ -164,10 +174,12 @@ ttymsg(iov, iovcnt, line, tmout)
                if (forked)
                        _exit(1);
                if (strlen(strerror(errno)) > 1000)
-                       (void) sprintf(errbuf, "%s: BAD ERROR", device);
-               else
+                       (void) sprintf(errbuf, _("%s: BAD ERROR"), device);
+               else {
+                       errsv = errno;
                        (void) sprintf(errbuf, "%s: %s", device,
-                                      strerror(errno));
+                                      strerror(errsv));
+               }
                errbuf[1024] = 0;
                return (errbuf);
        }
index 50270a6e3807b6d405ab096a328c042c2648eda9..dfcdca2ed5c038d20e0945128c08f384aef5d837 100644 (file)
  * <joey@finlandia.infodrom.north.de>.  Support for vigr.
  *
  * Martin Schulze's patches adapted to Util-Linux by Nicolai Langfeldt.
+ *
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ * Sun Mar 21 1999 - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ * - fixed strerr(errno) in gettext calls
  */
 
 static char version_string[] = "vipw 1.4";
@@ -59,6 +64,7 @@ static char version_string[] = "vipw 1.4";
 #include <unistd.h>
 
 #include "setpwnam.h"
+#include "nls.h"
 
 #define FILENAMELEN 67
 
@@ -140,7 +146,7 @@ pw_lock()
 #if 0 /* flock()ing is superfluous here, with the ptmp/ptmptmp system. */
        if (flock(lockfd, LOCK_EX|LOCK_NB)) {
                (void)fprintf(stderr,
-                   "%s: the %s file is busy.\n", progname, 
+                   _("%s: the %s file is busy.\n"), progname, 
                              program == VIPW ? "password" : "group" );
                exit(1);
        }
@@ -156,13 +162,15 @@ pw_lock()
        if (ret == -1) {
            if (errno == EEXIST)
                (void)fprintf(stderr, 
-                             "%s: the %s file is busy (%s present)\n",
+                             _("%s: the %s file is busy (%s present)\n"),
                              progname,
                              program == VIPW ? "password" : "group",
                              tmp_file);
-           else
-               (void)fprintf(stderr, "%s: can't link %s: %s\n", progname,
-                             tmp_file, strerror(errno));
+           else {
+               int errsv = errno;
+               (void)fprintf(stderr, _("%s: can't link %s: %s\n"), progname,
+                             tmp_file, strerror(errsv));
+           }
            exit(1);
        }
        copyfile(lockfd, fd);
@@ -180,9 +188,10 @@ pw_unlock()
   unlink(tmp);
   link(orig_file, tmp);
   if (rename(tmp_file, orig_file) == -1) {
+    int errsv = errno;
     (void)fprintf(stderr, 
-                 "%s: can't unlock %s: %s (your changes are still in %s)\n"
-                 progname, orig_file, strerror(errno), tmp_file);
+                 _("%s: can't unlock %s: %s (your changes are still in %s)\n")
+                 progname, orig_file, strerror(errsv), tmp_file);
     exit(1);
   }
   (void)unlink(tmp_file);
@@ -205,7 +214,7 @@ pw_edit(int notsetuid)
 
        pid = fork();
        if (pid < 0) {
-               (void)fprintf(stderr, "%s: Cannot fork\n", progname);
+               (void)fprintf(stderr, _("%s: Cannot fork\n"), progname);
                exit(1);
        }
        if (!pid) {
@@ -245,7 +254,7 @@ pw_error(name, err, eval)
                (void)fprintf(stderr, "%s\n", strerror(sverrno));
        }
        (void)fprintf(stderr,
-           "%s: %s unchanged\n", progname, orig_file);
+           _("%s: %s unchanged\n"), progname, orig_file);
        (void)unlink(tmp_file);
        exit(eval);
 }
@@ -254,6 +263,10 @@ int main(int argc, char *argv[])
 {
   struct stat begin, end;
 
+  setlocale(LC_ALL, "");
+  bindtextdomain(PACKAGE, LOCALEDIR);
+  textdomain(PACKAGE);
+
   bzero(tmp_file, FILENAMELEN);
   progname = (rindex(argv[0], '/')) ? rindex(argv[0], '/') + 1 : argv[0];
   if (!strcmp(progname, "vigr")) {
@@ -284,7 +297,7 @@ int main(int argc, char *argv[])
   if (stat(tmp_file, &end))
     pw_error(tmp_file, 1, 1);
   if (begin.st_mtime == end.st_mtime) {
-    (void)fprintf(stderr, "%s: no changes made\n", progname);
+    (void)fprintf(stderr, _("%s: no changes made\n"), progname);
     pw_error((char *)NULL, 0, 0);
   }
   pw_unlock();
index eda7e611db916551ea193f98a8a411fcf33cdaed..70a0df65be66b7355e91400d28c7505214f58e37 100644 (file)
 /*
  * This program is not related to David Wall, whose Stanford Ph.D. thesis
  * is entitled "Mechanisms for Broadcast and Selective Broadcast".
+ *
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ *
  */
 
 #include <sys/param.h>
 #include <sys/uio.h>
 
 #include <paths.h>
+#include <ctype.h>
 #include <pwd.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 #include <utmp.h>
+#include "nls.h"
 #ifdef __linux__
 #include <locale.h>
 #include "pathnames.h"
@@ -63,6 +69,8 @@ int nobanner;
 int mbufsize;
 char *mbuf;
 
+char *progname = "wall";
+
 /* ARGSUSED */
 int
 main(argc, argv)
@@ -72,15 +80,19 @@ main(argc, argv)
        extern int optind;
        int ch;
        struct iovec iov;
-       struct utmp utmp;
-       FILE *fp;
+       struct utmp *utmpptr;
        char *p, *ttymsg();
-       char line[sizeof(utmp.ut_line) + 1];
+       char line[sizeof(utmpptr->ut_line) + 1];
+
+       setlocale(LC_ALL, "");
+        bindtextdomain(PACKAGE, LOCALEDIR);
+        textdomain(PACKAGE);
+
+       progname = argv[0];
+       p = rindex(progname, '/');
+       if (p)
+            progname = p+1;
 
-#ifdef __linux__
-       setlocale(LC_CTYPE,"");
-#endif
-       
        while ((ch = getopt(argc, argv, "n")) != EOF)
                switch (ch) {
                case 'n':
@@ -91,7 +103,7 @@ main(argc, argv)
                case '?':
                default:
 usage:
-                       (void)fprintf(stderr, "usage: wall [file]\n");
+                       (void)fprintf(stderr, _("usage: %s [file]\n"), progname);
                        exit(1);
                }
        argc -= optind;
@@ -101,26 +113,24 @@ usage:
 
        makemsg(*argv);
 
-       if (!(fp = fopen(_PATH_UTMP, "r"))) {
-               (void)fprintf(stderr, "wall: cannot read %s.\n", _PATH_UTMP);
-               exit(1);
-       }
+       setutent();
+
        iov.iov_base = mbuf;
        iov.iov_len = mbufsize;
-       /* NOSTRICT */
-       while (fread((char *)&utmp, sizeof(utmp), 1, fp) == 1) {
-               if (!utmp.ut_name[0] ||
-                   !strncmp(utmp.ut_name, IGNOREUSER, sizeof(utmp.ut_name)))
+       while((utmpptr = getutent())) {
+               if (!utmpptr->ut_name[0] ||
+                   !strncmp(utmpptr->ut_name, IGNOREUSER, sizeof(utmpptr->ut_name)))
+                       continue;
+#ifdef USER_PROCESS
+               if (utmpptr->ut_type != USER_PROCESS)
                        continue;
-#ifdef __linux__
-               if (utmp.ut_type != USER_PROCESS)
-                  continue;
 #endif
-               strncpy(line, utmp.ut_line, sizeof(utmp.ut_line));
-               line[sizeof(utmp.ut_line)-1] = '\0';
+               strncpy(line, utmpptr->ut_line, sizeof(utmpptr->ut_line));
+               line[sizeof(utmpptr->ut_line)-1] = '\0';
                if ((p = ttymsg(&iov, 1, line, 60*5)) != NULL)
-                       (void)fprintf(stderr, "wall: %s\n", p);
+                       (void)fprintf(stderr, "%s: %s\n", progname, p);
        }
+       endutent();
        exit(0);
 }
 
@@ -138,17 +148,16 @@ makemsg(fname)
        char *p, *whom, *where, hostname[MAXHOSTNAMELEN],
                lbuf[MAXHOSTNAMELEN + 320],
                tmpname[sizeof(_PATH_TMP) + 20];
-       char *getlogin(), *strcpy(), *ttyname();
 
        (void)sprintf(tmpname, "%s/wall.XXXXXX", _PATH_TMP);
        if (!(fd = mkstemp(tmpname)) || !(fp = fdopen(fd, "r+"))) {
-               (void)fprintf(stderr, "wall: can't open temporary file.\n");
+               (void)fprintf(stderr, _("%s: can't open temporary file.\n"), progname);
                exit(1);
        }
        (void)unlink(tmpname);
 
        if (!nobanner) {
-               if (!(whom = getlogin()))
+               if (!(whom = getlogin()) || !*whom)
                        whom = (pw = getpwuid(getuid())) ? pw->pw_name : "???";
                if (!whom || strlen(whom) > 100)
                        whom = "someone";
@@ -169,7 +178,7 @@ makemsg(fname)
                /* snprintf is not always available, but the sprintf's here
                   will not overflow as long as %d takes at most 100 chars */
                (void)fprintf(fp, "\r%79s\r\n", " ");
-               (void)sprintf(lbuf, "Broadcast Message from %s@%s",
+               (void)sprintf(lbuf, _("Broadcast Message from %s@%s"),
                              whom, hostname);
                (void)fprintf(fp, "%-79.79s\007\007\r\n", lbuf);
                (void)sprintf(lbuf, "        (%s) at %d:%02d ...",
@@ -179,7 +188,7 @@ makemsg(fname)
        (void)fprintf(fp, "%79s\r\n", " ");
 
        if (fname && !(freopen(fname, "r", stdin))) {
-               (void)fprintf(stderr, "wall: can't read %s.\n", fname);
+               (void)fprintf(stderr, _("%s: can't read %s.\n"), progname, fname);
                exit(1);
        }
        while (fgets(lbuf, sizeof(lbuf), stdin))
@@ -204,16 +213,16 @@ makemsg(fname)
        rewind(fp);
 
        if (fstat(fd, &sbuf)) {
-               (void)fprintf(stderr, "wall: can't stat temporary file.\n");
+               (void)fprintf(stderr, _("%s: can't stat temporary file.\n"), progname);
                exit(1);
        }
        mbufsize = sbuf.st_size;
        if (!(mbuf = malloc((u_int)mbufsize))) {
-               (void)fprintf(stderr, "wall: out of memory.\n");
+               (void)fprintf(stderr, _("%s: Out of memory!\n"), progname);
                exit(1);
        }
        if (fread(mbuf, sizeof(*mbuf), mbufsize, fp) != mbufsize) {
-               (void)fprintf(stderr, "wall: can't read temporary file.\n");
+               (void)fprintf(stderr, _("%s: can't read temporary file.\n"), progname);
                exit(1);
        }
        (void)close(fd);
index 9ccf489b17de1e50037c21074c7673bd29a135f4..eeaf5676460a97e0974b22046e51966865a3f03f 100644 (file)
@@ -4,14 +4,14 @@
 # Copyright 1992, 1993, 1994, 1995 Rickard E. Faith (faith@cs.unc.edu)
 # May be distirbuted under the GPL
 #
-
+include ../make_include
 include ../MCONFIG
 
 # Where to put man pages?
 
 MAN1=          cal.1 chkdupexe.1 ddate.1 kill.1 \
                logger.1 look.1 mcookie.1 namei.1 script.1 \
-               setterm.1 tsort.1 whereis.1 write.1
+               tsort.1 whereis.1 write.1
 
 # Where to put binaries?
 # See the "install" rule for the links. . .
@@ -19,7 +19,7 @@ MAN1=                 cal.1 chkdupexe.1 ddate.1 kill.1 \
 BIN=            kill
 
 USRBIN=                cal chkdupexe ddate logger look mcookie \
-               namei script setterm tsort whereis write
+               namei script tsort whereis write
 
 ifeq "$(HAVE_CLEAR)" "no"
 USRBIN:=$(USRBIN) clear
@@ -31,14 +31,21 @@ USRBIN:=$(USRBIN) reset
 MAN1:=$(MAN1) reset.1
 endif
 
+ifeq "$(HAVE_NCURSES)" "yes"
+USRBIN:=$(USRBIN) setterm
+MAN1:=$(MAN1) setterm.1
+endif
+
 # For script only
+LIBPTY=
 ifeq "$(HAVE_OPENPTY)" "yes"
-CFLAGS:=$(CFLAGS) -DHAVE_OPENPTY
+LIBPTY:=$(LIBPTY) -lutil
 endif
 
 # Programs requiring special compilation
 
 NEEDS_CURSES=  setterm
+NEEDS_OPENPTY= script
 
 all: $(BIN) $(USRBIN) $(USRBIN.NONSHADOW) $(USRGAMES) 
 
@@ -49,6 +56,9 @@ else
        @echo $@ not made since it requires ncurses
 endif
 
+$(NEEDS_OPENPTY):
+       $(CC) $(LDFLAGS) $^ -o $@ $(LIBPTY)
+
 %: %.sh
        cp $@.sh $@
        chmod 755 $@
@@ -68,12 +78,12 @@ mcookie: mcookie.o md5.o
 mcookie.o: mcookie.c md5.h
 md5.o: md5.c md5.h
 reset: reset.sh
+script: script.o
 
 ifeq "$(HAVE_NCURSES)" "yes"
 setterm: setterm.o
 endif
 
-
 install: all
        $(INSTALLDIR) $(BINDIR) $(USRBINDIR)
        $(INSTALLBIN) $(BIN) $(BINDIR)
index ab642014097b44bd1bc9b2ee88734fd34465fd2e..e3acf74b1571d82e1185a526f6cb725a0c271413 100644 (file)
 
 /* 1999-02-01  Jean-Francois Bignolles: added option '-m' to display
  *             monday as the first day of the week.
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ *
  */
 
-/* This defines _LINUX_C_LIB_VERSION_MAJOR, dunno about gnulibc.  We
-   don't want it to read /usr/i586-unknown-linux/include/_G_config.h
-   so we specify fill path.  Were we got /usr/i586-unknown-linux from?
-   Dunno. */
-
-#include "/usr/include/_G_config.h"
-
 #include <sys/types.h>
 
 #include <ctype.h>
 #include <time.h>
 #include <unistd.h>
 #include <locale.h>
+#include "nls.h"
+#include "../defines.h"
 
-/* Test changes to deal with gnulibc, Linux libc 5. */
-/* #if defined(__linux__) && _LINUX_C_LIB_VERSION_MAJOR > 4 */
-#if _LINUX_C_LIB_VERSION_MAJOR - 0 > 4 || __GNU_LIBRARY__ - 0 >= 5
-# define LANGINFO 1
-#else
-# define LANGINFO 0
-#endif
-
-#if LANGINFO
+#ifdef HAVE_langinfo_h
 # include <langinfo.h>
 #else
-# include <localeinfo.h>
+# include <localeinfo.h>       /* libc4 only */
 #endif
 
 #define        THURSDAY                4               /* for reformation */
@@ -162,7 +152,11 @@ main(argc, argv)
        extern char *__progname;
        __progname = argv[0];
 #endif
-
+       
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+       
        setlocale(LC_ALL,"");
        yflag = 0;
        while ((ch = getopt(argc, argv, "mjy")) != EOF)
@@ -187,11 +181,11 @@ main(argc, argv)
        switch(argc) {
        case 2:
                if ((month = atoi(*argv++)) < 1 || month > 12)
-                       errx(1, "illegal month value: use 1-12");
+                       errx(1, _("illegal month value: use 1-12"));
                /* FALLTHROUGH */
        case 1:
                if ((year = atoi(*argv)) < 1 || year > 9999)
-                       errx(1, "illegal year value: use 1-9999");
+                       errx(1, _("illegal year value: use 1-9999"));
                break;
        case 0:
                (void)time(&now);
@@ -228,7 +222,7 @@ void headers_init(void)
   strcpy(day_headings,"");
   strcpy(j_day_headings,"");
 
-#if defined(__linux__) && (_LINUX_C_LIB_VERSION_MAJOR > 4 || __GNU_LIBRARY__ > 1)
+#ifdef HAVE_langinfo_h
 # define weekday(wd)   nl_langinfo(ABDAY_1+wd)
 #else
 # define weekday(wd)   _time_info->abbrev_wkday[wd]
@@ -247,7 +241,7 @@ void headers_init(void)
 #undef weekday
   
   for (i = 0; i < 12; i++) {
-#if defined(__linux__) && (_LINUX_C_LIB_VERSION_MAJOR > 4 || __GNU_LIBRARY__ > 1)
+#ifdef HAVE_langinfo_h
      full_month[i] = nl_langinfo(MON_1+i);
 #else
      full_month[i] = _time_info->full_month[i];
@@ -487,6 +481,6 @@ void
 usage()
 {
 
-       (void)fprintf(stderr, "usage: cal [-mjy] [[month] year]\n");
+       (void)fprintf(stderr, _("usage: cal [-mjy] [[month] year]\n"));
        exit(1);
 }
index 09704e0b47eed92b7f074b141cebd0dda1f981b5..7f12e86fdf7ae588caac28a214975fdb958fa4d8 100644 (file)
@@ -26,6 +26,9 @@
    59 Bcy, 3161:       PRAISE_BOB and KILL_BOB options split, other minor
                        changes.
 
+   1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+   - added Native Language Support
+
 */
 
 
@@ -57,6 +60,7 @@
 #include <string.h>
 #include <time.h>
 #include <stdio.h>
+#include "nls.h"
 
 #ifndef __GNUC__
 #define inline /* foo */
@@ -147,6 +151,10 @@ main (int argc, char *argv[])
     char schwa[23*17], *fnord=0;
     int pi;
 
+    setlocale(LC_ALL, "");
+    bindtextdomain(PACKAGE, LOCALEDIR);
+    textdomain(PACKAGE);
+
     srandom(time(NULL));
     /* do args here */
     for(pi=1; pi<argc; pi++) {
@@ -173,7 +181,7 @@ main (int argc, char *argv[])
        fnord=fnord?fnord:default_fmt;
     } else if (argc!=pi) { 
       usage:
-       fprintf(stderr,"usage: %s [+format] [day month year]\n", argv[0]);
+       fprintf(stderr,_("usage: %s [+format] [day month year]\n"), argv[0]);
        exit(1);
     } else {
        t= time(NULL);
@@ -219,7 +227,7 @@ void format(char *buf, const char* fmt, struct disc_time dt)
     for(i=0; i<fmtlen; i++) {
        if((i==tib_start) && (dt.day==-1)) {
            /* handle St. Tib's Day */
-           strcpy(bufptr, "St. Tib's Day"); bufptr += 13;
+           strcpy(bufptr, _("St. Tib's Day")); bufptr += 13;
            i=tib_end;
        } else {
            if(fmt[i]=='%') {
index 6299381374d05fdd8f2639e85f2bc7af26ba6229..768f5deab8ba15926ac9b3cd371bb0d65e6f4002 100644 (file)
  *  oct 5 1994 -- almost entirely re-written to allow for process names.
  *  modifications (c) salvatore valente <svalente@mit.edu>
  *  may be used / modified / distributed under the same terms as the original.
+ *
+ *  1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ *  - added Native Language Support
+ *
  */
 
 #include <stdio.h>
@@ -42,6 +46,7 @@
 #include <ctype.h>
 #include <unistd.h>
 #include <signal.h>
+#include "nls.h"
 
 #define SIZE(a)        (sizeof(a)/sizeof(a[0]))
 
@@ -151,6 +156,10 @@ int main (int argc, char *argv[])
     int do_pid, do_kill, check_all;
     int *pids, *ip;
 
+    setlocale(LC_ALL, "");
+    bindtextdomain(PACKAGE, LOCALEDIR);
+    textdomain(PACKAGE);
+
     whoami = mybasename (*argv);
     numsig = SIGTERM;
     do_pid = (! strcmp (whoami, "pid"));
@@ -187,7 +196,7 @@ int main (int argc, char *argv[])
            /* argc == 2 */
            arg = argv[1];
            if ((numsig = arg_to_signum (arg)) < 0) {
-               fprintf (stderr, "%s: unknown signal %s\n", whoami, arg);
+               fprintf (stderr, _("%s: unknown signal %s\n"), whoami, arg);
                return 1;
            }
            printsig (numsig);
@@ -249,7 +258,7 @@ int main (int argc, char *argv[])
            pids = get_pids (arg, check_all);
            if (! pids) {
                errors++;
-               fprintf (stderr, "%s: can't find process \"%s\"\n",
+               fprintf (stderr, _("%s: can't find process \"%s\"\n"),
                         whoami, arg);
                continue;
            }
@@ -291,7 +300,7 @@ int arg_to_signum (char *arg)
 
 void nosig (char *name)
 {
-    fprintf (stderr, "%s: unknown signal %s; valid signals:\n", whoami, name);
+    fprintf (stderr, _("%s: unknown signal %s; valid signals:\n"), whoami, name);
     printsignals (stderr);
 }
 
@@ -331,8 +340,8 @@ int usage (int status)
     FILE *fp;
 
     fp = (status == 0 ? stdout : stderr);
-    fprintf (fp, "usage: %s [ -s signal | -p ] [ -a ] pid ...\n", whoami);
-    fprintf (fp, "       %s -l [ signal ]\n", whoami);
+    fprintf (fp, _("usage: %s [ -s signal | -p ] [ -a ] pid ...\n"), whoami);
+    fprintf (fp, _("       %s -l [ signal ]\n"), whoami);
     return status;
 }
 
index 0621dba10f3fbe8dcc8c44c343c7bb00945085a9..82df6be7a434d9f300bfafa302e3b02f6961681b 100644 (file)
@@ -43,6 +43,7 @@
 .Op Fl f Ar file
 .Op Fl p Ar pri
 .Op Fl t Ar tag
+.Op Fl u Ar socket
 .Op Ar message ...
 .Sh DESCRIPTION
 .Nm Logger
@@ -73,6 +74,10 @@ The default is ``user.notice.''
 .It Fl t Ar tag 
 Mark every line in the log with the specified
 .Ar tag  .
+.It Fl u Ar sock
+Write to socket as specified with
+.Ar socket
+instead of builtin syslog routines.
 .It Ar message
 Write the message to log; if not specified, and the
 .Fl f
index e59fe12bfa214712418db8fc6431b5fa58119a22..4c881c968bad36be8bf92304db3cb07ed260c5c0 100644 (file)
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
+ *
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ * Sun Mar 21 1999 - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ * - fixed strerr(errno) in gettext calls
  */
 
 #include <errno.h>
 #include <unistd.h>
 #include <stdlib.h>
+#include <time.h>
 #include <stdio.h>
 #include <ctype.h>
 #include <string.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include "nls.h"
 
 #define        SYSLOG_NAMES
 #include <syslog.h>
@@ -45,6 +54,65 @@ int  decode __P((char *, CODE *));
 int    pencode __P((char *));
 void   usage __P((void));
 
+int
+myopenlog(sock)
+     const char *sock;
+{
+       int fd;
+       static struct sockaddr s_addr;      /* AF_UNIX address of local logger */
+
+       s_addr.sa_family = AF_UNIX;
+       (void)strncpy(s_addr.sa_data, sock, sizeof(s_addr.sa_data));
+
+       if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {
+               printf ("socket: %s.\n", strerror(errno));
+               exit (1);
+       }
+
+       if (connect(fd, &s_addr, sizeof(s_addr.sa_family)+strlen(s_addr.sa_data)) == -1) {
+               printf ("connect: %s.\n", strerror(errno));
+               exit (1);
+       }
+       return fd;
+}
+
+void
+mysyslog(fd, logflags, pri, tag, msg)
+     int fd;
+     int logflags;
+     int pri;
+     char *tag;
+     char *msg;
+{
+       char buf[1000], pid[30], *cp, *tp;
+       time_t now;
+
+       if (fd > -1) {
+              /* there was a gethostname call here, but its output was not used */
+              /* avoid snprintf - it does not exist on ancient systems */
+               if (logflags & LOG_PID)
+                       sprintf (pid, "[%d]", getpid());
+              else
+                      pid[0] = 0;
+               if (tag)
+                      cp = tag;
+              else {
+                      cp = getlogin();
+                      if (!cp)
+                              cp = "<someone>";
+              }
+               (void)time(&now);
+              tp = ctime(&now)+4;
+
+              /* do snprintf by hand - ugly, but for once... */
+               sprintf(buf, "<%d>%.15s %.200s%s: %.400s",
+                       pri, tp, cp, pid, msg);
+
+               if (write(fd, buf, strlen(buf)+1) < 0)
+                       return; /* error */
+       }
+}
+
 /*
  * logger -- read and log utility
  *
@@ -58,16 +126,23 @@ main(argc, argv)
 {
        int ch, logflags, pri;
        char *tag, buf[1024];
+       char *usock = NULL;
+       int LogSock = -1;
+
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
 
        tag = NULL;
        pri = LOG_NOTICE;
        logflags = 0;
-       while ((ch = getopt(argc, argv, "f:ip:st:")) != EOF)
+       while ((ch = getopt(argc, argv, "f:ip:st:u:")) != EOF)
                switch((char)ch) {
                case 'f':               /* file to log */
                        if (freopen(optarg, "r", stdin) == NULL) {
-                               (void)fprintf(stderr, "logger: %s: %s.\n",
-                                   optarg, strerror(errno));
+                               int errsv = errno;
+                               (void)fprintf(stderr, _("logger: %s: %s.\n"),
+                                   optarg, strerror(errsv));
                                exit(1);
                        }
                        break;
@@ -83,6 +158,9 @@ main(argc, argv)
                case 't':               /* tag */
                        tag = optarg;
                        break;
+               case 'u':               /* unix socket */
+                       usock = optarg;
+                       break;
                case '?':
                default:
                        usage();
@@ -91,7 +169,11 @@ main(argc, argv)
        argv += optind;
 
        /* setup for logging */
-       openlog(tag ? tag : getlogin(), logflags, 0);
+       if (!usock)
+               openlog(tag ? tag : getlogin(), logflags, 0);
+       else
+               LogSock = myopenlog(usock);
+
        (void) fclose(stdout);
 
        /* log input line if appropriate */
@@ -102,23 +184,41 @@ main(argc, argv)
                for (p = buf, endp = buf + sizeof(buf) - 2; *argv;) {
                        len = strlen(*argv);
                        if (p + len > endp && p > buf) {
+                           if (!usock)
                                syslog(pri, "%s", buf);
+                           else
+                               mysyslog(LogSock, logflags, pri, tag, buf);
                                p = buf;
                        }
-                       if (len > sizeof(buf) - 1)
+                       if (len > sizeof(buf) - 1) {
+                           if (!usock)
                                syslog(pri, "%s", *argv++);
-                       else {
+                           else
+                               mysyslog(LogSock, logflags, pri, tag, *argv++);
+                       } else {
                                if (p != buf)
                                        *p++ = ' ';
                                bcopy(*argv++, p, len);
                                *(p += len) = '\0';
                        }
                }
-               if (p != buf)
+               if (p != buf) {
+                   if (!usock)
                        syslog(pri, "%s", buf);
+                   else
+                       mysyslog(LogSock, logflags, pri, tag, buf);
+               }
        } else
-               while (fgets(buf, sizeof(buf), stdin) != NULL)
+               while (fgets(buf, sizeof(buf), stdin) != NULL) {
+                   if (!usock)
                        syslog(pri, "%s", buf);
+                   else
+                       mysyslog(LogSock, logflags, pri, tag, buf);
+               }
+       if (!usock)
+               closelog();
+       else
+               close(LogSock);
        exit(0);
 }
 
@@ -138,19 +238,19 @@ pencode(s)
                fac = decode(save, facilitynames);
                if (fac < 0) {
                        (void)fprintf(stderr,
-                           "logger: unknown facility name: %s.\n", save);
+                           _("logger: unknown facility name: %s.\n"), save);
                        exit(1);
                }
                *s++ = '.';
        }
        else {
-               fac = 0;
+               fac = LOG_USER;
                s = save;
        }
        lev = decode(s, prioritynames);
        if (lev < 0) {
                (void)fprintf(stderr,
-                   "logger: unknown priority name: %s.\n", save);
+                   _("logger: unknown priority name: %s.\n"), save);
                exit(1);
        }
        return ((lev & LOG_PRIMASK) | (fac & LOG_FACMASK));
@@ -177,6 +277,6 @@ void
 usage()
 {
        (void)fprintf(stderr,
-           "logger: [-is] [-f file] [-p pri] [-t tag] [ message ... ]\n");
+           _("usage: logger [-is] [-f file] [-p pri] [-t tag] [-u socket] [ message ... ]\n"));
        exit(1);
 }
index 72256c197c5aee77ea9b0c97e68bb97b204215a7..9e6c15bf89ec33ca65a549a443fd7c8f863962fa 100644 (file)
  * SUCH DAMAGE.
  */
 
+ /* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+  * - added Native Language Support
+  */
+
 /*
  * look -- find lines in a sorted list.
  * 
@@ -56,6 +60,7 @@
 #include <getopt.h>
 #include <locale.h>
 #include "pathnames.h"
+#include "nls.h"
 
 #define        EQUAL           0
 #define        GREATER         1
@@ -83,6 +88,10 @@ main(int argc, char *argv[])
        int ch, fd, termchar;
        char *back, *file, *front, *p;
 
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+       
        setlocale(LC_ALL, "");
 
        file = _PATH_WORDS;
@@ -158,7 +167,7 @@ look(char *front, char *back)
 
        comparbuf = malloc(stringlen+1);
        if (comparbuf == NULL)
-               err("Out of memory");
+               err(_("Out of memory"));
 
        front = binary_search(front, back);
        front = linear_search(front, back);
@@ -328,7 +337,7 @@ compare(char *s2, char *s2end, int nocase) {
 static void
 usage()
 {
-       (void)fprintf(stderr, "usage: look [-dfa] [-t char] string [file]\n");
+       (void)fprintf(stderr, _("usage: look [-dfa] [-t char] string [file]\n"));
        exit(2);
 }
 
index 33ae7630e1c052d55173022b39b2f1c1c956bac0..9f13b49d1732d5f4250937fb8ec4b9209a36f984 100644 (file)
@@ -1,7 +1,7 @@
 /* mcookie.c -- Generates random numbers for xauth
  * Created: Fri Feb  3 10:42:48 1995 by faith@cs.unc.edu
- * Revised: Mon Sep 25 23:44:43 1995 by r.faith@ieee.org
- * Public Domain 1995 Rickard E. Faith (faith@cs.unc.edu)
+ * Revised: Fri Mar 19 07:48:01 1999 by faith@acm.org
+ * Public Domain 1995, 1999 Rickard E. Faith (faith@acm.org)
  * This program comes with ABSOLUTELY NO WARRANTY.
  * 
  * $Id: mcookie.c,v 1.5 1997/07/06 00:13:06 aebr Exp $
  * NOTE: Unless /dev/random is available, this program does not actually
  * gather 128 bits of random information, so the magic cookie generated
  * will be considerably easier to guess than one might expect.
+ *
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ * 1999-03-21 aeb: Added some fragments of code from Colin Plumb.
+ *
  */
 
 #ifdef __linux__
 #include <sys/time.h>
 #include <unistd.h>
 #endif
+#include "nls.h"
 
-#define MAXBUFFERSIZE 512
+#define BUFFERSIZE 4096
 
 struct rngs {
    const char *path;
-   int        length;
+   int minlength, maxlength;
 } rngs[] = {
-   { "/dev/random",              16 },
-   { "/dev/urandom",            128 },
-   { "/proc/stat",    MAXBUFFERSIZE },
-   { "/proc/loadavg", MAXBUFFERSIZE },
-   { "/dev/audio",    MAXBUFFERSIZE },
+   { "/dev/random",              16,  16 }, /* 16 bytes = 128 bits suffice */
+   { "/proc/interrupts",          0,   0 },
+   { "/proc/slabinfo",            0,   0 },
+   { "/proc/stat",                0,   0 },
+   { "/dev/urandom",             32,  64 },
 };
 #define RNGS (sizeof(rngs)/sizeof(struct rngs))
 
 int Verbose = 0;
 
+/* The basic function to hash a file */
+static off_t
+hash_file(struct MD5Context *ctx, int fd)
+{
+   off_t count = 0;
+   ssize_t r;
+   unsigned char buf[BUFFERSIZE];
+
+   while ((r = read(fd, buf, sizeof(buf))) > 0) {
+      MD5Update(ctx, buf, r);
+      count += r;
+   }
+   /* Separate files with a null byte */
+   buf[0] = 0;
+   MD5Update(ctx, buf, 1);
+   return count;
+}
+
 int main( int argc, char **argv )
 {
    int               i;
    struct MD5Context ctx;
    unsigned char     digest[16];
-   unsigned char     buf[MAXBUFFERSIZE];
+   unsigned char     buf[BUFFERSIZE];
    int               fd;
    int               c;
    pid_t             pid;
@@ -62,6 +86,10 @@ int main( int argc, char **argv )
    long int          t;
 #endif
 
+   setlocale(LC_ALL, "");
+   bindtextdomain(PACKAGE, LOCALEDIR);
+   textdomain(PACKAGE);
+
    while ((c = getopt( argc, argv, "vf:" )) != EOF)
       switch (c) {
       case 'v': ++Verbose;     break;
@@ -85,39 +113,52 @@ int main( int argc, char **argv )
    if (file) {
       int count = 0;
       
-      if (file[0] == '-' && !file[1]) fd = fileno(stdin);
-      else if ((fd = open( file, O_RDONLY )) <0) {
-        fprintf( stderr, "Could not open %s\n", file );
-      }
+      if (file[0] == '-' && !file[1])
+        fd = fileno(stdin);
+      else
+        fd = open( file, O_RDONLY );
+
+      if (fd < 0) {
+        fprintf( stderr, _("Could not open %s\n"), file );
+      } else {
+         count = hash_file( &ctx, fd );
+        if (Verbose)
+           fprintf( stderr, _("Got %d bytes from %s\n"), count, file );
 
-      while ((r = read( fd, buf, sizeof( buf ) )) > 0) {
-        MD5Update( &ctx, buf, r );
-        count += r;
+        if (file[0] != '-' || file[1]) close( fd );
       }
-      if (Verbose)
-        fprintf( stderr, "Got %d bytes from %s\n", count, file );
-      
-      if (file[0] != '-' || file[1]) close( fd );
    }
 
    for (i = 0; i < RNGS; i++) {
       if ((fd = open( rngs[i].path, O_RDONLY|O_NONBLOCK )) >= 0) {
-        r = read( fd, buf, sizeof( buf ) );
+        int count = sizeof(buf);
+
+        if (rngs[i].maxlength && count > rngs[i].maxlength)
+           count = rngs[i].maxlength;
+        r = read( fd, buf, count );
         if (r > 0)
            MD5Update( &ctx, buf, r );
         else
            r = 0;
         close( fd );
         if (Verbose)
-           fprintf( stderr, "Got %d bytes from %s\n", r, rngs[i].path );
-        if (r >= rngs[i].length) break;
+           fprintf( stderr, _("Got %d bytes from %s\n"), r, rngs[i].path );
+        if (rngs[i].minlength && r >= rngs[i].minlength)
+           break;
       } else if (Verbose)
-        fprintf( stderr, "Could not open %s\n", rngs[i].path );
+        fprintf( stderr, _("Could not open %s\n"), rngs[i].path );
    }
 
    MD5Final( digest, &ctx );
    for (i = 0; i < 16; i++) printf( "%02x", digest[i] );
    putchar ( '\n' );
    
+   /*
+    * The following is important for cases like disk full, so shell scripts
+    * can bomb out properly rather than think they succeeded.
+    */
+   if (fflush(stdout) < 0 || fclose(stdout) < 0)
+      return 1;
+
    return 0;
 }
index 36a17dfd69ad1f6c72db38418dbc5a3d38a2d0ae..f110e6385bf036e868fabd9c1c7595bc6ffcd701 100644 (file)
@@ -39,6 +39,9 @@ the maximum number of symbolic links this system can have.
 The program exits with a 1 status ONLY if it finds it cannot
 chdir to /,  or if it encounters an unknown file type.
 
+1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+- added Native Language Support
+
 -------------------------------------------------------------*/
 
 #include <stdio.h>
@@ -47,6 +50,7 @@ chdir to /,  or if it encounters an unknown file type.
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/param.h>
+#include "nls.h"
 
 #ifndef __GNU_LIBRARY__
 extern char *sys_errlist[];
@@ -76,6 +80,10 @@ char *argv[];
     register int c;
     char curdir[MAXPATHLEN];
 
+    setlocale(LC_ALL, "");
+    bindtextdomain(PACKAGE, LOCALEDIR);
+    textdomain(PACKAGE);
+    
     if(argc < 2)
        usage();
 
@@ -96,7 +104,7 @@ char *argv[];
     }
 
     if(getcwd(curdir, sizeof(curdir)) == NULL){
-       (void)fprintf(stderr, "namei: unable to get current directory - %s\n", curdir);
+       (void)fprintf(stderr, _("namei: unable to get current directory - %s\n"), curdir);
        exit(1);
     }
 
@@ -107,7 +115,7 @@ char *argv[];
        namei(argv[optind], 0);
 
        if(chdir(curdir) == -1){
-           (void)fprintf(stderr, "namei: unable to chdir to %s - %s (%d)\n", curdir, ERR);
+           (void)fprintf(stderr, _("namei: unable to chdir to %s - %s (%d)\n"), curdir, ERR);
            exit(1);
        }
     }
@@ -117,7 +125,7 @@ char *argv[];
 void
 usage()
 {
-    (void)fprintf(stderr,"usage: namei [-mx] pathname [pathname ...]\n");
+    (void)fprintf(stderr,_("usage: namei [-mx] pathname [pathname ...]\n"));
     exit(1);
 }
 
@@ -146,14 +154,14 @@ register int lev;
            file++;
        
        if(chdir("/") == -1){
-           (void)fprintf(stderr,"namei: could not chdir to root!\n");
+           (void)fprintf(stderr,_("namei: could not chdir to root!\n"));
            exit(1);
        }
        for(i = 0; i < lev; i++)
            (void)printf("  ");
 
        if(stat("/", &stb) == -1){
-           (void)fprintf(stderr, "namei: could not stat root!\n");
+           (void)fprintf(stderr, _("namei: could not stat root!\n"));
            exit(1);
        }
        lastdev = stb.st_dev;
@@ -208,7 +216,7 @@ register int lev;
                 */
                
                if(chdir(buf) == -1){
-                   (void)printf(" ? could not chdir into %s - %s (%d)\n", buf, ERR );
+                   (void)printf(_(" ? could not chdir into %s - %s (%d)\n"), buf, ERR );
                    return;
                }
                if(xflag && lastdev != stb.st_dev && lastdev != NODEV){
@@ -237,7 +245,7 @@ register int lev;
                
                bzero(sym, BUFSIZ);
                if(readlink(buf, sym, BUFSIZ) == -1){
-                   (void)printf(" ? problems reading symlink %s - %s (%d)\n", buf, ERR);
+                   (void)printf(_(" ? problems reading symlink %s - %s (%d)\n"), buf, ERR);
                    return;
                }
 
@@ -247,7 +255,7 @@ register int lev;
                    (void)printf(" l %s -> %s", buf, sym);
 
                if(symcount > 0 && symcount++ > MAXSYMLINKS){
-                   (void)printf("  *** EXCEEDED UNIX LIMIT OF SYMLINKS ***");
+                   (void)printf(_("  *** EXCEEDED UNIX LIMIT OF SYMLINKS ***"));
                    symcount = -1;
                }
                (void)printf("\n");
@@ -283,7 +291,7 @@ register int lev;
                break;
                
            default:
-               (void)fprintf(stderr,"namei: unknown file type 0%06o on file %s\n", stb.st_mode, buf );
+               (void)fprintf(stderr,_("namei: unknown file type 0%06o on file %s\n"), stb.st_mode, buf );
                exit(1);
            
        }
index 23c48ea6bd372595204850dd7b9c1697b19cae4c..283bc8fcba771983a56b9f3013e4aebcbace3c48 100644 (file)
  * SUCH DAMAGE.
  */
 
+/* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ */
+
 /*
  * script
  */
 #include <sys/signal.h>
 #include <stdio.h>
 #include <paths.h>
+#include "nls.h"
 
 #ifdef __linux__
 #include <unistd.h>
 #include <string.h>
 #endif
 
-#ifdef HAVE_OPENPTY
+#include "../defines.h"
+#ifdef HAVE_openpty
 #include <pty.h>
 #endif
 
@@ -74,7 +80,7 @@ struct        termios tt;
 struct winsize win;
 int    lb;
 int    l;
-#ifndef HAVE_OPENPTY
+#ifndef HAVE_openpty
 char   line[] = "/dev/ptyXX";
 #endif
 int    aflg;
@@ -89,6 +95,10 @@ main(argc, argv)
        void finish();
        char *getenv();
 
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+       
        while ((ch = getopt(argc, argv, "a")) != EOF)
                switch((char)ch) {
                case 'a':
@@ -96,7 +106,7 @@ main(argc, argv)
                        break;
                case '?':
                default:
-                       fprintf(stderr, "usage: script [-a] [file]\n");
+                       fprintf(stderr, _("usage: script [-a] [file]\n"));
                        exit(1);
                }
        argc -= optind;
@@ -116,7 +126,7 @@ main(argc, argv)
                shell = _PATH_BSHELL;
 
        getmaster();
-       printf("Script started, file is %s\n", fname);
+       printf(_("Script started, file is %s\n"), fname);
        fixtty();
 
        (void) signal(SIGCHLD, finish);
@@ -148,7 +158,7 @@ doinput()
        char ibuf[BUFSIZ];
 
        (void) fclose(fscript);
-#ifdef HAVE_OPENPTY
+#ifdef HAVE_openpty
        (void) close(slave);
 #endif
        while ((cc = read(0, ibuf, BUFSIZ)) > 0)
@@ -181,11 +191,11 @@ dooutput()
        char obuf[BUFSIZ], *ctime();
 
        (void) close(0);
-#ifdef HAVE_OPENPTY
+#ifdef HAVE_openpty
        (void) close(slave);
 #endif
        tvec = time((time_t *)NULL);
-       fprintf(fscript, "Script started on %s", ctime(&tvec));
+       fprintf(fscript, _("Script started on %s"), ctime(&tvec));
        for (;;) {
                cc = read(master, obuf, sizeof (obuf));
                if (cc <= 0)
@@ -251,12 +261,12 @@ done()
 
        if (subchild) {
                tvec = time((time_t *)NULL);
-               fprintf(fscript,"\nScript done on %s", ctime(&tvec));
+               fprintf(fscript,_("\nScript done on %s"), ctime(&tvec));
                (void) fclose(fscript);
                (void) close(master);
        } else {
                (void) tcsetattr(0, TCSAFLUSH, &tt);
-               printf("Script done, file is %s\n", fname);
+               printf(_("Script done, file is %s\n"), fname);
        }
        exit(0);
 }
@@ -264,11 +274,11 @@ done()
 void
 getmaster()
 {
-#ifdef HAVE_OPENPTY
+#ifdef HAVE_openpty
        (void) tcgetattr(0, &tt);
        (void) ioctl(0, TIOCGWINSZ, (char *)&win);
        if (openpty(&master, &slave, NULL, &tt, &win) < 0) {
-               fprintf(stderr, "openpty failed\n");
+               fprintf(stderr, _("openpty failed\n"));
                fail();
        }
 #else
@@ -302,15 +312,15 @@ getmaster()
                        }
                }
        }
-       fprintf(stderr, "Out of pty's\n");
+       fprintf(stderr, _("Out of pty's\n"));
        fail();
-#endif /* not HAVE_OPENPTY */
+#endif /* not HAVE_openpty */
 }
 
 void
 getslave()
 {
-#ifndef HAVE_OPENPTY
+#ifndef HAVE_openpty
        line[strlen("/dev/")] = 't';
        slave = open(line, O_RDWR);
        if (slave < 0) {
index 3b3e6c24fcf833d1a6ff869b5ef090a0d700d226..b9e4c0dad824a4f3e3e16224b8a1deebcd0184cb 100644 (file)
  *
  * Converted to terminfo by Kars de Jong (jongk@cs.utwente.nl)
  *
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ *
+ *
  * Syntax:
  *
  * setterm
 #endif
 #include <sys/ioctl.h>
 #include <sys/time.h>
+#include "nls.h"
 
 #ifndef TCGETS
 /* TCGETS is either defined in termios.h, or here: */
@@ -737,58 +742,58 @@ char *prog_name;          /* Name of this program. */
 {
 /* Print error message about arguments, and the command's syntax. */
 
-  fprintf(stderr, "%s: Argument error, usage\n", prog_name);
+  fprintf(stderr, _("%s: Argument error, usage\n"), prog_name);
   fprintf(stderr, "\n");
   fprintf(stderr, "%s\n", prog_name);
-  fprintf(stderr, "  [ -term terminal_name ]\n");
-  fprintf(stderr, "  [ -reset ]\n");
-  fprintf(stderr, "  [ -initialize ]\n");
-  fprintf(stderr, "  [ -cursor [on|off] ]\n");
+  fprintf(stderr, _("  [ -term terminal_name ]\n"));
+  fprintf(stderr, _("  [ -reset ]\n"));
+  fprintf(stderr, _("  [ -initialize ]\n"));
+  fprintf(stderr, _("  [ -cursor [on|off] ]\n"));
 #if 0
-  fprintf(stderr, "  [ -snow [on|off] ]\n");
-  fprintf(stderr, "  [ -softscroll [on|off] ]\n");
-  fprintf(stderr, "  [ -keyboard pc|olivetti|dutch|extended ]\n");
+  fprintf(stderr, _("  [ -snow [on|off] ]\n"));
+  fprintf(stderr, _("  [ -softscroll [on|off] ]\n"));
+  fprintf(stderr, _("  [ -keyboard pc|olivetti|dutch|extended ]\n"));
 #endif
-  fprintf(stderr, "  [ -repeat [on|off] ]\n");
-  fprintf(stderr, "  [ -appcursorkeys [on|off] ]\n");
-  fprintf(stderr, "  [ -linewrap [on|off] ]\n");
-  fprintf(stderr, "  [ -default ]\n");
-  fprintf(stderr, "  [ -foreground black|blue|green|cyan");
-  fprintf(stderr, "|red|magenta|yellow|white|default ]\n");
-  fprintf(stderr, "  [ -background black|blue|green|cyan");
-  fprintf(stderr, "|red|magenta|yellow|white|default ]\n");
-  fprintf(stderr, "  [ -ulcolor black|grey|blue|green|cyan");
-  fprintf(stderr, "|red|magenta|yellow|white ]\n");
-  fprintf(stderr, "  [ -ulcolor bright blue|green|cyan");
-  fprintf(stderr, "|red|magenta|yellow|white ]\n");
-  fprintf(stderr, "  [ -hbcolor black|grey|blue|green|cyan");
-  fprintf(stderr, "|red|magenta|yellow|white ]\n");
-  fprintf(stderr, "  [ -hbcolor bright blue|green|cyan");
-  fprintf(stderr, "|red|magenta|yellow|white ]\n");
+  fprintf(stderr, _("  [ -repeat [on|off] ]\n"));
+  fprintf(stderr, _("  [ -appcursorkeys [on|off] ]\n"));
+  fprintf(stderr, _("  [ -linewrap [on|off] ]\n"));
+  fprintf(stderr, _("  [ -default ]\n"));
+  fprintf(stderr, _("  [ -foreground black|blue|green|cyan"));
+  fprintf(stderr, _("|red|magenta|yellow|white|default ]\n"));
+  fprintf(stderr, _("  [ -background black|blue|green|cyan"));
+  fprintf(stderr, _("|red|magenta|yellow|white|default ]\n"));
+  fprintf(stderr, _("  [ -ulcolor black|grey|blue|green|cyan"));
+  fprintf(stderr, _("|red|magenta|yellow|white ]\n"));
+  fprintf(stderr, _("  [ -ulcolor bright blue|green|cyan"));
+  fprintf(stderr, _("|red|magenta|yellow|white ]\n"));
+  fprintf(stderr, _("  [ -hbcolor black|grey|blue|green|cyan"));
+  fprintf(stderr, _("|red|magenta|yellow|white ]\n"));
+  fprintf(stderr, _("  [ -hbcolor bright blue|green|cyan"));
+  fprintf(stderr, _("|red|magenta|yellow|white ]\n"));
 #if 0
-  fprintf(stderr, "  [ -standout [ attr ] ]\n");
+  fprintf(stderr, _("  [ -standout [ attr ] ]\n"));
 #endif
-  fprintf(stderr, "  [ -inversescreen [on|off] ]\n");
-  fprintf(stderr, "  [ -bold [on|off] ]\n");
-  fprintf(stderr, "  [ -half-bright [on|off] ]\n");
-  fprintf(stderr, "  [ -blink [on|off] ]\n");
-  fprintf(stderr, "  [ -reverse [on|off] ]\n");
-  fprintf(stderr, "  [ -underline [on|off] ]\n");
-  fprintf(stderr, "  [ -store ]\n");
-  fprintf(stderr, "  [ -clear [all|rest] ]\n");
-  fprintf(stderr, "  [ -tabs [ tab1 tab2 tab3 ... ] ]      (tabn = 1-160)\n");
-  fprintf(stderr, "  [ -clrtabs [ tab1 tab2 tab3 ... ] ]   (tabn = 1-160)\n");
-  fprintf(stderr, "  [ -regtabs [1-160] ]\n");
-  fprintf(stderr, "  [ -blank [0-60] ]\n");
-  fprintf(stderr, "  [ -dump   [1-NR_CONSOLES] ]\n");
-  fprintf(stderr, "  [ -append [1-NR_CONSOLES] ]\n");
-  fprintf(stderr, "  [ -file dumpfilename ]\n");
-  fprintf(stderr, "  [ -msg [on|off] ]\n");
-  fprintf(stderr, "  [ -msglevel [0-8] ]\n");
-  fprintf(stderr, "  [ -powersave [on|vsync|hsync|powerdown|off] ]\n");
-  fprintf(stderr, "  [ -powerdown [0-60] ]\n");
-  fprintf(stderr, "  [ -blength [0-2000] ]\n");
-  fprintf(stderr, "  [ -bfreq freqnumber ]\n");
+  fprintf(stderr, _("  [ -inversescreen [on|off] ]\n"));
+  fprintf(stderr, _("  [ -bold [on|off] ]\n"));
+  fprintf(stderr, _("  [ -half-bright [on|off] ]\n"));
+  fprintf(stderr, _("  [ -blink [on|off] ]\n"));
+  fprintf(stderr, _("  [ -reverse [on|off] ]\n"));
+  fprintf(stderr, _("  [ -underline [on|off] ]\n"));
+  fprintf(stderr, _("  [ -store ]\n"));
+  fprintf(stderr, _("  [ -clear [all|rest] ]\n"));
+  fprintf(stderr, _("  [ -tabs [ tab1 tab2 tab3 ... ] ]      (tabn = 1-160)\n"));
+  fprintf(stderr, _("  [ -clrtabs [ tab1 tab2 tab3 ... ] ]   (tabn = 1-160)\n"));
+  fprintf(stderr, _("  [ -regtabs [1-160] ]\n"));
+  fprintf(stderr, _("  [ -blank [0-60] ]\n"));
+  fprintf(stderr, _("  [ -dump   [1-NR_CONSOLES] ]\n"));
+  fprintf(stderr, _("  [ -append [1-NR_CONSOLES] ]\n"));
+  fprintf(stderr, _("  [ -file dumpfilename ]\n"));
+  fprintf(stderr, _("  [ -msg [on|off] ]\n"));
+  fprintf(stderr, _("  [ -msglevel [0-8] ]\n"));
+  fprintf(stderr, _("  [ -powersave [on|vsync|hsync|powerdown|off] ]\n"));
+  fprintf(stderr, _("  [ -powerdown [0-60] ]\n"));
+  fprintf(stderr, _("  [ -blength [0-2000] ]\n"));
+  fprintf(stderr, _("  [ -bfreq freqnumber ]\n"));
 }
 
 char *ti_entry(name)
@@ -833,16 +838,16 @@ int vcterm;                       /* Set if terminal is a virtual console. */
   if (opt_keyboard && vcterm) {
        switch (opt_ke_type) {
            case PC:
-               printf("%s%s%s", DCS, "keyboard.pc", ST);
+               printf("%s%s%s", DCS, _("keyboard.pc"), ST);
                break;
            case OLIVETTI:
-               printf("%s%s%s", DCS, "keyboard.olivetti", ST);
+               printf("%s%s%s", DCS, _("keyboard.olivetti"), ST);
                break;
            case DUTCH:
-               printf("%s%s%s", DCS, "keyboard.dutch", ST);
+               printf("%s%s%s", DCS, _("keyboard.dutch"), ST);
                break;
            case EXTENDED:
-               printf("%s%s%s", DCS, "keyboard.extended", ST);
+               printf("%s%s%s", DCS, _("keyboard.extended"), ST);
                break;
        }
   }
@@ -876,17 +881,17 @@ int vcterm;                       /* Set if terminal is a virtual console. */
   /* -snow [on|off].  Vc only. */
   if (opt_snow && vcterm) {
        if (opt_sn_on)
-               printf("%s%s%s", DCS, "snow.on", ST);
+               printf("%s%s%s", DCS, _("snow.on"), ST);
        else
-               printf("%s%s%s", DCS, "snow.off", ST);
+               printf("%s%s%s", DCS, _("snow.off"), ST);
   }
 
   /* -softscroll [on|off].  Vc only. */
   if (opt_softscroll && vcterm) {
        if (opt_so_on)
-               printf("%s%s%s", DCS, "softscroll.on", ST);
+               printf("%s%s%s", DCS, _("softscroll.on"), ST);
        else
-               printf("%s%s%s", DCS, "softscroll.off", ST);
+               printf("%s%s%s", DCS, _("softscroll.off"), ST);
   }
 #endif
 
@@ -1061,7 +1066,7 @@ int vcterm;                       /* Set if terminal is a virtual console. */
        ioctlarg[0] = 10;       /* powersave */
        ioctlarg[1] = opt_ps_mode;
         if (ioctl(0,TIOCLINUX,ioctlarg))
-           fprintf(stderr,"cannot (un)set powersave mode\n");
+           fprintf(stderr,_("cannot (un)set powersave mode\n"));
   }
 
   /* -powerdown [0-60]. */
@@ -1082,7 +1087,7 @@ int vcterm;                       /* Set if terminal is a virtual console. */
       F = fopen(opt_sn_name, opt_snap ? "w" : "a");
       if (!F) {
          perror(opt_sn_name);
-         fprintf(stderr,"setterm: can not open dump file %s for output\n",
+         fprintf(stderr,("setterm: can not open dump file %s for output\n"),
                  opt_sn_name); 
          exit(-1);
       }
@@ -1100,7 +1105,7 @@ int vcterm;                       /* Set if terminal is a virtual console. */
                result = klogctl(6, NULL, 0);
 
        if (result != 0)
-               printf("klogctl error: %s\n", strerror(result));
+               printf(_("klogctl error: %s\n"), strerror(result));
   }
 
   /* -msglevel [0-8] */
@@ -1108,7 +1113,7 @@ int vcterm;                       /* Set if terminal is a virtual console. */
        /* 8 -- Set level of messages printed to console */
        result = klogctl(8, NULL, opt_msglevel_num);
        if (result != 0)
-               printf("klogctl error: %s\n", strerror(result));
+               printf(_("klogctl error: %s\n"), strerror(result));
    }
 
   /* -blength [0-2000] */
@@ -1145,11 +1150,11 @@ screendump(int vcnum, FILE *F){
     inbuf = malloc(rows*cols*2);
     outbuf = malloc(rows*(cols+1));
     if(!inbuf || !outbuf) {
-       fprintf(stderr, "Out of memory\n");
+       fputs(_("Out of memory"), stderr);
        exit(1);
     }
     if (read(fd, inbuf, rows*cols*2) != rows*cols*2) {
-       fprintf(stderr, "Error reading %s\n", infile);
+       fprintf(stderr, _("Error reading %s\n"), infile);
        exit(1);
     }
     p = inbuf;
@@ -1164,7 +1169,7 @@ screendump(int vcnum, FILE *F){
        *q++ = '\n';
     }
     if (fwrite(outbuf, 1, q-outbuf, F) != q-outbuf) {
-       fprintf(stderr, "Error writing screendump\n");
+       fprintf(stderr, _("Error writing screendump\n"));
        exit(1);
     }
     return;
@@ -1178,7 +1183,7 @@ try_ioctl:
        screenbuf[0] = 0;
        screenbuf[1] = (unsigned char) vcnum;
        if (ioctl(0,TIOCLINUX,screenbuf) < 0) {
-           fprintf(stderr,"couldn't read %s, and cannot ioctl dump\n",
+           fprintf(stderr,_("couldn't read %s, and cannot ioctl dump\n"),
                    infile);
            exit(1);
        }
@@ -1203,6 +1208,10 @@ int main(int argc, char **argv)
   char *term;                  /* Terminal type. */
   int vcterm;                  /* Set if terminal is a virtual console. */
 
+  setlocale(LC_ALL, "");
+  bindtextdomain(PACKAGE, LOCALEDIR);
+  textdomain(PACKAGE);
+  
   if (argc < 2) bad_arg = TRUE;
 
   /* Parse arguments. */
@@ -1239,7 +1248,7 @@ int main(int argc, char **argv)
   } else {
        term = getenv("TERM");
        if (term == NULL) {
-               fprintf(stderr, "%s: $TERM is not defined.\n", argv[0]);
+               fprintf(stderr, _("%s: $TERM is not defined.\n"), argv[0]);
                exit(1);
        }
   }
index 61e9e8442fa36c78a4510cbd04cc38b7f8fcd6d1..6278976674680065749aa7d1134ec71a2fd999c2 100644 (file)
  * SUCH DAMAGE.
  */
 
+ /* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+  * - added Native Language Support
+  */
+
 #include <sys/types.h>
 #include <errno.h>
 #include <stdio.h>
 #include <ctype.h>
 #include <string.h>
+#include "nls.h"
 
 /*
  *  Topological sort.  Input is a list of pairs of strings seperated by
@@ -102,12 +107,16 @@ main(argc, argv)
        int bsize, nused;
        BUF bufs[2];
 
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+       
        if (argc < 2)
                fp = stdin;
        /* == becomes > in next line per Volker Meyer_zu_Bexten
           <vmzb@ims.fhg.de> -- faith@cs.unc.edu, Sat Feb  4 21:25:09 1995 */
        else if (argc > 2) {
-               (void)fprintf(stderr, "usage: tsort [ inputfile ]\n");
+               (void)fprintf(stderr, _("usage: tsort [ inputfile ]\n"));
                exit(1);
        } else if (!(fp = fopen(argv[1], "r"))) {
                (void)fprintf(stderr, "tsort: %s.\n", strerror(errno));
@@ -144,7 +153,7 @@ main(argc, argv)
        }
        (void)fclose(fp);
        if (n) {
-               (void)fprintf(stderr, "tsort: odd data count.\n");
+               (void)fprintf(stderr, _("tsort: odd data count.\n"));
                exit(1);
        }
 
@@ -309,7 +318,7 @@ tsort()
                                        register int i;
 
                                        (void)fprintf(stderr,
-                                           "tsort: cycle in data.\n");
+                                           _("tsort: cycle in data.\n"));
                                        for (i = 0; i < cnt; i++)
                                                (void)fprintf(stderr,
                                "tsort: %s.\n", longest_cycle[i]->n_name);
@@ -322,7 +331,7 @@ tsort()
 
                if (!n) {
                        (void)fprintf(stderr,
-                           "tsort: internal error -- could not find cycle.\n");
+                           _("tsort: internal error -- could not find cycle.\n"));
                        exit(1);
                }
        }
index 49419241716706fe94def8b2178fe04772395f54..cb07bc685cf23f1c6ea2cd1673cc741befa12280 100644 (file)
 
 /* *:aeb */
 
+/* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ */
+
 #include <sys/param.h>
 #include <sys/dir.h>
 #include <sys/stat.h>
 #include <stdio.h>
 #include <string.h>
 #include <ctype.h>
+#include "nls.h"
 
 void zerof(void);
 void getlist(int *, char ***, char ***, int *);
@@ -142,11 +147,15 @@ main(argc, argv)
        int argc;
        char *argv[];
 {
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+       
 
        argc--, argv++;
        if (argc == 0) {
 usage:
-               fprintf(stderr, "whereis [ -sbmu ] [ -SBM dir ... -f ] name...\n");
+               fprintf(stderr, _("whereis [ -sbmu ] [ -SBM dir ... -f ] name...\n"));
                exit(1);
        }
        do
@@ -328,6 +337,9 @@ findin(char *dir, char *cp) {
                if (dirp == NULL)
                        return;
                while ((dp = readdir(dirp)) != NULL) {
+                       if (!strcmp(dp->d_name, ".") ||
+                           !strcmp(dp->d_name, ".."))
+                               continue;
                        if (strlen(dp->d_name) + l > sizeof(dirbuf))
                                continue;
                        sprintf(d, "%s", dp->d_name);
index 07a113ea726437163b0fb1f3e36a350d86ed8fac..cac26239e61f2d7de424ca3a6d3cac7c9855cf4d 100644 (file)
@@ -40,6 +40,9 @@
  *      - Added fix from David.Chapell@mail.trincoll.edu enabeling daemons
  *       to use write.
  *      - ANSIed it since I was working on it anyway.
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ *
  */
 
 #include <unistd.h>
@@ -58,7 +61,8 @@
 #include <paths.h>
 #include "pathnames.h"
 #endif
-
+#include "nls.h"
 void search_utmp(char *, char *, char *, uid_t);
 void do_write(char *, char *, uid_t);
 void wr_fputs(char *);
@@ -70,14 +74,15 @@ extern int errno;
 int
 main(int argc, char **argv)
 {
-       register char *cp;
        time_t atime;
        uid_t myuid;
        int msgsok, myttyfd;
        char tty[MAXPATHLEN], *mytty, *ttyname();
        void done();
 
-       setlocale(LC_CTYPE,"");
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
 
        /* check that sender has write enabled */
        if (isatty(fileno(stdin)))
@@ -91,16 +96,18 @@ main(int argc, char **argv)
        }
        if (myttyfd != -1) {
          if (!(mytty = ttyname(myttyfd))) {
-               (void)fprintf(stderr, "write: can't find your tty's name\n");
+               (void)fprintf(stderr, _("write: can't find your tty's name\n"));
                exit(1);
          }
-         if ((cp = rindex(mytty, '/')) != NULL)
-               mytty = cp + 1;
+         /* We may have /dev/ttyN but also /dev/pts/xx.
+            Below, term_chk() will put "/dev/" in front, so remove that part. */
+         if (!strncmp(mytty, "/dev/", 5))
+               mytty += 5;
          if (term_chk(mytty, &msgsok, &atime, 1))
                exit(1);
          if (!msgsok) {
                (void)fprintf(stderr,
-                   "write: you have write permission turned off.\n");
+                   _("write: you have write permission turned off.\n"));
                exit(1);
          }
        
@@ -121,7 +128,7 @@ main(int argc, char **argv)
                        argv[2] += 5;
                if (utmp_chk(argv[1], argv[2])) {
                        (void)fprintf(stderr,
-                           "write: %s is not logged in on %s.\n",
+                           _("write: %s is not logged in on %s.\n"),
                            argv[1], argv[2]);
                        exit(1);
                }
@@ -129,14 +136,14 @@ main(int argc, char **argv)
                        exit(1);
                if (myuid && !msgsok) {
                        (void)fprintf(stderr,
-                           "write: %s has messages disabled on %s\n",
+                           _("write: %s has messages disabled on %s\n"),
                            argv[1], argv[2]);
                        exit(1);
                }
                do_write(argv[2], mytty, myuid);
                break;
        default:
-               (void)fprintf(stderr, "usage: write user [tty]\n");
+               (void)fprintf(stderr, _("usage: write user [tty]\n"));
                exit(1);
        }
        done();
@@ -235,7 +242,7 @@ void search_utmp(char *user, char *tty, char *mytty, uid_t myuid)
 
        endutent();
        if (nloggedttys == 0) {
-               (void)fprintf(stderr, "write: %s is not logged in\n", user);
+               (void)fprintf(stderr, _("write: %s is not logged in\n"), user);
                exit(1);
        }
        if (nttys == 0) {
@@ -244,11 +251,11 @@ void search_utmp(char *user, char *tty, char *mytty, uid_t myuid)
                        return;
                }
                (void)fprintf(stderr,
-                   "write: %s has messages disabled\n", user);
+                   _("write: %s has messages disabled\n"), user);
                exit(1);
        } else if (nttys > 1) {
                (void)fprintf(stderr,
-                   "write: %s is logged in more than once; writing to %s\n",
+                   _("write: %s is logged in more than once; writing to %s\n"),
                    user, tty);
        }
 }
@@ -314,8 +321,10 @@ void do_write(char *tty, char *mytty, uid_t myuid)
        now = time((time_t *)NULL);
        nows = ctime(&now);
        nows[16] = '\0';
-       (void)printf("\r\n\007\007\007Message from %s@%s on %s at %s ...\r\n",
+       printf("\r\n\007\007\007");
+       (void)printf(_("Message from %s@%s on %s at %s ..."),
            login, host, mytty, nows + 11);
+       printf("\r\n");
 
        while (fgets(line, sizeof(line), stdin) != NULL)
                wr_fputs(line);
diff --git a/mkinstalldirs b/mkinstalldirs
new file mode 100755 (executable)
index 0000000..a01481b
--- /dev/null
@@ -0,0 +1,40 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain
+
+# $Id: mkinstalldirs,v 1.10 1996/05/03 07:37:52 friedman Exp $
+
+errstatus=0
+
+for file
+do
+   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+   shift
+
+   pathcomp=
+   for d
+   do
+     pathcomp="$pathcomp$d"
+     case "$pathcomp" in
+       -* ) pathcomp=./$pathcomp ;;
+     esac
+
+     if test ! -d "$pathcomp"; then
+        echo "mkdir $pathcomp" 1>&2
+
+        mkdir "$pathcomp" || lasterr=$?
+
+        if test ! -d "$pathcomp"; then
+         errstatus=$lasterr
+        fi
+     fi
+
+     pathcomp="$pathcomp/"
+   done
+done
+
+exit $errstatus
+
+# mkinstalldirs ends here
index c61b4ae8c26d923e77fce156d26c64cb13aaf16c..0d370ff8c65222799994d49c9cf5b3dca776e574 100644 (file)
@@ -1,6 +1,5 @@
-ifeq (../MCONFIG,$(wildcard ../MCONFIG))
+include ../make_include
 include ../MCONFIG
-endif
 
 CC = gcc
 CFLAGS = -I$(LIB) $(OPT)
diff --git a/mount/Makefile.standalone b/mount/Makefile.standalone
deleted file mode 100644 (file)
index 1be3756..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-# ifeq (../MCONFIG,$(wildcard ../MCONFIG))
-# include ../MCONFIG
-# endif
-
-# For now: a standalone version
-
-CC = gcc
-CFLAGS = -O2 -I../lib
-
-#WARNFLAGS = -Wall -Wstrict-prototypes
-# We really want
-WARNFLAGS = -Wall -Wstrict-prototypes -Wmissing-prototypes
-# but at the moment that yields
-#<linux/socket.h>:72: warning: no previous prototype for `cmsg_nxthdr'
-
-# you need rpcgen and libc-4.2 or rpclib to compile in the NFS support
-# pregenerated files are included.
-# Make sure nfsmount_clnt.c is newer than nfsmount.x to avoid gcc complaints.
-DEFINES = -DHAVE_NFS
-
-RPCSVCDIR = rpcsvc
-RPC_CFLAGS = -Wno-unused 
-RPCGEN = rpcgen
-
-INSTALL = install
-INSTALLSUID = $(INSTALL) -m 4755 -o root
-INSTALLPROG = $(INSTALL) -m 755
-INSTALLDATA = $(INSTALL) -m 644
-INSTALLDIR = mkdir -p
-INSTALLMAN = $(INSTALLDATA)
-
-MANDIR = /usr/man
-## for suid progs (mount, umount)
-BINDIR = /bin
-## for nosuid progs (swapon)
-SBINDIR = /sbin
-
-# End of configuration section.
-
-COMPILE = $(CC) -c $(WARNFLAGS) $(CFLAGS) $(DEFINES)
-LINK = $(CC) $(LDFLAGS)
-
-SUID_PROGS = mount umount
-NOSUID_PROGS = swapon losetup
-PROGS = $(SUID_PROGS) $(NOSUID_PROGS)
-MAN5 = fstab.5 nfs.5
-MAN8 = mount.8 swapoff.8 swapon.8 umount.8 losetup.8
-
-# comment these out if you are not compiling in NFS support
-NFS_OBJS = nfsmount.o nfsmount_xdr.o nfsmount_clnt.o
-# uncomment this if you don't have libc-4.2 but do have the rpclib
-GEN_FILES = nfsmount.x nfsmount.h nfsmount_xdr.c nfsmount_clnt.c
-
-# comment these out if you are not compiling in loop support
-LO_OBJS=lomount.o
-
-all: $(PROGS)
-
-install: $(PROGS)
-       $(INSTALLDIR) $(BINDIR) $(SBINDIR)
-       $(INSTALLSUID) -s $(SUID_PROGS) $(BINDIR)
-       $(INSTALLPROG) -s $(NOSUID_PROGS) $(SBINDIR)
-       (cd $(SBINDIR); ln -sf swapon swapoff)
-       $(INSTALLDIR) $(MANDIR)/man5 $(MANDIR)/man8
-       $(INSTALLMAN) $(MAN5) $(MANDIR)/man5
-       $(INSTALLMAN) $(MAN8) $(MANDIR)/man8
-
-%.o: %.c
-       $(COMPILE) $<
-
-mount: mount.o fstab.o sundries.o realpath.o mntent.o version.o \
-       mount_guess_fstype.o mount_by_label.o ../lib/setproctitle.o $(NFS_OBJS) $(LO_OBJS)
-       $(LINK) $^ -o $@
-
-umount: umount.o fstab.o sundries.o realpath.o mntent.o version.o $(LO_OBJS)
-       $(LINK) $^ -o $@
-
-swapon:        swapon.o version.o
-       $(LINK) $^ -o $@
-
-losetup: losetup.o
-       $(LINK) $^ -o $@
-
-mount.o umount.o nfsmount.o losetup.o fstab.o sundries.o: sundries.h
-
-mount.o umount.o fstab.o sundries.o: fstab.h
-
-mount.o fstab.o mntent.o: mntent.h
-
-mount.o mount_guess_fstype.o: mount_guess_fstype.h
-
-mount.o umount.o losetup.o lomount.o: lomount.h loop.h
-
-swapon.o: swap_constants.h swapargs.h
-
-sundries.o nfsmount.o nfsmount_xdr.o nfsmount_clnt.o: nfsmount.h
-
-umount.o: mount_constants.h
-
-mount.o mount_by_label.o mount_guess_fstype.o: linux_fs.h
-
-nfsmount_clnt.o: nfsmount_clnt.c
-       $(COMPILE) $(RPC_CFLAGS) nfsmount_clnt.c
-
-nfsmount_xdr.o: nfsmount_xdr.c
-       $(COMPILE) $(RPC_CFLAGS) nfsmount_xdr.c
-
-nfsmount.h nfsmount_xdr.c nfsmount_clnt.c: nfsmount.x
-       rm -f nfsmount.h nfsmount_xdr.c nfsmount_clnt.c
-       $(RPCGEN) -h -o nfsmount.h nfsmount.x
-       $(RPCGEN) -c -o nfsmount_xdr.c nfsmount.x
-       $(RPCGEN) -l -o nfsmount_clnt.c nfsmount.x
-
-nfsmount.x:
-       cp $(RPCSVCDIR)/nfsmount.x .
-
-nfsmount.o: nfs_mountversion.h nfs_mount3.h
-
-NFSMOUNTH=/usr/include/linux/nfs_mount.h
-
-nfs_mountversion.h:
-       rm -f nfs_mountversion.h
-       if [ -f $(NFSMOUNTH) ]; then \
-               grep NFS_MOUNT_VERSION $(NFSMOUNTH) \
-                       | sed -e 's/NFS/KERNEL_NFS/'; \
-       else \
-               echo '#define KERNEL_NFS_MOUNT_VERSION 0'; \
-       fi > nfs_mountversion.h
-
-swapargs.h:
-       sh swap.configure
-
-loop.h:
-       sh mk_loop_h
-
-clean:
-       rm -f a.out core *~ *.o swapargs.h $(PROGS) swapoff
-       rm -f loop.h nfs_mountversion.h
-
-clobber distclean realclean: clean
-       rm -f $(GEN_FILES)
index d343538db6c56dbfaf19b10850aca97dd7071c03..5b85fb99665c3ddb7ced5fadd005596af5f95def 100644 (file)
@@ -37,8 +37,9 @@
 .\" Sat Nov 27 20:23:32 1993: Updated authorship information
 .\" Wed Jul 26 00:00:00 1995: Updated some nfs stuff, joey@infodrom.north.de
 .\" Tue Apr  2 00:38:28 1996: added info about "noauto", "user", etc.
+.\" Tue Jun 15 20:02:18 1999: added LABEL and UUID
 .\"
-.TH FSTAB 5 "27 November 1993" "Linux 0.99" "Linux Programmer's Manual"
+.TH FSTAB 5 "15 June 1999" "Linux 2.2" "Linux Programmer's Manual"
 .SH NAME
 fstab \- static information about the filesystems
 .SH SYNOPSIS
@@ -66,11 +67,28 @@ The first field,
 .RI ( fs_spec ),
 describes the block special device or
 remote filesystem to be mounted.
+.LP
+For ordinary mounts it will hold (a link to) a block special
+device node (as created by
+.BR mknod (8))
+for the device to be mounted, like `/dev/cdrom' or `/dev/sdb7'.
+For NFS mounts one will have <host>:<dir>, e.g., `knuth.aeb.nl:/'.
+For procfs, use `proc'.
+.LP
+Instead of giving the device explicitly, one may indicate
+the (ext2) filesystem that is to be mounted by its UUID or
+volume label (cf.
+.BR e2label (8)),
+writing LABEL=<label> or UUID=<uuid>,
+e.g., `LABEL=Boot' or `UUID=3e6be9de\%-8139\%-11d1\%-9106\%-a43f08d823a6'.
+This will make the system more robust: adding or removing a SCSI disk
+changes the disk device name but not the filesystem volume label.
 
 The second field,
 .RI ( fs_file ),
 describes the mount point for the filesystem.  For swap partitions, this
-field should be specified as ``none''.
+field should be specified as `none'. If the name of the mount point
+contains spaces these can be escaped as `\\040'.
 
 The third field,
 .RI ( fs_vfstype ),
index a67316ee92e097758ae6cd6f5f93962057ced52c..793caddde9040f26f5d385bd4b506c9f0e1f3e39 100644 (file)
@@ -1,3 +1,9 @@
+/* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ * Sun Mar 21 1999 - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ * - fixed strerr(errno) in gettext calls
+ */
+
 #include <unistd.h>
 #include <errno.h>
 #include <stdio.h>
@@ -6,7 +12,7 @@
 #include "mntent.h"
 #include "fstab.h"
 #include "sundries.h"          /* for xmalloc() etc */
-
+#include "nls.h"
 
 #define streq(s, t)    (strcmp ((s), (t)) == 0)
 
@@ -106,7 +112,8 @@ read_mntentchn(mntFILE *mfp, const char *fnam, struct mntentchn *mc0) {
        }
        mc0->prev = mc;
        if (ferror (mfp->mntent_fp)) {
-               error("warning: error reading %s: %s", fnam, strerror (errno));
+               int errsv = errno;
+               error(_("warning: error reading %s: %s"), fnam, strerror (errsv));
                mc0->nxt = mc0->prev = NULL;
        }
        my_endmntent(mfp);
@@ -133,11 +140,11 @@ read_mounttable() {
          fnam = PROC_MOUNTS;
          mfp = my_setmntent (fnam, "r");
          if (mfp == NULL || mfp->mntent_fp == NULL) {
-              error("warning: can't open %s: %s", MOUNTED, strerror (errsv));
+              error(_("warning: can't open %s: %s"), MOUNTED, strerror (errsv));
               return;
          }
          if (verbose)
-              printf ("mount: could not open %s - using %s instead\n",
+              printf (_("mount: could not open %s - using %s instead\n"),
                       MOUNTED, PROC_MOUNTS);
      }
      read_mntentchn(mfp, fnam, mc);
@@ -155,7 +162,8 @@ read_fstab() {
      fnam = _PATH_FSTAB;
      mfp = my_setmntent (fnam, "r");
      if (mfp == NULL || mfp->mntent_fp == NULL) {
-         error("warning: can't open %s: %s", _PATH_FSTAB, strerror (errno));
+         int errsv = errno;
+         error(_("warning: can't open %s: %s"), _PATH_FSTAB, strerror (errsv));
          return;
      }
      read_mntentchn(mfp, fnam, mc);
@@ -303,12 +311,14 @@ setlkw_timeout (int sig) {
    superfluous, but avoids an arbitrary sleep(). */
 
 /* Where does the link point to? Obvious choices are mtab and mtab~~.
-   Maybe the latter is preferable. */
-#define MOUNTLOCK_LINKTARGET   MOUNTED_LOCK "~"
+   HJLu points out that the latter leads to races. Right now we use
+   mtab~.<pid> instead. */
+#define MOUNTLOCK_LINKTARGET   MOUNTED_LOCK "%d"
 
 void
 lock_mtab (void) {
        int tries = 3;
+       char *linktargetfile;
 
        if (!signals_have_been_setup) {
                int sig = 0;
@@ -329,42 +339,49 @@ lock_mtab (void) {
                signals_have_been_setup = 1;
        }
 
+       /* somewhat clumsy, but some ancient systems do not have snprintf() */
+       /* use 20 as upper bound for the length of %d output */
+       linktargetfile = xmalloc(strlen(MOUNTLOCK_LINKTARGET) + 20);
+       sprintf(linktargetfile, MOUNTLOCK_LINKTARGET, getpid ());
+
        /* Repeat until it was us who made the link */
        while (!we_created_lockfile) {
                struct flock flock;
                int errsv, fd, i, j;
 
-               i = open (MOUNTLOCK_LINKTARGET, O_WRONLY|O_CREAT, 0);
+               i = open (linktargetfile, O_WRONLY|O_CREAT, 0);
                if (i < 0) {
-                       /* MOUNTLOCK_LINKTARGET does not exist (as a file)
+                       int errsv = errno;
+                       /* linktargetfile does not exist (as a file)
                           and we cannot create it. Read-only filesystem?
                           Too many files open in the system? Filesystem full? */
-                       die (EX_FILEIO, "can't create lock file %s: %s "
-                            "(use -n flag to override)",
-                            MOUNTLOCK_LINKTARGET, strerror (errno));
+                       die (EX_FILEIO, _("can't create lock file %s: %s "
+                            "(use -n flag to override)"),
+                            linktargetfile, strerror (errsv));
                }
                close(i);
 
-               j = link(MOUNTLOCK_LINKTARGET, MOUNTED_LOCK);
+               j = link(linktargetfile, MOUNTED_LOCK);
                errsv = errno;
 
-               (void) unlink(MOUNTLOCK_LINKTARGET);
+               (void) unlink(linktargetfile);
 
                if (j < 0 && errsv != EEXIST) {
-                       die (EX_FILEIO, "can't link lock file %s: %s "
-                            "(use -n flag to override)",
+                       die (EX_FILEIO, _("can't link lock file %s: %s "
+                            "(use -n flag to override)"),
                             MOUNTED_LOCK, strerror (errsv));
                }
 
                fd = open (MOUNTED_LOCK, O_WRONLY);
 
                if (fd < 0) {
+                       int errsv = errno;
                        /* Strange... Maybe the file was just deleted? */
                        if (errno == ENOENT && tries-- > 0)
                                continue;
-                       die (EX_FILEIO, "can't open lock file %s: %s "
-                            "(use -n flag to override)",
-                            MOUNTED_LOCK, strerror (errno));
+                       die (EX_FILEIO, _("can't open lock file %s: %s "
+                            "(use -n flag to override)"),
+                            MOUNTED_LOCK, strerror (errsv));
                }
 
                flock.l_type = F_WRLCK;
@@ -375,9 +392,11 @@ lock_mtab (void) {
                if (j == 0) {
                        /* We made the link. Now claim the lock. */
                        if (fcntl (fd, F_SETLK, &flock) == -1) {
-                               if (verbose)
-                                   printf("Can't lock lock file %s: %s\n",
-                                          MOUNTED_LOCK, strerror (errno));
+                               if (verbose) {
+                                   int errsv = errno;
+                                   printf(_("Can't lock lock file %s: %s\n"),
+                                          MOUNTED_LOCK, strerror (errsv));
+                               }
                                /* proceed anyway */
                        }
                        we_created_lockfile = 1;
@@ -385,9 +404,10 @@ lock_mtab (void) {
                        /* Someone else made the link. Wait. */
                        alarm(LOCK_TIMEOUT);
                        if (fcntl (fd, F_SETLKW, &flock) == -1) {
-                               die (EX_FILEIO, "can't lock lock file %s: %s",
+                               int errsv = errno;
+                               die (EX_FILEIO, _("can't lock lock file %s: %s"),
                                     MOUNTED_LOCK, (errno == EINTR) ?
-                                    "timed out" : strerror (errno));
+                                    _("timed out") : strerror (errsv));
                        }
                        alarm(0);
                        /* Maybe limit the number of iterations? */
@@ -431,23 +451,32 @@ update_mtab (const char *dir, struct mntent *instead) {
 
      mfp = my_setmntent(MOUNTED, "r");
      if (mfp == NULL || mfp->mntent_fp == NULL) {
-         error ("cannot open %s (%s) - mtab not updated",
-                MOUNTED, strerror (errno));
+         int errsv = errno;
+         error (_("cannot open %s (%s) - mtab not updated"),
+                MOUNTED, strerror (errsv));
          goto leave;
      }
 
      mftmp = my_setmntent (MOUNTED_TEMP, "w");
      if (mftmp == NULL || mfp->mntent_fp == NULL) {
-         error ("can't open %s (%s) - mtab not updated",
-                MOUNTED_TEMP, strerror (errno));
+         int errsv = errno;
+         error (_("cannot open %s (%s) - mtab not updated"),
+                MOUNTED_TEMP, strerror (errsv));
          goto leave;
      }
   
      while ((mnt = my_getmntent (mfp))) {
          if (streq (mnt->mnt_dir, dir)
+#if 0
              /* Matthew Wilcox <willy@odie.barnet.ac.uk> */
+             /* This is meant for Patch 212 on Jitterbug,
+                still in incoming, to allow remounting
+                on a different directory. */
              || (instead && instead->mnt_fsname &&
-                 (streq (mnt->mnt_fsname, instead->mnt_fsname)))) {
+                 (!streq (instead->mnt_fsname, "none")) &&
+                 (streq (mnt->mnt_fsname, instead->mnt_fsname)))
+#endif
+                 ) {
               added++;
               if (instead) {   /* a remount */
                    remnt = *instead;
@@ -456,34 +485,42 @@ update_mtab (const char *dir, struct mntent *instead) {
                    remnt.mnt_type = mnt->mnt_type;
                    if (instead->mnt_fsname
                        && !streq(mnt->mnt_fsname, instead->mnt_fsname))
-                        printf("mount: warning: cannot change "
-                               "mounted device with a remount\n");
+                        printf(_("mount: warning: cannot change "
+                               "mounted device with a remount\n"));
                    else if (instead->mnt_type
                             && !streq(instead->mnt_type, "unknown")
                             && !streq(mnt->mnt_type, instead->mnt_type))
-                        printf("mount: warning: cannot change "
-                               "filesystem type with a remount\n");
+                        printf(_("mount: warning: cannot change "
+                               "filesystem type with a remount\n"));
               } else
                    next = NULL;
          } else
               next = mnt;
-         if (next && my_addmntent(mftmp, next) == 1)
-              die (EX_FILEIO, "error writing %s: %s",
-                   MOUNTED_TEMP, strerror (errno));
+         if (next && my_addmntent(mftmp, next) == 1) {
+              int errsv = errno;
+              die (EX_FILEIO, _("error writing %s: %s"),
+                   MOUNTED_TEMP, strerror (errsv));
+         }
      }
-     if (instead && !added && my_addmntent(mftmp, instead) == 1)
-         die (EX_FILEIO, "error writing %s: %s",
-              MOUNTED_TEMP, strerror (errno));
+     if (instead && !added && my_addmntent(mftmp, instead) == 1) {
+         int errsv = errno;
+         die (EX_FILEIO, _("error writing %s: %s"),
+              MOUNTED_TEMP, strerror (errsv));
+    }
 
      my_endmntent (mfp);
-     if (fchmod (fileno (mftmp->mntent_fp), S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH) < 0)
-         fprintf(stderr, "error changing mode of %s: %s\n", MOUNTED_TEMP,
-                 strerror (errno));
+     if (fchmod (fileno (mftmp->mntent_fp), S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH) < 0) {
+         int errsv = errno;
+         fprintf(stderr, _("error changing mode of %s: %s\n"), MOUNTED_TEMP,
+                 strerror (errsv));
+     }
      my_endmntent (mftmp);
 
-     if (rename (MOUNTED_TEMP, MOUNTED) < 0)
-         fprintf(stderr, "can't rename %s to %s: %s\n", MOUNTED_TEMP, MOUNTED,
-                 strerror(errno));
+     if (rename (MOUNTED_TEMP, MOUNTED) < 0) {
+         int errsv = errno;
+         fprintf(stderr, _("can't rename %s to %s: %s\n"), MOUNTED_TEMP, MOUNTED,
+                 strerror(errsv));
+     }
 
 leave:
      unlock_mtab();
index e0b3895c2fea1c413e7fc20f4c11c5eae9275c59..acd8f6271a5d43291ffb21eb803fafc58f0882ff 100644 (file)
@@ -1,6 +1,11 @@
 #define _PATH_FSTAB    "/etc/fstab"
+#ifdef _PATH_MOUNTED
+#define MOUNTED_LOCK   _PATH_MOUNTED "~"
+#define MOUNTED_TEMP   _PATH_MOUNTED ".tmp"
+#else
 #define MOUNTED_LOCK   "/etc/mtab~"
 #define MOUNTED_TEMP   "/etc/mtab.tmp"
+#endif
 #define LOCK_TIMEOUT   10
 
 int mtab_is_writable(void);
index bdc548c216115aca4696b9546d9ee0292a6de122..bd9243b55bb48ec3d071840c63394c1c9588e9a7 100644 (file)
@@ -76,3 +76,26 @@ struct ufs_super_block {
 #define ufsmagic(s)    ((uint) s.s_magic[0] + (((uint) s.s_magic[1]) << 8) + \
                         (((uint) s.s_magic[2]) << 16) + \
                         (((uint) s.s_magic[3]) << 24))
+
+/* From Richard.Russon@ait.co.uk Wed Feb 24 08:05:27 1999 */
+#define NTFS_SUPER_MAGIC "NTFS"
+struct ntfs_super_block {
+    u_char    s_dummy[3];
+    u_char    s_magic[4];
+};
+
+/* From inspection of a few FAT filesystems - aeb */
+/* Unfortunately I find almost the same thing on an extended partition;
+   it looks like a primary has some directory entries where the extended
+   has a partition table: IO.SYS, MSDOS.SYS, WINBOOT.SYS */
+struct fat_super_block {
+    u_char    s_dummy[3];
+    u_char    s_os[8];         /* "MSDOS5.0" or "MSWIN4.0" or "MSWIN4.1" */
+    u_char    s_dummy2[32];
+    u_char    s_label[11];     /* for DOS? */
+    u_char    s_fs[8];         /* "FAT12   " or "FAT16   " or all zero   */
+                                /* OS/2 BM has "FAT     " here. */
+    u_char    s_dummy3[9];
+    u_char    s_label2[11];    /* for Windows? */
+    u_char    s_fs2[8];                /* garbage or "FAT32   " */
+};
index 276ab4e49ecbdc52067e30555ebadbc4456d031f..d99078585e45d43e867c7c3c86c5fb0952e4a9ec 100644 (file)
@@ -2,6 +2,12 @@
 /* Added vfs mount options - aeb - 960223 */
 /* Removed lomount - aeb - 960224 */
 
+/* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ * Sun Mar 21 1999 - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ * - fixed strerr(errno) in gettext calls
+ */
+
 #define PROC_DEVICES   "/proc/devices"
 
 /*
@@ -20,6 +26,7 @@
 
 #include "loop.h"
 #include "lomount.h"
+#include "nls.h"
 
 char *xstrdup (const char *s);         /* not: #include "sundries.h" */
 void error (const char *fmt, ...);     /* idem */
@@ -67,17 +74,19 @@ show_loop (char *device)
   int fd;
 
   if ((fd = open (device, O_RDONLY)) < 0) {
-    fprintf(stderr, "loop: can't open device %s: %s\n",
-           device, strerror (errno));
+    int errsv = errno;
+    fprintf(stderr, _("loop: can't open device %s: %s\n"),
+           device, strerror (errsv));
     return;
   }
   if (ioctl (fd, LOOP_GET_STATUS, &loopinfo) < 0) {
-    fprintf(stderr, "loop: can't get info on device %s: %s\n",
-           device, strerror (errno));
+    int errsv = errno;
+    fprintf(stderr, _("loop: can't get info on device %s: %s\n"),
+           device, strerror (errsv));
     close (fd);
     return;
   }
-  printf ("%s: [%04x]:%ld (%s) offset %d, %s encryption\n",
+  printf (_("%s: [%04x]:%ld (%s) offset %d, %s encryption\n"),
          device, loopinfo.lo_device, loopinfo.lo_inode,
          loopinfo.lo_name, loopinfo.lo_offset,
          crypt_name (loopinfo.lo_encrypt_type));
@@ -131,24 +140,24 @@ find_unused_loop_device (void)
     }
 
     if (!somedev)
-      error("mount: could not find any device /dev/loop#");
+      error(_("mount: could not find any device /dev/loop#"));
     else if(!someloop) {
       if (loop_known == 1)
-       error(
+       error(_(
 "mount: Could not find any loop device.\n"
-"       Maybe /dev/loop# has a wrong major number?");
+"       Maybe /dev/loop# has a wrong major number?"));
       else if (loop_known == -1)
-       error(
+       error(_(
 "mount: Could not find any loop device, and, according to %s,\n"
 "       this kernel does not know about the loop device.\n"
-"       (If so, then recompile or `insmod loop.o'.)", PROC_DEVICES);
+"       (If so, then recompile or `insmod loop.o'.)"), PROC_DEVICES);
       else
-       error(
+       error(_(
 "mount: Could not find any loop device. Maybe this kernel does not know\n"
 "       about the loop device (then recompile or `insmod loop.o'), or\n"
-"       maybe /dev/loop# has the wrong major number?");
+"       maybe /dev/loop# has the wrong major number?"));
     } else
-      error("mount: could not find any free loop device");
+      error(_("mount: could not find any free loop device"));
     return 0;
 }
 
@@ -179,7 +188,7 @@ set_loop (const char *device, const char *file, int offset,
   loopinfo.lo_name[LO_NAME_SIZE - 1] = 0;
   if (encryption && (loopinfo.lo_encrypt_type = crypt_type (encryption))
       < 0) {
-    fprintf (stderr, "Unsupported encryption type %s\n", encryption);
+    fprintf (stderr, _("Unsupported encryption type %s\n"), encryption);
     return 1;
   }
   loopinfo.lo_offset = offset;
@@ -188,30 +197,30 @@ set_loop (const char *device, const char *file, int offset,
     loopinfo.lo_encrypt_key_size = 0;
     break;
   case LO_CRYPT_XOR:
-    pass = getpass ("Password: ");
+    pass = getpass (_("Password: "));
     strncpy (loopinfo.lo_encrypt_key, pass, LO_KEY_SIZE);
     loopinfo.lo_encrypt_key[LO_KEY_SIZE - 1] = 0;
     loopinfo.lo_encrypt_key_size = strlen (loopinfo.lo_encrypt_key);
     break;
   case LO_CRYPT_DES:
-    pass = getpass ("Password: ");
+    pass = getpass (_("Password: "));
     strncpy (loopinfo.lo_encrypt_key, pass, 8);
     loopinfo.lo_encrypt_key[8] = 0;
     loopinfo.lo_encrypt_key_size = 8;
-    pass = getpass ("Init (up to 16 hex digits): ");
+    pass = getpass (_("Init (up to 16 hex digits): "));
     for (i = 0; i < 16 && pass[i]; i++)
       if (isxdigit (pass[i]))
        loopinfo.lo_init[i >> 3] |= (pass[i] > '9' ?
                                     (islower (pass[i]) ? toupper (pass[i]) :
                        pass[i]) - 'A' + 10 : pass[i] - '0') << (i & 7) * 4;
       else {
-       fprintf (stderr, "Non-hex digit '%c'.\n", pass[i]);
+       fprintf (stderr, _("Non-hex digit '%c'.\n"), pass[i]);
        return 1;
       }
     break;
   default:
     fprintf (stderr,
-            "Don't know how to get key for encryption system %d\n",
+            _("Don't know how to get key for encryption system %d\n"),
             loopinfo.lo_encrypt_type);
     return 1;
   }
@@ -227,7 +236,7 @@ set_loop (const char *device, const char *file, int offset,
   close (fd);
   close (ffd);
   if (verbose > 1)
-    printf("set_loop(%s,%s,%d): success\n", device, file, offset);
+    printf(_("set_loop(%s,%s,%d): success\n"), device, file, offset);
   return 0;
 }
 
@@ -237,8 +246,9 @@ del_loop (const char *device)
   int fd;
 
   if ((fd = open (device, O_RDONLY)) < 0) {
-    fprintf(stderr, "loop: can't delete device %s: %s\n",
-           device, strerror (errno));
+    int errsv = errno;
+    fprintf(stderr, _("loop: can't delete device %s: %s\n"),
+           device, strerror (errsv));
     return 1;
   }
   if (ioctl (fd, LOOP_CLR_FD, 0) < 0) {
@@ -247,7 +257,7 @@ del_loop (const char *device)
   }
   close (fd);
   if (verbose > 1)
-    printf("del_loop(%s): success\n", device);
+    printf(_("del_loop(%s): success\n"), device);
   return 0;
 }
 
@@ -255,7 +265,7 @@ del_loop (const char *device)
 static void
 mutter(void) {
   fprintf(stderr,
-         "This mount was compiled without loop support. Please recompile.\n");
+         _("This mount was compiled without loop support. Please recompile.\n"));
 }  
 
 int
index 8a75a9aef8d114f9b38e78d26ff35d7c4e28d6d5..911d73060a9e38667cfec86b4d56ab6540ae12fc 100644 (file)
@@ -2,6 +2,10 @@
  * losetup.c - setup and control loop devices
  */
 
+/* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ */
+
 #include <stdio.h>
 #include <string.h>
 #include <ctype.h>
@@ -13,6 +17,7 @@
 
 #include "loop.h"
 #include "lomount.h"
+#include "nls.h"
 
 #ifdef LOOP_SET_FD
 
@@ -62,11 +67,11 @@ static void show_loop(const char *device)
                return;
        }
        if (ioctl(fd, LOOP_GET_STATUS, &loopinfo) < 0) {
-               perror("Cannot get loop info");
+               perror(_("Cannot get loop info"));
                close(fd);
                return;
        }
-       printf("%s: [%04x]:%ld (%s) offset %d, %s encryption\n",
+       printf(_("%s: [%04x]:%ld (%s) offset %d, %s encryption\n"),
               device, loopinfo.lo_device, loopinfo.lo_inode,
               loopinfo.lo_name, loopinfo.lo_offset,
               crypt_name(loopinfo.lo_encrypt_type));
@@ -98,7 +103,7 @@ int set_loop(const char *device, const char *file, int offset,
        loopinfo.lo_name[LO_NAME_SIZE-1] = 0;
        if (encryption && (loopinfo.lo_encrypt_type = crypt_type(encryption))
            < 0) {
-               fprintf(stderr,"Unsupported encryption type %s\n",encryption);
+               fprintf(stderr,_("Unsupported encryption type %s\n"),encryption);
                exit(1);
        }
        loopinfo.lo_offset = offset;
@@ -107,30 +112,30 @@ int set_loop(const char *device, const char *file, int offset,
                loopinfo.lo_encrypt_key_size = 0;
                break;
        case LO_CRYPT_XOR:
-               pass = getpass("Password: ");
+               pass = getpass(_("Password: "));
                strncpy(loopinfo.lo_encrypt_key, pass, LO_KEY_SIZE);
                loopinfo.lo_encrypt_key[LO_KEY_SIZE-1] = 0;
                loopinfo.lo_encrypt_key_size = strlen(loopinfo.lo_encrypt_key);
                break;
        case LO_CRYPT_DES:
-               pass = getpass("Password: ");
+               pass = getpass(_("Password: "));
                strncpy(loopinfo.lo_encrypt_key, pass, 8);
                loopinfo.lo_encrypt_key[8] = 0;
                loopinfo.lo_encrypt_key_size = 8;
-               pass = getpass("Init (up to 16 hex digits): ");
+               pass = getpass(_("Init (up to 16 hex digits): "));
                for (i = 0; i < 16 && pass[i]; i++)
                        if (isxdigit(pass[i]))
                                loopinfo.lo_init[i >> 3] |= (pass[i] > '9' ?
                                    (islower(pass[i]) ? toupper(pass[i]) :
                                    pass[i])-'A'+10 : pass[i]-'0') << (i & 7)*4;
                        else {
-                               fprintf(stderr,"Non-hex digit '%c'.\n",pass[i]);
+                               fprintf(stderr,_("Non-hex digit '%c'.\n"),pass[i]);
                                exit(1);
                        }
                break;
        default:
                fprintf(stderr,
-                       "Don't know how to get key for encryption system %d\n",
+                       _("Don't know how to get key for encryption system %d\n"),
                        loopinfo.lo_encrypt_type);
                exit(1);
        }
@@ -166,10 +171,10 @@ int del_loop(const char *device)
 
 static int usage(void)
 {
-       fprintf(stderr, "usage:\n\
+       fprintf(stderr, _("usage:\n\
   %s loop_device                                      # give info\n\
   %s -d loop_device                                   # delete\n\
-  %s [ -e encryption ] [ -o offset ] loop_device file # setup\n",
+  %s [ -e encryption ] [ -o offset ] loop_device file # setup\n"),
                progname, progname, progname);
        exit(1);
 }
@@ -180,6 +185,10 @@ int main(int argc, char **argv)
        int delete,off,c;
        int ro = 0;
 
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+
        delete = off = 0;
        offset = encryption = NULL;
        progname = argv[0];
@@ -219,7 +228,7 @@ int main(int argc, char **argv)
 
 int main(int argc, char **argv) {
   fprintf(stderr,
-         "No loop support was available at compile time. Please recompile.\n");
+         _("No loop support was available at compile time. Please recompile.\n"));
   return -1;
 }
 #endif
index 0f8a1a6170caa57e0dcf60fb6517dad9433ed700..dfeff296e3658889f7e6ca5852f35273d3f73178 100644 (file)
@@ -29,3 +29,4 @@ else
 fi
 
 echo '#undef dev_t' >> loop.h
+
index 0be20e8ca4771323cdde5d7c38249b8ba577a9c8..ac9cce82343ce64bf35135c5da40b4051b014240 100644 (file)
@@ -1,11 +1,16 @@
 /* Private version of the libc *mntent() routines. */
 /* Note slightly different prototypes. */
 
+/* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ */
+
 #include <stdio.h>
 #include <string.h>            /* for index */
 #include <ctype.h>             /* for isdigit */
 #include "mntent.h"
 #include "sundries.h"          /* for xmalloc */
+#include "nls.h"
 
 /* Unfortunately the classical Unix /etc/mtab and /etc/fstab
    do not handle directory names containing spaces.
@@ -157,8 +162,8 @@ my_getmntent (mntFILE *mfp) {
                        /* Missing final newline?  Otherwise extremely */
                        /* long line - assume file was corrupted */
                        if (feof(mfp->mntent_fp)) {
-                               fprintf(stderr, "[mntent]: warning: no final "
-                                       "newline at the end of %s\n",
+                               fprintf(stderr, _("[mntent]: warning: no final "
+                                       "newline at the end of %s\n"),
                                        mfp->mntent_file);
                                s = index (buf, 0);
                        } else {
@@ -167,6 +172,8 @@ my_getmntent (mntFILE *mfp) {
                        }
                }
                *s = 0;
+               if (--s >= buf && *s == '\r')
+                       *s = 0;
                s = skip_spaces(buf);
        } while (*s == '\0' || *s == '#');
 
@@ -206,9 +213,9 @@ my_getmntent (mntFILE *mfp) {
 
  err:
        mfp->mntent_softerrs++;
-       fprintf(stderr, "[mntent]: line %d in %s is bad%s\n",
+       fprintf(stderr, _("[mntent]: line %d in %s is bad%s\n"),
                mfp->mntent_lineno, mfp->mntent_file,
                (mfp->mntent_errs || mfp->mntent_softerrs >= ERR_MAX) ?
-               "; rest of file ignored" : "");
+               _("; rest of file ignored") : "");
        goto again;
 }
index 633671b199c424cbd76e541720151c82ad6de943..f42375fdc6f7ba16332972afaa60fab54a017d6d 100644 (file)
@@ -1015,6 +1015,16 @@ If no explicit loop device is mentioned
 (but just an option `\fB\-o loop\fP' is given), then
 .B mount
 will try to find some unused loop device and use that.
+If you are not so unwise as to make
+.I /etc/mtab
+a symbolic link to
+.I /proc/mounts
+then any loop device allocated by
+.B mount
+will be freed by
+.BR umount .
+You can also free a loop device by hand, using `losetup -d', see
+.BR losetup (8).
 
 .SH FILES
 .I /etc/fstab
index 5ee247daa5d28f7d18784155c08082524e9f9891..9f51db3101025e0eb305c4056e2ce0aad63c43fa 100644 (file)
  * Avoid unnecessary error messages about /proc.
  * Improve support for noncanonical names in /etc/fstab.
  * Add support for volume labels and UUIDs.
+ *
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ * 1999-03-21 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ * - fixed strerr(errno) in gettext calls
+ * 1999-07-05 Hirokazu Takahashi <h-takaha@sss.abk.nec.co.jp>
+ * - fixed use of nouser option
  */
 
 #include <unistd.h>
@@ -50,6 +57,7 @@
 #include "mount_guess_fstype.h"
 #include "mount_by_label.h"
 #include "getusername.h"
+#include "nls.h"
 
 #define DO_PS_FIDDLING
 
@@ -233,7 +241,8 @@ parse_opt (const char *opt, int *mask, char *extra_opts)
          *mask &= ~om->mask;
        else
          *mask |= om->mask;
-       if (om->mask == MS_USER || om->mask == MS_USERS)
+       if ((om->mask == MS_USER || om->mask == MS_USERS)
+           && !om->inv)
          *mask |= MS_SECURE;
 #ifdef MS_SILENT
         if (om->mask == MS_SILENT && om->inv)  {
@@ -311,10 +320,10 @@ already (const char *spec, const char *node) {
     int ret = 1;
 
     if ((mc = getmntfile(node)) != NULL)
-        error ("mount: according to mtab, %s is already mounted on %s",
+        error (_("mount: according to mtab, %s is already mounted on %s"),
               mc->mnt_fsname, node);
     else if ((mc = getmntfile(spec)) != NULL)
-        error ("mount: according to mtab, %s is mounted on %s",
+        error (_("mount: according to mtab, %s is mounted on %s"),
               spec, mc->mnt_dir);
     else
         ret = 0;
@@ -333,9 +342,11 @@ create_mtab (void) {
   lock_mtab();
 
   mfp = my_setmntent (MOUNTED, "a+");
-  if (mfp == NULL || mfp->mntent_fp == NULL)
-    die (EX_FILEIO, "mount: can't open %s for writing: %s",
-        MOUNTED, strerror (errno));
+  if (mfp == NULL || mfp->mntent_fp == NULL) {
+    int errsv = errno;
+    die (EX_FILEIO, _("mount: can't open %s for writing: %s"),
+        MOUNTED, strerror (errsv));
+  }
 
   /* Find the root entry by looking it up in fstab */
   if ((fstab = getfsfile ("/")) || (fstab = getfsfile ("root"))) {
@@ -346,14 +357,18 @@ create_mtab (void) {
       mnt.mnt_opts = fix_opts_string (flags, extra_opts, NULL);
       mnt.mnt_freq = mnt.mnt_passno = 0;
 
-      if (my_addmntent (mfp, &mnt) == 1)
-       die (EX_FILEIO, "mount: error writing %s: %s",
-            MOUNTED, strerror (errno));
+      if (my_addmntent (mfp, &mnt) == 1) {
+        int errsv = errno;
+       die (EX_FILEIO, _("mount: error writing %s: %s"),
+            MOUNTED, strerror (errsv));
+      }
   }
   if (fchmod (fileno (mfp->mntent_fp), S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH) < 0)
-    if (errno != EROFS)
-      die (EX_FILEIO, "mount: error changing mode of %s: %s",
-          MOUNTED, strerror (errno));
+    if (errno != EROFS) {
+      int errsv = errno;
+      die (EX_FILEIO, _("mount: error changing mode of %s: %s"),
+          MOUNTED, strerror (errsv));
+    }
   my_endmntent (mfp);
 
   unlock_mtab();
@@ -401,14 +416,13 @@ try_mount5 (char *spec, char *node, char **type, int flags, char *mount_opts) {
  */
 static int
 try_mount_one (const char *spec0, const char *node0, char *type0,
-              const char *opts0, int freq, int pass, int bg) {
+              const char *opts0, int freq, int pass, int bg, int ro) {
   struct mntentchn mcn;
   struct mntent mnt;
   int mnt_err;
   int flags;
   char *extra_opts;            /* written in mtab */
   char *mount_opts;            /* actually used on system call */
-  static int added_ro = 0;
   int loop, looptype, offset;
   const char *opts;
   char *spec, *node, *type, *loopdev, *loopfile;
@@ -426,9 +440,9 @@ try_mount_one (const char *spec0, const char *node0, char *type0,
   if (suid) {
       if (!(flags & (MS_USER | MS_USERS))) {
           if (already (spec, node))
-           die (EX_USAGE, "mount failed");
+           die (EX_USAGE, _("mount failed"));
          else
-            die (EX_USAGE, "mount: only root can mount %s on %s", spec, node);
+            die (EX_USAGE, _("mount: only root can mount %s on %s"), spec, node);
       }
       if (flags & MS_USER)
          user = getusername();
@@ -453,13 +467,13 @@ try_mount_one (const char *spec0, const char *node0, char *type0,
   looptype = (type && strncmp("lo@", type, 3) == 0);
   if (looptype) {
     if (loopdev)
-      error("mount: loop device specified twice");
+      error(_("mount: loop device specified twice"));
     loopdev = type+3;
     type = opt_vfstype;
   }
   else if (opt_vfstype) {
     if (type)
-      error("mount: type specified twice");
+      error(_("mount: type specified twice"));
     else
       type = opt_vfstype;
   }
@@ -471,7 +485,7 @@ try_mount_one (const char *spec0, const char *node0, char *type0,
     flags |= MS_LOOP;
     if (fake) {
       if (verbose)
-       printf("mount: skipping the setup of a loop device\n");
+       printf(_("mount: skipping the setup of a loop device\n"));
     } else {
       int loopro = (flags & MS_RDONLY);
 
@@ -480,15 +494,15 @@ try_mount_one (const char *spec0, const char *node0, char *type0,
       if (!loopdev)
        return EX_SYSERR;       /* no more loop devices */
       if (verbose)
-       printf("mount: going to use the loop device %s\n", loopdev);
+       printf(_("mount: going to use the loop device %s\n"), loopdev);
       offset = opt_offset ? strtoul(opt_offset, NULL, 0) : 0;
       if (set_loop (loopdev, loopfile, offset, opt_encryption, &loopro)) {
        if (verbose)
-         printf("mount: failed setting up loop device\n");
+         printf(_("mount: failed setting up loop device\n"));
        return EX_FAIL;
       }
       if (verbose > 1)
-       printf("mount: setup loop device successfully\n");
+       printf(_("mount: setup loop device successfully\n"));
       spec = loopdev;
       if (loopro)
        flags |= MS_RDONLY;
@@ -501,8 +515,8 @@ try_mount_one (const char *spec0, const char *node0, char *type0,
     if (mnt_err)
       return mnt_err;
 #else
-    die (EX_SOFTWARE, "mount: this version was compiled "
-                     "without support for the type `nfs'");
+    die (EX_SOFTWARE, _("mount: this version was compiled "
+                     "without support for the type `nfs'"));
 #endif
   }
 
@@ -513,8 +527,9 @@ try_mount_one (const char *spec0, const char *node0, char *type0,
   if (type)
 #ifndef ALWAYS_STAT
   if (streq (type, "smb") || streq (type, "ncp")
-      /* || streq (type, "smbfs") || streq (type, "ncpfs") */
-      )
+      /* these are incorrect but perhaps used by smbmount or so */
+       || streq (type, "smbfs") || streq (type, "ncpfs")
+     )
 #else
   if (strlen (type) < 100)
 #endif
@@ -548,8 +563,10 @@ try_mount_one (const char *spec0, const char *node0, char *type0,
                 int status;
                 wait(&status);
                 return status;
-           } else
-                error("mount: cannot fork: %s", strerror(errno));
+           } else {
+                int errsv = errno;
+                error(_("mount: cannot fork: %s"), strerror(errsv));
+           }
        }
   }
 
@@ -585,12 +602,15 @@ try_mount_one (const char *spec0, const char *node0, char *type0,
               lock_mtab();
               mfp = my_setmntent(MOUNTED, "a+");
               if (mfp == NULL || mfp->mntent_fp == NULL) {
-                   error("mount: can't open %s: %s", MOUNTED,
-                         strerror (errno));
+                   int errsv = errno;
+                   error(_("mount: can't open %s: %s"), MOUNTED,
+                         strerror (errsv));
               } else {
-                   if ((my_addmntent (mfp, &mnt)) == 1)
-                        error("mount: error writing %s: %s", MOUNTED,
-                              strerror (errno));
+                   if ((my_addmntent (mfp, &mnt)) == 1) {
+                        int errsv = errno;
+                        error(_("mount: error writing %s: %s"), MOUNTED,
+                              strerror (errsv));
+                   }
                    my_endmntent(mfp);
               }
               unlock_mtab();
@@ -611,57 +631,66 @@ try_mount_one (const char *spec0, const char *node0, char *type0,
   /* Mount failed, complain, but don't die.  */
 
   if (type == 0)
-    error ("mount: you must specify the filesystem type");
+    error (_("mount: you must specify the filesystem type"));
   else
   switch (mnt_err)
     {
     case EPERM:
       if (geteuid() == 0) {
           if (stat (node, &statbuf) || !S_ISDIR(statbuf.st_mode))
-               error ("mount: mount point %s is not a directory", node);
+               error (_("mount: mount point %s is not a directory"), node);
           else
-               error ("mount: permission denied");
+               error (_("mount: permission denied"));
       } else
-       error ("mount: must be superuser to use mount");
+       error (_("mount: must be superuser to use mount"));
       break;
     case EBUSY:
       if (flags & MS_REMOUNT) {
-       error ("mount: %s is busy", node);
+       error (_("mount: %s is busy"), node);
       } else if (!strcmp(type, "proc") && !strcmp(node, "/proc")) {
        /* heuristic: if /proc/version exists, then probably proc is mounted */
        if (stat ("/proc/version", &statbuf))   /* proc mounted? */
-          error ("mount: %s is busy", node);   /* no */
+          error (_("mount: %s is busy"), node);   /* no */
        else if(!all || verbose)                /* yes, don't mention it */
-          error ("mount: proc already mounted");
+          error (_("mount: proc already mounted"));
       } else {
-       error ("mount: %s already mounted or %s busy", spec, node);
+       error (_("mount: %s already mounted or %s busy"), spec, node);
        already (spec, node);
       }
       break;
     case ENOENT:
       if (lstat (node, &statbuf))
-          error ("mount: mount point %s does not exist", node);
+          error (_("mount: mount point %s does not exist"), node);
       else if (stat (node, &statbuf))
-          error ("mount: mount point %s is a symbolic link to nowhere",
+          error (_("mount: mount point %s is a symbolic link to nowhere"),
                  node);
       else if (stat (spec, &statbuf))
-          error ("mount: special device %s does not exist", spec);
+          error (_("mount: special device %s does not exist"), spec);
       else {
            errno = mnt_err;
            perror("mount");
       }
       break;
     case ENOTDIR:
-      error ("mount: mount point %s is not a directory", node);
+      if (stat (node, &statbuf) || ! S_ISDIR(statbuf.st_mode))
+           error (_("mount: mount point %s is not a directory"), node);
+      else if (stat (spec, &statbuf) && errno == ENOTDIR)
+          error (_("mount: special device %s does not exist\n"
+                   "       (a path prefix is not a directory)\n"), spec);
+      else {
+          errno = mnt_err;
+          perror("mount");
+      }
       break;
     case EINVAL:
-    { int fd, size;
+    { int fd;
+      long size;
 
       if (flags & MS_REMOUNT) {
-       error ("mount: %s not mounted already, or bad option", node);
+       error (_("mount: %s not mounted already, or bad option"), node);
       } else {
-       error ("mount: wrong fs type, bad option, bad superblock on %s,\n"
-              "       or too many mounted file systems",
+       error (_("mount: wrong fs type, bad option, bad superblock on %s,\n"
+              "       or too many mounted file systems"),
               spec);
 
        if (stat (spec, &statbuf) == 0 && S_ISBLK(statbuf.st_mode)
@@ -675,17 +704,17 @@ try_mount_one (const char *spec0, const char *node0, char *type0,
       break;
     }
     case EMFILE:
-      error ("mount table full"); break;
+      error (_("mount table full")); break;
     case EIO:
-      error ("mount: %s: can't read superblock", spec); break;
+      error (_("mount: %s: can't read superblock"), spec); break;
     case ENODEV:
       if (is_in_procfs(type) || !strcmp(type, "guess"))
-        error("mount: %s has wrong major or minor number", spec);
+        error(_("mount: %s has wrong major or minor number"), spec);
       else if (have_procfs()) {
        char *lowtype, *p;
        int u;
 
-       error ("mount: fs type %s not supported by kernel", type);
+       error (_("mount: fs type %s not supported by kernel"), type);
 
        /* maybe this loser asked for FAT or ISO9660 or isofs */
        lowtype = xstrdup(type);
@@ -697,36 +726,35 @@ try_mount_one (const char *spec0, const char *node0, char *type0,
          }
        }
        if (u && is_in_procfs(lowtype))
-         error ("mount: probably you meant %s", lowtype);
+         error (_("mount: probably you meant %s"), lowtype);
        else if (!strncmp(lowtype, "iso", 3) && is_in_procfs("iso9660"))
-         error ("mount: maybe you meant iso9660 ?");
+         error (_("mount: maybe you meant iso9660 ?"));
        free(lowtype);
       } else
-       error ("mount: %s has wrong device number or fs type %s not supported",
+       error (_("mount: %s has wrong device number or fs type %s not supported"),
               spec, type);
       break;
     case ENOTBLK:
       if (stat (spec, &statbuf)) /* strange ... */
-       error ("mount: %s is not a block device, and stat fails?", spec);
+       error (_("mount: %s is not a block device, and stat fails?"), spec);
       else if (S_ISBLK(statbuf.st_mode))
-        error ("mount: the kernel does not recognize %s as a block device\n"
-              "       (maybe `insmod driver'?)", spec);
+        error (_("mount: the kernel does not recognize %s as a block device\n"
+              "       (maybe `insmod driver'?)"), spec);
       else if (S_ISREG(statbuf.st_mode))
-       error ("mount: %s is not a block device (maybe try `-o loop'?)",
+       error (_("mount: %s is not a block device (maybe try `-o loop'?)"),
                 spec);
       else
-       error ("mount: %s is not a block device", spec);
+       error (_("mount: %s is not a block device"), spec);
       break;
     case ENXIO:
-      error ("mount: %s is not a valid block device", spec); break;
+      error (_("mount: %s is not a valid block device"), spec); break;
     case EACCES:  /* pre-linux 1.1.38, 1.1.41 and later */
     case EROFS:   /* linux 1.1.38 and later */
-      if (added_ro) {
-          error ("mount: block device %s is not permitted on its filesystem",
+      if (ro) {
+          error (_("mount: block device %s is not permitted on its filesystem"),
                 spec);
           break;
       } else {
-         added_ro = 1;
         if (loop) {
             opts = opts0;
             type = type0;
@@ -739,9 +767,9 @@ try_mount_one (const char *spec0, const char *node0, char *type0,
              opts = "ro";
         if (type && !strcmp(type, "guess"))
             type = 0;
-         error ("mount: %s%s is write-protected, mounting read-only",
-               loop ? "" : "block device ", spec0);
-        return try_mount_one (spec0, node0, type, opts, freq, pass, bg);
+         error (_("mount: %s%s is write-protected, mounting read-only"),
+               loop ? "" : _("block device "), spec0);
+        return try_mount_one (spec0, node0, type, opts, freq, pass, bg, 1);
       }
       break;
     default:
@@ -826,10 +854,10 @@ mount_one (const char *spec, const char *node, char *type, const char *opts,
       if (nspec) {
          spec = nspec;
          if (verbose)
-                 printf("mount: consider mounting %s by %s\n", spec,
-                        (specset==1) ? "UUID" : "label");
+                 printf(_("mount: consider mounting %s by %s\n"), spec,
+                        (specset==1) ? _("UUID") : _("label"));
       } else if(!all)
-          die (EX_USAGE, "mount: no such partition found");
+          die (EX_USAGE, _("mount: no such partition found"));
       /* if -a then we may be rescued by a noauto option */
   }
 
@@ -837,8 +865,8 @@ mount_one (const char *spec, const char *node, char *type, const char *opts,
       if (strchr (spec, ':') != NULL) {
        type = "nfs";
        if (verbose)
-         printf("mount: no type was given - "
-                "I'll assume nfs because of the colon\n");
+         printf(_("mount: no type was given - "
+                "I'll assume nfs because of the colon\n"));
       }
   }
 
@@ -846,14 +874,14 @@ mount_one (const char *spec, const char *node, char *type, const char *opts,
    * Try to mount the file system. When the exit status is EX_BG,
    * we will retry in the background. Otherwise, we're done.
    */
-  status = try_mount_one (spec, node, type, opts, freq, pass, 0);
+  status = try_mount_one (spec, node, type, opts, freq, pass, 0, 0);
   if (status != EX_BG)
     return status;
 
   /*
    * Retry in the background.
    */
-  printf ("mount: backgrounding \"%s\"\n", spec);
+  printf (_("mount: backgrounding \"%s\"\n"), spec);
   fflush( stdout );            /* prevent duplicate output */
   if (fork() > 0)
     return 0;                  /* parent returns "success" */
@@ -862,9 +890,9 @@ mount_one (const char *spec, const char *node, char *type, const char *opts,
   type = xstrdup(type);
   opts = xstrdup(opts);
   set_proc_name (spec);                /* make a nice "ps" listing */
-  status2 = try_mount_one (spec, node, type, opts, freq, pass, 1);
+  status2 = try_mount_one (spec, node, type, opts, freq, pass, 1, 0);
   if (verbose && status2)
-    printf ("mount: giving up \"%s\"\n", spec);
+    printf (_("mount: giving up \"%s\"\n"), spec);
   exit (0);                    /* child stops here */
 }
 
@@ -913,7 +941,7 @@ mount_all (string_list types, char *options) {
              && !streq (mc->mnt_dir, "root")) {
               if (mounted (mc->mnt_fsname, mc->mnt_dir)) {
                    if (verbose)
-                        printf("mount: %s already mounted on %s\n",
+                        printf(_("mount: %s already mounted on %s\n"),
                                mc->mnt_fsname, mc->mnt_dir);
               } else {
                    mtmp = (struct mntentchn *) xmalloc(sizeof(*mtmp));
@@ -960,8 +988,10 @@ mount_all (string_list types, char *options) {
          pid_t p = -1;
          if (optfork) {
               p = fork();
-              if (p == -1)
-                   error("mount: cannot fork: %s", strerror (errno));
+              if (p == -1) {
+                   int errsv = errno;
+                   error(_("mount: cannot fork: %s"), strerror (errsv));
+              }
               else if (p != 0)
                    cp->pid = p;
          }
@@ -1019,18 +1049,14 @@ static struct option longopts[] =
   { NULL, 0, 0, 0 }
 };
 
-const char *usage_string = "\
-Usage: mount [-hV]\n\
-       mount -a [-nfFrsvw] [-t vfstypes]\n\
-       mount [-nfrsvw] [-o options] special | node\n\
-       mount [-nfrsvw] [-t vfstype] [-o options] special node\n\
-A special device can be indicated by  -L label  or  -U uuid .
-";
-
 static void
 usage (FILE *fp, int n)
 {
-  fprintf (fp, "%s", usage_string);
+  fprintf (fp, _("Usage: mount [-hV]\n"
+              "       mount -a [-nfFrsvw] [-t vfstypes]\n"
+              "       mount [-nfrsvw] [-o options] special | node\n"
+              "       mount [-nfrsvw] [-t vfstype] [-o options] special node\n"
+              "       A special device can be indicated by  -L label  or  -U uuid .\n"));
   unlock_mtab();
   exit (n);
 }
@@ -1045,6 +1071,10 @@ main (int argc, char *argv[]) {
   struct mntentchn *mc;
   int fd;
 
+  setlocale(LC_ALL, "");
+  bindtextdomain(PACKAGE, LOCALEDIR);
+  textdomain(PACKAGE);
+
   /* People report that a mount called from init without console
      writes error messages to /etc/mtab
      Let us try to avoid getting fd's 0,1,2 */
@@ -1128,12 +1158,12 @@ main (int argc, char *argv[]) {
       suid = 1;
       if (types || options || readwrite || nomtab || all || fake ||
          (argc + specseen) != 1)
-       die (EX_USAGE, "mount: only root can do that");
+       die (EX_USAGE, _("mount: only root can do that"));
   }
 
   if (!nomtab && mtab_does_not_exist()) {
        if (verbose > 1)
-           printf("mount: no %s found - creating it..\n", MOUNTED);
+           printf(_("mount: no %s found - creating it..\n"), MOUNTED);
        create_mtab ();
   }
 
@@ -1143,9 +1173,9 @@ main (int argc, char *argv[]) {
          else
                  spec = get_spec_by_volume_label(volumelabel);
          if (!spec)
-                 die (EX_USAGE, "mount: no such partition found");
+                 die (EX_USAGE, _("mount: no such partition found"));
          if (verbose)
-                 printf("mount: mounting %s\n", spec);
+                 printf(_("mount: mounting %s\n"), spec);
   } else
          spec = NULL;          /* just for gcc */
 
@@ -1154,7 +1184,7 @@ main (int argc, char *argv[]) {
       /* mount -a */
       result = mount_all (types, options);
       if (result == 0 && verbose)
-          error("not mounted anything");
+          error(_("not mounted anything"));
       break;
 
     case 1:
@@ -1167,7 +1197,7 @@ main (int argc, char *argv[]) {
              if (mc == NULL)
                      mc = getfsspec (spec);
              if (mc == NULL)
-                     die (EX_USAGE, "mount: cannot find %s in %s",
+                     die (EX_USAGE, _("mount: cannot find %s in %s"),
                           spec, _PATH_FSTAB);
              mc->mnt_fsname = spec;
       } else {
@@ -1181,7 +1211,7 @@ main (int argc, char *argv[]) {
                  (mc = getfsfile (*argv)) == NULL &&
              /* Try mtab - maybe this was a remount */
                  (mc = getmntfile (spec)) == NULL)
-                     die (EX_USAGE, "mount: can't find %s in %s or %s",
+                     die (EX_USAGE, _("mount: can't find %s in %s or %s"),
                           spec, _PATH_FSTAB, MOUNTED);
              /* Earlier mtab was tried first, but this would
                 sometimes try the wrong mount in case mtab had
diff --git a/mount/mount.smb b/mount/mount.smb
new file mode 100644 (file)
index 0000000..845f310
--- /dev/null
@@ -0,0 +1,68 @@
+#!/bin/csh
+#
+# /sbin/mount.smb
+# by Greg Galperin, MAR99 <grg@ai.mit.edu>
+# ver 1.1 MAR99        GRG     docs update: must escape special chars like $
+# ver 1.0 MAR99        GRG     original version
+#
+# Intent is to allow calls to mount with -t smb to work properly
+# (either manually or from an automounter).
+#
+# bugs:
+#  -- possible security hole, as this is a shell script called as root...
+#  -- arguments other than rw and ro which mount might supply are not handled
+# 
+###########################################################################
+#
+# To use this from autofs:
+#
+# have an entry of the form
+#      key     -fstype=smb,-Uadministrator,-Ppassword  ://host/share
+# in the appropriate /etc/auto.mountpoint file.
+#
+# This makes access to /mountpoint/key/ access smb //host/share/ 
+# as administrator (or another user, if you specify such) with the given
+# password.  You may have to supply a -c <unqualified-localhostname>.
+# Special characters need to be 'escaped' with a backslash ('\') -- for 
+# instance, if you want to use the default share names with a "$" at the 
+# end (e.g., //host/c$), you must enter ://host/c\$ 
+#
+# Note that mount/autofs is smart enough to figure out how to unmount
+# this without any extra work on our part!
+#
+###########################################################################
+#
+# I get called in the form: /sbin/mount.smb //host/shr /mnt/tmp -o rw,arg1,arg2
+#
+# It looks like mount tacks on either "rw" or "ro" as the first argument,
+# so I'm going to count on having exactly 5 arguments.
+#
+# This has been developed and tested with mount-2.7
+#
+###########################################################################
+
+# test for correct # args
+if ( $# != 4 ) then
+    echo $0 does not know how to handle $# arguments: $*
+    exit -1
+endif
+
+# test for args in the form I expect
+if ( "$3" != "-o" ) then
+    echo $0 does not know how to handle the 3rd argument not \"-o\" : $3
+    exit -1
+endif
+
+setenv COMMAND "/usr/sbin/smbmount $1 $2"
+foreach arg (`echo $4 | /usr/bin/tr ',' ' '`)
+    if ( "$arg" == "rw" ) then
+       setenv COMMAND "$COMMAND -f777 -d777"
+    else if ( "$arg" == "ro" ) then
+       setenv COMMAND "$COMMAND -f555 -d555"
+    else
+       setenv COMMAND "$COMMAND $arg"
+    endif
+end
+
+$COMMAND
+
index a48c9de19cbe2e49a131ad4e657ddf7b5c04369f..be37496f8af25b6fbde5e59346981188e6382016 100644 (file)
@@ -1,3 +1,7 @@
+/* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ */
+
 #include <stdio.h>
 #include <string.h>
 #include <ctype.h>
@@ -6,6 +10,7 @@
 #include "sundries.h"          /* for xstrdup */
 #include "linux_fs.h"
 #include "mount_by_label.h"
+#include "nls.h"
 
 #define PROC_PARTITIONS "/proc/partitions"
 #define DEVLABELDIR    "/dev"
@@ -133,7 +138,8 @@ get_spec_by_uuid(const char *s) {
        return get_spec_by_x(UUID, uuid);
 
  bad_uuid:
-       die(EX_USAGE, "mount: bad UUID");
+       die(EX_USAGE, _("mount: bad UUID"));
+       return NULL;            /* just for gcc */
 }
 
 char *
index b6b9e65827b53334d94ee79731accba321c5ba37..8e8207223743736389afab071621b7fbaa0cc3c1 100644 (file)
  * Wed Nov  11 11:33:55 1998: K.Garloff@ping.de, try /etc/filesystems before
  * /proc/filesystems
  *
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ *
  * aeb - many changes.
+ *
  */
 
 #include <stdio.h>
@@ -27,6 +31,7 @@
 #include "linux_fs.h"
 #include "mount_guess_fstype.h"
 #include "sundries.h"          /* for xstrdup */
+#include "nls.h"
 
 #define ETC_FILESYSTEMS                "/etc/filesystems"
 #define PROC_FILESYSTEMS       "/proc/filesystems"
@@ -60,12 +65,14 @@ swapped(unsigned short a) {
     Corrected the test for xiafs - aeb
     Added romfs - aeb
     Added ufs from a patch by jj. But maybe there are several types of ufs?
+    Added ntfs from a patch by Richard Russon.
+    Added a very weak heuristic for vfat - aeb
 
-    Currently supports: minix, ext, ext2, xiafs, iso9660, romfs, ufs
+    Currently supports: minix, ext, ext2, xiafs, iso9660, romfs, ufs, ntfs, vfat
 */
 static char
 *magic_known[] = { "minix", "ext", "ext2", "xiafs", "iso9660", "romfs",
-                  "ufs" };
+                  "ufs", "ntfs" };
 
 static int
 tested(const char *device) {
@@ -89,6 +96,8 @@ fstype(const char *device) {
     union {
        struct xiafs_super_block xiasb;
        char romfs_magic[8];
+       struct ntfs_super_block ntfssb;
+       struct fat_super_block fatsb;
     } xsb;
     struct ufs_super_block ufssb;
     union {
@@ -132,6 +141,15 @@ fstype(const char *device) {
              type = "xiafs";
         else if(!strncmp(xsb.romfs_magic, "-rom1fs-", 8))
              type = "romfs";
+        else if(!strncmp(xsb.ntfssb.s_magic, NTFS_SUPER_MAGIC,
+                         sizeof(xsb.ntfssb.s_magic)))
+             type = "ntfs";
+        else if ((!strncmp(xsb.fatsb.s_os, "MSDOS", 5) ||
+                  !strncmp(xsb.fatsb.s_os, "MSWIN", 5))
+                 && (!strncmp(xsb.fatsb.s_fs, "FAT12   ", 8) ||
+                     !strncmp(xsb.fatsb.s_fs, "FAT16   ", 8) ||
+                     !strncmp(xsb.fatsb.s_fs2, "FAT32   ", 8)))
+             type = "vfat";    /* only guessing - might as well be fat or umsdos */
     }
 
     if (!type) {
@@ -166,12 +184,12 @@ char *
 guess_fstype_from_superblock(const char *spec) {
       char *type = fstype(spec);
       if (verbose) {
-         printf ("mount: you didn't specify a filesystem type for %s\n",
+         printf (_("mount: you didn't specify a filesystem type for %s\n"),
                  spec);
          if (type)
-           printf ("       I will try type %s\n", type);
+           printf (_("       I will try type %s\n"), type);
          else
-           printf ("       I will try all types mentioned in %s or %s\n",
+           printf (_("       I will try all types mentioned in %s or %s\n"),
                    ETC_FILESYSTEMS, PROC_FILESYSTEMS);
       }
       return type;
@@ -197,7 +215,7 @@ procfsopen(void) {
 static char *
 procfsnext(void) {
    char line[100];
-   static char fsname[50];
+   static char fsname[100];
 
    while (fgets(line, sizeof(line), procfs)) {
       if (sscanf (line, "nodev %[^\n]\n", fsname) == 1) continue;
index dd55d75a5881d974405e1e67049a8eac9ff4fabc..9500ec2928e6e94f7cdce56b3b74efada76811ea 100644 (file)
  *
  * Wed Oct  1 23:55:28 1997: Dick Streefland <dick_streefland@tasking.com>
  * Implemented the "bg", "fg" and "retry" mount options for NFS.
+ *
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ * 
  */
 
 /*
@@ -38,6 +42,7 @@
 #include <sys/time.h>
 #include <sys/utsname.h>
 #include <sys/stat.h>
+#include <netinet/in.h>
 #include <arpa/inet.h>
 
 #include "sundries.h"
@@ -46,6 +51,9 @@
 #include <linux/nfs.h>
 #include "mount_constants.h"
 #include "nfs_mount3.h"
+#include "nls.h"
+
+#include "../defines.h"                /* for HAVE_inet_aton */
 
 static char *nfs_strerror(int stat);
 
@@ -146,8 +154,8 @@ int nfsmount(const char *spec, const char *node, int *flags,
        msock = fsock = -1;
        mclient = NULL;
        if (strlen(spec) >= sizeof(hostdir)) {
-               fprintf(stderr, "mount: "
-                       "excessively long host:dir argument\n");
+               fprintf(stderr, _("mount: "
+                       "excessively long host:dir argument\n"));
                goto fail;
        }
        strcpy(hostdir, spec);
@@ -159,28 +167,28 @@ int nfsmount(const char *spec, const char *node, int *flags,
                   until they can be fully supported. (mack@sgi.com) */
                if ((s = strchr(hostdir, ','))) {
                        *s = '\0';
-                       fprintf(stderr, "mount: warning: "
-                               "multiple hostnames not supported\n");
+                       fprintf(stderr, _("mount: warning: "
+                               "multiple hostnames not supported\n"));
                }
        } else {
-               fprintf(stderr, "mount: "
-                       "directory to mount not in host:dir format\n");
+               fprintf(stderr, _("mount: "
+                       "directory to mount not in host:dir format\n"));
                goto fail;
        }
 
        server_addr.sin_family = AF_INET;
-#if 1          /* old libc's do not have inet_aton() -- change 1 to 0 */
+#ifdef HAVE_inet_aton
        if (!inet_aton(hostname, &server_addr.sin_addr))
 #endif
        {
                if ((hp = gethostbyname(hostname)) == NULL) {
-                       fprintf(stderr, "mount: can't get address for %s\n",
+                       fprintf(stderr, _("mount: can't get address for %s\n"),
                                hostname);
                        goto fail;
                } else {
                        if (hp->h_length > sizeof(struct in_addr)) {
                                fprintf(stderr,
-                                       "mount: got bad hp->h_length\n");
+                                       _("mount: got bad hp->h_length\n"));
                                hp->h_length = sizeof(struct in_addr);
                        }
                        memcpy(&server_addr.sin_addr,
@@ -197,8 +205,8 @@ int nfsmount(const char *spec, const char *node, int *flags,
        if (!old_opts)
                old_opts = "";
        if (strlen(old_opts) + strlen(s) + 10 >= sizeof(new_opts)) {
-               fprintf(stderr, "mount: "
-                       "excessively long option argument\n");
+               fprintf(stderr, _("mount: "
+                       "excessively long option argument\n"));
                goto fail;
        }
        sprintf(new_opts, "%s%saddr=%s",
@@ -288,19 +296,19 @@ int nfsmount(const char *spec, const char *node, int *flags,
                                else if (!strncmp(opteq+1, "udp", 3))
                                        tcp = 0;
                                else
-                                       printf("Warning: Unrecognized proto= option.\n");
+                                       printf(_("Warning: Unrecognized proto= option.\n"));
                        } else if (!strcmp(opt, "namlen")) {
 #if NFS_MOUNT_VERSION >= 2
                                if (nfs_mount_version >= 2)
                                        data.namlen = val;
                                else
 #endif
-                               printf("Warning: Option namlen is not supported.\n");
+                               printf(_("Warning: Option namlen is not supported.\n"));
                        } else if (!strcmp(opt, "addr"))
                                /* ignore */;
                        else {
-                               printf("unknown nfs mount parameter: "
-                                      "%s=%d\n", opt, val);
+                               printf(_("unknown nfs mount parameter: "
+                                      "%s=%d\n"), opt, val);
                                goto fail;
                        }
                }
@@ -334,11 +342,11 @@ int nfsmount(const char *spec, const char *node, int *flags,
                                if (nfs_mount_version >= 3)
                                        nolock = !val;
                                else
-                                       printf("Warning: option nolock is not supported.\n");
+                                       printf(_("Warning: option nolock is not supported.\n"));
                        } else {
                                if (!sloppy) {
-                                       printf("unknown nfs mount option: "
-                                              "%s%s\n", val ? "" : "no", opt);
+                                       printf(_("unknown nfs mount option: "
+                                              "%s%s\n"), val ? "" : "no", opt);
                                        goto fail;
                                }
                        }
@@ -409,13 +417,13 @@ int nfsmount(const char *spec, const char *node, int *flags,
            mount_server_addr.sin_addr.s_addr = inet_addr(hostname);
          } else {
                  if ((hp = gethostbyname(mounthost)) == NULL) {
-                         fprintf(stderr, "mount: can't get address for %s\n",
+                         fprintf(stderr, _("mount: can't get address for %s\n"),
                                  hostname);
                          goto fail;
                  } else {
                          if (hp->h_length > sizeof(struct in_addr)) {
                                  fprintf(stderr,
-                                         "mount: got bad hp->h_length?\n");
+                                         _("mount: got bad hp->h_length?\n"));
                                  hp->h_length = sizeof(struct in_addr);
                          }
                          mount_server_addr.sin_family = AF_INET;
@@ -517,7 +525,7 @@ int nfsmount(const char *spec, const char *node, int *flags,
 
        if (status.fhs_status != 0) {
                fprintf(stderr,
-                       "mount: %s:%s failed, reason given by server: %s\n",
+                       _("mount: %s:%s failed, reason given by server: %s\n"),
                        hostname, dirname, nfs_strerror(status.fhs_status));
                goto fail;
        }
@@ -528,18 +536,18 @@ int nfsmount(const char *spec, const char *node, int *flags,
 
        if (tcp) {
                if (nfs_mount_version < 3) {
-                       printf("NFS over TCP is not supported.\n");
+                       printf(_("NFS over TCP is not supported.\n"));
                        goto fail;
                }
                fsock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
        } else
                fsock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
        if (fsock < 0) {
-               perror("nfs socket");
+               perror(_("nfs socket"));
                goto fail;
        }
        if (bindresvport(fsock, 0) < 0) {
-               perror("nfs bindresvport");
+               perror(_("nfs bindresvport"));
                goto fail;
        }
        if (port == 0) {
@@ -550,11 +558,11 @@ int nfsmount(const char *spec, const char *node, int *flags,
                        port = NFS_PORT;
 #ifdef NFS_MOUNT_DEBUG
                else
-                       printf("used portmapper to find NFS port\n");
+                       printf(_("used portmapper to find NFS port\n"));
 #endif
        }
 #ifdef NFS_MOUNT_DEBUG
-       printf("using port %d for nfs deamon\n", port);
+       printf(_("using port %d for nfs deamon\n"), port);
 #endif
        server_addr.sin_port = htons(port);
         /*
@@ -565,7 +573,7 @@ int nfsmount(const char *spec, const char *node, int *flags,
        if (linux_version_code() <= 66314
            && connect(fsock, (struct sockaddr *) &server_addr,
                       sizeof (server_addr)) < 0) {
-               perror("nfs connect");
+               perror(_("nfs connect"));
                goto fail;
        }
 
@@ -654,7 +662,7 @@ static char *nfs_strerror(int stat)
                if (nfs_errtbl[i].stat == stat)
                        return strerror(nfs_errtbl[i].errnum);
        }
-       sprintf(buf, "unknown nfs status return value: %d", stat);
+       sprintf(buf, _("unknown nfs status return value: %d"), stat);
        return buf;
 }
 
index d7ace1b2df0759b0a6df1610e3c81b6896a8b5bb..a844724e9491fc91c2bfeaadd027a5f8bcc54270 100644 (file)
@@ -3,6 +3,10 @@
  * sundries.c,v 1.1.1.1 1993/11/18 08:40:51 jrs Exp
  *
  * added fcntl locking by Kjetil T. (kjetilho@math.uio.no) - aeb, 950927
+ *
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ *
  */
 #include <unistd.h>
 #include <stdio.h>
@@ -11,7 +15,7 @@
 #include "fstab.h"
 #include "sundries.h"
 #include "nfsmount.h"
-
+#include "nls.h"
 
 /* String list constructor.  (car() and cdr() are defined in "sundries.h").  */
 string_list
@@ -33,7 +37,7 @@ xmalloc (size_t size) {
 
      t = malloc (size);
      if (t == NULL)
-          die (EX_SYSERR, "not enough memory");
+          die (EX_SYSERR, _("not enough memory"));
 
      return t;
 }
@@ -48,7 +52,7 @@ xstrdup (const char *s) {
      t = strdup (s);
 
      if (t == NULL)
-          die (EX_SYSERR, "not enough memory");
+          die (EX_SYSERR, _("not enough memory"));
 
      return t;
 }
@@ -58,7 +62,7 @@ xstrndup (const char *s, int n) {
      char *t;
 
      if (s == NULL)
-         die (EX_SOFTWARE, "bug in xstrndup call");
+         die (EX_SOFTWARE, _("bug in xstrndup call"));
 
      t = xmalloc(n+1);
      strncpy(t,s,n);
@@ -156,12 +160,15 @@ die (int err, const char *fmt, ...) {
 string_list
 parse_list (char *strings) {
      string_list list;
-     char *t;
+     char *s, *t;
 
      if (strings == NULL)
          return NULL;
 
-     list = cons (strtok (strings, ","), NULL);
+     /* strtok() destroys its argument, so we have to use a copy */
+     s = xstrdup(strings);
+
+     list = cons (strtok (s, ","), NULL);
 
      while ((t = strtok (NULL, ",")) != NULL)
          list = cons (t, list);
@@ -185,7 +192,7 @@ matching_type (const char *type, string_list types) {
          return 1;
 
      if ((notype = alloca (strlen (type) + 3)) == NULL)
-         die (EX_SYSERR, "mount: out of memory");
+         die (EX_SYSERR, _("%s: Out of memory!\n"), "mount");
      sprintf (notype, "no%s", type);
 
      foundyes = foundno = no = 0;
@@ -214,7 +221,7 @@ canonicalize (const char *path) {
      if (path == NULL)
          return NULL;
 
-     if (streq(path, "none") || streq(path, "proc"))
+     if (streq(path, "none") || streq(path, "proc") || streq(path, "devpts"))
          return xstrdup(path);
 
      canonical = xmalloc (PATH_MAX + 1);
index cad87a1c8e7906446a5a0e480c9d8654a07c6061..742d761f430f0f77926e9fd21a52929f4a5551ed 100644 (file)
@@ -46,16 +46,7 @@ char *xstrconcat2 (const char *, const char *);
 char *xstrconcat3 (const char *, const char *, const char *);
 char *xstrconcat4 (const char *, const char *, const char *, const char *);
 
-/* Here is some serious cruft.  */
-#ifdef __GNUC__
-#if defined(__GNUC_MINOR__) && __GNUC__ == 2 && __GNUC_MINOR__ >= 5
-void die (int errcode, const char *fmt, ...) __attribute__ ((noreturn));
-#else /* GNUC < 2.5 */
-void volatile die (int errcode, const char *fmt, ...);
-#endif /* GNUC < 2.5 */
-#else /* !__GNUC__ */
 void die (int errcode, const char *fmt, ...);
-#endif /* !__GNUC__ */
 
 #ifdef HAVE_NFS
 int nfsmount (const char *spec, const char *node, int *flags,
index 41d1f3fce2f68f28ee5ba7f1ee57c631e38e2bf9..2e49b627d9de49a21de81b38862e47e7a9f2c888 100644 (file)
@@ -2,6 +2,12 @@
  * A swapon(8)/swapoff(8) for Linux 0.99.
  * swapon.c,v 1.1.1.1 1993/11/18 08:40:51 jrs Exp
  * Added '-s' (Summary option) <Vincent.Renardias@waw.com> 02/1997.
+ *
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ * Sun Mar 21 1999 - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ * - fixed strerr(errno) in gettext calls
+ *
  */
 
 #include <stdlib.h>
@@ -13,6 +19,7 @@
 #include <sys/stat.h>
 #include "swap_constants.h"
 #include "swapargs.h"
+#include "nls.h"
 
 #define streq(s, t)    (strcmp ((s), (t)) == 0)
 
@@ -38,17 +45,14 @@ static struct option longopts[] =
   { NULL, 0, 0, 0 }
 };
 
-const char *usage_string = "\
-usage: %s [-hV]\n\
-       %s -a [-v]\n\
-       %s [-v] [-p priority] special ...\n\
-       %s [-s]\n\
-";
-
 static void
 usage (FILE *fp, int n)
 {
-  fprintf (fp, usage_string, program_name, program_name, program_name, program_name);
+  fprintf (fp, _("usage: %s [-hV]\n"
+              "       %s -a [-v]\n"
+              "       %s [-v] [-p priority] special ...\n"
+              "       %s [-s]\n"),
+              program_name, program_name, program_name, program_name);
   exit (n);
 }
 
@@ -81,24 +85,27 @@ swap (const char *special, int prio)
   struct stat st;
 
   if (verbose)
-    printf("%s on %s\n", program_name, special);
+    printf(_("%s on %s\n"), program_name, special);
 
   if (streq (program_name, "swapon")) {
     if (stat(special, &st) < 0) {
-        fprintf (stderr, "swapon: cannot stat %s: %s\n", special, strerror (errno));
+       int errsv = errno;
+        fprintf (stderr, _("swapon: cannot stat %s: %s\n"), special, strerror (errsv));
        return -1;
     }
 
-    if ((st.st_mode & 07077) != 0) {
-        fprintf(stderr, "swapon: warning: %s has insecure permissions %04o, "
-                       "0600 suggested\n", special, st.st_mode & 07777);
+    /* people generally dislike this warning - now it is printed
+       only when `verbose' is set */
+    if (verbose && (st.st_mode & 07077) != 0) {
+        fprintf(stderr, _("swapon: warning: %s has insecure permissions %04o, "
+                       "0600 suggested\n"), special, st.st_mode & 07777);
     }
 
     /* test for holes by LBT */
     if (S_ISREG(st.st_mode)) {
        if (st.st_blocks * 512 < st.st_size) {
            fprintf(stderr,
-                   "swapon: Skipping file %s - it appears to have holes.\n",
+                   _("swapon: Skipping file %s - it appears to have holes.\n"),
                    special);
            return -1;
        }
@@ -124,8 +131,10 @@ swap (const char *special, int prio)
   } else
      status = swapoff (special);
 
-  if (status < 0)
-    fprintf (stderr, "%s: %s: %s\n", program_name, special, strerror (errno));
+  if (status < 0) {
+    int errsv = errno;
+    fprintf (stderr, "%s: %s: %s\n", program_name, special, strerror (errsv));
+  }
 
   return status;
 }
@@ -137,8 +146,9 @@ display_summary(void)
        char line[200] ;
 
        if ((swaps = fopen(PROC_SWAPS, "r")) == NULL) {
+                      int errsv = errno;
                fprintf (stderr, "%s: %s: %s\n", program_name, PROC_SWAPS,
-                       strerror (errno));
+                       strerror (errsv));
                return -1 ; 
        }
        while ( fgets(line, sizeof(line), swaps))
@@ -155,6 +165,10 @@ main (int argc, char *argv[])
   int all = 0;
   int c;
 
+  setlocale(LC_ALL, "");
+  bindtextdomain(PACKAGE, LOCALEDIR);
+  textdomain(PACKAGE);
+  
   if (strrchr (argv[0], '/') != NULL)
     program_name = strrchr (argv[0], '/') + 1;
   else
@@ -195,8 +209,9 @@ main (int argc, char *argv[])
   if (all) {
        FILE *fp = setmntent(_PATH_FSTAB, "r");
        if (fp == NULL) {
-           fprintf(stderr, "%s: cannot open %s: %s\n", program_name,
-                   _PATH_FSTAB, strerror(errno));
+            int errsv = errno;
+           fprintf(stderr, _("%s: cannot open %s: %s\n"), program_name,
+                   _PATH_FSTAB, strerror(errsv));
            exit(2);
        }
        while ((fstab = getmntent(fp)) != NULL) {
index 196bd7f8a77fbba06508a7621d0594b3e4262a15..08d39888d69b88640b9ede74406e4835e9d48397 100644 (file)
@@ -82,6 +82,10 @@ specified type.  More than one type may be specified in a comma separated
 list.  The list of file system types can be prefixed with
 .B no
 to specify the file system types on which no action should be taken.
+.TP
+.B \-f
+Force unmount (in case of an unreachable NFS system).
+(Requires kernel 2.1.116 or later.)
 
 .SH "THE LOOP DEVICE"
 The
index ac233a70ba3e8d59a14a56662e88bc6f5de4ce7a..36f9407f2249b1f6f04d293fd678aac2d4110caa 100644 (file)
@@ -36,6 +36,7 @@
 #include "lomount.h"
 #include "loop.h"
 #include "fstab.h"
+#include "nls.h"
 
 #ifdef HAVE_NFS
 #include <sys/socket.h>
 #include <arpa/inet.h>
 #endif
 
-static int umount2(const char *path, int flags);
-
 #ifdef MNT_FORCE
 /* Interesting ... it seems libc knows about MNT_FORCE and presumably
    about umount2 as well -- need not do anything */
 #else /* MNT_FORCE */
+static int umount2(const char *path, int flags);
 
 /* Does the present kernel source know about umount2? */
 #include <linux/unistd.h>
@@ -62,7 +62,7 @@ _syscall2(int, umount2, const char *, path, int, flags);
 #else /* __NR_umount2 */
 static int
 umount2(const char *path, int flags) {
-       fprintf(stderr, "umount: compiled without support for -f\n");
+       fprintf(stderr, _("umount: compiled without support for -f\n"));
        errno = ENOSYS;
        return -1;
 }
@@ -112,7 +112,7 @@ nfs_umount_rpc_call(const char *spec, const char *opts)
       hostname = xstrndup(spec, p-spec);
       dirname = xstrdup(p+1);
 #ifdef DEBUG
-      printf("host: %s, directory: %s\n", hostname, dirname);
+      printf(_("host: %s, directory: %s\n"), hostname, dirname);
 #endif
 
       if (opts && (p = strstr(opts, "addr="))) {
@@ -129,12 +129,12 @@ nfs_umount_rpc_call(const char *spec, const char *opts)
           saddr.sin_addr.s_addr = inet_addr(hostname);
       else {
           if ((hostp = gethostbyname(hostname)) == NULL) {
-               fprintf(stderr, "umount: can't get address for %s\n",
+               fprintf(stderr, _("umount: can't get address for %s\n"),
                        hostname);
                return 1;
           }
           if (hostp->h_length > sizeof(struct in_addr)) {
-               fprintf(stderr, "umount: got bad hostp->h_length\n");
+               fprintf(stderr, _("umount: got bad hostp->h_length\n"));
                hostp->h_length = sizeof(struct in_addr);
           }
           memcpy(&saddr.sin_addr, hostp->h_addr, hostp->h_length);
@@ -172,23 +172,23 @@ nfs_umount_rpc_call(const char *spec, const char *opts)
 static void complain(int err, const char *dev) {
   switch (err) {
     case ENXIO:
-      error ("umount: %s: invalid block device", dev); break;
+      error (_("umount: %s: invalid block device"), dev); break;
     case EINVAL:
-      error ("umount: %s: not mounted", dev); break;
+      error (_("umount: %s: not mounted"), dev); break;
     case EIO:
-      error ("umount: %s: can't write superblock", dev); break;
+      error (_("umount: %s: can't write superblock"), dev); break;
     case EBUSY:
      /* Let us hope fstab has a line "proc /proc ..."
        and not "none /proc ..."*/
-      error ("umount: %s: device is busy", dev); break;
+      error (_("umount: %s: device is busy"), dev); break;
     case ENOENT:
-      error ("umount: %s: not found", dev); break;
+      error (_("umount: %s: not found"), dev); break;
     case EPERM:
-      error ("umount: %s: must be superuser to umount", dev); break;
+      error (_("umount: %s: must be superuser to umount"), dev); break;
     case EACCES:
-      error ("umount: %s: block devices not permitted on fs", dev); break;
+      error (_("umount: %s: block devices not permitted on fs"), dev); break;
     default:
-      error ("umount: %s: %s", dev, strerror (err)); break;
+      error (_("umount: %s: %s"), dev, strerror (err)); break;
   }
 }
 
@@ -232,7 +232,7 @@ umount_one (const char *spec, const char *node, const char *type,
               perror("umount2");
               if (errno == ENOSYS) {
                       if (verbose)
-                              printf("no umount2, trying umount...\n");
+                              printf(_("no umount2, trying umount...\n"));
                       res = umount (node);
               }
        }
@@ -245,7 +245,7 @@ umount_one (const char *spec, const char *node, const char *type,
        /* if (umnt_err == ENOENT || umnt_err == EINVAL) */
        if (umnt_err != EBUSY && strcmp(node, spec)) {
            if (verbose)
-                printf ("could not umount %s - trying %s instead\n",
+                printf (_("could not umount %s - trying %s instead\n"),
                         node, spec);
            res = umount (spec);
            if (res < 0)
@@ -261,7 +261,7 @@ umount_one (const char *spec, const char *node, const char *type,
        res=mount(spec, node, NULL, MS_MGC_VAL | MS_REMOUNT | MS_RDONLY, NULL);
        if (res == 0) {
            struct mntent remnt;
-           fprintf(stderr, "umount: %s busy - remounted read-only\n", spec);
+           fprintf(stderr, _("umount: %s busy - remounted read-only\n"), spec);
            remnt.mnt_type = remnt.mnt_fsname = NULL;
            remnt.mnt_dir = xstrdup(node);
            remnt.mnt_opts = "ro";
@@ -269,7 +269,7 @@ umount_one (const char *spec, const char *node, const char *type,
            return 0;
        } else if (errno != EBUSY) {    /* hmm ... */
            perror("remount");
-           fprintf(stderr, "umount: could not remount %s read-only\n",
+           fprintf(stderr, _("umount: could not remount %s read-only\n"),
                    spec);
        }
   }
@@ -277,7 +277,7 @@ umount_one (const char *spec, const char *node, const char *type,
   if (res >= 0) {
       /* Umount succeeded, update mtab.  */
       if (verbose)
-       printf ("%s umounted\n", spec);
+       printf (_("%s umounted\n"), spec);
 
       if (!nomtab && mtab_is_writable()) {
                                /* Special stuff for loop devices */
@@ -360,7 +360,7 @@ umount_all (string_list types) {
 
      hd = mtab_head();
      if (!hd->prev)
-         die (2, "umount: cannot find list of filesystems to unmount");
+         die (2, _("umount: cannot find list of filesystems to unmount"));
      for (mc = hd->prev; mc != hd; mc = mc->prev) {
          if (matching_type (mc->mnt_type, types)) {
               errors |= umount_one (mc->mnt_fsname, mc->mnt_dir,
@@ -386,16 +386,12 @@ static struct option longopts[] =
   { NULL, 0, 0, 0 }
 };
 
-char *usage_string = "\
-Usage: umount [-hV]\n\
-       umount -a [-f] [-r] [-n] [-v] [-t vfstypes]\n\
-       umount [-f] [-r] [-n] [-v] special | node...\n\
-";
-
 static void
 usage (FILE *fp, int n)
 {
-  fprintf (fp, "%s", usage_string);
+  fprintf (fp, _("Usage: umount [-hV]\n"
+              "       umount -a [-f] [-r] [-n] [-v] [-t vfstypes]\n"
+              "       umount [-f] [-r] [-n] [-v] special | node...\n"));
   exit (n);
 }
 
@@ -412,6 +408,10 @@ main (int argc, char *argv[])
   char *file;
   int result = 0;
 
+  setlocale(LC_ALL, "");
+  bindtextdomain(PACKAGE, LOCALEDIR);
+  textdomain(PACKAGE);
+
   while ((c = getopt_long (argc, argv, "afhnrt:vV",
                           longopts, NULL)) != EOF)
     switch (c) {
@@ -450,7 +450,7 @@ main (int argc, char *argv[])
     {
       suid = 1;
       if (all || types || nomtab || force)
-       die (2, "umount: only root can do that");
+       die (2, _("umount: only root can do that"));
     }
 
   argc -= optind;
@@ -458,32 +458,32 @@ main (int argc, char *argv[])
 
   if (all) {
        if (types == NULL)
-         types = parse_list(xstrdup("noproc"));
+         types = parse_list("noproc");
        result = umount_all (types);
   } else if (argc < 1) {
        usage (stderr, 2);
   } else while (argc--) {
        file = canonicalize (*argv); /* mtab paths are canonicalized */
        if (verbose > 1)
-         printf("Trying to umount %s\n", file);
+         printf(_("Trying to umount %s\n"), file);
 
        mc = getmntfilesbackward (file, NULL);
        if (!mc && verbose)
-         printf("Could not find %s in mtab\n", file);
+         printf(_("Could not find %s in mtab\n"), file);
 
        if (suid) {
          if (!mc)
-           die (2, "umount: %s is not mounted (according to mtab)", file);
+           die (2, _("umount: %s is not mounted (according to mtab)"), file);
          if (getmntfilesbackward (file, mc))
-           die (2, "umount: it seems %s is mounted multiple times", file);
+           die (2, _("umount: it seems %s is mounted multiple times"), file);
          if (!(fs = getfsspec (file)) && !(fs = getfsfile (file)))
-           die (2, "umount: %s is not in the fstab (and you are not root)",
+           die (2, _("umount: %s is not in the fstab (and you are not root)"),
                 file);
          if ((!streq (mc->mnt_fsname, fs->mnt_fsname) &&
               !streq (mc->mnt_fsname, canonicalize (fs->mnt_fsname)))
              || (!streq (mc->mnt_dir, fs->mnt_dir) &&
                  !streq (mc->mnt_dir, canonicalize (fs->mnt_dir)))) {
-           die (2, "umount: %s mount disagrees with the fstab", file);
+           die (2, _("umount: %s mount disagrees with the fstab"), file);
          }
 
          /* User mounting and unmounting is allowed only
@@ -502,7 +502,7 @@ main (int argc, char *argv[])
              options = cdr (options);
          }
          if (!options)
-           die (2, "umount: only root can unmount %s from %s",
+           die (2, _("umount: only root can unmount %s from %s"),
                 fs->mnt_fsname, fs->mnt_dir);
          if (streq (car (options), "user")) {
              char *user = getusername();
@@ -512,7 +512,7 @@ main (int argc, char *argv[])
                  char *co = car (options);
                  if (!strncmp(co, "user=", 5)) {
                      if (!user || !streq(co+5,user))
-                         die(2, "umount: only %s can unmount %s from %s",
+                         die(2, _("umount: only %s can unmount %s from %s"),
                              co+5, fs->mnt_fsname, fs->mnt_dir);
                      break;
                  }
diff --git a/po/ChangeLog b/po/ChangeLog
new file mode 100644 (file)
index 0000000..d1e1468
--- /dev/null
@@ -0,0 +1,5 @@
+1999-02-22
+       Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+       - initial release
+       - things work not too well, yet
+       
diff --git a/po/GNU.ABOUT-NLS b/po/GNU.ABOUT-NLS
new file mode 100644 (file)
index 0000000..28d38c7
--- /dev/null
@@ -0,0 +1,226 @@
+Notes on the Free Translation Project
+*************************************
+
+   Free software is going international!  The Free Translation Project
+is a way to get maintainers of free software, translators, and users all
+together, so that will gradually become able to speak many languages.
+A few packages already provide translations for their messages.
+
+   If you found this `ABOUT-NLS' file inside a distribution, you may
+assume that the distributed package does use GNU `gettext' internally,
+itself available at your nearest GNU archive site.  But you do *not*
+need to install GNU `gettext' prior to configuring, installing or using
+this package with messages translated.
+
+   Installers will find here some useful hints.  These notes also
+explain how users should proceed for getting the programs to use the
+available translations.  They tell how people wanting to contribute and
+work at translations should contact the appropriate team.
+
+   When reporting bugs in the `intl/' directory or bugs which may be
+related to internationalization, you should tell about the version of
+`gettext' which is used.  The information can be found in the
+`intl/VERSION' file, in internationalized packages.
+
+One advise in advance
+=====================
+
+   If you want to exploit the full power of internationalization, you
+should configure it using
+
+     ./configure --with-included-gettext
+
+to force usage of internationalizing routines provided within this
+package, despite the existence of internationalizing capabilities in the
+operating system where this package is being installed.  So far, only
+the `gettext' implementation in the GNU C library version 2 provides as
+many features (such as locale alias or message inheritance) as the
+implementation here.  It is also not possible to offer this additional
+functionality on top of a `catgets' implementation.  Future versions of
+GNU `gettext' will very likely convey even more functionality.  So it
+might be a good idea to change to GNU `gettext' as soon as possible.
+
+   So you need not provide this option if you are using GNU libc 2 or
+you have installed a recent copy of the GNU gettext package with the
+included `libintl'.
+
+INSTALL Matters
+===============
+
+   Some packages are "localizable" when properly installed; the
+programs they contain can be made to speak your own native language.
+Most such packages use GNU `gettext'.  Other packages have their own
+ways to internationalization, predating GNU `gettext'.
+
+   By default, this package will be installed to allow translation of
+messages.  It will automatically detect whether the system provides
+usable `catgets' (if using this is selected by the installer) or
+`gettext' functions.  If neither is available, the GNU `gettext' own
+library will be used.  This library is wholly contained within this
+package, usually in the `intl/' subdirectory, so prior installation of
+the GNU `gettext' package is *not* required.  Installers may use
+special options at configuration time for changing the default
+behaviour.  The commands:
+
+     ./configure --with-included-gettext
+     ./configure --with-catgets
+     ./configure --disable-nls
+
+will respectively bypass any pre-existing `catgets' or `gettext' to use
+the internationalizing routines provided within this package, enable
+the use of the `catgets' functions (if found on the locale system), or
+else, *totally* disable translation of messages.
+
+   When you already have GNU `gettext' installed on your system and run
+configure without an option for your new package, `configure' will
+probably detect the previously built and installed `libintl.a' file and
+will decide to use this.  This might be not what is desirable.  You
+should use the more recent version of the GNU `gettext' library.  I.e.
+if the file `intl/VERSION' shows that the library which comes with this
+package is more recent, you should use
+
+     ./configure --with-included-gettext
+
+to prevent auto-detection.
+
+   By default the configuration process will not test for the `catgets'
+function and therefore they will not be used.  The reasons are already
+given above: the emulation on top of `catgets' cannot provide all the
+extensions provided by the GNU `gettext' library.  If you nevertheless
+want to use the `catgets' functions use
+
+     ./configure --with-catgets
+
+to enable the test for `catgets' (this causes no harm if `catgets' is
+not available on your system).  If you really select this option we
+would like to hear about the reasons because we cannot think of any
+good one ourself.
+
+   Internationalized packages have usually many `po/LL.po' files, where
+LL gives an ISO 639 two-letter code identifying the language.  Unless
+translations have been forbidden at `configure' time by using the
+`--disable-nls' switch, all available translations are installed
+together with the package.  However, the environment variable `LINGUAS'
+may be set, prior to configuration, to limit the installed set.
+`LINGUAS' should then contain a space separated list of two-letter
+codes, stating which languages are allowed.
+
+Using This Package
+==================
+
+   As a user, if your language has been installed for this package, you
+only have to set the `LANG' environment variable to the appropriate
+ISO 639 `LL' two-letter code prior to using the programs in the
+package.  For example, let's suppose that you speak German.  At the
+shell prompt, merely execute `setenv LANG de' (in `csh'),
+`export LANG; LANG=de' (in `sh') or `export LANG=de' (in `bash').  This
+can be done from your `.login' or `.profile' file, once and for all.
+
+   An operating system might already offer message localization for
+many of its programs, while other programs have been installed locally
+with the full capabilities of GNU `gettext'.  Just using `gettext'
+extended syntax for `LANG' would break proper localization of already
+available operating system programs.  In this case, users should set
+both `LANGUAGE' and `LANG' variables in their environment, as programs
+using GNU `gettext' give preference to `LANGUAGE'.  For example, some
+Swedish users would rather read translations in German than English for
+when Swedish is not available.  This is easily accomplished by setting
+`LANGUAGE' to `sv:de' while leaving `LANG' to `sv'.
+
+Translating Teams
+=================
+
+   For the Free Translation Project to be a success, we need interested
+people who like their own language and write it well, and who are also
+able to synergize with other translators speaking the same language.
+Each translation team has its own mailing list, courtesy of Linux
+International.  You may reach your translation team at the address
+`LL@li.org', replacing LL by the two-letter ISO 639 code for your
+language.  Language codes are *not* the same as the country codes given
+in ISO 3166.  The following translation teams exist, as of December
+1997:
+
+     Chinese `zh', Czech `cs', Danish `da', Dutch `nl', English `en',
+     Esperanto `eo', Finnish `fi', French `fr', German `de', Hungarian
+     `hu', Irish `ga', Italian `it', Indonesian `id', Japanese `ja',
+     Korean `ko', Latin `la', Norwegian `no', Persian `fa', Polish
+     `pl', Portuguese `pt', Russian `ru', Slovenian `sl', Spanish `es',
+     Swedish `sv', and Turkish `tr'.
+
+For example, you may reach the Chinese translation team by writing to
+`zh@li.org'.
+
+   If you'd like to volunteer to *work* at translating messages, you
+should become a member of the translating team for your own language.
+The subscribing address is *not* the same as the list itself, it has
+`-request' appended.  For example, speakers of Swedish can send a
+message to `sv-request@li.org', having this message body:
+
+     subscribe
+
+   Keep in mind that team members are expected to participate
+*actively* in translations, or at solving translational difficulties,
+rather than merely lurking around.  If your team does not exist yet and
+you want to start one, or if you are unsure about what to do or how to
+get started, please write to `translation@iro.umontreal.ca' to reach the
+coordinator for all translator teams.
+
+   The English team is special.  It works at improving and uniformizing
+the terminology in use.  Proven linguistic skill are praised more than
+programming skill, here.
+
+Available Packages
+==================
+
+   Languages are not equally supported in all packages.  The following
+matrix shows the current state of internationalization, as of December
+1997.  The matrix shows, in regard of each package, for which languages
+PO files have been submitted to translation coordination.
+
+     Ready PO files    cs da de en es fi fr it ja ko nl no pl pt ru sl sv
+                     .----------------------------------------------------.
+     bash            |       []          []          []                   |  3
+     bison           |       []          []          []                   |  3
+     clisp           |       [] [] []    []                               |  4
+     cpio            |       []    []    []       [] []    []             |  6
+     diffutils       |       []    []    []                []          [] |  5
+     enscript        |       []    [] [] []          []             []    |  6
+     fileutils       | []    []    []    []       [] []    [] []    [] [] | 10
+     findutils       |       []    []    [] []    [] []    []    []    [] |  9
+     flex            |             []    []       []                   [] |  4
+     gcal            |       []          []          []    []          [] |  5
+     gettext         |    [] []    []    []       [] [] [] [] []    [] [] | 12
+     grep            |       []    []    []       [] [] [] []    [] [] [] | 10
+     hello           |    [] []    []    []       [] [] [] [] []    [] [] | 11
+     id-utils        |       []          []                []             |  3
+     indent          |    [] []                   []       []    []       |  5
+     libc            |       []    []    []       [] []    []          [] |  7
+     m4              |       []          []    []    []          []    [] |  6
+     make            |       []    []    []       [] []    []             |  6
+     music           |                   []                []             |  2
+     ptx             |       []    []    []          [] [] [] []       [] |  8
+     recode          |    [] []    []    []          []    [] []    [] [] |  9
+     sh-utils        |       []    []    []          [] [] [] []       [] |  8
+     sharutils       | []    []    []    []          []                [] |  6
+     tar             | []    []          [] []    [] [] [] [] []    [] [] | 11
+     texinfo         | []    []          []                               |  3
+     textutils       | []    []    []    []       [] [] [] []          [] |  9
+     wdiff           | []    []    []    []          [] [] []          [] |  8
+                     `----------------------------------------------------'
+       17 languages    cs da de en es fi fr it ja ko nl no pl pt ru sl sv
+       27 packages      6  4 25  1 18  1 26  2  1 12 20  9 19  7  4  7 17  179
+
+   Some counters in the preceding matrix are higher than the number of
+visible blocks let us expect.  This is because a few extra PO files are
+used for implementing regional variants of languages, or language
+dialects.
+
+   For a PO file in the matrix above to be effective, the package to
+which it applies should also have been internationalized and
+distributed as such by its maintainer.  There might be an observable
+lag between the mere existence a PO file and its wide availability in a
+distribution.
+
+   If December 1997 seems to be old, you may fetch a more recent copy
+of this `ABOUT-NLS' file on most GNU archive sites.
+
diff --git a/po/Makefile b/po/Makefile
new file mode 100644 (file)
index 0000000..0e8d6ab
--- /dev/null
@@ -0,0 +1,148 @@
+PACKAGE = util-linux
+VERSION = 2.9s
+
+include ../make_include
+
+#
+# po2tbl.sed is not taken from /usr/share/gettext/intl
+# Often it is not present.
+# A RedHat 5.2 installation only has po2tbl.sed.in.
+#
+PO2TBL = ./po2tbl.sed
+INTL = /usr/share/gettext/intl
+
+SHELL = /bin/sh
+
+prefix = /usr
+exec_prefix = ${prefix}
+datadir = $(prefix)/share
+localedir = $(datadir)/locale
+gnulocaledir = $(prefix)/share/locale
+gettextsrcdir = $(prefix)/share/gettext/po
+
+# Not giving an explicit path improves the chances of finding this
+INSTALL = install -c
+INSTALL_DATA = ${INSTALL} -m 644
+
+# Not giving an explicit path improves the chances of finding these
+GENCAT = gencat
+MSGFMT = msgfmt
+XGETTEXT = xgettext
+MSGMERGE = msgmerge
+
+
+# ..      for <config.h> (if HAVE_CONFIG_H is set)
+# $(INTL) for "libgettext.h"
+INCLUDES = -I.. -I$(INTL)
+
+COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+
+# Enter here all .po files
+POFILES = cs.po de.po fr.po it.po ja.po nl.po pt_BR.po
+# the same but with .gmo
+GMOFILES = cs.gmo de.gmo fr.gmo it.gmo ja.gmo nl.gmo pt_BR.gmo
+
+CATALOGS = $(GMOFILES)
+CATOBJEXT = .gmo
+INSTOBJEXT = .mo
+
+.SUFFIXES:
+.SUFFIXES: .c .o .po .gmo .mo .msg .cat
+
+.c.o:
+       $(COMPILE) $<
+
+.po.mo:
+       $(MSGFMT) -o $@ $<
+
+.po.gmo:
+       $(MSGFMT) -o $@ $<
+
+.po.cat:
+       sed -f $(PO2TBL) < $< > $*.msg \
+         && rm -f $@ && $(GENCAT) $@ $*.msg
+
+all: all-$(HAVE_XGETTEXT)
+
+all-yes: cat-id-tbl.c $(CATALOGS)
+all-no:
+
+util-linux.pot:
+       $(XGETTEXT) --default-domain=util-linux --directory=.. \
+         --add-comments --keyword=_ --keyword=N_ \
+         --files-from=POTFILES.in $(FOREIGN)
+       mv util-linux.po util-linux.pot
+
+cat-id-tbl.c: stamp-cat-id
+stamp-cat-id: util-linux.pot
+       rm -f cat-id-tbl.tmp
+       sed -f $(PO2TBL) util-linux.pot \
+               | sed -e "s/@PACKAGE NAME@/util-linux/" > cat-id-tbl.tmp
+       if cmp -s cat-id-tbl.tmp cat-id-tbl.c; then \
+         rm cat-id-tbl.tmp; \
+       else \
+         echo cat-id-tbl.c changed; \
+         rm -f cat-id-tbl.c; \
+         mv cat-id-tbl.tmp cat-id-tbl.c; \
+       fi
+       rm -f stamp-cat-id && echo timestamp > stamp-cat-id
+
+install: install-data-$(HAVE_XGETTEXT)
+install-data-no: all
+install-data-yes: all
+       ../mkinstalldirs $(datadir);
+       @catalogs='$(CATALOGS)'; \
+       for cat in $$catalogs; do \
+         case "$$cat" in \
+           *.gmo) destdir=$(gnulocaledir);; \
+           *)     destdir=$(localedir);; \
+         esac; \
+         lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \
+         dir=$$destdir/$$lang/LC_MESSAGES; \
+         ../mkinstalldirs $$dir; \
+         $(INSTALL_DATA) $$cat $$dir/util-linux$(INSTOBJEXT); \
+         echo "installing $$cat as $$dir/util-linux$(INSTOBJEXT)"; \
+         if test -r $$cat.m; then \
+           $(INSTALL_DATA) $$cat.m $$dir/util-linux$(INSTOBJEXT).m; \
+           echo "installing $$cat.m as $$dir/util-linux$(INSTOBJEXT).m"; \
+         fi; \
+       done
+
+uninstall:
+       catalogs='$(CATALOGS)'; \
+       for cat in $$catalogs; do \
+         lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \
+         rm -f $(localedir)/$$lang/LC_MESSAGES/util-linux$(INSTOBJEXT); \
+         rm -f $(localedir)/$$lang/LC_MESSAGES/util-linux$(INSTOBJEXT).m; \
+         rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/util-linux$(INSTOBJEXT); \
+         rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/util-linux$(INSTOBJEXT).m; \
+       done
+       rm -f $(gettextsrcdir)/po-Makefile.in.in
+
+cat-id-tbl.o: $(INTL)/libgettext.h
+
+clean:
+       rm -f core core.* *~ *.o util-linux.pot cat-id-tbl.tmp
+
+distclean: clean
+       rm -f POTFILES *.gmo *.mo *.msg *.cat *.cat.m
+
+update-po: 
+       $(MAKE) util-linux.pot
+       catalogs='$(CATALOGS)'; \
+       for cat in $$catalogs; do \
+         lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \
+         mv $$lang.po $$lang.old.po; \
+         echo "$$lang:"; \
+         if $(MSGMERGE) $$lang.old.po util-linux.pot -o $$lang.po; then \
+           rm -f $$lang.old.po; \
+         else \
+           echo "msgmerge for $$cat failed!"; \
+           rm -f $$lang.po; \
+           mv $$lang.old.po $$lang.po; \
+         fi; \
+       done
+
+POTFILES: 
+       ./update-potfiles
+
diff --git a/po/POTFILES.in b/po/POTFILES.in
new file mode 100644 (file)
index 0000000..1d79e75
--- /dev/null
@@ -0,0 +1,99 @@
+clock/cmos.c
+clock/hwclock.c
+clock/kd.c
+clock/rtc.c
+clock/shhopt.c
+disk-utils/fdformat.c
+disk-utils/fsck.minix.c
+disk-utils/mkfs.c
+disk-utils/mkfs.minix.c
+disk-utils/mkswap.c
+disk-utils/setfdprm.c
+fdisk/cfdisk.c
+fdisk/fdisk.c
+fdisk/fdiskaixlabel.c
+fdisk/fdiskbsdlabel.c
+fdisk/fdisksgilabel.c
+fdisk/fdisksunlabel.c
+fdisk/i386_sys_types.c
+fdisk/llseek.c
+fdisk/sfdisk.c
+games/banner.c
+getopt-1.0.3b/getopt.c
+lib/env.c
+lib/err.c
+lib/my_reboot.c
+lib/setproctitle.c
+login-utils/agetty.c
+login-utils/checktty.c
+login-utils/chfn.c
+login-utils/chsh.c
+login-utils/cryptocard.c
+login-utils/islocal.c
+login-utils/last.c
+login-utils/login.c
+login-utils/mesg.c
+login-utils/newgrp.c
+login-utils/passwd.c
+login-utils/setpwnam.c
+login-utils/shutdown.c
+login-utils/simpleinit.c
+login-utils/ttymsg.c
+login-utils/vipw.c
+login-utils/wall.c
+misc-utils/cal.c
+misc-utils/ddate.c
+misc-utils/kill.c
+misc-utils/logger.c
+misc-utils/look.c
+misc-utils/mcookie.c
+misc-utils/md5.c
+misc-utils/namei.c
+misc-utils/procs.c
+misc-utils/script.c
+misc-utils/setterm.c
+misc-utils/tsort.c
+misc-utils/whereis.c
+misc-utils/write.c
+mount/fstab.c
+mount/getusername.c
+mount/lomount.c
+mount/losetup.c
+mount/mntent.c
+mount/mount.c
+mount/mount_by_label.c
+mount/mount_guess_fstype.c
+mount/nfsmount.c
+mount/nfsmount_clnt.c
+mount/nfsmount_xdr.c
+mount/realpath.c
+mount/sundries.c
+mount/swapon.c
+mount/umount.c
+mount/version.c
+sys-utils/arch.c
+sys-utils/ctrlaltdel.c
+sys-utils/cytune.c
+sys-utils/dmesg.c
+sys-utils/ipcrm.c
+sys-utils/ipcs.c
+sys-utils/rdev.c
+sys-utils/readprofile.c
+sys-utils/renice.c
+sys-utils/setsid.c
+sys-utils/sln.c
+sys-utils/tunelp.c
+text-utils/col.c
+text-utils/colcrt.c
+text-utils/colrm.c
+text-utils/column.c
+text-utils/conv.c
+text-utils/display.c
+text-utils/hexdump.c
+text-utils/hexsyntax.c
+text-utils/more.c
+text-utils/odsyntax.c
+text-utils/parse.c
+text-utils/rev.c
+text-utils/ul.c
+kbd/kbdrate.c
diff --git a/po/cat-id-tbl.c b/po/cat-id-tbl.c
new file mode 100644 (file)
index 0000000..cc679d0
--- /dev/null
@@ -0,0 +1,2151 @@
+/* Automatically generated by po2tbl.sed from util-linux.pot.  */
+
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "libgettext.h"
+
+const struct _msg_ent _msg_tbl[] = {
+  {"", 1},
+  {"booted from MILO\n", 2},
+  {"Ruffian BCD clock\n", 3},
+  {"clockport adjusted to 0x%x\n", 4},
+  {"funky TOY!\n", 5},
+  {"%s: atomic %s failed for 1000 iterations!", 6},
+  {"Cannot open /dev/port: %s", 7},
+  {"I failed to get permission because I didnt try.\n", 8},
+  {"%s is unable to get I/O port access:  the iopl(3) call failed.\n", 9},
+  {"Probably you need root privileges.\n", 10},
+  {"Last drift adjustment done at %d seconds after 1969\n", 11},
+  {"Last calibration done at %d seconds after 1969\n", 12},
+  {"Waiting for clock tick...\n", 13},
+  {"...got clock tick\n", 14},
+  {"Invalid values in hardware clock: %2d/%.2d/%.2d %.2d:%.2d:%.2d\n", 15},
+  {"Hw clock time : %.2d:%.2d:%.2d = %d seconds since 1969\n", 16},
+  {"Time read from Hardware Clock: %02d:%02d:%02d\n", 17},
+  {"Setting Hardware Clock to %.2d:%.2d:%.2d = %d seconds since 1969\n", 18},
+  {"Clock not changed - testing only.\n", 19},
+  {"\
+Time elapsed since reference time has been %.6f seconds.\n\
+Delaying further to reach the next full second.\n", 20},
+  {"\
+The Hardware Clock registers contain values that are either invalid (e.g. \
+50th day of month) or beyond the range we can handle (e.g. Year 2095).\n", 21},
+  {"%s  %.6f seconds\n", 22},
+  {"No --date option specified.\n", 23},
+  {"\
+The value of the --date option is not a valid date.\n\
+In particular, it contains quotation marks.\n", 24},
+  {"Issuing date command: %s\n", 25},
+  {"Unable to run 'date' program in /bin/sh shell. popen() failed", 26},
+  {"response from date command = %s\n", 27},
+  {"\
+The date command issued by %s returned unexpected results.\n\
+The command was:\n\
+  %s\n\
+The response was:\n\
+  %s\n", 28},
+  {"\
+The date command issued by %s returnedsomething other than an integer where \
+the convertedtime value was expected.\n\
+The command was:\n\
+  %s\n\
+The response was:\n\
+ %s\n", 29},
+  {"date string %s equates to %d seconds since 1969.\n", 30},
+  {"\
+The Hardware Clock does not contain a valid time, so we cannot set the \
+System Time from it.\n", 31},
+  {"Calling settimeofday:\n", 32},
+  {"\ttv.tv_sec = %ld, tv.tv_usec = %ld\n", 33},
+  {"\ttz.tz_minuteswest = %ld\n", 34},
+  {"Not setting system clock because running in test mode.\n", 35},
+  {"Must be superuser to set system clock.\n", 36},
+  {"settimeofday() failed", 37},
+  {"\
+Not adjusting drift factor because the Hardware Clock previously contained \
+garbage.\n", 38},
+  {"\
+Not adjusting drift factor because it has been less than a day since the \
+last calibration.\n", 39},
+  {"\
+Clock drifted %d seconds in the past %d seconds in spite of a drift factor \
+of %f seconds/day.\n\
+Adjusting drift factor by %f seconds/day\n", 40},
+  {"Time since last adjustment is %d seconds\n", 41},
+  {"Need to insert %d seconds and refer time back %.6f seconds ago\n", 42},
+  {"Not updating adjtime file because of testing mode.\n", 43},
+  {"\
+Would have written the following to %s:\n\
+%s", 44},
+  {"Drift adjustment parameters not updated.\n", 45},
+  {"\
+The Hardware Clock does not contain a valid time, so we cannot adjust it.\n", 46},
+  {"Needed adjustment is less than one second, so not setting clock.\n", 47},
+  {"Using %s.\n", 48},
+  {"No usable clock interface found.\n", 49},
+  {"Unable to set system clock.\n", 50},
+  {"\
+The kernel keeps an epoch value for the Hardware Clock only on an Alpha \
+machine.\n\
+This copy of hwclock was built for a machine other than Alpha\n\
+(and thus is presumably not running on an Alpha now).  No action taken.\n", 51},
+  {"Unable to get the epoch value from the kernel.\n", 52},
+  {"Kernel is assuming an epoch value of %lu\n", 53},
+  {"\
+To set the epoch value, you must use the 'epoch' option to tell to what \
+value to set it.\n", 54},
+  {"Not setting the epoch to %d - testing only.\n", 55},
+  {"Unable to set the epoch value in the kernel.\n", 56},
+  {"%s takes no non-option arguments.  You supplied %d.\n", 57},
+  {"\
+You have specified multiple function options.\n\
+You can only perform one function at a time.\n", 58},
+  {"No usable set-to time.  Cannot set clock.\n", 59},
+  {"Sorry, only the superuser can change the Hardware Clock.\n", 60},
+  {"\
+Sorry, only the superuser can change the Hardware Clock epoch in the \
+kernel.\n", 61},
+  {"\
+Cannot access the Hardware Clock via any known method.  Use --debug option \
+to see the details of our search for an access method.\n", 62},
+  {"%s: %s, errno=%d: %s.\n", 63},
+  {"Waiting in loop for time from KDGHWCLK to change\n", 64},
+  {"KDGHWCLK ioctl to read time failed", 65},
+  {"Timed out waiting for time change.\n", 66},
+  {"KDGHWCLK ioctl to read time failed in loop", 67},
+  {"ioctl() failed to read time from  /dev/tty1", 68},
+  {"ioctl() to open /dev/tty1 failed", 69},
+  {"KDGHWCLK ioctl failed", 70},
+  {"Can't open /dev/tty1", 71},
+  {"ioctl() to /dev/rtc to read the time failed.\n", 72},
+  {"Waiting in loop for time from /dev/rtc to change\n", 73},
+  {"open() of /dev/rtc failed", 74},
+  {"/dev/rtc does not have interrupt functions. ", 75},
+  {"read() to /dev/rtc to wait for clock tick failed", 76},
+  {"ioctl() to /dev/rtc to turn off update interrupts failed", 77},
+  {"ioctl() to /dev/rtc to turn on update interrupts failed unexpectedly", 78},
+  {"Unable to open /dev/rtc", 79},
+  {"ioctl() to /dev/rtc to set the time failed.\n", 80},
+  {"ioctl(%s) was successful.\n", 81},
+  {"Open of /dev/rtc failed", 82},
+  {"\
+To manipulate the epoch value in the kernel, we must access the Linux 'rtc' \
+device driver via the device special file /dev/rtc.  This file does not \
+exist on this system.\n", 83},
+  {"ioctl(RTC_EPOCH_READ) to /dev/rtc failed", 84},
+  {"we have read epoch %ld from /dev/rtc with RTC_EPOCH_READ ioctl.\n", 85},
+  {"The epoch value may not be less than 1900.  You requested %ld\n", 86},
+  {"setting epoch to %ld with RTC_EPOCH_SET ioctl to /dev/rtc.\n", 87},
+  {"\
+The kernel device driver for /dev/rtc does not have the RTC_EPOCH_SET \
+ioctl.\n", 88},
+  {"ioctl(RTC_EPOCH_SET) to /dev/rtc failed", 89},
+  {"invalid number `%s'\n", 90},
+  {"number `%s' to `%s' out of range\n", 91},
+  {"unrecognized option `%s'\n", 92},
+  {"option `%s' requires an argument\n", 93},
+  {"option `%s' doesn't allow an argument\n", 94},
+  {"unrecognized option `-%c'\n", 95},
+  {"Formatting ... ", 96},
+  {"done\n", 97},
+  {"Verifying ... ", 98},
+  {"Read: ", 99},
+  {"Problem reading cylinder %d, expected %d, read %d\n", 100},
+  {"\
+bad data in cyl %d\n\
+Continuing ... ", 101},
+  {"usage: %s [ -n ] device\n", 102},
+  {"%s: not a floppy device\n", 103},
+  {"Could not determine current format type", 104},
+  {"%s-sided, %d tracks, %d sec/track. Total capacity %d kB.\n", 105},
+  {"Double", 106},
+  {"Single", 107},
+  {"%s is mounted.\t ", 108},
+  {"Do you really want to continue", 109},
+  {"check aborted.\n", 110},
+  {"Zone nr < FIRSTZONE in file `", 111},
+  {"Zone nr >= ZONES in file `", 112},
+  {"Remove block", 113},
+  {"Read error: unable to seek to block in file '", 114},
+  {"Read error: bad block in file '", 115},
+  {"\
+Internal error: trying to write bad block\n\
+Write request ignored\n", 116},
+  {"Write error: bad block in file '", 117},
+  {"Warning: Firstzone != Norm_firstzone\n", 118},
+  {"%ld inodes\n", 119},
+  {"%ld blocks\n", 120},
+  {"Firstdatazone=%ld (%ld)\n", 121},
+  {"Zonesize=%d\n", 122},
+  {"Maxsize=%ld\n", 123},
+  {"Filesystem state=%d\n", 124},
+  {"\
+namelen=%d\n\
+\n", 125},
+  {"Inode %d marked not used, but used for file '", 126},
+  {"Mark in use", 127},
+  {" has mode %05o\n", 128},
+  {"Warning: inode count too big.\n", 129},
+  {"Block has been used before. Now in file `", 130},
+  {"Clear", 131},
+  {"Block %d in file `", 132},
+  {"' is marked not in use.", 133},
+  {"Correct", 134},
+  {" contains a bad inode number for file '", 135},
+  {" Remove", 136},
+  {": bad directory: '.' isn't first\n", 137},
+  {": bad directory: '..' isn't second\n", 138},
+  {": bad directory: size<32", 139},
+  {": bad directory: size < 32", 140},
+  {"Inode %d mode not cleared.", 141},
+  {"Inode %d not used, marked used in the bitmap.", 142},
+  {"Inode %d used, marked unused in the bitmap.", 143},
+  {"Inode %d (mode = %07o), i_nlinks=%d, counted=%d.", 144},
+  {"Set i_nlinks to count", 145},
+  {"Zone %d: marked in use, no file uses it.", 146},
+  {"Unmark", 147},
+  {"Zone %d: %sin use, counted=%d\n", 148},
+  {"not ", 149},
+  {"Set", 150},
+  {"%s is clean, no check.\n", 151},
+  {"Forcing filesystem check on %s.\n", 152},
+  {"Filesystem on %s is dirty, needs checking.\n", 153},
+  {"\
+\n\
+%6ld inodes used (%ld%%)\n", 154},
+  {"%6ld zones used (%ld%%)\n", 155},
+  {"\
+\n\
+%6d regular files\n\
+%6d directories\n\
+%6d character device files\n\
+%6d block device files\n\
+%6d links\n\
+%6d symbolic links\n\
+------\n\
+%6d files\n", 156},
+  {"\
+----------------------------\n\
+FILE SYSTEM HAS BEEN CHANGED\n\
+----------------------------\n", 157},
+  {"Usage: mkfs [-V] [-t fstype] [fs-options] device [size]\n", 158},
+  {"%s: Out of memory!\n", 159},
+  {"mkfs version ", 160},
+  {"Usage: %s [-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]\n", 161},
+  {"%s is mounted; will not make a filesystem here!", 162},
+  {"seek to boot block failed in write_tables", 163},
+  {"unable to clear boot sector", 164},
+  {"seek failed in write_tables", 165},
+  {"unable to write super-block", 166},
+  {"unable to write inode map", 167},
+  {"unable to write zone map", 168},
+  {"unable to write inodes", 169},
+  {"seek failed in write_block", 170},
+  {"write failed in write_block", 171},
+  {"too many bad blocks", 172},
+  {"not enough good blocks", 173},
+  {"unable to allocate buffers for maps", 174},
+  {"unable to allocate buffer for inodes", 175},
+  {"\
+Maxsize=%ld\n\
+\n", 176},
+  {"seek failed during testing of blocks", 177},
+  {"Weird values in do_check: probably bugs\n", 178},
+  {"seek failed in check_blocks", 179},
+  {"bad blocks before data-area: cannot make fs", 180},
+  {"%d bad blocks\n", 181},
+  {"one bad block\n", 182},
+  {"can't open file of bad blocks", 183},
+  {"bad inode size", 184},
+  {"%s: not compiled with minix v2 support\n", 185},
+  {"strtol error: number of blocks not specified", 186},
+  {"unable to open %s", 187},
+  {"unable to stat %s", 188},
+  {"will not try to make filesystem on '%s'", 189},
+  {"Assuming pages of size %d\n", 190},
+  {"one bad page\n", 191},
+  {"%d bad pages\n", 192},
+  {"%s: error: Nowhere to set up swap on?\n", 193},
+  {"%s: error: size %ld is larger than device size %d\n", 194},
+  {"%s: error: unknown version %d\n", 195},
+  {"%s: error: swap area needs to be at least %ldkB\n", 196},
+  {"%s: warning: truncating swap area to %ldkB\n", 197},
+  {"\
+%s: Device '%s' contains a valid Sun disklabel.\n\
+This probably means creating v0 swap would destroy your partition table\n\
+No swap created. If you really want to create swap v0 on that device, use\n\
+the -f option to force it.\n", 198},
+  {"Setting up swapspace version %d, size = %ld bytes\n", 199},
+  {"Invalid number: %s\n", 200},
+  {"Syntax error: '%s'\n", 201},
+  {"No such parameter set: '%s'\n", 202},
+  {"usage: %s [ -p ] dev name\n", 203},
+  {"\
+       %s [ -p ] dev size sect heads tracks stretch gap rate spec1 fmt_gap\n", 204},
+  {"       %s [ -c | -y | -n | -d ] dev\n", 205},
+  {"       %s [ -c | -y | -n ] dev\n", 206},
+  {"Unusable", 207},
+  {"Free Space", 208},
+  {"Linux ext2", 209},
+  {"Linux", 210},
+  {"OS/2 HPFS", 211},
+  {"OS/2 IFS", 212},
+  {"NTFS", 213},
+  {"Disk has been changed.\n", 214},
+  {"Reboot the system to ensure the partition table is correctly updated.\n", 215},
+  {"\
+\n\
+WARNING: If you have created or modified any\n\
+DOS 6.x partitions, please see the cfdisk manual\n\
+page for additional information.\n", 216},
+  {"FATAL ERROR", 217},
+  {"Press any key to exit cfdisk", 218},
+  {"Cannot seek on disk drive", 219},
+  {"Cannot read disk drive", 220},
+  {"Cannot write disk drive", 221},
+  {"Too many partitions", 222},
+  {"Partition begins before sector 0", 223},
+  {"Partition ends before sector 0", 224},
+  {"Partition begins after end-of-disk", 225},
+  {"Partition ends after end-of-disk", 226},
+  {"logical partitions not in disk order", 227},
+  {"logical partitions overlap", 228},
+  {"enlarged logical partitions overlap", 229},
+  {"\
+!!!! Internal error creating logical drive with no extended partition !!!!", 230},
+  {"\
+Cannot create logical drive here -- would create two extended partitions", 231},
+  {"Menu item too long. Menu may look odd.", 232},
+  {"Menu without direction. Defaulting horizontal.", 233},
+  {"Illegal key", 234},
+  {"Press a key to continue", 235},
+  {"Primary", 236},
+  {"Create a new primary partition", 237},
+  {"Logical", 238},
+  {"Create a new logical partition", 239},
+  {"Cancel", 240},
+  {"Don't create a partition", 241},
+  {"!!! Internal error !!!", 242},
+  {"Size (in MB): ", 243},
+  {"Beginning", 244},
+  {"Add partition at beginning of free space", 245},
+  {"End", 246},
+  {"Add partition at end of free space", 247},
+  {"No room to create the extended partition", 248},
+  {"Bad signature on partition table", 249},
+  {"You specified more cylinders than fit on disk", 250},
+  {"Cannot open disk drive", 251},
+  {"Opened disk read-only - you have no permission to write", 252},
+  {"Cannot get disk size", 253},
+  {"Bad primary partition", 254},
+  {"Bad logical partition", 255},
+  {"Warning!!  This may destroy data on your disk!", 256},
+  {"Are you sure you want write the partition table to disk? (yes or no): ", 257},
+  {"no", 258},
+  {"Did not write partition table to disk", 259},
+  {"yes", 260},
+  {"Please enter `yes' or `no'", 261},
+  {"Writing partition table to disk...", 262},
+  {"Wrote partition table to disk", 263},
+  {"\
+Wrote partition table, but re-read table failed.  Reboot to update table.", 264},
+  {"\
+Not precisely one primary partition is bootable. DOS MBR cannot boot this.", 265},
+  {"Enter filename or press RETURN to display on screen: ", 266},
+  {"Cannot open file '%s'", 267},
+  {"Disk Drive: %s\n", 268},
+  {"Sector 0:\n", 269},
+  {"Sector %d:\n", 270},
+  {"   None   ", 271},
+  {"   Pri/Log", 272},
+  {"   Primary", 273},
+  {"   Logical", 274},
+  {"Unknown", 275},
+  {"Boot (%02X)", 276},
+  {"Unknown (%02X)", 277},
+  {"None (%02X)", 278},
+  {"Partition Table for %s\n", 279},
+  {"            First    Last\n", 280},
+  {"\
+ # Type     Sector   Sector   Offset  Length   Filesystem Type (ID)   Flags\n", 281},
+  {"\
+-- ------- -------- --------- ------ --------- ---------------------- \
+---------\n", 282},
+  {"         ---Starting---      ----Ending----    Start Number of\n", 283},
+  {" # Flags Head Sect Cyl   ID  Head Sect Cyl    Sector  Sectors\n", 284},
+  {"-- ----- ---- ---- ---- ---- ---- ---- ---- -------- ---------\n", 285},
+  {"Raw", 286},
+  {"Print the table using raw data format", 287},
+  {"Sectors", 288},
+  {"Print the table ordered by sectors", 289},
+  {"Table", 290},
+  {"Just print the partition table", 291},
+  {"Don't print the table", 292},
+  {"Help Screen for cfdisk", 293},
+  {"This is cfdisk, a curses based disk partitioning program, which", 294},
+  {"allows you to create, delete and modify partitions on your hard", 295},
+  {"disk drive.", 296},
+  {"Copyright (C) 1994-1999 Kevin E. Martin & aeb", 297},
+  {"Command      Meaning", 298},
+  {"-------      -------", 299},
+  {"  b          Toggle bootable flag of the current partition", 300},
+  {"  d          Delete the current partition", 301},
+  {"  g          Change cylinders, heads, sectors-per-track parameters", 302},
+  {"             WARNING: This option should only be used by people who", 303},
+  {"             know what they are doing.", 304},
+  {"  h          Print this screen", 305},
+  {"  m          Maximize disk usage of the current partition", 306},
+  {"             Note: This may make the partition incompatible with", 307},
+  {"             DOS, OS/2, ...", 308},
+  {"  n          Create new partition from free space", 309},
+  {"  p          Print partition table to the screen or to a file", 310},
+  {"             There are several different formats for the partition", 311},
+  {"             that you can choose from:", 312},
+  {"                r - Raw data (exactly what would be written to disk)", 313},
+  {"                s - Table ordered by sectors", 314},
+  {"                t - Table in raw format", 315},
+  {"  q          Quit program without writing partition table", 316},
+  {"  t          Change the filesystem type", 317},
+  {"  u          Change units of the partition size display", 318},
+  {"             Rotates through MB, sectors and cylinders", 319},
+  {"  W          Write partition table to disk (must enter upper case W)", 320},
+  {"             Since this might destroy data on the disk, you must", 321},
+  {"             either confirm or deny the write by entering `yes' or", 322},
+  {"             `no'", 323},
+  {"Up Arrow     Move cursor to the previous partition", 324},
+  {"Down Arrow   Move cursor to the next partition", 325},
+  {"CTRL-L       Redraws the screen", 326},
+  {"  ?          Print this screen", 327},
+  {"Note: All of the commands can be entered with either upper or lower", 328},
+  {"case letters (except for Writes).", 329},
+  {"Cylinders", 330},
+  {"Change cylinder geometry", 331},
+  {"Heads", 332},
+  {"Change head geometry", 333},
+  {"Change sector geometry", 334},
+  {"Done", 335},
+  {"Done with changing geometry", 336},
+  {"Enter the number of cylinders: ", 337},
+  {"Illegal cylinders value", 338},
+  {"Enter the number of heads: ", 339},
+  {"Illegal heads value", 340},
+  {"Enter the number of sectors per track: ", 341},
+  {"Illegal sectors value", 342},
+  {"Enter filesystem type: ", 343},
+  {"Cannot change FS Type to empty", 344},
+  {"Cannot change FS Type to extended", 345},
+  {"Boot", 346},
+  {"Unk(%02X)", 347},
+  {", NC", 348},
+  {"NC", 349},
+  {"Pri/Log", 350},
+  {"Disk Drive: %s", 351},
+  {"Size: %lld bytes", 352},
+  {"Heads: %d   Sectors per Track: %d   Cylinders: %d", 353},
+  {"Name", 354},
+  {"Flags", 355},
+  {"Part Type", 356},
+  {"FS Type", 357},
+  {"[Label]", 358},
+  {"  Sectors", 359},
+  {"Size (MB)", 360},
+  {"Size (GB)", 361},
+  {"Bootable", 362},
+  {"Toggle bootable flag of the current partition", 363},
+  {"Delete", 364},
+  {"Delete the current partition", 365},
+  {"Geometry", 366},
+  {"Change disk geometry (experts only)", 367},
+  {"Help", 368},
+  {"Print help screen", 369},
+  {"Maximize", 370},
+  {"Maximize disk usage of the current partition (experts only)", 371},
+  {"New", 372},
+  {"Create new partition from free space", 373},
+  {"Print", 374},
+  {"Print partition table to the screen or to a file", 375},
+  {"Quit", 376},
+  {"Quit program without writing partition table", 377},
+  {"Type", 378},
+  {"Change the filesystem type (DOS, Linux, OS/2 and so on)", 379},
+  {"Units", 380},
+  {"Change units of the partition size display (MB, sect, cyl)", 381},
+  {"Write", 382},
+  {"Write partition table to disk (this might destroy data)", 383},
+  {"Cannot make this partition bootable", 384},
+  {"Cannot delete an empty partition", 385},
+  {"Cannot maximize this partition", 386},
+  {"This partition is unusable", 387},
+  {"This partition is already in use", 388},
+  {"Cannot change the type of an empty partition", 389},
+  {"No more partitions", 390},
+  {"Illegal command", 391},
+  {"Copyright (C) 1994-1999 Kevin E. Martin & aeb\n", 392},
+  {"\
+\n\
+Usage:\n\
+Print version:\n\
+        %s -v\n\
+Print partition table:\n\
+        %s -P {r|s|t} [options] device\n\
+Interactive use:\n\
+        %s [options] device\n\
+\n\
+Options:\n\
+-a: Use arrow instead of highlighting;\n\
+-z: Start with a zero partition table, instead of reading the pt from disk;\n\
+-c C -h H -s S: Override the kernel's idea of the number of cylinders,\n\
+                the number of heads and the number of sectors/track.\n\
+\n", 393},
+  {"\
+Usage: fdisk [-b SSZ] [-u] DISK     Change partition table\n\
+       fdisk -l [-b SSZ] [-u] DISK  List partition table(s)\n\
+       fdisk -s PARTITION           Give partition size(s) in blocks\n\
+       fdisk -v                     Give fdisk version\n\
+Here DISK is something like /dev/hdb or /dev/sda\n\
+and PARTITION is something like /dev/hda7\n\
+-u: give Start and End in sector (instead of cylinder) units\n\
+-b 2048: (for certain MO drives) use 2048-byte sectors\n", 394},
+  {"\
+Usage: fdisk [-l] [-b SSZ] [-u] device\n\
+E.g.: fdisk /dev/hda  (for the first IDE disk)\n\
+  or: fdisk /dev/sdc  (for the third SCSI disk)\n\
+  or: fdisk /dev/eda  (for the first PS/2 ESDI drive)\n\
+  or: fdisk /dev/rd/c0d0  or: fdisk /dev/ida/c0d0  (for RAID devices)\n\
+  ...\n", 395},
+  {"A disk block device is needed.\n", 396},
+  {"\
+Given name does not refer to a partition,\n\
+or maybe not even to a block device.\n", 397},
+  {"Unable to open %s\n", 398},
+  {"Unable to read %s\n", 399},
+  {"Unable to seek on %s\n", 400},
+  {"Unable to write %s\n", 401},
+  {"BLKGETSIZE ioctl failed on %s\n", 402},
+  {"Unable to allocate any more memory\n", 403},
+  {"Fatal error\n", 404},
+  {"Command action", 405},
+  {"   a   toggle a read only flag", 406},
+  {"   b   edit bsd disklabel", 407},
+  {"   c   toggle the mountable flag", 408},
+  {"   d   delete a partition", 409},
+  {"   l   list known partition types", 410},
+  {"   m   print this menu", 411},
+  {"   n   add a new partition", 412},
+  {"   o   create a new empty DOS partition table", 413},
+  {"   p   print the partition table", 414},
+  {"   q   quit without saving changes", 415},
+  {"   s   create a new empty Sun disklabel", 416},
+  {"   t   change a partition's system id", 417},
+  {"   u   change display/entry units", 418},
+  {"   v   verify the partition table", 419},
+  {"   w   write table to disk and exit", 420},
+  {"   x   extra functionality (experts only)", 421},
+  {"   a   select bootable partition", 422},
+  {"   b   edit bootfile entry", 423},
+  {"   c   select sgi swap partition", 424},
+  {"   a   toggle a bootable flag", 425},
+  {"   c   toggle the dos compatibility flag", 426},
+  {"   a   change number of alternate cylinders", 427},
+  {"   c   change number of cylinders", 428},
+  {"   d   print the raw data in the partition table", 429},
+  {"   e   change number of extra sectors per cylinder", 430},
+  {"   h   change number of heads", 431},
+  {"   i   change interleave factor", 432},
+  {"   o   change rotation speed (rpm)", 433},
+  {"   r   return to main menu", 434},
+  {"   s   change number of sectors/track", 435},
+  {"   y   change number of physical cylinders", 436},
+  {"   b   move beginning of data in a partition", 437},
+  {"   e   list extended partitions", 438},
+  {"   g   create an IRIX partition table", 439},
+  {"You must set", 440},
+  {"heads", 441},
+  {"sectors", 442},
+  {"cylinders", 443},
+  {"\
+%s%s.\n\
+You can do this from the extra functions menu.\n", 444},
+  {" and ", 445},
+  {"Bad offset in primary extended partition\n", 446},
+  {"Warning: deleting partitions after %d\n", 447},
+  {"Warning: extra link pointer in partition table %d\n", 448},
+  {"Warning: ignoring extra data in partition table %d\n", 449},
+  {"\
+Building a new DOS disklabel. Changes will remain in memory only,\n\
+until you decide to write them. After that, of course, the previous\n\
+content won't be recoverable.\n\
+\n", 450},
+  {"You will not be able to write the partition table.\n", 451},
+  {"Note: sector size is %d (not %d)\n", 452},
+  {"\
+Device contains neither a valid DOS partition table, nor Sun or SGI \
+disklabel\n", 453},
+  {"Internal error\n", 454},
+  {"Ignoring extra extended partition %d\n", 455},
+  {"\
+Warning: invalid flag 0x%04x of partition table %d will be corrected by \
+w(rite)\n", 456},
+  {"\
+\n\
+got EOF thrice - exiting..\n", 457},
+  {"Hex code (type L to list codes): ", 458},
+  {"%s (%d-%d, default %d): ", 459},
+  {"Using default value %d\n", 460},
+  {"Value out of range.\n", 461},
+  {"Partition number", 462},
+  {"Warning: partition %d has empty type\n", 463},
+  {"cylinder", 464},
+  {"sector", 465},
+  {"Changing display/entry units to %s\n", 466},
+  {"WARNING: Partition %d is an extended partition\n", 467},
+  {"DOS Compatibility flag is set\n", 468},
+  {"DOS Compatibility flag is not set\n", 469},
+  {"Partition %d does not exist yet!\n", 470},
+  {"\
+Type 0 means free space to many systems\n\
+(but not to Linux). Having partitions of\n\
+type 0 is probably unwise. You can delete\n\
+a partition using the `d' command.\n", 471},
+  {"\
+You cannot change a partition into an extended one or vice versa\n\
+Delete it first.\n", 472},
+  {"\
+Consider leaving partition 3 as Whole disk (5),\n\
+as SunOS/Solaris expects it and even Linux likes it.\n\
+\n", 473},
+  {"\
+Consider leaving partition 9 as volume header (0),\n\
+and partition 11 as entire volume (6)as IRIX expects it.\n\
+\n", 474},
+  {"Changed system type of partition %d to %x (%s)\n", 475},
+  {"Partition %d has different physical/logical beginnings (non-Linux?):\n", 476},
+  {"     phys=(%d, %d, %d) ", 477},
+  {"logical=(%d, %d, %d)\n", 478},
+  {"Partition %d has different physical/logical endings:\n", 479},
+  {"Partition %i does not start on cylinder boundary:\n", 480},
+  {"should be (%d, %d, 1)\n", 481},
+  {"Partition %i does not end on cylinder boundary:\n", 482},
+  {"should be (%d, %d, %d)\n", 483},
+  {"\
+\n\
+Disk %s: %d heads, %d sectors, %d cylinders\n\
+Units = %s of %d * %d bytes\n\
+\n", 484},
+  {"%*s Boot    Start       End    Blocks   Id  System\n", 485},
+  {"Device", 486},
+  {"\
+\n\
+Disk %s: %d heads, %d sectors, %d cylinders\n\
+\n", 487},
+  {"Nr AF  Hd Sec  Cyl  Hd Sec  Cyl   Start    Size ID\n", 488},
+  {"Warning: partition %d contains sector 0\n", 489},
+  {"Partition %d: head %d greater than maximum %d\n", 490},
+  {"Partition %d: sector %d greater than maximum %d\n", 491},
+  {"Partitions %d: cylinder %d greater than maximum %d\n", 492},
+  {"Partition %d: previous sectors %d disagrees with total %d\n", 493},
+  {"Warning: bad start-of-data in partition %d\n", 494},
+  {"Warning: partition %d overlaps partition %d.\n", 495},
+  {"Warning: partition %d is empty\n", 496},
+  {"Logical partition %d not entirely in partition %d\n", 497},
+  {"Total allocated sectors %d greater than the maximum %d\n", 498},
+  {"%d unallocated sectors\n", 499},
+  {"Partition %d is already defined.  Delete it before re-adding it.\n", 500},
+  {"First %s", 501},
+  {"Sector %d is already allocated\n", 502},
+  {"No free sectors available\n", 503},
+  {"Last %s or +size or +sizeM or +sizeK", 504},
+  {"Warning: partition %d has an odd number of sectors.\n", 505},
+  {"The maximum number of partitions has been created\n", 506},
+  {"You must delete some partition and add an extended partition first\n", 507},
+  {"\
+Command action\n\
+   %s\n\
+   p   primary partition (1-4)\n", 508},
+  {"l   logical (5 or over)", 509},
+  {"e   extended", 510},
+  {"Invalid partition number for type `%c'\n", 511},
+  {"\
+The partition table has been altered!\n\
+\n", 512},
+  {"Calling ioctl() to re-read partition table.\n", 513},
+  {"Syncing disks.\n", 514},
+  {"\
+Re-read table failed with error %d: %s.\n\
+Reboot your system to ensure the partition table is updated.\n", 515},
+  {"\
+\n\
+WARNING: If you have created or modified any DOS 6.x\n\
+partitions, please see the fdisk manual page for additional\n\
+information.\n", 516},
+  {"Device: %s\n", 517},
+  {"Partition %d has no data area\n", 518},
+  {"New beginning of data", 519},
+  {"Expert command (m for help): ", 520},
+  {"Number of cylinders", 521},
+  {"Number of heads", 522},
+  {"Number of sectors", 523},
+  {"Warning: setting sector offset for DOS compatiblity\n", 524},
+  {"Disk %s doesn't contain a valid partition table\n", 525},
+  {"Cannot open %s\n", 526},
+  {"This kernel finds the sector size itself - -b option ignored\n", 527},
+  {"\
+Warning: the -b (set sector size) option should be used with one specified \
+device\n", 528},
+  {"Command (m for help): ", 529},
+  {"\
+\n\
+The current boot file is: %s\n", 530},
+  {"Please enter the name of the new boot file: ", 531},
+  {"Boot file unchanged\n", 532},
+  {"\
+\n\
+\tSorry, no experts menu for SGI partition tables available.\n\
+\n", 533},
+  {"\
+\n\
+\tThere is a valid AIX label on this disk.\n\
+\tUnfortunately Linux cannot handle these\n\
+\tdisks at the moment.  Nevertheless some\n\
+\tadvice:\n\
+\t1. fdisk will destroy its contents on write.\n\
+\t2. Be sure that this disk is NOT a still vital\n\
+\t   part of a volume group. (Otherwise you may\n\
+\t   erase the other disks as well, if unmirrored.)\n\
+\t3. Before deleting this physical volume be sure\n\
+\t   to remove the disk logically from your AIX\n\
+\t   machine.  (Otherwise you become an AIXpert).", 534},
+  {"\
+\n\
+BSD label for device: %s\n", 535},
+  {"   d   delete a BSD partition", 536},
+  {"   e   edit drive data", 537},
+  {"   i   install bootstrap", 538},
+  {"   l   list known filesystem types", 539},
+  {"   n   add a new BSD partition", 540},
+  {"   p   print BSD partition table", 541},
+  {"   s   show complete disklabel", 542},
+  {"   t   change a partition's filesystem id", 543},
+  {"   w   write disklabel to disk", 544},
+  {"   x   link BSD partition to non-BSD partition", 545},
+  {"Partition %s%d has invalid starting sector 0.\n", 546},
+  {"Reading disklabel of %s%d at sector %d.\n", 547},
+  {"There is no *BSD partition on %s.\n", 548},
+  {"BSD disklabel command (m for help): ", 549},
+  {"type: %s\n", 550},
+  {"type: %d\n", 551},
+  {"disk: %.*s\n", 552},
+  {"label: %.*s\n", 553},
+  {"flags:", 554},
+  {" removable", 555},
+  {" ecc", 556},
+  {" badsect", 557},
+  {"bytes/sector: %ld\n", 558},
+  {"sectors/track: %ld\n", 559},
+  {"tracks/cylinder: %ld\n", 560},
+  {"sectors/cylinder: %ld\n", 561},
+  {"cylinders: %ld\n", 562},
+  {"rpm: %d\n", 563},
+  {"interleave: %d\n", 564},
+  {"trackskew: %d\n", 565},
+  {"cylinderskew: %d\n", 566},
+  {"headswitch: %ld\t\t# milliseconds\n", 567},
+  {"track-to-track seek: %ld\t# milliseconds\n", 568},
+  {"drivedata: ", 569},
+  {"\
+\n\
+%d partitions:\n", 570},
+  {"#        size   offset    fstype   [fsize bsize   cpg]\n", 571},
+  {"Writing disklabel to %s%d.\n", 572},
+  {"Writing disklabel to %s.\n", 573},
+  {"%s%d contains no disklabel.\n", 574},
+  {"%s contains no disklabel.\n", 575},
+  {"Do you want to create a disklabel? (y/n) ", 576},
+  {"bytes/sector", 577},
+  {"sectors/track", 578},
+  {"tracks/cylinder", 579},
+  {"sectors/cylinder", 580},
+  {"Must be <= sectors/track * tracks/cylinder (default).\n", 581},
+  {"rpm", 582},
+  {"interleave", 583},
+  {"trackskew", 584},
+  {"cylinderskew", 585},
+  {"headswitch", 586},
+  {"track-to-track seek", 587},
+  {"Bootstrap: %sboot -> boot%s (%s): ", 588},
+  {"Bootstrap overlaps with disk label!\n", 589},
+  {"Bootstrap installed on %s%d.\n", 590},
+  {"Bootstrap installed on %s.\n", 591},
+  {"Partition (a-%c): ", 592},
+  {"This partition already exists.\n", 593},
+  {"Warning: too many partitions (%d, maximum is %d).\n", 594},
+  {"\
+\n\
+Syncing disks.\n", 595},
+  {"SGI volhdr", 596},
+  {"SGI trkrepl", 597},
+  {"SGI secrepl", 598},
+  {"SGI raw", 599},
+  {"SGI bsd", 600},
+  {"SGI sysv", 601},
+  {"SGI volume", 602},
+  {"SGI efs", 603},
+  {"SGI lvol", 604},
+  {"SGI rlvol", 605},
+  {"SGI xfs", 606},
+  {"SGI xlvol", 607},
+  {"SGI rxlvol", 608},
+  {"Linux swap", 609},
+  {"Linux native", 610},
+  {"\
+According to MIPS Computer Systems, Inc the Label must not contain more than \
+512 bytes\n", 611},
+  {"Detected sgi disklabel with wrong checksum.\n", 612},
+  {"\
+\n\
+Disk %s (SGI disk label): %d heads, %d sectors\n\
+%d cylinders, %d physical cylinders\n\
+%d extra sects/cyl, interleave %d:1\n\
+%s\n\
+Units = %s of %d * 512 bytes\n\
+\n", 613},
+  {"\
+\n\
+Disk %s (SGI disk label): %d heads, %d sectors, %d cylinders\n\
+Units = %s of %d * 512 bytes\n\
+\n", 614},
+  {"\
+----- partitions -----\n\
+%*s  Info      Start       End   Sectors  Id  System\n", 615},
+  {"\
+----- bootinfo -----\n\
+Bootfile: %s\n\
+----- directory entries -----\n", 616},
+  {"%2d: %-10s sector%5u size%8u\n", 617},
+  {"\
+\n\
+Invalid Bootfile!\n\
+\tThe bootfile must be an absolute non-zero pathname,\n\
+\te.g. \"/unix\" or \"/unix.save\".\n", 618},
+  {"\
+\n\
+\tName of Bootfile too long:  16 bytes maximum.\n", 619},
+  {"\
+\n\
+\tBootfile must have a fully qualified pathname.\n", 620},
+  {"\
+\n\
+\tBe aware, that the bootfile is not checked for existence.\n\
+\tSGI's default is \"/unix\" and for backup \"/unix.save\".\n", 621},
+  {"\
+\n\
+\tBootfile is changed to \"%s\".\n", 622},
+  {"More than one entire disk entry present.\n", 623},
+  {"No partitions defined\n", 624},
+  {"IRIX likes when Partition 11 covers the entire disk.\n", 625},
+  {"\
+The entire disk partition should start at block 0,\n\
+not at diskblock %d.\n", 626},
+  {"\
+The entire disk partition is only %d diskblock large,\n\
+but the disk is %d diskblocks long.\n", 627},
+  {"One Partition (#11) should cover the entire disk.\n", 628},
+  {"Partition %d does not start on cylinder boundary.\n", 629},
+  {"Partition %d does not end on cylinder boundary.\n", 630},
+  {"The Partition %d and %d overlap by %d sectors.\n", 631},
+  {"Unused gap of %8d sectors - sectors %8d-%d\n", 632},
+  {"\
+\n\
+The boot partition does not exist.\n", 633},
+  {"\
+\n\
+The swap partition does not exist.\n", 634},
+  {"\
+\n\
+The swap partition has no swap type.\n", 635},
+  {"\tYou have chosen an unusual boot file name.\n", 636},
+  {"Sorry You may change the Tag of non-empty partitions.\n", 637},
+  {"\
+It is highly recommended that the partition at offset 0\n\
+is of type \"SGI volhdr\", the IRIX system will rely on it to\n\
+retrieve from its directory standalone tools like sash and fx.\n\
+Only the \"SGI volume\" entire disk section may violate this.\n\
+Type YES if you are sure about tagging this partition differently.\n", 638},
+  {"Do You know, You got a partition overlap on the disk?\n", 639},
+  {"Attempting to generate entire disk entry automatically.\n", 640},
+  {"The entire disk is already covered with partitions.\n", 641},
+  {"You got a partition overlap on the disk. Fix it first!\n", 642},
+  {"\
+It is highly recommended that eleventh partition\n\
+covers the entire disk and is of type `SGI volume'\n", 643},
+  {"You will get a partition overlap on the disk. Fix it first!\n", 644},
+  {" Last %s", 645},
+  {"\
+Building a new SGI disklabel. Changes will remain in memory only,\n\
+until you decide to write them. After that, of course, the previous\n\
+content will be unrecoverable lost.\n\
+\n", 646},
+  {"Trying to keep parameters of partition %d.\n", 647},
+  {"ID=%02x\tSTART=%d\tLENGTH=%d\n", 648},
+  {"Empty", 649},
+  {"SunOS root", 650},
+  {"SunOS swap", 651},
+  {"SunOS usr", 652},
+  {"Whole disk", 653},
+  {"SunOS stand", 654},
+  {"SunOS var", 655},
+  {"SunOS home", 656},
+  {"\
+Detected sun disklabel with wrong checksum.\n\
+Probably you'll have to set all the values,\n\
+e.g. heads, sectors, cylinders and partitions\n\
+or force a fresh label (s command in main menu)\n", 657},
+  {"Autoconfigure found a %s%s%s\n", 658},
+  {"\
+Building a new sun disklabel. Changes will remain in memory only,\n\
+until you decide to write them. After that, of course, the previous\n\
+content won't be recoverable.\n\
+\n", 659},
+  {"\
+Drive type\n\
+   ?   auto configure\n\
+   0   custom (with hardware detected defaults)", 660},
+  {"Select type (? for auto, 0 for custom): ", 661},
+  {"Autoconfigure failed.\n", 662},
+  {"Sectors/track", 663},
+  {"Alternate cylinders", 664},
+  {"Physical cylinders", 665},
+  {"Rotation speed (rpm)", 666},
+  {"Interleave factor", 667},
+  {"Extra sectors per cylinder", 668},
+  {"You may change all the disk params from the x menu", 669},
+  {"3,5\" floppy", 670},
+  {"Linux custom", 671},
+  {"Partition %d doesn't end on cylinder boundary\n", 672},
+  {"Partition %d overlaps with others in sectors %d-%d\n", 673},
+  {"Unused gap - sectors 0-%d\n", 674},
+  {"Unused gap - sectors %d-%d\n", 675},
+  {"\
+Other partitions already cover the whole disk.\n\
+Delete some/shrink them before retry.\n", 676},
+  {"\
+You haven't covered the whole disk with the 3rd partition, but your value\n\
+%d %s covers some other partition. Your entry has been changed\n\
+to %d %s\n", 677},
+  {"\
+If you want to maintain SunOS/Solaris compatibility, consider leaving this\n\
+partition as Whole disk (5), starting at 0, with %u sectors\n", 678},
+  {"\
+It is highly recommended that the partition at offset 0\n\
+is UFS, EXT2FS filesystem or SunOS swap. Putting Linux swap\n\
+there may destroy your partition table and bootblock.\n\
+Type YES if you're very sure you would like that partition\n\
+tagged with 82 (Linux swap): ", 679},
+  {"\
+\n\
+Disk %s (Sun disk label): %d heads, %d sectors, %d rpm\n\
+%d cylinders, %d alternate cylinders, %d physical cylinders\n\
+%d extra sects/cyl, interleave %d:1\n\
+%s\n\
+Units = %s of %d * 512 bytes\n\
+\n", 680},
+  {"\
+\n\
+Disk %s (Sun disk label): %d heads, %d sectors, %d cylinders\n\
+Units = %s of %d * 512 bytes\n\
+\n", 681},
+  {"%*s Flag    Start       End    Blocks   Id  System\n", 682},
+  {"Number of alternate cylinders", 683},
+  {"Number of physical cylinders", 684},
+  {"FAT12", 685},
+  {"XENIX root", 686},
+  {"XENIX usr", 687},
+  {"FAT16 <32M", 688},
+  {"Extended", 689},
+  {"FAT16", 690},
+  {"HPFS/NTFS", 691},
+  {"AIX", 692},
+  {"AIX bootable", 693},
+  {"OS/2 Boot Manager", 694},
+  {"Win95 FAT32", 695},
+  {"Win95 FAT32 (LBA)", 696},
+  {"Win95 FAT16 (LBA)", 697},
+  {"Win95 Ext'd (LBA)", 698},
+  {"OPUS", 699},
+  {"Hidden FAT12", 700},
+  {"Compaq diagnostics", 701},
+  {"Hidden FAT16 <32M", 702},
+  {"Hidden FAT16", 703},
+  {"Hidden HPFS/NTFS", 704},
+  {"AST Windows swapfile", 705},
+  {"Hidden Win95 FAT32", 706},
+  {"Hidden Win95 FAT32 (LBA)", 707},
+  {"Hidden Win95 FAT16 (LBA)", 708},
+  {"NEC DOS", 709},
+  {"PartitionMagic recovery", 710},
+  {"Venix 80286", 711},
+  {"PPC PReP Boot", 712},
+  {"SFS", 713},
+  {"QNX4.x", 714},
+  {"QNX4.x 2nd part", 715},
+  {"QNX4.x 3rd part", 716},
+  {"OnTrack DM", 717},
+  {"OnTrack DM6 Aux1", 718},
+  {"CP/M", 719},
+  {"OnTrack DM6 Aux3", 720},
+  {"OnTrackDM6", 721},
+  {"EZ-Drive", 722},
+  {"Golden Bow", 723},
+  {"Priam Edisk", 724},
+  {"SpeedStor", 725},
+  {"GNU HURD or SysV", 726},
+  {"Novell Netware 286", 727},
+  {"Novell Netware 386", 728},
+  {"DiskSecure Multi-Boot", 729},
+  {"PC/IX", 730},
+  {"Old Minix", 731},
+  {"Minix / old Linux", 732},
+  {"OS/2 hidden C: drive", 733},
+  {"Linux extended", 734},
+  {"NTFS volume set", 735},
+  {"Amoeba", 736},
+  {"Amoeba BBT", 737},
+  {"IBM Thinkpad hibernation", 738},
+  {"BSD/386", 739},
+  {"OpenBSD", 740},
+  {"NeXTSTEP", 741},
+  {"BSDI fs", 742},
+  {"BSDI swap", 743},
+  {"DRDOS/sec (FAT-12)", 744},
+  {"DRDOS/sec (FAT-16 < 32M)", 745},
+  {"DRDOS/sec (FAT-16)", 746},
+  {"Syrinx", 747},
+  {"CP/M / CTOS / ...", 748},
+  {"DOS access", 749},
+  {"DOS R/O", 750},
+  {"BeOS fs", 751},
+  {"DOS secondary", 752},
+  {"Linux raid autodetect", 753},
+  {"LANstep", 754},
+  {"BBT", 755},
+  {"seek error on %s - cannot seek to %lu\n", 756},
+  {"seek error: wanted 0x%08x%08x, got 0x%08x%08x\n", 757},
+  {"out of memory - giving up\n", 758},
+  {"read error on %s - cannot read sector %lu\n", 759},
+  {"ERROR: sector %lu does not have an msdos signature\n", 760},
+  {"write error on %s - cannot write sector %lu\n", 761},
+  {"cannot open partition sector save file (%s)\n", 762},
+  {"write error on %s\n", 763},
+  {"cannot stat partition restore file (%s)\n", 764},
+  {"partition restore file has wrong size - not restoring\n", 765},
+  {"out of memory?\n", 766},
+  {"cannot open partition restore file (%s)\n", 767},
+  {"error reading %s\n", 768},
+  {"cannot open device %s for writing\n", 769},
+  {"error writing sector %lu on %s\n", 770},
+  {"\
+Warning: start=%d - this looks like a partition rather than\n\
+the entire disk. Using fdisk on it is probably meaningless.\n\
+[Use the --force option if you really want this]\n", 771},
+  {"Warning: HDIO_GETGEO says that there are %d heads\n", 772},
+  {"Warning: HDIO_GETGEO says that there are %d sectors\n", 773},
+  {"Warning: HDIO_GETGEO says that there are %d cylinders\n", 774},
+  {"Disk %s: cannot get geometry\n", 775},
+  {"\
+Warning: unlikely number of sectors (%d) - usually at most 63\n\
+This will give problems with all software that uses C/H/S addressing.\n", 776},
+  {"\
+\n\
+Disk %s: %lu cylinders, %lu heads, %lu sectors/track\n", 777},
+  {"\
+%s of partition %s has impossible value for head: %d (should be in 0-%d)\n", 778},
+  {"\
+%s of partition %s has impossible value for sector: %d (should be in 1-%d)\n", 779},
+  {"\
+%s of partition %s has impossible value for cylinders: %d (should be in \
+0-%d)\n", 780},
+  {"\
+Id  Name\n\
+\n", 781},
+  {"Re-reading the partition table ...\n", 782},
+  {"\
+The command to re-read the partition table failed\n\
+Reboot your system now, before using mkfs\n", 783},
+  {"Error closing %s\n", 784},
+  {"%s: no such partition\n", 785},
+  {"unrecognized format - using sectors\n", 786},
+  {"# partition table of %s\n", 787},
+  {"\
+unit: sectors\n\
+\n", 788},
+  {"unimplemented format - using %s\n", 789},
+  {"\
+Units = cylinders of %lu bytes, blocks of 1024 bytes, counting from %d\n\
+\n", 790},
+  {"   Device Boot Start     End   #cyls   #blocks   Id  System\n", 791},
+  {"\
+Units = sectors of 512 bytes, counting from %d\n\
+\n", 792},
+  {"   Device Boot    Start       End  #sectors  Id  System\n", 793},
+  {"\
+Units = blocks of 1024 bytes, counting from %d\n\
+\n", 794},
+  {"   Device Boot   Start       End   #blocks   Id  System\n", 795},
+  {"\
+Units = megabytes of 1048576 bytes, blocks of 1024 bytes, counting from %d\n\
+\n", 796},
+  {"   Device Boot Start   End     MB   #blocks   Id  System\n", 797},
+  {" start=%9lu", 798},
+  {", size=%8lu", 799},
+  {", Id=%2x", 800},
+  {", bootable", 801},
+  {"\t\tstart: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n", 802},
+  {"\t\tend: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n", 803},
+  {"partition ends on cylinder %ld, beyond the end of the disk\n", 804},
+  {"No partitions found\n", 805},
+  {"\
+Warning: The first partition looks like it was made\n\
+  for C/H/S=*/%ld/%ld (instead of %ld/%ld/%ld).\n\
+For this listing I'll assume that geometry.\n", 806},
+  {"no partition table present.\n", 807},
+  {"strange, only %d partitions defined.\n", 808},
+  {"Warning: partition %s has size 0 but is not marked Empty\n", 809},
+  {"Warning: partition %s has size 0 and is bootable\n", 810},
+  {"Warning: partition %s has size 0 and nonzero start\n", 811},
+  {"Warning: partition %s ", 812},
+  {"is not contained in partition %s\n", 813},
+  {"Warning: partitions %s ", 814},
+  {"and %s overlap\n", 815},
+  {"Warning: partition %s contains part of ", 816},
+  {"the partition table (sector %lu),\n", 817},
+  {"and will destroy it when filled\n", 818},
+  {"Warning: partition %s starts at sector 0\n", 819},
+  {"Warning: partition %s extends past end of disk\n", 820},
+  {"Among the primary partitions, at most one can be extended\n", 821},
+  {" (although this is not a problem under Linux)\n", 822},
+  {"Warning: partition %s does not start at a cylinder boundary\n", 823},
+  {"Warning: partition %s does not end at a cylinder boundary\n", 824},
+  {"\
+Warning: more than one primary partition is marked bootable (active)\n\
+This does not matter for LILO, but the DOS MBR will not boot this disk.\n", 825},
+  {"\
+Warning: usually one can boot from primary partitions only\n\
+LILO disregards the `bootable' flag.\n", 826},
+  {"\
+Warning: no primary partition is marked bootable (active)\n\
+This does not matter for LILO, but the DOS MBR will not boot this disk.\n", 827},
+  {"\
+partition %s: start: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n", 828},
+  {"partition %s: end: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n", 829},
+  {"partition %s ends on cylinder %ld, beyond the end of the disk\n", 830},
+  {"too many partitions - ignoring those past nr (%d)\n", 831},
+  {"tree of partitions?\n", 832},
+  {"detected Disk Manager - unable to handle that\n", 833},
+  {"DM6 signature found - giving up\n", 834},
+  {"strange..., an extended partition of size 0?\n", 835},
+  {"strange..., a BSD partition of size 0?\n", 836},
+  {" %s: unrecognized partition\n", 837},
+  {"-n flag was given: Nothing changed\n", 838},
+  {"Failed saving the old sectors - aborting\n", 839},
+  {"Failed writing the partition on %s\n", 840},
+  {"long or incomplete input line - quitting\n", 841},
+  {"input error: `=' expected after %s field\n", 842},
+  {"input error: unexpected character %c after %s field\n", 843},
+  {"unrecognized input: %s\n", 844},
+  {"number too big\n", 845},
+  {"trailing junk after number\n", 846},
+  {"no room for partition descriptor\n", 847},
+  {"cannot build surrounding extended partition\n", 848},
+  {"too many input fields\n", 849},
+  {"No room for more\n", 850},
+  {"Illegal type\n", 851},
+  {"Warning: exceeds max allowable size (%lu)\n", 852},
+  {"Warning: empty partition\n", 853},
+  {"Warning: bad partition start (earliest %lu)\n", 854},
+  {"unrecognized bootable flag - choose - or *\n", 855},
+  {"partial c,h,s specification?\n", 856},
+  {"Extended partition not where expected\n", 857},
+  {"bad input\n", 858},
+  {"too many partitions\n", 859},
+  {"\
+Input in the following format; absent fields get a default value.\n\
+<start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s>\n\
+Usually you only need to specify <start> and <size> (and perhaps <type>).\n", 860},
+  {"version", 861},
+  {"Usage: %s [options] device ...\n", 862},
+  {"device: something like /dev/hda or /dev/sda", 863},
+  {"useful options:", 864},
+  {"    -s [or --show-size]: list size of a partition", 865},
+  {"    -c [or --id]:        print or change partition Id", 866},
+  {"    -l [or --list]:      list partitions of each device", 867},
+  {"    -d [or --dump]:      idem, but in a format suitable for later input", 868},
+  {"    -i [or --increment]: number cylinders etc. from 1 instead of from 0", 869},
+  {"\
+    -uS, -uB, -uC, -uM:  accept/report in units of \
+sectors/blocks/cylinders/MB", 870},
+  {"    -T [or --list-types]:list the known partition types", 871},
+  {"    -D [or --DOS]:       for DOS-compatibility: waste a little space", 872},
+  {"    -R [or --re-read]:   make kernel reread partition table", 873},
+  {"    -N# :                change only the partition with number #", 874},
+  {"    -n :                 do not actually write to disk", 875},
+  {"\
+    -O file :            save the sectors that will be overwritten to file", 876},
+  {"    -I file :            restore these sectors again", 877},
+  {"    -v [or --version]:   print version", 878},
+  {"    -? [or --help]:      print this message", 879},
+  {"dangerous options:", 880},
+  {"    -g [or --show-geometry]: print the kernel's idea of the geometry", 881},
+  {"\
+    -x [or --show-extended]: also list extended partitions on output\n\
+                             or expect descriptors for them on input", 882},
+  {"\
+    -L  [or --Linux]:      do not complain about things irrelevant for Linux", 883},
+  {"    -q  [or --quiet]:      suppress warning messages", 884},
+  {"    You can override the detected geometry using:", 885},
+  {"    -C# [or --cylinders #]:set the number of cylinders to use", 886},
+  {"    -H# [or --heads #]:    set the number of heads to use", 887},
+  {"    -S# [or --sectors #]:  set the number of sectors to use", 888},
+  {"You can disable all consistency checking with:", 889},
+  {"    -f  [or --force]:      do what I say, even if it is stupid", 890},
+  {"Usage:", 891},
+  {"%s device\t\t list active partitions on device\n", 892},
+  {"%s device n1 n2 ... activate partitions n1 ..., inactivate the rest\n", 893},
+  {"%s -An device\t activate partition n, inactivate the other ones\n", 894},
+  {"no command?\n", 895},
+  {"total: %d blocks\n", 896},
+  {"usage: sfdisk --print-id device partition-number\n", 897},
+  {"usage: sfdisk --change-id device partition-number Id\n", 898},
+  {"usage: sfdisk --id device partition-number [Id]\n", 899},
+  {"can specify only one device (except with -l or -s)\n", 900},
+  {"cannot open %s %s\n", 901},
+  {"read-write", 902},
+  {"for reading", 903},
+  {"%s: OK\n", 904},
+  {"%s: %d cylinders, %d heads, %d sectors/track\n", 905},
+  {"%s: unknown geometry\n", 906},
+  {"BLKGETSIZE ioctl failed for %s\n", 907},
+  {"bad active byte: 0x%x instead of 0x80\n", 908},
+  {"\
+Done\n\
+\n", 909},
+  {"\
+You have %d active primary partitions. This does not matter for LILO,\n\
+but the DOS MBR will only boot a disk with 1 active partition.\n", 910},
+  {"partition %s has id %x and is not hidden\n", 911},
+  {"Bad Id %x\n", 912},
+  {"This disk is currently in use.\n", 913},
+  {"Fatal error: cannot find %s\n", 914},
+  {"Warning: %s is not a block device\n", 915},
+  {"Checking that no-one is using this disk right now ...\n", 916},
+  {"\
+\n\
+This disk is currently in use - repartitioning is probably a bad idea.Umount \
+all file systems, and swapoff all swap partitions on this disk.Use the \
+--no-reread flag to suppress this check.\n", 917},
+  {"Use the --force flag to overrule all checks.\n", 918},
+  {"OK", 919},
+  {"Old situation:\n", 920},
+  {"Partition %d does not exist, cannot change it\n", 921},
+  {"New situation:\n", 922},
+  {"\
+I don't like these partitions - nothing changed.\n\
+(If you really want this, use the --force option.)\n", 923},
+  {"I don't like this - probably you should answer No\n", 924},
+  {"Are you satisfied with this? [ynq] ", 925},
+  {"Do you want to write this to disk? [ynq] ", 926},
+  {"\
+\n\
+sfdisk: premature end of input\n", 927},
+  {"Quitting - nothing changed\n", 928},
+  {"Please answer one of y,n,q\n", 929},
+  {"\
+Successfully wrote the new partition table\n\
+\n", 930},
+  {"\
+If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)\n\
+to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1\n\
+(See fdisk(8).)\n", 931},
+  {"usage: banner [-w width]\n", 932},
+  {"Message: ", 933},
+  {"The character '%c' is not in my character set", 934},
+  {"Message '%s' is OK\n", 935},
+  {"Try `getopt --help' for more information.\n", 936},
+  {"empty long option after -l or --long argument", 937},
+  {"unknown shell after -s or --shell argument", 938},
+  {"Usage: getopt optstring parameters\n", 939},
+  {"       getopt [options] [--] optstring parameters\n", 940},
+  {"       getopt [options] -o|--options optstring [options] [--]\n", 941},
+  {"              parameters\n", 942},
+  {"\
+  -a, --alternative            Allow long options starting with single -\n", 943},
+  {"  -h, --help                   This small usage guide\n", 944},
+  {"  -l, --longoptions=longopts   Long options to be recognized\n", 945},
+  {"\
+  -n, --name=progname          The name under which errors are reported\n", 946},
+  {"  -o, --options=optstring      Short options to be recognized\n", 947},
+  {"  -q, --quiet                  Disable error reporting by getopt(3)\n", 948},
+  {"  -Q, --quiet-output           No normal output\n", 949},
+  {"  -s, --shell=shell            Set shell quoting conventions\n", 950},
+  {"  -T, --test                   Test for getopt(1) version\n", 951},
+  {"  -V, --version                Output version information\n", 952},
+  {"missing optstring argument", 953},
+  {"getopt (enhanced) 1.0.3\n", 954},
+  {"internal error, contact the author.", 955},
+  {"calling open_tty\n", 956},
+  {"calling termio_init\n", 957},
+  {"writing init string\n", 958},
+  {"before autobaud\n", 959},
+  {"waiting for cr-lf\n", 960},
+  {"read %c\n", 961},
+  {"reading login name\n", 962},
+  {"%s: can't exec %s: %m", 963},
+  {"can't malloc initstring", 964},
+  {"bad timeout value: %s", 965},
+  {"after getopt loop\n", 966},
+  {"exiting parseargs\n", 967},
+  {"entered parse_speeds\n", 968},
+  {"bad speed: %s", 969},
+  {"too many alternate speeds", 970},
+  {"exiting parsespeeds\n", 971},
+  {"%s: open for update: %m", 972},
+  {"%s: no utmp entry", 973},
+  {"/dev: chdir() failed: %m", 974},
+  {"/dev/%s: not a character device", 975},
+  {"open(2)\n", 976},
+  {"/dev/%s: cannot open as standard input: %m", 977},
+  {"%s: not open for read/write", 978},
+  {"duping\n", 979},
+  {"%s: dup problem: %m", 980},
+  {"term_io 2\n", 981},
+  {"user", 982},
+  {"users", 983},
+  {"%s: read: %m", 984},
+  {"%s: input overrun", 985},
+  {"\
+Usage: %s [-hiLmw] [-l login_program] [-t timeout] [-I initstring] \
+baud_rate,... line [termtype]\n\
+or\t[-hiLmw] [-l login_program] [-t timeout] [-I initstring] line \
+baud_rate,... [termtype]\n", 986},
+  {"badlogin: %s\n", 987},
+  {"sleepexit %d\n", 988},
+  {"login: memory low, login may fail\n", 989},
+  {"can't malloc for ttyclass", 990},
+  {"can't malloc for grplist", 991},
+  {"Login on %s from %s denied by default.\n", 992},
+  {"Login on %s from %s denied.\n", 993},
+  {"%s: you (user %d) don't exist.\n", 994},
+  {"%s: user \"%s\" does not exist.\n", 995},
+  {"%s: can only change local entries; use yp%s instead.\n", 996},
+  {"Changing finger information for %s.\n", 997},
+  {"Password error.", 998},
+  {"Password: ", 999},
+  {"Incorrect password.", 1000},
+  {"Finger information not changed.\n", 1001},
+  {"Usage: %s [ -f full-name ] [ -o office ] ", 1002},
+  {"\
+[ -p office-phone ]\n\
+\t[ -h home-phone ] ", 1003},
+  {"[ --help ] [ --version ]\n", 1004},
+  {"\
+\n\
+Aborted.\n", 1005},
+  {"field is too long.\n", 1006},
+  {"'%c' is not allowed.\n", 1007},
+  {"Control characters are not allowed.\n", 1008},
+  {"Finger information *NOT* changed.  Try again later.\n", 1009},
+  {"Finger information changed.\n", 1010},
+  {"malloc failed", 1011},
+  {"%s: Your shell is not in /etc/shells, shell change denied\n", 1012},
+  {"Changing shell for %s.\n", 1013},
+  {"New shell", 1014},
+  {"Shell not changed.\n", 1015},
+  {"Shell *NOT* changed.  Try again later.\n", 1016},
+  {"Shell changed.\n", 1017},
+  {"Usage: %s [ -s shell ] ", 1018},
+  {"[ --list-shells ] [ --help ] [ --version ]\n", 1019},
+  {"       [ username ]\n", 1020},
+  {"%s: shell must be a full path name.\n", 1021},
+  {"%s: \"%s\" does not exist.\n", 1022},
+  {"%s: \"%s\" is not executable.\n", 1023},
+  {"%s: '%c' is not allowed.\n", 1024},
+  {"%s: Control characters are not allowed.\n", 1025},
+  {"Warning: \"%s\" is not listed in /etc/shells\n", 1026},
+  {"%s: \"%s\" is not listed in /etc/shells.\n", 1027},
+  {"%s: use -l option to see list\n", 1028},
+  {"Warning: \"%s\" is not listed in /etc/shells.\n", 1029},
+  {"Use %s -l to see list.\n", 1030},
+  {"No known shells.\n", 1031},
+  {"couldn't open /dev/urandom", 1032},
+  {"couldn't read random data from /dev/urandom", 1033},
+  {"can't open %s for reading", 1034},
+  {"can't stat(%s)", 1035},
+  {"%s doesn't have the correct filemodes", 1036},
+  {"can't read data from %s", 1037},
+  {"Can't read %s, exiting.", 1038},
+  {"usage: last [-#] [-f file] [-t tty] [-h hostname] [user ...]\n", 1039},
+  {"  still logged in", 1040},
+  {"\
+\n\
+wtmp begins %s", 1041},
+  {"last: malloc failure.\n", 1042},
+  {"last: gethostname", 1043},
+  {"\
+\n\
+interrupted %10.10s %5.5s \n", 1044},
+  {"login: -h for super-user only.\n", 1045},
+  {"usage: login [-fp] [username]\n", 1046},
+  {"login: PAM Failure, aborting: %s\n", 1047},
+  {"Couldn't initialize PAM: %s", 1048},
+  {"FAILED LOGIN %d FROM %s FOR %s, %s", 1049},
+  {"\
+Login incorrect\n\
+\n", 1050},
+  {"TOO MANY LOGIN TRIES (%d) FROM %s FOR %s, %s", 1051},
+  {"FAILED LOGIN SESSION FROM %s FOR %s, %s", 1052},
+  {"\
+\n\
+Login incorrect\n", 1053},
+  {"Illegal username", 1054},
+  {"%s login refused on this terminal.\n", 1055},
+  {"LOGIN %s REFUSED FROM %s ON TTY %s", 1056},
+  {"LOGIN %s REFUSED ON TTY %s", 1057},
+  {"Login incorrect\n", 1058},
+  {"\
+Too many users logged on already.\n\
+Try again later.\n", 1059},
+  {"You have too many processes running.\n", 1060},
+  {"Warning: no Kerberos tickets issued\n", 1061},
+  {"Sorry -- your password has expired.\n", 1062},
+  {"Warning: your password expires on %s %d, %d\n", 1063},
+  {"Sorry -- your account has expired.\n", 1064},
+  {"Warning: your account expires on %s %d, %d\n", 1065},
+  {"DIALUP AT %s BY %s", 1066},
+  {"ROOT LOGIN ON %s FROM %s", 1067},
+  {"ROOT LOGIN ON %s", 1068},
+  {"LOGIN ON %s BY %s FROM %s", 1069},
+  {"LOGIN ON %s BY %s", 1070},
+  {"You have %smail.\n", 1071},
+  {"new ", 1072},
+  {"login: failure forking: %s", 1073},
+  {"setuid() failed", 1074},
+  {"No directory %s!\n", 1075},
+  {"Logging in with home = \"/\".\n", 1076},
+  {"login: no memory for shell script.\n", 1077},
+  {"login: couldn't exec shell script: %s.\n", 1078},
+  {"login: no shell: %s.\n", 1079},
+  {"\
+\n\
+%s login: ", 1080},
+  {"login name much too long.\n", 1081},
+  {"NAME too long", 1082},
+  {"login names may not start with '-'.\n", 1083},
+  {"too many bare linefeeds.\n", 1084},
+  {"EXCESSIVE linefeeds", 1085},
+  {"Login timed out after %d seconds\n", 1086},
+  {"Last login: %.*s ", 1087},
+  {"from %.*s\n", 1088},
+  {"on %.*s\n", 1089},
+  {"LOGIN FAILURE FROM %s, %s", 1090},
+  {"LOGIN FAILURE ON %s, %s", 1091},
+  {"%d LOGIN FAILURES FROM %s, %s", 1092},
+  {"%d LOGIN FAILURES ON %s, %s", 1093},
+  {"is y\n", 1094},
+  {"is n\n", 1095},
+  {"usage: mesg [y | n]\n", 1096},
+  {"newgrp: Who are you?", 1097},
+  {"newgrp: setgid", 1098},
+  {"newgrp: No such group.", 1099},
+  {"newgrp: Permission denied", 1100},
+  {"newgrp: setuid", 1101},
+  {"No shell", 1102},
+  {"The password must have at least 6 characters, try again.\n", 1103},
+  {"The password must contain characters out of two of the following\n", 1104},
+  {"classes:  upper and lower case letters, digits and non alphanumeric\n", 1105},
+  {"characters. See passwd(1) for more information.\n", 1106},
+  {"You cannot reuse the old password.\n", 1107},
+  {"Please don't use something like your username as password!\n", 1108},
+  {"Please don't use something like your realname as password!\n", 1109},
+  {"Usage: passwd [username [password]]\n", 1110},
+  {"Only root may use the one and two argument forms.\n", 1111},
+  {"Usage: passwd [-foqsvV] [user [password]]\n", 1112},
+  {"Can't exec %s: %s\n", 1113},
+  {"Cannot find login name", 1114},
+  {"Only root can change the password for others.\n", 1115},
+  {"Too many arguments.\n", 1116},
+  {"Can't find username anywhere. Is `%s' really a user?", 1117},
+  {"Sorry, I can only change local passwords. Use yppasswd instead.", 1118},
+  {"UID and username does not match, imposter!", 1119},
+  {"Changing password for %s\n", 1120},
+  {"Enter old password: ", 1121},
+  {"Illegal password, imposter.", 1122},
+  {"Enter new password: ", 1123},
+  {"Password not changed.", 1124},
+  {"Re-type new password: ", 1125},
+  {"You misspelled it. Password not changed.", 1126},
+  {"password changed, user %s", 1127},
+  {"ROOT PASSWORD CHANGED", 1128},
+  {"password changed by root, user %s", 1129},
+  {"calling setpwnam to set password.\n", 1130},
+  {"Password *NOT* changed.  Try again later.\n", 1131},
+  {"Password changed.\n", 1132},
+  {"Usage: shutdown [-h|-r] [-fqs] [now|hh:ss|+mins]\n", 1133},
+  {"Shutdown process aborted", 1134},
+  {"%s: Only root can shut a system down.\n", 1135},
+  {"That must be tomorrow, can't you wait till then?\n", 1136},
+  {"for maintenance; bounce, bounce", 1137},
+  {"timeout = %d, quiet = %d, reboot = %d\n", 1138},
+  {"The system is being shut down within 5 minutes", 1139},
+  {"Login is therefore prohibited.", 1140},
+  {"%s by %s: %s", 1141},
+  {"rebooted", 1142},
+  {"halted", 1143},
+  {"\
+\n\
+Why am I still alive after reboot?", 1144},
+  {"\
+\n\
+Now you can turn off the power...", 1145},
+  {"Calling kernel power-off facility...\n", 1146},
+  {"Error powering off\t%s\n", 1147},
+  {"Executing the program \"%s\" ...\n", 1148},
+  {"Error executing\t%s\n", 1149},
+  {"\aURGENT: broadcast message from %s:", 1150},
+  {"System going down IMMEDIATELY!\n", 1151},
+  {"System going down in %d hour%s %d minutes", 1152},
+  {"s", 1153},
+  {"System going down in %d minute%s\n", 1154},
+  {"\t... %s ...\n", 1155},
+  {"Cannot fork for swapoff. Shrug!", 1156},
+  {"Cannot exec swapoff, hoping umount will do the trick.", 1157},
+  {"Cannot fork for umount, trying manually.", 1158},
+  {"Cannot exec %s, trying umount.\n", 1159},
+  {"Cannot exec umount, giving up on umount.", 1160},
+  {"Unmounting any remaining filesystems...", 1161},
+  {"shutdown: Couldn't umount %s\n", 1162},
+  {"Booting to single user mode.\n", 1163},
+  {"exec of single user shell failed\n", 1164},
+  {"fork of single user shell failed\n", 1165},
+  {"\
+\n\
+Wrong password.\n", 1166},
+  {"exec rc failed\n", 1167},
+  {"open of rc file failed\n", 1168},
+  {"fork of rc shell failed\n", 1169},
+  {"fork failed\n", 1170},
+  {"exec failed\n", 1171},
+  {"cannot open inittab\n", 1172},
+  {"no TERM or cannot stat tty\n", 1173},
+  {"too many iov's (change code in wall/ttymsg.c)", 1174},
+  {"excessively long line arg", 1175},
+  {"cannot fork", 1176},
+  {"fork: %s", 1177},
+  {"%s: BAD ERROR", 1178},
+  {"%s: the %s file is busy.\n", 1179},
+  {"%s: the %s file is busy (%s present)\n", 1180},
+  {"%s: can't link %s: %s\n", 1181},
+  {"%s: can't unlock %s: %s (your changes are still in %s)\n", 1182},
+  {"%s: Cannot fork\n", 1183},
+  {"%s: %s unchanged\n", 1184},
+  {"%s: no changes made\n", 1185},
+  {"usage: %s [file]\n", 1186},
+  {"%s: can't open temporary file.\n", 1187},
+  {"Broadcast Message from %s@%s", 1188},
+  {"%s: can't read %s.\n", 1189},
+  {"%s: can't stat temporary file.\n", 1190},
+  {"%s: can't read temporary file.\n", 1191},
+  {"illegal month value: use 1-12", 1192},
+  {"illegal year value: use 1-9999", 1193},
+  {"usage: cal [-mjy] [[month] year]\n", 1194},
+  {"usage: %s [+format] [day month year]\n", 1195},
+  {"St. Tib's Day", 1196},
+  {"%s: unknown signal %s\n", 1197},
+  {"%s: can't find process \"%s\"\n", 1198},
+  {"%s: unknown signal %s; valid signals:\n", 1199},
+  {"usage: %s [ -s signal | -p ] [ -a ] pid ...\n", 1200},
+  {"       %s -l [ signal ]\n", 1201},
+  {"logger: %s: %s.\n", 1202},
+  {"logger: unknown facility name: %s.\n", 1203},
+  {"logger: unknown priority name: %s.\n", 1204},
+  {"\
+usage: logger [-is] [-f file] [-p pri] [-t tag] [-u socket] [ message ... ]\n", 1205},
+  {"Out of memory", 1206},
+  {"usage: look [-dfa] [-t char] string [file]\n", 1207},
+  {"Could not open %s\n", 1208},
+  {"Got %d bytes from %s\n", 1209},
+  {"namei: unable to get current directory - %s\n", 1210},
+  {"namei: unable to chdir to %s - %s (%d)\n", 1211},
+  {"usage: namei [-mx] pathname [pathname ...]\n", 1212},
+  {"namei: could not chdir to root!\n", 1213},
+  {"namei: could not stat root!\n", 1214},
+  {" ? could not chdir into %s - %s (%d)\n", 1215},
+  {" ? problems reading symlink %s - %s (%d)\n", 1216},
+  {"  *** EXCEEDED UNIX LIMIT OF SYMLINKS ***", 1217},
+  {"namei: unknown file type 0%06o on file %s\n", 1218},
+  {"usage: script [-a] [file]\n", 1219},
+  {"Script started, file is %s\n", 1220},
+  {"Script started on %s", 1221},
+  {"\
+\n\
+Script done on %s", 1222},
+  {"Script done, file is %s\n", 1223},
+  {"openpty failed\n", 1224},
+  {"Out of pty's\n", 1225},
+  {"%s: Argument error, usage\n", 1226},
+  {"  [ -term terminal_name ]\n", 1227},
+  {"  [ -reset ]\n", 1228},
+  {"  [ -initialize ]\n", 1229},
+  {"  [ -cursor [on|off] ]\n", 1230},
+  {"  [ -snow [on|off] ]\n", 1231},
+  {"  [ -softscroll [on|off] ]\n", 1232},
+  {"  [ -keyboard pc|olivetti|dutch|extended ]\n", 1233},
+  {"  [ -repeat [on|off] ]\n", 1234},
+  {"  [ -appcursorkeys [on|off] ]\n", 1235},
+  {"  [ -linewrap [on|off] ]\n", 1236},
+  {"  [ -default ]\n", 1237},
+  {"  [ -foreground black|blue|green|cyan", 1238},
+  {"|red|magenta|yellow|white|default ]\n", 1239},
+  {"  [ -background black|blue|green|cyan", 1240},
+  {"  [ -ulcolor black|grey|blue|green|cyan", 1241},
+  {"|red|magenta|yellow|white ]\n", 1242},
+  {"  [ -ulcolor bright blue|green|cyan", 1243},
+  {"  [ -hbcolor black|grey|blue|green|cyan", 1244},
+  {"  [ -hbcolor bright blue|green|cyan", 1245},
+  {"  [ -standout [ attr ] ]\n", 1246},
+  {"  [ -inversescreen [on|off] ]\n", 1247},
+  {"  [ -bold [on|off] ]\n", 1248},
+  {"  [ -half-bright [on|off] ]\n", 1249},
+  {"  [ -blink [on|off] ]\n", 1250},
+  {"  [ -reverse [on|off] ]\n", 1251},
+  {"  [ -underline [on|off] ]\n", 1252},
+  {"  [ -store ]\n", 1253},
+  {"  [ -clear [all|rest] ]\n", 1254},
+  {"  [ -tabs [ tab1 tab2 tab3 ... ] ]      (tabn = 1-160)\n", 1255},
+  {"  [ -clrtabs [ tab1 tab2 tab3 ... ] ]   (tabn = 1-160)\n", 1256},
+  {"  [ -regtabs [1-160] ]\n", 1257},
+  {"  [ -blank [0-60] ]\n", 1258},
+  {"  [ -dump   [1-NR_CONSOLES] ]\n", 1259},
+  {"  [ -append [1-NR_CONSOLES] ]\n", 1260},
+  {"  [ -file dumpfilename ]\n", 1261},
+  {"  [ -msg [on|off] ]\n", 1262},
+  {"  [ -msglevel [0-8] ]\n", 1263},
+  {"  [ -powersave [on|vsync|hsync|powerdown|off] ]\n", 1264},
+  {"  [ -powerdown [0-60] ]\n", 1265},
+  {"  [ -blength [0-2000] ]\n", 1266},
+  {"  [ -bfreq freqnumber ]\n", 1267},
+  {"keyboard.pc", 1268},
+  {"keyboard.olivetti", 1269},
+  {"keyboard.dutch", 1270},
+  {"keyboard.extended", 1271},
+  {"snow.on", 1272},
+  {"snow.off", 1273},
+  {"softscroll.on", 1274},
+  {"softscroll.off", 1275},
+  {"cannot (un)set powersave mode\n", 1276},
+  {"klogctl error: %s\n", 1277},
+  {"Error reading %s\n", 1278},
+  {"Error writing screendump\n", 1279},
+  {"couldn't read %s, and cannot ioctl dump\n", 1280},
+  {"%s: $TERM is not defined.\n", 1281},
+  {"usage: tsort [ inputfile ]\n", 1282},
+  {"tsort: odd data count.\n", 1283},
+  {"tsort: cycle in data.\n", 1284},
+  {"tsort: internal error -- could not find cycle.\n", 1285},
+  {"whereis [ -sbmu ] [ -SBM dir ... -f ] name...\n", 1286},
+  {"write: can't find your tty's name\n", 1287},
+  {"write: you have write permission turned off.\n", 1288},
+  {"write: %s is not logged in on %s.\n", 1289},
+  {"write: %s has messages disabled on %s\n", 1290},
+  {"usage: write user [tty]\n", 1291},
+  {"write: %s is not logged in\n", 1292},
+  {"write: %s has messages disabled\n", 1293},
+  {"write: %s is logged in more than once; writing to %s\n", 1294},
+  {"Message from %s@%s on %s at %s ...", 1295},
+  {"warning: error reading %s: %s", 1296},
+  {"warning: can't open %s: %s", 1297},
+  {"mount: could not open %s - using %s instead\n", 1298},
+  {"can't create lock file %s: %s (use -n flag to override)", 1299},
+  {"can't link lock file %s: %s (use -n flag to override)", 1300},
+  {"can't open lock file %s: %s (use -n flag to override)", 1301},
+  {"Can't lock lock file %s: %s\n", 1302},
+  {"can't lock lock file %s: %s", 1303},
+  {"timed out", 1304},
+  {"cannot open %s (%s) - mtab not updated", 1305},
+  {"mount: warning: cannot change mounted device with a remount\n", 1306},
+  {"mount: warning: cannot change filesystem type with a remount\n", 1307},
+  {"error writing %s: %s", 1308},
+  {"error changing mode of %s: %s\n", 1309},
+  {"can't rename %s to %s: %s\n", 1310},
+  {"loop: can't open device %s: %s\n", 1311},
+  {"loop: can't get info on device %s: %s\n", 1312},
+  {"%s: [%04x]:%ld (%s) offset %d, %s encryption\n", 1313},
+  {"mount: could not find any device /dev/loop#", 1314},
+  {"\
+mount: Could not find any loop device.\n\
+       Maybe /dev/loop# has a wrong major number?", 1315},
+  {"\
+mount: Could not find any loop device, and, according to %s,\n\
+       this kernel does not know about the loop device.\n\
+       (If so, then recompile or `insmod loop.o'.)", 1316},
+  {"\
+mount: Could not find any loop device. Maybe this kernel does not know\n\
+       about the loop device (then recompile or `insmod loop.o'), or\n\
+       maybe /dev/loop# has the wrong major number?", 1317},
+  {"mount: could not find any free loop device", 1318},
+  {"Unsupported encryption type %s\n", 1319},
+  {"Init (up to 16 hex digits): ", 1320},
+  {"Non-hex digit '%c'.\n", 1321},
+  {"Don't know how to get key for encryption system %d\n", 1322},
+  {"set_loop(%s,%s,%d): success\n", 1323},
+  {"loop: can't delete device %s: %s\n", 1324},
+  {"del_loop(%s): success\n", 1325},
+  {"This mount was compiled without loop support. Please recompile.\n", 1326},
+  {"Cannot get loop info", 1327},
+  {"\
+usage:\n\
+  %s loop_device                                      # give info\n\
+  %s -d loop_device                                   # delete\n\
+  %s [ -e encryption ] [ -o offset ] loop_device file # setup\n", 1328},
+  {"No loop support was available at compile time. Please recompile.\n", 1329},
+  {"[mntent]: warning: no final newline at the end of %s\n", 1330},
+  {"[mntent]: line %d in %s is bad%s\n", 1331},
+  {"; rest of file ignored", 1332},
+  {"mount: according to mtab, %s is already mounted on %s", 1333},
+  {"mount: according to mtab, %s is mounted on %s", 1334},
+  {"mount: can't open %s for writing: %s", 1335},
+  {"mount: error writing %s: %s", 1336},
+  {"mount: error changing mode of %s: %s", 1337},
+  {"mount failed", 1338},
+  {"mount: only root can mount %s on %s", 1339},
+  {"mount: loop device specified twice", 1340},
+  {"mount: type specified twice", 1341},
+  {"mount: skipping the setup of a loop device\n", 1342},
+  {"mount: going to use the loop device %s\n", 1343},
+  {"mount: failed setting up loop device\n", 1344},
+  {"mount: setup loop device successfully\n", 1345},
+  {"mount: this version was compiled without support for the type `nfs'", 1346},
+  {"mount: cannot fork: %s", 1347},
+  {"mount: can't open %s: %s", 1348},
+  {"mount: you must specify the filesystem type", 1349},
+  {"mount: mount point %s is not a directory", 1350},
+  {"mount: permission denied", 1351},
+  {"mount: must be superuser to use mount", 1352},
+  {"mount: %s is busy", 1353},
+  {"mount: proc already mounted", 1354},
+  {"mount: %s already mounted or %s busy", 1355},
+  {"mount: mount point %s does not exist", 1356},
+  {"mount: mount point %s is a symbolic link to nowhere", 1357},
+  {"mount: special device %s does not exist", 1358},
+  {"\
+mount: special device %s does not exist\n\
+       (a path prefix is not a directory)\n", 1359},
+  {"mount: %s not mounted already, or bad option", 1360},
+  {"\
+mount: wrong fs type, bad option, bad superblock on %s,\n\
+       or too many mounted file systems", 1361},
+  {"mount table full", 1362},
+  {"mount: %s: can't read superblock", 1363},
+  {"mount: %s has wrong major or minor number", 1364},
+  {"mount: fs type %s not supported by kernel", 1365},
+  {"mount: probably you meant %s", 1366},
+  {"mount: maybe you meant iso9660 ?", 1367},
+  {"mount: %s has wrong device number or fs type %s not supported", 1368},
+  {"mount: %s is not a block device, and stat fails?", 1369},
+  {"\
+mount: the kernel does not recognize %s as a block device\n\
+       (maybe `insmod driver'?)", 1370},
+  {"mount: %s is not a block device (maybe try `-o loop'?)", 1371},
+  {"mount: %s is not a block device", 1372},
+  {"mount: %s is not a valid block device", 1373},
+  {"mount: block device %s is not permitted on its filesystem", 1374},
+  {"mount: %s%s is write-protected, mounting read-only", 1375},
+  {"block device ", 1376},
+  {"mount: consider mounting %s by %s\n", 1377},
+  {"UUID", 1378},
+  {"label", 1379},
+  {"mount: no such partition found", 1380},
+  {"mount: no type was given - I'll assume nfs because of the colon\n", 1381},
+  {"mount: backgrounding \"%s\"\n", 1382},
+  {"mount: giving up \"%s\"\n", 1383},
+  {"mount: %s already mounted on %s\n", 1384},
+  {"\
+Usage: mount [-hV]\n\
+       mount -a [-nfFrsvw] [-t vfstypes]\n\
+       mount [-nfrsvw] [-o options] special | node\n\
+       mount [-nfrsvw] [-t vfstype] [-o options] special node\n\
+       A special device can be indicated by  -L label  or  -U uuid .\n", 1385},
+  {"mount: only root can do that", 1386},
+  {"mount: no %s found - creating it..\n", 1387},
+  {"mount: mounting %s\n", 1388},
+  {"not mounted anything", 1389},
+  {"mount: cannot find %s in %s", 1390},
+  {"mount: can't find %s in %s or %s", 1391},
+  {"mount: bad UUID", 1392},
+  {"mount: you didn't specify a filesystem type for %s\n", 1393},
+  {"       I will try type %s\n", 1394},
+  {"       I will try all types mentioned in %s or %s\n", 1395},
+  {"mount: excessively long host:dir argument\n", 1396},
+  {"mount: warning: multiple hostnames not supported\n", 1397},
+  {"mount: directory to mount not in host:dir format\n", 1398},
+  {"mount: can't get address for %s\n", 1399},
+  {"mount: got bad hp->h_length\n", 1400},
+  {"mount: excessively long option argument\n", 1401},
+  {"Warning: Unrecognized proto= option.\n", 1402},
+  {"Warning: Option namlen is not supported.\n", 1403},
+  {"unknown nfs mount parameter: %s=%d\n", 1404},
+  {"Warning: option nolock is not supported.\n", 1405},
+  {"unknown nfs mount option: %s%s\n", 1406},
+  {"mount: got bad hp->h_length?\n", 1407},
+  {"mount: %s:%s failed, reason given by server: %s\n", 1408},
+  {"NFS over TCP is not supported.\n", 1409},
+  {"nfs socket", 1410},
+  {"nfs bindresvport", 1411},
+  {"used portmapper to find NFS port\n", 1412},
+  {"using port %d for nfs deamon\n", 1413},
+  {"nfs connect", 1414},
+  {"unknown nfs status return value: %d", 1415},
+  {"not enough memory", 1416},
+  {"bug in xstrndup call", 1417},
+  {"\
+usage: %s [-hV]\n\
+       %s -a [-v]\n\
+       %s [-v] [-p priority] special ...\n\
+       %s [-s]\n", 1418},
+  {"%s on %s\n", 1419},
+  {"swapon: cannot stat %s: %s\n", 1420},
+  {"swapon: warning: %s has insecure permissions %04o, 0600 suggested\n", 1421},
+  {"swapon: Skipping file %s - it appears to have holes.\n", 1422},
+  {"%s: cannot open %s: %s\n", 1423},
+  {"umount: compiled without support for -f\n", 1424},
+  {"host: %s, directory: %s\n", 1425},
+  {"umount: can't get address for %s\n", 1426},
+  {"umount: got bad hostp->h_length\n", 1427},
+  {"umount: %s: invalid block device", 1428},
+  {"umount: %s: not mounted", 1429},
+  {"umount: %s: can't write superblock", 1430},
+  {"umount: %s: device is busy", 1431},
+  {"umount: %s: not found", 1432},
+  {"umount: %s: must be superuser to umount", 1433},
+  {"umount: %s: block devices not permitted on fs", 1434},
+  {"umount: %s: %s", 1435},
+  {"no umount2, trying umount...\n", 1436},
+  {"could not umount %s - trying %s instead\n", 1437},
+  {"umount: %s busy - remounted read-only\n", 1438},
+  {"umount: could not remount %s read-only\n", 1439},
+  {"%s umounted\n", 1440},
+  {"umount: cannot find list of filesystems to unmount", 1441},
+  {"\
+Usage: umount [-hV]\n\
+       umount -a [-f] [-r] [-n] [-v] [-t vfstypes]\n\
+       umount [-f] [-r] [-n] [-v] special | node...\n", 1442},
+  {"umount: only root can do that", 1443},
+  {"Trying to umount %s\n", 1444},
+  {"Could not find %s in mtab\n", 1445},
+  {"umount: %s is not mounted (according to mtab)", 1446},
+  {"umount: it seems %s is mounted multiple times", 1447},
+  {"umount: %s is not in the fstab (and you are not root)", 1448},
+  {"umount: %s mount disagrees with the fstab", 1449},
+  {"umount: only root can unmount %s from %s", 1450},
+  {"umount: only %s can unmount %s from %s", 1451},
+  {"You must be root to set the Ctrl-Alt-Del behaviour.\n", 1452},
+  {"Usage: ctrlaltdel hard|soft\n", 1453},
+  {"\
+File %s, For threshold value %lu, Maximum characters in fifo were %d,\n\
+and the maximum transfer rate in characters/second was %f\n", 1454},
+  {"\
+File %s, For threshold value %lu and timrout value %lu, Maximum characters \
+in fifo were %d,\n\
+and the maximum transfer rate in characters/second was %f\n", 1455},
+  {"Invalid interval value: %s\n", 1456},
+  {"Invalid set value: %s\n", 1457},
+  {"Invalid default value: %s\n", 1458},
+  {"Invalid set time value: %s\n", 1459},
+  {"Invalid default time value: %s\n", 1460},
+  {"\
+Usage: %s [-q [-i interval]] ([-s value]|[-S value]) ([-t value]|[-T value]) \
+[-g|-G] file [file...]\n", 1461},
+  {"Can't open %s: %s\n", 1462},
+  {"Can't set %s to threshold %d: %s\n", 1463},
+  {"Can't set %s to time threshold %d: %s\n", 1464},
+  {"Can't get threshold for %s: %s\n", 1465},
+  {"Can't get timeout for %s: %s\n", 1466},
+  {"%s: %ld %s threshold and %ld %s timeout\n", 1467},
+  {"current", 1468},
+  {"default", 1469},
+  {"Can't set signal handler", 1470},
+  {"gettimeofday failed", 1471},
+  {"Can't issue CYGETMON on %s: %s\n", 1472},
+  {"%s: %lu ints, %lu/%lu chars; ", 1473},
+  {"fifo: %lu thresh, %lu tmout, ", 1474},
+  {"%lu max, %lu now\n", 1475},
+  {"   %f int/sec; %f rec, %f send (char/sec)\n", 1476},
+  {"\
+%s: %lu ints, %lu chars; fifo: %lu thresh, %lu tmout, %lu max, %lu now\n", 1477},
+  {"   %f int/sec; %f rec (char/sec)\n", 1478},
+  {"Usage: %s [-c] [-n level] [-s bufsize]\n", 1479},
+  {"usage: %s [shm | msg | sem] id\n", 1480},
+  {"usage: %s [-shm | -msg | -sem] id\n", 1481},
+  {"resource deleted\n", 1482},
+  {"usage : %s -asmq -tclup \n", 1483},
+  {"\t%s [-s -m -q] -i id\n", 1484},
+  {"\t%s -h for help.\n", 1485},
+  {"%s provides information on ipc facilities for", 1486},
+  {" which you have read access.\n", 1487},
+  {"\
+Resource Specification:\n\
+\t-m : shared_mem\n\
+\t-q : messages\n", 1488},
+  {"\
+\t-s : semaphores\n\
+\t-a : all (default)\n", 1489},
+  {"\
+Output Format:\n\
+\t-t : time\n\
+\t-p : pid\n\
+\t-c : creator\n", 1490},
+  {"\
+\t-l : limits\n\
+\t-u : summary\n", 1491},
+  {"-i id [-s -q -m] : details on resource identified by id\n", 1492},
+  {"kernel not configured for shared memory\n", 1493},
+  {"------ Shared Memory Limits --------\n", 1494},
+  {"max number of segments = %d\n", 1495},
+  {"max seg size (kbytes) = %d\n", 1496},
+  {"max total shared memory (kbytes) = %d\n", 1497},
+  {"min seg size (bytes) = %d\n", 1498},
+  {"------ Shared Memory Status --------\n", 1499},
+  {"segments allocated %d\n", 1500},
+  {"pages allocated %ld\n", 1501},
+  {"pages resident  %ld\n", 1502},
+  {"pages swapped   %ld\n", 1503},
+  {"Swap performance: %ld attempts\t %ld successes\n", 1504},
+  {"------ Shared Memory Segment Creators/Owners --------\n", 1505},
+  {"%-10s%-10s%-10s%-10s%-10s%-10s\n", 1506},
+  {"shmid", 1507},
+  {"perms", 1508},
+  {"cuid", 1509},
+  {"cgid", 1510},
+  {"uid", 1511},
+  {"gid", 1512},
+  {"------ Shared Memory Attach/Detach/Change Times --------\n", 1513},
+  {"%-10s%-10s  %-20s%-20s%-20s\n", 1514},
+  {"owner", 1515},
+  {"attached", 1516},
+  {"detached", 1517},
+  {"changed", 1518},
+  {"------ Shared Memory Creator/Last-op --------\n", 1519},
+  {"%-10s%-10s%-10s%-10s\n", 1520},
+  {"cpid", 1521},
+  {"lpid", 1522},
+  {"------ Shared Memory Segments --------\n", 1523},
+  {"%-10s%-10s%-10s%-10s%-10s%-10s%-12s\n", 1524},
+  {"key", 1525},
+  {"bytes", 1526},
+  {"nattch", 1527},
+  {"status", 1528},
+  {"Not set", 1529},
+  {"dest", 1530},
+  {"locked", 1531},
+  {"kernel not configured for semaphores\n", 1532},
+  {"------ Semaphore Limits --------\n", 1533},
+  {"max number of arrays = %d\n", 1534},
+  {"max semaphores per array = %d\n", 1535},
+  {"max semaphores system wide = %d\n", 1536},
+  {"max ops per semop call = %d\n", 1537},
+  {"semaphore max value = %d\n", 1538},
+  {"------ Semaphore Status --------\n", 1539},
+  {"used arrays = %d\n", 1540},
+  {"allocated semaphores = %d\n", 1541},
+  {"------ Semaphore Arrays Creators/Owners --------\n", 1542},
+  {"semid", 1543},
+  {"------ Shared Memory Operation/Change Times --------\n", 1544},
+  {"%-8s%-10s  %-26.24s %-26.24s\n", 1545},
+  {"last-op", 1546},
+  {"last-changed", 1547},
+  {"------ Semaphore Arrays --------\n", 1548},
+  {"%-10s%-10s%-10s%-10s%-10s%-12s\n", 1549},
+  {"nsems", 1550},
+  {"------ Messages: Limits --------\n", 1551},
+  {"max queues system wide = %d\n", 1552},
+  {"max size of message (bytes) = %d\n", 1553},
+  {"default max size of queue (bytes) = %d\n", 1554},
+  {"------ Messages: Status --------\n", 1555},
+  {"allocated queues = %d\n", 1556},
+  {"used headers = %d\n", 1557},
+  {"used space = %d bytes\n", 1558},
+  {"------ Message Queues: Creators/Owners --------\n", 1559},
+  {"msqid", 1560},
+  {"------ Message Queues Send/Recv/Change Times --------\n", 1561},
+  {"%-8s%-10s  %-20s%-20s%-20s\n", 1562},
+  {"send", 1563},
+  {"recv", 1564},
+  {"change", 1565},
+  {"------ Message Queues PIDs --------\n", 1566},
+  {"lspid", 1567},
+  {"lrpid", 1568},
+  {"------ Message Queues --------\n", 1569},
+  {"%-10s%-10s%-10s%-10s%-12s%-12s\n", 1570},
+  {"used-bytes", 1571},
+  {"messages", 1572},
+  {"\
+\n\
+Shared memory Segment shmid=%d\n", 1573},
+  {"uid=%d\tgid=%d\tcuid=%d\tcgid=%d\n", 1574},
+  {"mode=%#o\taccess_perms=%#o\n", 1575},
+  {"bytes=%d\tlpid=%d\tcpid=%d\tnattch=%d\n", 1576},
+  {"att_time=%s", 1577},
+  {"Not set\n", 1578},
+  {"det_time=%s", 1579},
+  {"change_time=%s", 1580},
+  {"\
+\n\
+Message Queue msqid=%d\n", 1581},
+  {"uid=%d\tgid=%d\tcuid=%d\tcgid=%d\tmode=%#o\n", 1582},
+  {"cbytes=%d\tqbytes=%d\tqnum=%d\tlspid=%d\tlrpid=%d\n", 1583},
+  {"send_time=%srcv_time=%schange_time=%s", 1584},
+  {"Not Set\n", 1585},
+  {"\
+\n\
+Semaphore Array semid=%d\n", 1586},
+  {"uid=%d\t gid=%d\t cuid=%d\t cgid=%d\n", 1587},
+  {"mode=%#o, access_perms=%#o\n", 1588},
+  {"nsems = %d\n", 1589},
+  {"otime = %s", 1590},
+  {"ctime = %s", 1591},
+  {"%-10s%-10s%-10s%-10s%-10s\n", 1592},
+  {"semnum", 1593},
+  {"value", 1594},
+  {"ncount", 1595},
+  {"zcount", 1596},
+  {"pid", 1597},
+  {"usage: rdev [ -rsv ] [ -o OFFSET ] [ IMAGE [ VALUE [ OFFSET ] ] ]", 1598},
+  {"\
+  rdev /dev/fd0  (or rdev /linux, etc.) displays the current ROOT device", 1599},
+  {"  rdev /dev/fd0 /dev/hda2         sets ROOT to /dev/hda2", 1600},
+  {"  rdev -R /dev/fd0 1              set the ROOTFLAGS (readonly status)", 1601},
+  {"  rdev -s /dev/fd0 /dev/hda2      set the SWAP device", 1602},
+  {"  rdev -r /dev/fd0 627            set the RAMDISK size", 1603},
+  {"  rdev -v /dev/fd0 1              set the bootup VIDEOMODE", 1604},
+  {"  rdev -o N ...                   use the byte offset N", 1605},
+  {"  rootflags ...                   same as rdev -R", 1606},
+  {"  swapdev ...                     same as rdev -s", 1607},
+  {"  ramsize ...                     same as rdev -r", 1608},
+  {"  vidmode ...                     same as rdev -v", 1609},
+  {"\
+Note: video modes are: -3=Ask, -2=Extended, -1=NormalVga, 1=key1, 2=key2,...", 1610},
+  {"      use -R 1 to mount root readonly, -R 0 for read/write.", 1611},
+  {"\
+%s: Usage: \"%s [options]\n\
+\t -m <mapfile>  (default = \"%s\")\n\
+\t -p <pro-file> (default = \"%s\")\n\
+\t -i            print only info about the sampling step\n\
+\t -v            print verbose data\n\
+\t -a            print all symbols, even if count is 0\n\
+\t -r            reset all the counters (root only)\n\
+\t -V            print version and exit\n", 1612},
+  {"%s Version %s\n", 1613},
+  {"anything\n", 1614},
+  {"Sampling_step: %i\n", 1615},
+  {"%s: %s(%i): wrong map line\n", 1616},
+  {"%s: can't find \"_stext\" in %s\n", 1617},
+  {"total", 1618},
+  {"\
+usage: renice priority [ [ -p ] pids ] [ [ -g ] pgrps ] [ [ -u ] users ]\n", 1619},
+  {"renice: %s: unknown user\n", 1620},
+  {"renice: %s: bad value\n", 1621},
+  {"getpriority", 1622},
+  {"setpriority", 1623},
+  {"%d: old priority %d, new priority %d\n", 1624},
+  {"usage: %s program [arg ...]\n", 1625},
+  {"\
+Usage: %s <device> [ -i <IRQ> | -t <TIME> | -c <CHARS> | -w <WAIT> | \n\
+          -a [on|off] | -o [on|off] | -C [on|off] | -q [on|off] | -s | \n\
+          -T [on|off] ]\n", 1626},
+  {"malloc error", 1627},
+  {"sscanf error", 1628},
+  {"%s: %s not an lp device.\n", 1629},
+  {"%s status is %d", 1630},
+  {", busy", 1631},
+  {", ready", 1632},
+  {", out of paper", 1633},
+  {", on-line", 1634},
+  {", error", 1635},
+  {"LPGETIRQ error", 1636},
+  {"%s using IRQ %d\n", 1637},
+  {"%s using polling\n", 1638},
+  {"col: bad -l argument %s.\n", 1639},
+  {"usage: col [-bfx] [-l nline]\n", 1640},
+  {"col: write error.\n", 1641},
+  {"col: warning: can't back up %s.\n", 1642},
+  {"past first line", 1643},
+  {"-- line already flushed", 1644},
+  {"usage: %s [ - ] [ -2 ] [ file ... ]\n", 1645},
+  {"line too long", 1646},
+  {"usage: column [-tx] [-c columns] [file ...]\n", 1647},
+  {"hexdump: bad length value.\n", 1648},
+  {"hexdump: bad skip value.\n", 1649},
+  {"\
+hexdump: [-bcdovx] [-e fmt] [-f fmt_file] [-n length] [-s skip] [file ...]\n", 1650},
+  {"usage: %s [-dfln] [+linenum | +/pattern] name1 name2 ...\n", 1651},
+  {"\
+\n\
+*** %s: directory ***\n\
+\n", 1652},
+  {"\
+\n\
+******** %s: Not a text file ********\n\
+\n", 1653},
+  {"[Use q or Q to quit]", 1654},
+  {"--More--", 1655},
+  {"(Next file: %s)", 1656},
+  {"[Press space to continue, 'q' to quit.]", 1657},
+  {"...back %d page", 1658},
+  {"...skipping %d line", 1659},
+  {"\
+\n\
+***Back***\n\
+\n", 1660},
+  {"Can't open help file", 1661},
+  {"[Press 'h' for instructions.]", 1662},
+  {"\"%s\" line %d", 1663},
+  {"[Not a file] line %d", 1664},
+  {"  Overflow\n", 1665},
+  {"...skipping\n", 1666},
+  {"Regular expression botch", 1667},
+  {"\
+\n\
+Pattern not found\n", 1668},
+  {"Pattern not found", 1669},
+  {"can't fork\n", 1670},
+  {"\
+\n\
+...Skipping ", 1671},
+  {"...Skipping ", 1672},
+  {"to file ", 1673},
+  {"back to file ", 1674},
+  {"Line too long", 1675},
+  {"No previous command to substitute for", 1676},
+  {"od: od(1) has been deprecated for hexdump(1).\n", 1677},
+  {"od: hexdump(1) compatibility doesn't support the -%c option%s\n", 1678},
+  {"; see strings(1).", 1679},
+  {"hexdump: can't read %s.\n", 1680},
+  {"hexdump: line too long.\n", 1681},
+  {"hexdump: byte count with multiple conversion characters.\n", 1682},
+  {"hexdump: bad byte count for conversion character %s.\n", 1683},
+  {"hexdump: %%s requires a precision or a byte count.\n", 1684},
+  {"hexdump: bad format {%s}\n", 1685},
+  {"hexdump: bad conversion character %%%s.\n", 1686},
+  {"Unable to allocate bufferspace\n", 1687},
+  {"usage: rev [file ...]\n", 1688},
+  {"usage: %s [ -i ] [ -tTerm ] file...\n", 1689},
+  {"trouble reading terminfo", 1690},
+  {"Unknown escape sequence in input: %o, %o\n", 1691},
+  {"Unable to allocate buffer.\n", 1692},
+  {"Input line too long.\n", 1693},
+  {"Out of memory when growing buffer.\n", 1694},
+  {"Typematic Rate set to %.1f cps (delay = %d ms)\n", 1695},
+  {"Cannot open /dev/port", 1696},
+};
+
+int _msg_tbl_length = 1696;
diff --git a/po/cs.po b/po/cs.po
new file mode 100644 (file)
index 0000000..87ee5b5
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,8545 @@
+# Czech translation of util-linux.
+# Jiøí Pavlovský <pavlovsk@ff.cuni.cz>, 1999.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: util-linux-2.9u\n"
+"POT-Creation-Date: 1999-07-10 16:38+0200\n"
+"PO-Revision-Date: 1999-07-13 23:44+0200\n"
+"Last-Translator: Jiøí Pavlovský <pavlovsk@ff.cuni.cz>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: clock/cmos.c:146
+msgid "booted from MILO\n"
+msgstr "spu¹tìn pomocí MILO\n"
+
+#: clock/cmos.c:154
+msgid "Ruffian BCD clock\n"
+msgstr "hodnoty ulo¾eny v BCD tvaru\n"
+
+#: clock/cmos.c:170
+#, c-format
+msgid "clockport adjusted to 0x%x\n"
+msgstr "vstupnì/výstupní port pro pøístup k hodinám nastaven na 0x%x\n"
+
+#: clock/cmos.c:180
+msgid "funky TOY!\n"
+msgstr "pou¾it pøepínaè --funky-toy!\n"
+
+#: clock/cmos.c:234
+#, c-format
+msgid "%s: atomic %s failed for 1000 iterations!"
+msgstr "%s: 1000 neúspì¹ných pokusù o atomické provedení %s!"
+
+#: clock/cmos.c:558
+#, c-format
+msgid "Cannot open /dev/port: %s"
+msgstr "/dev/port nelze otevøít: %s"
+
+#: clock/cmos.c:565
+msgid "I failed to get permission because I didnt try.\n"
+msgstr "Jeliko¾ jsem se nesna¾il, nepodaøilo se mi získat práva pro pøístup.\n"
+
+#: clock/cmos.c:568
+#, c-format
+msgid "%s is unable to get I/O port access:  the iopl(3) call failed.\n"
+msgstr "%s: pøístup k portu nelze získat:  volání iopl(3) selhalo.\n"
+
+#: clock/cmos.c:571
+msgid "Probably you need root privileges.\n"
+msgstr "Pravdìpodobnì je tøeba mít práva superu¾ivatele.\n"
+
+#: clock/hwclock.c:253
+#, c-format
+msgid "Last drift adjustment done at %d seconds after 1969\n"
+msgstr "Poslední oprava posunu probìhla %d vteøin od roku 1969.\n"
+
+#: clock/hwclock.c:255
+#, c-format
+msgid "Last calibration done at %d seconds after 1969\n"
+msgstr "Poslední kalibrace probìhla %d vteøin od roku 1969.\n"
+
+#. -----------------------------------------------------------------------------
+#. Wait until the falling edge of the Hardware Clock's update flag so
+#. that any time that is read from the clock immediately after we
+#. return will be exact.
+#.
+#. The clock only has 1 second precision, so it gives the exact time only
+#. once per second, right on the falling edge of the update flag.
+#.
+#. We wait (up to one second) either blocked waiting for an rtc device
+#. or in a CPU spin loop.  The former is probably not very accurate.
+#.
+#. Return *retcode_p == 0 if it worked, nonzero if it didn't.
+#.
+#. -----------------------------------------------------------------------------
+#: clock/hwclock.c:278
+msgid "Waiting for clock tick...\n"
+msgstr "èekám na tiknutí hodin...\n"
+
+#: clock/hwclock.c:282
+msgid "...got clock tick\n"
+msgstr "...hodiny tikly\n"
+
+#: clock/hwclock.c:334
+#, c-format
+msgid "Invalid values in hardware clock: %2d/%.2d/%.2d %.2d:%.2d:%.2d\n"
+msgstr ""
+"Hodiny reálného èasu obsahují chybné hodnoty: %2d/%.2d/%.2d %.2d:%.2d:%.2d\n"
+
+#: clock/hwclock.c:343
+#, c-format
+msgid "Hw clock time : %.2d:%.2d:%.2d = %d seconds since 1969\n"
+msgstr "Hodiny reálného èasu ukazují %.2d:%.2d:%.2d = %d vteøin od roku 1969\n"
+
+#: clock/hwclock.c:369
+#, c-format
+msgid "Time read from Hardware Clock: %02d:%02d:%02d\n"
+msgstr "Hodiny reálného èasu ukazují %02d:%02d:%02d\n"
+
+#: clock/hwclock.c:395
+#, c-format
+msgid "Setting Hardware Clock to %.2d:%.2d:%.2d = %d seconds since 1969\n"
+msgstr ""
+"Nastavuji hodiny reálného èasu na %.2d:%.2d:%.2d = %d vteøin od roku 1969\n"
+
+#: clock/hwclock.c:401
+msgid "Clock not changed - testing only.\n"
+msgstr "Testovací re¾im - Èas nezmìnìn.\n"
+
+#: clock/hwclock.c:449
+#, c-format
+msgid ""
+"Time elapsed since reference time has been %.6f seconds.\n"
+"Delaying further to reach the next full second.\n"
+msgstr ""
+"Poèet vteøin uplynulých od referenèního èasu: %.6f.\n"
+"Èekám, dokud neuplyne dal¹í celá vteøina.\n"
+
+#: clock/hwclock.c:473
+msgid ""
+"The Hardware Clock registers contain values that are either invalid (e.g. "
+"50th day of month) or beyond the range we can handle (e.g. Year 2095).\n"
+msgstr ""
+"Registry hodin reálného èasu obsahují hodnoty, které jsou buï chybné (napø.\n"
+"50tý den v mìsíci), èi mimo pøípustný rozsah (napø. rok 2095).\n"
+
+#. Address of static storage containing time string
+#. For some strange reason, ctime() is designed to include a newline
+#. character at the end.  We have to remove that.
+#.
+#. Compute display value for time
+#. Cut off trailing newline
+#: clock/hwclock.c:485
+#, c-format
+msgid "%s  %.6f seconds\n"
+msgstr "%s  %.6f vteøiny\n"
+
+#: clock/hwclock.c:519
+msgid "No --date option specified.\n"
+msgstr "Pøepínaè --date vy¾aduje argument.\n"
+
+#. Quotation marks in date_opt would ruin the date command we construct.
+#.
+#: clock/hwclock.c:524
+msgid ""
+"The value of the --date option is not a valid date.\n"
+"In particular, it contains quotation marks.\n"
+msgstr ""
+"Argument pøepínaèe --date není platným datem. Konkrétnì obsahuje uvozovky.\n"
+
+#: clock/hwclock.c:530
+#, c-format
+msgid "Issuing date command: %s\n"
+msgstr "Spou¹tím pøíkaz 'date': %s\n"
+
+#: clock/hwclock.c:534
+msgid "Unable to run 'date' program in /bin/sh shell. popen() failed"
+msgstr "Pøíkaz 'date' nelze v shellu /bin/sh spustit. Volání popen() selhalo."
+
+#: clock/hwclock.c:540
+#, c-format
+msgid "response from date command = %s\n"
+msgstr "odpovìï pøíkazu 'date' = %s\n"
+
+#: clock/hwclock.c:542
+#, c-format
+msgid ""
+"The date command issued by %s returned unexpected results.\n"
+"The command was:\n"
+"  %s\n"
+"The response was:\n"
+"  %s\n"
+msgstr ""
+"Od pøíkazu 'date' spu¹tìného programem %s, pøi¹la neèekaná odpovìï.\n"
+"Pøíkaz:\n"
+"  %s\n"
+"Odpovìï:\n"
+"  %s\n"
+
+#: clock/hwclock.c:551
+#, c-format
+msgid ""
+"The date command issued by %s returnedsomething other than an integer where "
+"the convertedtime value was expected.\n"
+"The command was:\n"
+"  %s\n"
+"The response was:\n"
+" %s\n"
+msgstr ""
+"Pøíkaz 'date' spu¹tìný programem %s místo pøevedeného èasu vrátil nìco,\n"
+"co není celým èíslem.\n"
+"Pøíkaz:\n"
+"  %s\n"
+"Odpovìï:\n"
+"  %s\n"
+
+#: clock/hwclock.c:561
+#, c-format
+msgid "date string %s equates to %d seconds since 1969.\n"
+msgstr "Datum %s odpovídá %d vteøinám od roku 1969.\n"
+
+#: clock/hwclock.c:596
+msgid ""
+"The Hardware Clock does not contain a valid time, so we cannot set the "
+"System Time from it.\n"
+msgstr ""
+"Systémový èas nelze podle hodin reálného èasu nastavit, proto¾e neukazují\n"
+"platný èas.\n"
+
+#: clock/hwclock.c:612
+msgid "Calling settimeofday:\n"
+msgstr "Volám settimeofday:\n"
+
+#: clock/hwclock.c:613
+#, c-format
+msgid "\ttv.tv_sec = %ld, tv.tv_usec = %ld\n"
+msgstr "\ttv.tv_sec = %ld, tv.tv_usec = %ld\n"
+
+#: clock/hwclock.c:615
+#, c-format
+msgid "\ttz.tz_minuteswest = %ld\n"
+msgstr "\ttz.tz_minuteswest = %ld\n"
+
+#: clock/hwclock.c:618
+msgid "Not setting system clock because running in test mode.\n"
+msgstr "Testovací re¾im - systémový èas nezmìnìn.\n"
+
+#: clock/hwclock.c:630
+msgid "Must be superuser to set system clock.\n"
+msgstr "Nastavit systémový èas mù¾e pouze superu¾ivatel.\n"
+
+#: clock/hwclock.c:632
+msgid "settimeofday() failed"
+msgstr "volání settimeofday() selhalo"
+
+#: clock/hwclock.c:665
+msgid ""
+"Not adjusting drift factor because the Hardware Clock previously contained "
+"garbage.\n"
+msgstr ""
+"Neopravuji míru posunu, proto¾e hodiny reálného èasu poslednì obsahovaly\n"
+"neplatné hodnoty.\n"
+
+#: clock/hwclock.c:669
+msgid ""
+"Not adjusting drift factor because it has been less than a day since the "
+"last calibration.\n"
+msgstr ""
+"Neopravuji míru posunu, proto¾e poslední kalibrace je¹tì neuplynul celý "
+"den.\n"
+
+#: clock/hwclock.c:678
+#, c-format
+msgid ""
+"Clock drifted %d seconds in the past %d seconds in spite of a drift factor "
+"of %f seconds/day.\n"
+"Adjusting drift factor by %f seconds/day\n"
+msgstr ""
+"Hodiny se za posledních %2$d vteøin roze¹ly o %1$d vteøin, pøesto¾e míra "
+"posunu\n"
+"je nastavena na %3$f vteøin/den.\n"
+"Opravuji míru posunu o %4$f vteøin.\n"
+
+#: clock/hwclock.c:729
+#, c-format
+msgid "Time since last adjustment is %d seconds\n"
+msgstr "Poèet vteøin od poslední opravy: %d\n"
+
+#: clock/hwclock.c:731
+#, c-format
+msgid "Need to insert %d seconds and refer time back %.6f seconds ago\n"
+msgstr "Potøebná zmìna èasu: vteøin vpøed: %d ; vteøin zpìt: %.6f\n"
+
+#: clock/hwclock.c:759
+msgid "Not updating adjtime file because of testing mode.\n"
+msgstr "Testovací re¾im - soubor adjtime nezmìnìn.\n"
+
+#: clock/hwclock.c:760
+#, c-format
+msgid ""
+"Would have written the following to %s:\n"
+"%s"
+msgstr ""
+"Do %s by bylo ulo¾eno následující:\n"
+"%s"
+
+#: clock/hwclock.c:784
+msgid "Drift adjustment parameters not updated.\n"
+msgstr "Parametry opravy posunu nezmìnìny.\n"
+
+#: clock/hwclock.c:825
+msgid ""
+"The Hardware Clock does not contain a valid time, so we cannot adjust it.\n"
+msgstr "Hodiny reálného èasu obsahují neplatný èas, tudí¾ jej nelze opravit.\n"
+
+#: clock/hwclock.c:849
+msgid "Needed adjustment is less than one second, so not setting clock.\n"
+msgstr "Potøebná oprava je men¹í ne¾ 1 vteøina, proto hodiny nenastavuji.\n"
+
+#: clock/hwclock.c:875
+#, c-format
+msgid "Using %s.\n"
+msgstr "Pou¾ívám %s.\n"
+
+#: clock/hwclock.c:877
+msgid "No usable clock interface found.\n"
+msgstr "Nebylo nalezeno ¾ádné pou¾itelné rozhraní k hodinám.\n"
+
+#: clock/hwclock.c:965
+msgid "Unable to set system clock.\n"
+msgstr "Systémový èas nelze nastavit.\n"
+
+#: clock/hwclock.c:994
+msgid ""
+"The kernel keeps an epoch value for the Hardware Clock only on an Alpha "
+"machine.\n"
+"This copy of hwclock was built for a machine other than Alpha\n"
+"(and thus is presumably not running on an Alpha now).  No action taken.\n"
+msgstr ""
+"Jádro obsahuje hodnotu poèátku epochy pro hodiny reálného èasu pouze na "
+"Alpha\n"
+"systémech.\n"
+"Tento program nebyl pøelo¾en pro Alpha systém ( a tudí¾ pravdìpodobnì nyní\n"
+"nebì¾í na Alphì). Ignorováno.\n"
+
+#: clock/hwclock.c:1003
+msgid "Unable to get the epoch value from the kernel.\n"
+msgstr "Poèátek epochy nelze z jádra zjistit.\n"
+
+#: clock/hwclock.c:1005
+#, c-format
+msgid "Kernel is assuming an epoch value of %lu\n"
+msgstr "Jádro pokládá za poèátek epochy %lu.\n"
+
+#: clock/hwclock.c:1008
+msgid ""
+"To set the epoch value, you must use the 'epoch' option to tell to what "
+"value to set it.\n"
+msgstr "Poèátek epochy nastavíte pomocí pøepínaèù epoch a setepoch.\n"
+
+#: clock/hwclock.c:1011
+#, c-format
+msgid "Not setting the epoch to %d - testing only.\n"
+msgstr "Testovací re¾im - poèátek epochy na %d nemìním.\n"
+
+#: clock/hwclock.c:1014
+msgid "Unable to set the epoch value in the kernel.\n"
+msgstr "Hodnotu poèátku epochy v jádøe nelze nastavit.\n"
+
+#: clock/hwclock.c:1094
+#, c-format
+msgid "%s takes no non-option arguments.  You supplied %d.\n"
+msgstr ""
+"%s akceptuje pouze pøepínaèe. Zadáno argumentù, které nejsou pøepínaèi: %d\n"
+
+#: clock/hwclock.c:1102
+msgid ""
+"You have specified multiple function options.\n"
+"You can only perform one function at a time.\n"
+msgstr ""
+"Zadal jste vícero funkèních pøepínaèù. Program mù¾e provést maximálnì jednu\n"
+"funkci najednou.\n"
+
+#: clock/hwclock.c:1115
+msgid "No usable set-to time.  Cannot set clock.\n"
+msgstr "Nebyl zadán platný èas, který mám nastavit. Hodiny nelze nastavit.\n"
+
+#: clock/hwclock.c:1130
+msgid "Sorry, only the superuser can change the Hardware Clock.\n"
+msgstr "Hodiny reálného èasu mù¾e nastavit pouze superu¾ivatel.\n"
+
+#: clock/hwclock.c:1134
+msgid ""
+"Sorry, only the superuser can change the Hardware Clock epoch in the "
+"kernel.\n"
+msgstr "Hodnotu poèátku epochy v jádøe mù¾e nastavit pouze superu¾ivatel.\n"
+
+#: clock/hwclock.c:1150
+msgid ""
+"Cannot access the Hardware Clock via any known method.  Use --debug option "
+"to see the details of our search for an access method.\n"
+msgstr ""
+"®ádným ze známých zpùsobù nelze získat pøístup k hodinám reálného èasu.\n"
+"Pro zji¹tìní podrobností pou¾ijte pøepínaè --debug.\n"
+
+#: clock/hwclock.c:1164
+#, c-format
+msgid "%s: %s, errno=%d: %s.\n"
+msgstr "%s: %s, errno=%d: %s.\n"
+
+#: clock/kd.c:40
+msgid "Waiting in loop for time from KDGHWCLK to change\n"
+msgstr "Ve smyèce se pokou¹ím zjistit èas pomocí KDGHWCLK.\n"
+
+#: clock/kd.c:43
+msgid "KDGHWCLK ioctl to read time failed"
+msgstr "volání KDGHWCLK ioctl selhalo."
+
+#: clock/kd.c:50 clock/rtc.c:144
+msgid "Timed out waiting for time change.\n"
+msgstr "V Èasovém limitu se nepodaøilo zjistit èas.\n"
+
+#: clock/kd.c:54
+msgid "KDGHWCLK ioctl to read time failed in loop"
+msgstr "volání KDGHWCLK ioctl ve smyèce selhalo."
+
+#: clock/kd.c:76
+msgid "ioctl() failed to read time from  /dev/tty1"
+msgstr "èas se pomocí volání ioctl() pro /dev/tty1 nepodaøilo zjistit"
+
+#: clock/kd.c:112
+msgid "ioctl() to open /dev/tty1 failed"
+msgstr "volání ioctl() pro /dev/tty1 selhalo"
+
+#: clock/kd.c:142
+msgid "KDGHWCLK ioctl failed"
+msgstr "volání ioctl KDGHWCLK selhalo"
+
+#: clock/kd.c:146
+msgid "Can't open /dev/tty1"
+msgstr "/dev/tty1 nelze otevøít"
+
+#: clock/rtc.c:98
+msgid "ioctl() to /dev/rtc to read the time failed.\n"
+msgstr "èas se pomocí volání ioctl() pro /dev/rtc nepodaøilo zjistit\n"
+
+#: clock/rtc.c:129
+msgid "Waiting in loop for time from /dev/rtc to change\n"
+msgstr "Ve smyèce se pokou¹ím zjistit èas z /dev/rtc.\n"
+
+#: clock/rtc.c:165 clock/rtc.c:222
+msgid "open() of /dev/rtc failed"
+msgstr "/dev/rtc nelze otevøít - volání open() selhalo"
+
+#. This rtc device doesn't have interrupt functions.  This is typical
+#. on an Alpha, where the Hardware Clock interrupts are used by the
+#. kernel for the system clock, so aren't at the user's disposal.
+#.
+#: clock/rtc.c:182
+msgid "/dev/rtc does not have interrupt functions. "
+msgstr "/dev/rtc nemá pøeru¹ovací funkce. "
+
+#: clock/rtc.c:191
+msgid "read() to /dev/rtc to wait for clock tick failed"
+msgstr "tikání hodin nelze z /dev/rtc èíst - volání read() selhalo"
+
+#: clock/rtc.c:199
+msgid "ioctl() to /dev/rtc to turn off update interrupts failed"
+msgstr ""
+"obnovovací pøeru¹ení nelze vypnout - volání ioctl() pro /dev/rtc selhalo"
+
+#: clock/rtc.c:202
+msgid "ioctl() to /dev/rtc to turn on update interrupts failed unexpectedly"
+msgstr ""
+"obnovovací pøeru¹ení nelze zapnout - volání ioctl() pro /dev/rtc selhalo"
+
+#: clock/rtc.c:245 clock/rtc.c:324 clock/rtc.c:369
+msgid "Unable to open /dev/rtc"
+msgstr "/dev/rtc nelze otevøít."
+
+#: clock/rtc.c:268
+msgid "ioctl() to /dev/rtc to set the time failed.\n"
+msgstr "Èas nelze nastavit - volání ioctl() pro /dev/rtc selhalo.\n"
+
+#: clock/rtc.c:272
+#, c-format
+msgid "ioctl(%s) was successful.\n"
+msgstr "Volání ioctl(%s) bylo úspì¹né.\n"
+
+#: clock/rtc.c:302
+msgid "Open of /dev/rtc failed"
+msgstr "/dev/rtc nelze otevøít."
+
+#: clock/rtc.c:320 clock/rtc.c:365
+msgid ""
+"To manipulate the epoch value in the kernel, we must access the Linux 'rtc' "
+"device driver via the device special file /dev/rtc.  This file does not "
+"exist on this system.\n"
+msgstr ""
+"Pro zmìnu hodnoty poèátku epochy v jádøe je nutné mít pøístup ke zvlá¹tnímu\n"
+"souboru /dev/rtc. Tento soubor neexistuje.\n"
+
+#: clock/rtc.c:331
+msgid "ioctl(RTC_EPOCH_READ) to /dev/rtc failed"
+msgstr "volání(RTC_EPOCH_READ) pro /dev/rtc selhalo"
+
+#: clock/rtc.c:337
+#, c-format
+msgid "we have read epoch %ld from /dev/rtc with RTC_EPOCH_READ ioctl.\n"
+msgstr ""
+"Z /dev/rtc byl pomocí RTC_EPOCH_READ ioctl zji¹tìn poèátek epochy (%ld).\n"
+
+#. kernel would not accept this epoch value
+#. Hmm - bad habit, deciding not to do what the user asks
+#. just because one believes that the kernel might not like it.
+#: clock/rtc.c:357
+#, c-format
+msgid "The epoch value may not be less than 1900.  You requested %ld\n"
+msgstr "Hodnota poèátku epochy nesmí být men¹í ne¾ 1900 (po¾adováno %ld).\n"
+
+#: clock/rtc.c:374
+#, c-format
+msgid "setting epoch to %ld with RTC_EPOCH_SET ioctl to /dev/rtc.\n"
+msgstr ""
+"Nastavuji pomocí RTC_EPOCH_SET ioctl pro /dev/rtc poèátek epochy na %ld.\n"
+
+#: clock/rtc.c:379
+msgid ""
+"The kernel device driver for /dev/rtc does not have the RTC_EPOCH_SET "
+"ioctl.\n"
+msgstr "Ovladaè jádra pro /dev/rtc nepodporuje RTC_EPOCH_SET ioctl.\n"
+
+#: clock/rtc.c:382
+msgid "ioctl(RTC_EPOCH_SET) to /dev/rtc failed"
+msgstr "volání ioctl(RTC_EPOCH_SET) pro /dev/rtc selhalo"
+
+#: clock/shhopt.c:255 clock/shhopt.c:281
+#, c-format
+msgid "invalid number `%s'\n"
+msgstr "Chybné èíslo `%s'\n"
+
+#: clock/shhopt.c:258 clock/shhopt.c:284
+#, c-format
+msgid "number `%s' to `%s' out of range\n"
+msgstr "Èíslo `%s' na `%s'. Hodnota je mimo meze.\n"
+
+#: clock/shhopt.c:398
+#, c-format
+msgid "unrecognized option `%s'\n"
+msgstr "neznámý pøepínaè `%s'\n"
+
+#: clock/shhopt.c:411 clock/shhopt.c:449
+#, c-format
+msgid "option `%s' requires an argument\n"
+msgstr "pøepínaè `%s' vy¾aduje argument\n"
+
+#: clock/shhopt.c:417
+#, c-format
+msgid "option `%s' doesn't allow an argument\n"
+msgstr "pøepínaè `%s' musí být zadán bez argumentu\n"
+
+#: clock/shhopt.c:439
+#, c-format
+msgid "unrecognized option `-%c'\n"
+msgstr "neznámý pøepínaè `-%c'\n"
+
+#: disk-utils/fdformat.c:33
+msgid "Formatting ... "
+msgstr "Formátuji ... "
+
+#: disk-utils/fdformat.c:51 disk-utils/fdformat.c:86
+msgid "done\n"
+msgstr "hotovo\n"
+
+#: disk-utils/fdformat.c:62
+msgid "Verifying ... "
+msgstr "Ovìøuji ... "
+
+#: disk-utils/fdformat.c:73
+msgid "Read: "
+msgstr "Chyba pøi ètení: "
+
+#: disk-utils/fdformat.c:75
+#, c-format
+msgid "Problem reading cylinder %d, expected %d, read %d\n"
+msgstr "Chyba pøi ètení cylindru %d, pøedpoklad %d, pøeèteno %d\n"
+
+#: disk-utils/fdformat.c:81
+#, c-format
+msgid ""
+"bad data in cyl %d\n"
+"Continuing ... "
+msgstr ""
+"chybná data v cylindru %d\n"
+"Pokraèuji ... "
+
+#: disk-utils/fdformat.c:96
+#, c-format
+msgid "usage: %s [ -n ] device\n"
+msgstr "Pou¾ití: %s [ -n ] zaøízení\n"
+
+#: disk-utils/fdformat.c:122
+#, c-format
+msgid "%s: not a floppy device\n"
+msgstr "%s není zaøízením pru¾ného disku\n"
+
+#: disk-utils/fdformat.c:128
+msgid "Could not determine current format type"
+msgstr "Typ formátu nelze zjistit"
+
+#: disk-utils/fdformat.c:129
+#, c-format
+msgid "%s-sided, %d tracks, %d sec/track. Total capacity %d kB.\n"
+msgstr "stran: %s, stop: %d, sekt/stopu %d. Celková kapacita %d kB.\n"
+
+#: disk-utils/fdformat.c:130
+msgid "Double"
+msgstr "2"
+
+#: disk-utils/fdformat.c:130
+msgid "Single"
+msgstr "1"
+
+#: disk-utils/fsck.minix.c:288
+#, c-format
+msgid "%s is mounted.\t "
+msgstr "%s je ji¾ pøipojeno.\t"
+
+#: disk-utils/fsck.minix.c:290
+msgid "Do you really want to continue"
+msgstr "Chcete opravdu pokraèovat"
+
+#: disk-utils/fsck.minix.c:294
+msgid "check aborted.\n"
+msgstr "prohlídka ukonèena.\n"
+
+#: disk-utils/fsck.minix.c:311 disk-utils/fsck.minix.c:331
+msgid "Zone nr < FIRSTZONE in file `"
+msgstr "èíslo Zóny < FIRSTZONE v souboru `"
+
+#: disk-utils/fsck.minix.c:313 disk-utils/fsck.minix.c:333
+msgid "Zone nr >= ZONES in file `"
+msgstr "èíslo Zóny >= poèet ZÓN v souboru `"
+
+#: disk-utils/fsck.minix.c:318 disk-utils/fsck.minix.c:338
+msgid "Remove block"
+msgstr "Odstranit blok"
+
+#: disk-utils/fsck.minix.c:356
+msgid "Read error: unable to seek to block in file '"
+msgstr "Chyba pøi ètení: nelze posunout ukazovátko na blok v souboru '"
+
+#: disk-utils/fsck.minix.c:362
+msgid "Read error: bad block in file '"
+msgstr "Chyba pøi ètení: chybný blok v souboru '"
+
+#: disk-utils/fsck.minix.c:378
+msgid ""
+"Internal error: trying to write bad block\n"
+"Write request ignored\n"
+msgstr ""
+"Vnitøní chyba: pokus o zápis chybného bloku.\n"
+"®ádost o zápis ignorována.\n"
+
+#: disk-utils/fsck.minix.c:386
+msgid "Write error: bad block in file '"
+msgstr "Chyba pøi zápisu: chybný blok v souboru '"
+
+#: disk-utils/fsck.minix.c:607
+msgid "Warning: Firstzone != Norm_firstzone\n"
+msgstr "Varování: Firstzone != Norm_firstzone\n"
+
+#: disk-utils/fsck.minix.c:612 disk-utils/mkfs.minix.c:528
+#, c-format
+msgid "%ld inodes\n"
+msgstr "i-uzlù: %ld\n"
+
+#: disk-utils/fsck.minix.c:613 disk-utils/mkfs.minix.c:529
+#, c-format
+msgid "%ld blocks\n"
+msgstr "blokù: %ld\n"
+
+#: disk-utils/fsck.minix.c:614 disk-utils/mkfs.minix.c:530
+#, c-format
+msgid "Firstdatazone=%ld (%ld)\n"
+msgstr "Firstdatazone=%ld (%ld)\n"
+
+#: disk-utils/fsck.minix.c:615 disk-utils/mkfs.minix.c:531
+#, c-format
+msgid "Zonesize=%d\n"
+msgstr "Velikost zóny=%d\n"
+
+#: disk-utils/fsck.minix.c:616
+#, c-format
+msgid "Maxsize=%ld\n"
+msgstr "Maxvelikost=%ld\n"
+
+#: disk-utils/fsck.minix.c:617
+#, c-format
+msgid "Filesystem state=%d\n"
+msgstr "Stav systému souborù=%d\n"
+
+#: disk-utils/fsck.minix.c:618
+#, c-format
+msgid ""
+"namelen=%d\n"
+"\n"
+msgstr "namelen=%d\n"
+
+#: disk-utils/fsck.minix.c:632 disk-utils/fsck.minix.c:684
+#, c-format
+msgid "Inode %d marked not used, but used for file '"
+msgstr "I-uzel %d je oznaèen jako nepou¾ívaný, ale je pou¾it pro soubor '"
+
+#: disk-utils/fsck.minix.c:637 disk-utils/fsck.minix.c:688
+msgid "Mark in use"
+msgstr "Oznaèen jako pou¾ívaný"
+
+#: disk-utils/fsck.minix.c:659 disk-utils/fsck.minix.c:708
+#, c-format
+msgid " has mode %05o\n"
+msgstr " mód je %05o\n"
+
+#: disk-utils/fsck.minix.c:665 disk-utils/fsck.minix.c:713
+msgid "Warning: inode count too big.\n"
+msgstr "Varování: poèet i-uzlù je pøíli¹ veliký.\n"
+
+#: disk-utils/fsck.minix.c:749 disk-utils/fsck.minix.c:783
+msgid "Block has been used before. Now in file `"
+msgstr "Blok byl pou¾it ji¾ pøedtím. Nyní v souboru `"
+
+#: disk-utils/fsck.minix.c:752 disk-utils/fsck.minix.c:786
+#: disk-utils/fsck.minix.c:1114 disk-utils/fsck.minix.c:1123
+#: disk-utils/fsck.minix.c:1167 disk-utils/fsck.minix.c:1176
+msgid "Clear"
+msgstr "Smazat"
+
+#: disk-utils/fsck.minix.c:761 disk-utils/fsck.minix.c:795
+#, c-format
+msgid "Block %d in file `"
+msgstr "Blok %d v souboru `"
+
+#: disk-utils/fsck.minix.c:763 disk-utils/fsck.minix.c:797
+msgid "' is marked not in use."
+msgstr "  je oznaèen jako nepou¾ívaný."
+
+#: disk-utils/fsck.minix.c:764 disk-utils/fsck.minix.c:798
+msgid "Correct"
+msgstr "Opravit"
+
+#: disk-utils/fsck.minix.c:948 disk-utils/fsck.minix.c:1012
+msgid " contains a bad inode number for file '"
+msgstr " obsahuje chybné èíslo i-uzlu pro soubor '"
+
+#: disk-utils/fsck.minix.c:950 disk-utils/fsck.minix.c:1014
+msgid " Remove"
+msgstr " Odstranit"
+
+#: disk-utils/fsck.minix.c:964 disk-utils/fsck.minix.c:1028
+msgid ": bad directory: '.' isn't first\n"
+msgstr ": chybný adresáø: '.' není první\n"
+
+#: disk-utils/fsck.minix.c:971 disk-utils/fsck.minix.c:1036
+msgid ": bad directory: '..' isn't second\n"
+msgstr ": chybný adresáø: '..' není druhý\n"
+
+#: disk-utils/fsck.minix.c:1071
+msgid ": bad directory: size<32"
+msgstr ": chybný adresáø: velikost<32"
+
+#: disk-utils/fsck.minix.c:1090
+msgid ": bad directory: size < 32"
+msgstr ": chybný adresáø: velikost < 32"
+
+#: disk-utils/fsck.minix.c:1113 disk-utils/fsck.minix.c:1166
+#, c-format
+msgid "Inode %d mode not cleared."
+msgstr "Mód I-uzlu %d není smazán."
+
+#: disk-utils/fsck.minix.c:1122 disk-utils/fsck.minix.c:1175
+#, c-format
+msgid "Inode %d not used, marked used in the bitmap."
+msgstr "I-uzel %d není pou¾íván a v bitmapì oznaèen jako pou¾ívaný."
+
+#: disk-utils/fsck.minix.c:1128 disk-utils/fsck.minix.c:1181
+#, c-format
+msgid "Inode %d used, marked unused in the bitmap."
+msgstr "I-uzel %d je pou¾íván a v bitmapì oznaèen jako nepou¾ívaný."
+
+#: disk-utils/fsck.minix.c:1134 disk-utils/fsck.minix.c:1186
+#, c-format
+msgid "Inode %d (mode = %07o), i_nlinks=%d, counted=%d."
+msgstr "I-uzel %d (mode = %07o), i_nlinks=%d, napoèítáno=%d."
+
+#: disk-utils/fsck.minix.c:1136 disk-utils/fsck.minix.c:1188
+msgid "Set i_nlinks to count"
+msgstr "Nastavit i_nlinks na poèet"
+
+#: disk-utils/fsck.minix.c:1148 disk-utils/fsck.minix.c:1200
+#, c-format
+msgid "Zone %d: marked in use, no file uses it."
+msgstr "Zóna %d je oznaèena jako pou¾ívaná a ¾ádné soubory ji nepou¾ívají."
+
+#: disk-utils/fsck.minix.c:1149 disk-utils/fsck.minix.c:1201
+msgid "Unmark"
+msgstr "Odznaèit"
+
+#: disk-utils/fsck.minix.c:1153 disk-utils/fsck.minix.c:1205
+#, c-format
+msgid "Zone %d: %sin use, counted=%d\n"
+msgstr "Zóna %d: %spou¾ívaná, napoèítáno=%d\n"
+
+#: disk-utils/fsck.minix.c:1154 disk-utils/fsck.minix.c:1206
+msgid "not "
+msgstr "není "
+
+#: disk-utils/fsck.minix.c:1182
+msgid "Set"
+msgstr "Nastavit"
+
+#: disk-utils/fsck.minix.c:1296
+#, c-format
+msgid "%s is clean, no check.\n"
+msgstr "%s je 'èisté', ovìøování vynecháno.\n"
+
+#: disk-utils/fsck.minix.c:1300
+#, c-format
+msgid "Forcing filesystem check on %s.\n"
+msgstr "Kontrola systému souborù na %s vynucena.\n"
+
+#: disk-utils/fsck.minix.c:1302
+#, c-format
+msgid "Filesystem on %s is dirty, needs checking.\n"
+msgstr "Systém souborù na %s je '¹pinavý', je tøeba jej zkontrolovat.\n"
+
+#: disk-utils/fsck.minix.c:1331
+msgid ""
+"\n"
+"%6ld inodes used (%ld%%)\n"
+msgstr ""
+"\n"
+"pou¾ívaných i-uzlù: %6ld (%ld%%)\n"
+
+#: disk-utils/fsck.minix.c:1336
+msgid "%6ld zones used (%ld%%)\n"
+msgstr "pou¾ívaných zón: %6ld (%ld%%)\n"
+
+#: disk-utils/fsck.minix.c:1338
+#, c-format
+msgid ""
+"\n"
+"%6d regular files\n"
+"%6d directories\n"
+"%6d character device files\n"
+"%6d block device files\n"
+"%6d links\n"
+"%6d symbolic links\n"
+"------\n"
+"%6d files\n"
+msgstr ""
+"\n"
+" obyèejných souborù:  %6d\n"
+" adresáøù:            %6d\n"
+" znakových zaøízení:  %6d\n"
+" blokových zaøízení:  %6d\n"
+" odkazù:              %6d\n"
+" symbolických odkazù: %6d\n"
+"------\n"
+"souborù:              %6d\n"
+
+#: disk-utils/fsck.minix.c:1351
+msgid ""
+"----------------------------\n"
+"FILE SYSTEM HAS BEEN CHANGED\n"
+"----------------------------\n"
+msgstr ""
+"----------------------------\n"
+"SOUBOROVÝ SYSTÉM BYL ZMÌNÌN \n"
+"----------------------------\n"
+
+#: disk-utils/mkfs.c:66
+msgid "Usage: mkfs [-V] [-t fstype] [fs-options] device [size]\n"
+msgstr "Pou¾ití: mkfs [-V] [-t sstyp] [ss-volby] zaøízení [velikost]\n"
+
+#: disk-utils/mkfs.c:80 fdisk/cfdisk.c:330 getopt-1.0.3b/getopt.c:85
+#: getopt-1.0.3b/getopt.c:95 login-utils/wall.c:221 mount/sundries.c:195
+#, c-format
+msgid "%s: Out of memory!\n"
+msgstr "%s: Nedostatek pamìti!\n"
+
+#: disk-utils/mkfs.c:89
+msgid "mkfs version "
+msgstr "mkfs verze "
+
+#: disk-utils/mkfs.minix.c:186
+#, c-format
+msgid "Usage: %s [-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]\n"
+msgstr "Pou¾ití: %s [ -n ] [-c | -l soubor] [-nXX] [-iXX] /dev/jméno [bloky]\n"
+
+#: disk-utils/mkfs.minix.c:210
+#, c-format
+msgid "%s is mounted; will not make a filesystem here!"
+msgstr "%s je pøipojeno; systém souborù zde vytváøet nebudu!"
+
+#: disk-utils/mkfs.minix.c:271
+msgid "seek to boot block failed in write_tables"
+msgstr "chyba pøi posunu ukazovátka na startovací blok ve write_tables"
+
+#: disk-utils/mkfs.minix.c:273
+msgid "unable to clear boot sector"
+msgstr "startovací blok nelze smazat"
+
+#: disk-utils/mkfs.minix.c:275
+msgid "seek failed in write_tables"
+msgstr "chyba pøi posunu ukazovátka ve write_tables"
+
+#: disk-utils/mkfs.minix.c:277
+msgid "unable to write super-block"
+msgstr "superblok nelze zapsat"
+
+#: disk-utils/mkfs.minix.c:279
+msgid "unable to write inode map"
+msgstr "mapu i-uzlù nelze zapsat"
+
+#: disk-utils/mkfs.minix.c:281
+msgid "unable to write zone map"
+msgstr "mapu zón nelze zapsat"
+
+#: disk-utils/mkfs.minix.c:283
+msgid "unable to write inodes"
+msgstr "i-uzly nelze zapsat"
+
+#: disk-utils/mkfs.minix.c:290
+msgid "seek failed in write_block"
+msgstr "chyba pøi posunu ukazovátka ve write_block"
+
+#: disk-utils/mkfs.minix.c:292
+msgid "write failed in write_block"
+msgstr "chyba pøi zápisu ve write_block"
+
+#. Could make triple indirect block here
+#: disk-utils/mkfs.minix.c:300 disk-utils/mkfs.minix.c:374
+#: disk-utils/mkfs.minix.c:425
+msgid "too many bad blocks"
+msgstr "pøíli¹ mnoho chybných blokù"
+
+#: disk-utils/mkfs.minix.c:308
+msgid "not enough good blocks"
+msgstr "nedostatek korektních blokù"
+
+#: disk-utils/mkfs.minix.c:517
+msgid "unable to allocate buffers for maps"
+msgstr "buffery pro mapy nelze alokovat"
+
+#: disk-utils/mkfs.minix.c:526
+msgid "unable to allocate buffer for inodes"
+msgstr "buffery pro i-uzly nelze alokovat"
+
+#: disk-utils/mkfs.minix.c:532
+#, c-format
+msgid ""
+"Maxsize=%ld\n"
+"\n"
+msgstr ""
+"Maxvelikost=%ld\n"
+"\n"
+
+#: disk-utils/mkfs.minix.c:546
+msgid "seek failed during testing of blocks"
+msgstr "chyba pøi posunu ukazovátka v prùbìhu kontroly blokù"
+
+#: disk-utils/mkfs.minix.c:554
+msgid "Weird values in do_check: probably bugs\n"
+msgstr "Nesprávné hodnoty v do_check: pravdìpodobnì chyby\n"
+
+#: disk-utils/mkfs.minix.c:585
+msgid "seek failed in check_blocks"
+msgstr "chyba pøi posunu ukazovátka v check_blocks"
+
+#: disk-utils/mkfs.minix.c:594
+msgid "bad blocks before data-area: cannot make fs"
+msgstr "chybné bloky pøed datovou oblastí: systém souborù nelze vytvoøit"
+
+#: disk-utils/mkfs.minix.c:600 disk-utils/mkfs.minix.c:622
+#, c-format
+msgid "%d bad blocks\n"
+msgstr "chybných blokù: %d\n"
+
+#: disk-utils/mkfs.minix.c:602 disk-utils/mkfs.minix.c:624
+msgid "one bad block\n"
+msgstr "chybných blokù: 1\n"
+
+#: disk-utils/mkfs.minix.c:614
+msgid "can't open file of bad blocks"
+msgstr "soubor chybných blokù nelze otevøít"
+
+#: disk-utils/mkfs.minix.c:637 disk-utils/mkfs.minix.c:640
+msgid "bad inode size"
+msgstr "chybná velikost i-uzlu"
+
+#: disk-utils/mkfs.minix.c:669
+#, c-format
+msgid "%s: not compiled with minix v2 support\n"
+msgstr "pøi pøekladu %s nebyla zvolena podpora minix v2\n"
+
+#: disk-utils/mkfs.minix.c:685
+msgid "strtol error: number of blocks not specified"
+msgstr "chyba strtol: poèet blokù nebyl zadán"
+
+#: disk-utils/mkfs.minix.c:717
+#, c-format
+msgid "unable to open %s"
+msgstr "%s nelze otevøít"
+
+#: disk-utils/mkfs.minix.c:719
+#, c-format
+msgid "unable to stat %s"
+msgstr "o %s nelze získat informace"
+
+#: disk-utils/mkfs.minix.c:723
+#, c-format
+msgid "will not try to make filesystem on '%s'"
+msgstr "nebudu se pokou¹et vytvoøit systém souborù na '%s'"
+
+#: disk-utils/mkswap.c:101
+#, c-format
+msgid "Assuming pages of size %d\n"
+msgstr "Pøedpokládám velikost stránek %d\n"
+
+#: disk-utils/mkswap.c:234
+msgid "one bad page\n"
+msgstr "chybných stránek: 1\n"
+
+#: disk-utils/mkswap.c:236
+#, c-format
+msgid "%d bad pages\n"
+msgstr "chybných stránek: %d\n"
+
+#: disk-utils/mkswap.c:340
+#, c-format
+msgid "%s: error: Nowhere to set up swap on?\n"
+msgstr "%s: chyba: Kde mám vytvoøit odkládací prostor?\n"
+
+#: disk-utils/mkswap.c:349
+#, c-format
+msgid "%s: error: size %ld is larger than device size %d\n"
+msgstr "%s: chyba: zadaná velikost (%ld) je vìt¹í ne¾ velikost zaøízení (%d)\n"
+
+#: disk-utils/mkswap.c:367
+#, c-format
+msgid "%s: error: unknown version %d\n"
+msgstr "%s: chyba: neznámá verze %d\n"
+
+#: disk-utils/mkswap.c:373
+#, c-format
+msgid "%s: error: swap area needs to be at least %ldkB\n"
+msgstr "%s: chyba: minimální velikost odkládacího prostoru je %ldkB\n"
+
+#: disk-utils/mkswap.c:392
+#, c-format
+msgid "%s: warning: truncating swap area to %ldkB\n"
+msgstr "%s: varování: odkládací prostor useknut na %ldkB\n"
+
+#: disk-utils/mkswap.c:419
+#, c-format
+msgid ""
+"%s: Device '%s' contains a valid Sun disklabel.\n"
+"This probably means creating v0 swap would destroy your partition table\n"
+"No swap created. If you really want to create swap v0 on that device, use\n"
+"the -f option to force it.\n"
+msgstr ""
+"%s: Zaøízení '%s' obsahuje korektní 'Sun popis disku'.\n"
+"To znamená, ¾e vytvoøení odkládacího prostoru v0 by pravdìpodobnì znièilo\n"
+"Va¹í tabulku rozdìlení disku. Odkládací prostor nebyl vytvoøen. Pokud "
+"opravdu\n"
+"chcete vytvoøit odkládací prostor v0, pou¾ijte pøepínaè -f pro vynucení.\n"
+
+#: disk-utils/mkswap.c:444
+#, c-format
+msgid "Setting up swapspace version %d, size = %ld bytes\n"
+msgstr "Vytváøím odkládací prostor verze %d, velikost (v bajtech) = %ld\n"
+
+#: disk-utils/setfdprm.c:30
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Chybné èíslo: %s\n"
+
+#: disk-utils/setfdprm.c:80
+#, c-format
+msgid "Syntax error: '%s'\n"
+msgstr "Syntaktická chyba: '%s'\n"
+
+#: disk-utils/setfdprm.c:90
+#, c-format
+msgid "No such parameter set: '%s'\n"
+msgstr "Chybný argument: '%s'\n"
+
+#: disk-utils/setfdprm.c:100
+#, c-format
+msgid "usage: %s [ -p ] dev name\n"
+msgstr "Pou¾ití: %s [ -p ] jméno zaøízení\n"
+
+#: disk-utils/setfdprm.c:101
+#, c-format
+msgid ""
+"       %s [ -p ] dev size sect heads tracks stretch gap rate spec1 fmt_gap\n"
+msgstr ""
+"         %s [ -p ] zaøízení velikost sekt hlavy stopy stretch gap rychlost\n"
+"         spec1 fmt_gap\n"
+
+#: disk-utils/setfdprm.c:104
+#, c-format
+msgid "       %s [ -c | -y | -n | -d ] dev\n"
+msgstr "         %s [ -c | -y | -n | -d ] zaøízení\n"
+
+#: disk-utils/setfdprm.c:106
+#, c-format
+msgid "       %s [ -c | -y | -n ] dev\n"
+msgstr "         %s [ -c | -y | -n ] zaøízení\n"
+
+#: fdisk/cfdisk.c:355 fdisk/cfdisk.c:1860
+msgid "Unusable"
+msgstr "Nepou¾itelné"
+
+#: fdisk/cfdisk.c:357 fdisk/cfdisk.c:1862
+msgid "Free Space"
+msgstr "Volný prostor"
+
+#: fdisk/cfdisk.c:360
+msgid "Linux ext2"
+msgstr "Linux ext2"
+
+#. also Solaris
+#: fdisk/cfdisk.c:362 fdisk/i386_sys_types.c:56
+msgid "Linux"
+msgstr "Linux"
+
+#: fdisk/cfdisk.c:365
+msgid "OS/2 HPFS"
+msgstr "OS/2 HPFS"
+
+#: fdisk/cfdisk.c:367
+msgid "OS/2 IFS"
+msgstr "OS/2 IFS"
+
+#: fdisk/cfdisk.c:371
+msgid "NTFS"
+msgstr "NTFS"
+
+#: fdisk/cfdisk.c:382
+msgid "Disk has been changed.\n"
+msgstr "Na disku byly provedeny zmìny.\n"
+
+#: fdisk/cfdisk.c:383
+msgid "Reboot the system to ensure the partition table is correctly updated.\n"
+msgstr ""
+"Restartujte systém, aby byla jistota, ¾e tabulka rozdìlení disku byla\n"
+"korektnì zmìnìna.\n"
+
+#: fdisk/cfdisk.c:386
+msgid ""
+"\n"
+"WARNING: If you have created or modified any\n"
+"DOS 6.x partitions, please see the cfdisk manual\n"
+"page for additional information.\n"
+msgstr ""
+"\n"
+"VAROVÁNÍ: Pokud jste vytvoøil èi zmìnil nìjaké\n"
+"DOS 6.x diskové oddíly, pøeètìte si prosím manuál\n"
+"programu cfdisk, abyste získal dodateèné informace.\n"
+
+#: fdisk/cfdisk.c:481
+msgid "FATAL ERROR"
+msgstr "OSUDOVÁ CHYBA"
+
+#: fdisk/cfdisk.c:490
+msgid "Press any key to exit cfdisk"
+msgstr "Stisknìte jakoukoliv klávesu pro ukonèení programu cfdisk"
+
+#: fdisk/cfdisk.c:526 fdisk/cfdisk.c:534
+msgid "Cannot seek on disk drive"
+msgstr "Nelze posunout ukazovátko na disku"
+
+#: fdisk/cfdisk.c:528
+msgid "Cannot read disk drive"
+msgstr "Z disku nelze èíst"
+
+#: fdisk/cfdisk.c:536
+msgid "Cannot write disk drive"
+msgstr "Nelze zapisovat na disk"
+
+#: fdisk/cfdisk.c:773
+msgid "Too many partitions"
+msgstr "pøíli¹ mnoho diskových oddílù"
+
+#: fdisk/cfdisk.c:778
+msgid "Partition begins before sector 0"
+msgstr "Diskový oddíl zaèíná pøed sektorem 0"
+
+#: fdisk/cfdisk.c:783
+msgid "Partition ends before sector 0"
+msgstr "Diskový oddíl konèí pøed sektorem 0"
+
+#: fdisk/cfdisk.c:788
+msgid "Partition begins after end-of-disk"
+msgstr "Diskový oddíl zaèíná za koncem disku"
+
+#: fdisk/cfdisk.c:793
+msgid "Partition ends after end-of-disk"
+msgstr "Diskový oddíl konèí za koncem disku"
+
+#: fdisk/cfdisk.c:816
+msgid "logical partitions not in disk order"
+msgstr "logické diskový oddíl jsou chybnì seøazeny"
+
+#: fdisk/cfdisk.c:819
+msgid "logical partitions overlap"
+msgstr "logické diskové oddíly se vzájemnì pøekrývají"
+
+#: fdisk/cfdisk.c:821
+msgid "extended logical partitions overlap"
+msgstr "roz¹íøené diskové oddíly se vzájemnì pøekrývají"
+
+#: fdisk/cfdisk.c:851
+msgid ""
+"!!!! Internal error creating logical drive with no extended partition !!!!"
+msgstr ""
+"!!!! Vnitøní chyba pøi vytváøení logického disku bez roz¹íøených diskových "
+"oddílù !!!!"
+
+#: fdisk/cfdisk.c:862 fdisk/cfdisk.c:874
+msgid ""
+"Cannot create logical drive here -- would create two extended partitions"
+msgstr ""
+"Zde nelze vytvoøit logický disk -- vznikly by dva roz¹íøené diskové oddíly"
+
+#: fdisk/cfdisk.c:1024
+msgid "Menu item too long. Menu may look odd."
+msgstr "Polo¾ka nabídky je pøíli¹ dlouhá. Nabídka mù¾e vypadat podivnì."
+
+#: fdisk/cfdisk.c:1080
+msgid "Menu without direction. Defaulting horizontal."
+msgstr "Nabídka nemá zadaný smìr. Pou¾ívám horizontální."
+
+#: fdisk/cfdisk.c:1210
+msgid "Illegal key"
+msgstr "Chybná klávesa"
+
+#: fdisk/cfdisk.c:1233
+msgid "Press a key to continue"
+msgstr "Stisknìte klávesu pro pokraèování"
+
+#: fdisk/cfdisk.c:1280 fdisk/cfdisk.c:1831 fdisk/cfdisk.c:2354
+#: fdisk/cfdisk.c:2356
+msgid "Primary"
+msgstr "Primární"
+
+#: fdisk/cfdisk.c:1280
+msgid "Create a new primary partition"
+msgstr "Vytvoøit nový primární diskový oddíl"
+
+#: fdisk/cfdisk.c:1281 fdisk/cfdisk.c:1831 fdisk/cfdisk.c:2353
+#: fdisk/cfdisk.c:2356
+msgid "Logical"
+msgstr "Logický"
+
+#: fdisk/cfdisk.c:1281
+msgid "Create a new logical partition"
+msgstr "Vytvoøit nový logický diskový oddíl"
+
+#: fdisk/cfdisk.c:1282 fdisk/cfdisk.c:1335 fdisk/cfdisk.c:2043
+msgid "Cancel"
+msgstr "Zru¹it"
+
+#: fdisk/cfdisk.c:1282 fdisk/cfdisk.c:1335
+msgid "Don't create a partition"
+msgstr "Nevytváøet diskový oddíl"
+
+#: fdisk/cfdisk.c:1298
+msgid "!!! Internal error !!!"
+msgstr "!!! Vnitøní chyba !!!"
+
+#: fdisk/cfdisk.c:1301
+msgid "Size (in MB): "
+msgstr "Velikost (v MB): "
+
+#: fdisk/cfdisk.c:1333
+msgid "Beginning"
+msgstr "Zaèátek"
+
+#: fdisk/cfdisk.c:1333
+msgid "Add partition at beginning of free space"
+msgstr "Vytvoøit diskový oddíl na zaèátku volného prostoru"
+
+#: fdisk/cfdisk.c:1334
+msgid "End"
+msgstr "Konec"
+
+#: fdisk/cfdisk.c:1334
+msgid "Add partition at end of free space"
+msgstr "Vytvoøit diskový oddíl na konci volného prostoru"
+
+#: fdisk/cfdisk.c:1352
+msgid "No room to create the extended partition"
+msgstr "Pro roz¹íøený diskový oddíl není dostatek místa"
+
+#. probably a file or cdrom
+#: fdisk/cfdisk.c:1384
+msgid "Cannot read disk drive geometry"
+msgstr "Geometrii disku nelze zjistit"
+
+#: fdisk/cfdisk.c:1399
+msgid "Bad signature on partition table"
+msgstr "Chybný podpis na tabulce rozdìlení disku"
+
+#: fdisk/cfdisk.c:1402
+msgid "Cannot get disk size"
+msgstr "Velikost disku nelze zjistit"
+
+#: fdisk/cfdisk.c:1420
+msgid "Cannot derive a geometry from an empty partition table"
+msgstr "Z prázdné tabulky rozdìlení disku nelze odvodit geometrii."
+
+#: fdisk/cfdisk.c:1428
+msgid "Cannot derive a geometry from the partition table"
+msgstr "Z tabulky rozdìlení disku nelze odvodit geometrii."
+
+#: fdisk/cfdisk.c:1461
+msgid "Cannot open disk drive"
+msgstr "Disk nelze otevøít"
+
+#: fdisk/cfdisk.c:1463 fdisk/cfdisk.c:1647
+msgid "Opened disk read-only - you have no permission to write"
+msgstr "Disk byl otevøen pouze pro ètení - nemáte práva pro zápis"
+
+#. avoid snprintf - it does not exist on ancient systems
+#: fdisk/cfdisk.c:1506
+msgid "Bad primary partition"
+msgstr "Chybný primární diskový oddíl"
+
+#. avoid snprintf
+#: fdisk/cfdisk.c:1537
+msgid "Bad logical partition"
+msgstr "Chybný logický diskový oddíl"
+
+#: fdisk/cfdisk.c:1659
+msgid "Warning!!  This may destroy data on your disk!"
+msgstr "Varování!! Toto mù¾e vést ke znièení dat na Va¹em disku!"
+
+#: fdisk/cfdisk.c:1663
+msgid "Are you sure you want write the partition table to disk? (yes or no): "
+msgstr ""
+"Jste si jist, ¾e chcete ulo¾it tabulku rozdìlení disku na disk? (yes èi no):"
+
+#: fdisk/cfdisk.c:1669
+msgid "no"
+msgstr "ne"
+
+#: fdisk/cfdisk.c:1670
+msgid "Did not write partition table to disk"
+msgstr "Neukládat tabulku rozdìlení disku na disk"
+
+#: fdisk/cfdisk.c:1672
+msgid "yes"
+msgstr "ano"
+
+#: fdisk/cfdisk.c:1675
+msgid "Please enter `yes' or `no'"
+msgstr "Zadejte `yes' èi `no'"
+
+#: fdisk/cfdisk.c:1679
+msgid "Writing partition table to disk..."
+msgstr "Ukládám tabulku rozdìlení disku na disk"
+
+#: fdisk/cfdisk.c:1704 fdisk/cfdisk.c:1708
+msgid "Wrote partition table to disk"
+msgstr "Tabulka rozdìlení disku byla ulo¾ena na disk"
+
+#: fdisk/cfdisk.c:1706
+msgid ""
+"Wrote partition table, but re-read table failed.  Reboot to update table."
+msgstr ""
+"Tabulka byla ulo¾ena, ale nepodaøilo se ji znovu naèíst. Restartujte systém."
+
+#: fdisk/cfdisk.c:1716
+msgid ""
+"Not precisely one primary partition is bootable. DOS MBR cannot boot this."
+msgstr ""
+"Více ne¾ 1 primární diskový oddíl je startovací. DOS MBR takto nenastartuje."
+
+#: fdisk/cfdisk.c:1774 fdisk/cfdisk.c:1892 fdisk/cfdisk.c:1984
+msgid "Enter filename or press RETURN to display on screen: "
+msgstr "Zadejte jméno souboru èi stisknìte RETURN pro zobrazení: "
+
+#: fdisk/cfdisk.c:1782 fdisk/cfdisk.c:1900 fdisk/cfdisk.c:1992
+#, c-format
+msgid "Cannot open file '%s'"
+msgstr "Soubor '%s' nelze otevøít"
+
+#: fdisk/cfdisk.c:1793
+#, c-format
+msgid "Disk Drive: %s\n"
+msgstr "Disk: %s\n"
+
+#: fdisk/cfdisk.c:1795
+msgid "Sector 0:\n"
+msgstr "Sektor 0:\n"
+
+#: fdisk/cfdisk.c:1802
+#, c-format
+msgid "Sector %d:\n"
+msgstr "Sektor %d:\n"
+
+#: fdisk/cfdisk.c:1822
+msgid "   None   "
+msgstr "  ®ádný  "
+
+#: fdisk/cfdisk.c:1824
+msgid "   Pri/Log"
+msgstr "  Pri/Log"
+
+#: fdisk/cfdisk.c:1826
+msgid "   Primary"
+msgstr "  Primární"
+
+#: fdisk/cfdisk.c:1828
+msgid "   Logical"
+msgstr "  Logický"
+
+#. odd flag on end
+#. type id
+#. type name
+#: fdisk/cfdisk.c:1866 fdisk/fdisk.c:1080 fdisk/fdisk.c:1229
+#: fdisk/fdisksgilabel.c:224 fdisk/fdisksunlabel.c:646 fdisk/sfdisk.c:560
+msgid "Unknown"
+msgstr "Neznámý"
+
+#: fdisk/cfdisk.c:1872
+#, c-format
+msgid "Boot (%02X)"
+msgstr "Startovací (%02X)"
+
+#: fdisk/cfdisk.c:1874 fdisk/cfdisk.c:2362
+#, c-format
+msgid "Unknown (%02X)"
+msgstr "Neznámý (%02X)"
+
+#: fdisk/cfdisk.c:1876
+#, c-format
+msgid "None (%02X)"
+msgstr "®ádný (%02X)"
+
+#: fdisk/cfdisk.c:1911 fdisk/cfdisk.c:2003
+#, c-format
+msgid "Partition Table for %s\n"
+msgstr "Tabulka rozdìlení disku pro %s\n"
+
+#: fdisk/cfdisk.c:1913
+msgid "            First    Last\n"
+msgstr "            První    Poslední\n"
+
+#: fdisk/cfdisk.c:1914
+msgid ""
+" # Type     Sector   Sector   Offset  Length   Filesystem Type (ID)   Flags\n"
+msgstr ""
+" # Typ      Sektor   Sektor   Posun   Délka    ID systému souborù     "
+"Pøíznaky\n"
+
+#: fdisk/cfdisk.c:1915
+msgid ""
+"-- ------- -------- --------- ------ --------- ---------------------- "
+"---------\n"
+msgstr ""
+"-- ------- -------- --------- ------ --------- ---------------------- "
+"---------\n"
+
+#: fdisk/cfdisk.c:2005
+msgid "         ---Starting---      ----Ending----    Start Number of\n"
+msgstr "        ---Poèátek---       ----Konec----   Poèáteèní\n"
+
+#: fdisk/cfdisk.c:2006
+msgid " # Flags Head Sect Cyl   ID  Head Sect Cyl    Sector  Sectors\n"
+msgstr " # Pøíz Hlav Sekt Cyl    ID  Hlav Sekt Cyl  sektor    Sektorù\n"
+
+#: fdisk/cfdisk.c:2007
+msgid "-- ----- ---- ---- ---- ---- ---- ---- ---- -------- ---------\n"
+msgstr "-- ----- ---- ---- ---- ---- ---- ---- ---- -------- ---------\n"
+
+#: fdisk/cfdisk.c:2040
+msgid "Raw"
+msgstr "Pøímý"
+
+#: fdisk/cfdisk.c:2040
+msgid "Print the table using raw data format"
+msgstr "Vytisknout tabulku v pøímém datovém formátu"
+
+#: fdisk/cfdisk.c:2041 fdisk/cfdisk.c:2143
+msgid "Sectors"
+msgstr "Sektory"
+
+#: fdisk/cfdisk.c:2041
+msgid "Print the table ordered by sectors"
+msgstr "Vytisknout tabulku seøazenou dle sektorù"
+
+#: fdisk/cfdisk.c:2042
+msgid "Table"
+msgstr "Tabulka"
+
+#: fdisk/cfdisk.c:2042
+msgid "Just print the partition table"
+msgstr "Vytisknout pouze tabulku rozdìlení disku"
+
+#: fdisk/cfdisk.c:2043
+msgid "Don't print the table"
+msgstr "Netisknout tabulku"
+
+#: fdisk/cfdisk.c:2071
+msgid "Help Screen for cfdisk"
+msgstr "Nápovìda pro cfdisk"
+
+#: fdisk/cfdisk.c:2073
+msgid "This is cfdisk, a curses based disk partitioning program, which"
+msgstr "Toto je cfdisk, program pro vytváøení diskových oddílù zalo¾ený"
+
+#: fdisk/cfdisk.c:2074
+msgid "allows you to create, delete and modify partitions on your hard"
+msgstr "na knihovnì curses. Umo¾òuje vytváøení, mazání a modifikaci"
+
+#: fdisk/cfdisk.c:2075
+msgid "disk drive."
+msgstr "diskových oddílù na Va¹em pevném disku."
+
+#: fdisk/cfdisk.c:2077
+msgid "Copyright (C) 1994-1999 Kevin E. Martin & aeb"
+msgstr "Copyright (C) 1994-1999 Kevin E. Martin & aeb"
+
+#: fdisk/cfdisk.c:2079
+msgid "Command      Meaning"
+msgstr "Pøíkaz      Význam"
+
+#: fdisk/cfdisk.c:2080
+msgid "-------      -------"
+msgstr "-------      -------"
+
+#: fdisk/cfdisk.c:2081
+msgid "  b          Toggle bootable flag of the current partition"
+msgstr "  b          Pøepne aktuálnímu oddílu pøíznak startovatelnosti"
+
+#: fdisk/cfdisk.c:2082
+msgid "  d          Delete the current partition"
+msgstr "  d          Sma¾e aktuální oddíl"
+
+#: fdisk/cfdisk.c:2083
+msgid "  g          Change cylinders, heads, sectors-per-track parameters"
+msgstr "  g          Zmìní geometrii"
+
+#: fdisk/cfdisk.c:2084
+msgid "             WARNING: This option should only be used by people who"
+msgstr "             VAROVÁNÍ: Tato volba by mìla být pou¾ívána pouze lidmi,"
+
+#: fdisk/cfdisk.c:2085
+msgid "             know what they are doing."
+msgstr "             kteøí vìdí, co èiní."
+
+#: fdisk/cfdisk.c:2086
+msgid "  h          Print this screen"
+msgstr "  h          Vypí¹e tuto nápovìdu"
+
+#: fdisk/cfdisk.c:2087
+msgid "  m          Maximize disk usage of the current partition"
+msgstr "  m          Maximálnì zvìt¹í aktuální diskový oddíl "
+
+#: fdisk/cfdisk.c:2088
+msgid "             Note: This may make the partition incompatible with"
+msgstr "             Poznámka: Toto mù¾e uèinit oddíl nekompatibilní s"
+
+#: fdisk/cfdisk.c:2089
+msgid "             DOS, OS/2, ..."
+msgstr "             DOS, OS/2 ..."
+
+#: fdisk/cfdisk.c:2090
+msgid "  n          Create new partition from free space"
+msgstr "  n          Vytvoøit na volném místì nový oddíl"
+
+#: fdisk/cfdisk.c:2091
+msgid "  p          Print partition table to the screen or to a file"
+msgstr "  p          Vypí¹e tabulku rozdìlení disku na obrazovku èi do souboru"
+
+#: fdisk/cfdisk.c:2092
+msgid "             There are several different formats for the partition"
+msgstr "             Pøi výpisu tabulky rozdìlení disku si mù¾ete zvolit"
+
+#: fdisk/cfdisk.c:2093
+msgid "             that you can choose from:"
+msgstr "             z nìkolika formátù:"
+
+#: fdisk/cfdisk.c:2094
+msgid "                r - Raw data (exactly what would be written to disk)"
+msgstr "                r - Pøímý (pøesnì to, co by bylo zapsáno na disk)"
+
+#: fdisk/cfdisk.c:2095
+msgid "                s - Table ordered by sectors"
+msgstr "                s - Tabulka seøazená dle sektorù"
+
+#: fdisk/cfdisk.c:2096
+msgid "                t - Table in raw format"
+msgstr "                t - Tabulka v pøímém formátu"
+
+#: fdisk/cfdisk.c:2097
+msgid "  q          Quit program without writing partition table"
+msgstr "  q          Ukonèí program bez ulo¾ení tabulky rozdìlení disku"
+
+#: fdisk/cfdisk.c:2098
+msgid "  t          Change the filesystem type"
+msgstr "  t          Zmìní typ systému souborù"
+
+#: fdisk/cfdisk.c:2099
+msgid "  u          Change units of the partition size display"
+msgstr "  u          Zmìní jednotky pro zobrazení velikosti oddílu"
+
+#: fdisk/cfdisk.c:2100
+msgid "             Rotates through Mb, sectors and cylinders"
+msgstr "             Cykluje mezi MB, sektory a cylindry"
+
+#: fdisk/cfdisk.c:2101
+msgid "  W          Write partition table to disk (must enter upper case W)"
+msgstr "  W          Ulo¾í tabulku rozdìlení disku (pouze velké W)"
+
+#: fdisk/cfdisk.c:2102
+msgid "             Since this might destroy data on the disk, you must"
+msgstr "             Jeliko¾ to mù¾e znièit na disku, musíte to potvrdit"
+
+#: fdisk/cfdisk.c:2103
+msgid "             either confirm or deny the write by entering `yes' or"
+msgstr "             nebo odmítnout napsáním `yes' nebo"
+
+#: fdisk/cfdisk.c:2104
+msgid "             `no'"
+msgstr "             `no'"
+
+#: fdisk/cfdisk.c:2105
+msgid "Up Arrow     Move cursor to the previous partition"
+msgstr "Nahoru       Pøesune kurzor na pøedcházející oddíl."
+
+#: fdisk/cfdisk.c:2106
+msgid "Down Arrow   Move cursor to the next partition"
+msgstr "Dolù         Pøesune kurzor na dal¹í oddíl."
+
+#: fdisk/cfdisk.c:2107
+msgid "CTRL-L       Redraws the screen"
+msgstr "CTRL-L       Pøekreslí obrazovku"
+
+#: fdisk/cfdisk.c:2108
+msgid "  ?          Print this screen"
+msgstr "  ?          Vypí¹e tuto nápovìdu"
+
+#: fdisk/cfdisk.c:2110
+msgid "Note: All of the commands can be entered with either upper or lower"
+msgstr "Poznámka: V¹echny pøíkazy mohou být zadány malými i velkými písmeny"
+
+#: fdisk/cfdisk.c:2111
+msgid "case letters (except for Writes)."
+msgstr "(s vyjímkou zápisu - W)."
+
+#: fdisk/cfdisk.c:2141 fdisk/cfdisk.c:2443 fdisk/fdisksunlabel.c:305
+#: fdisk/fdisksunlabel.c:307
+msgid "Cylinders"
+msgstr "Cylindry"
+
+#: fdisk/cfdisk.c:2141
+msgid "Change cylinder geometry"
+msgstr "Zmìní geometrii cylindrù"
+
+#: fdisk/cfdisk.c:2142 fdisk/fdisksunlabel.c:302
+msgid "Heads"
+msgstr "Hlavy"
+
+#: fdisk/cfdisk.c:2142
+msgid "Change head geometry"
+msgstr "Zmìní geometrii hlav"
+
+#: fdisk/cfdisk.c:2143
+msgid "Change sector geometry"
+msgstr "Zmìní geometrii sektorù"
+
+#: fdisk/cfdisk.c:2144
+msgid "Done"
+msgstr "Hotovo"
+
+#: fdisk/cfdisk.c:2144
+msgid "Done with changing geometry"
+msgstr "Geometrie zmìnìna"
+
+#: fdisk/cfdisk.c:2157
+msgid "Enter the number of cylinders: "
+msgstr "Zadejte poèet cylindrù: "
+
+#: fdisk/cfdisk.c:2164 fdisk/cfdisk.c:2707
+msgid "Illegal cylinders value"
+msgstr "Chybný poèet cylindrù"
+
+#: fdisk/cfdisk.c:2170
+msgid "Enter the number of heads: "
+msgstr "Zadejte poèet hlav: "
+
+#: fdisk/cfdisk.c:2177 fdisk/cfdisk.c:2717
+msgid "Illegal heads value"
+msgstr "Chybný poèet hlav"
+
+#: fdisk/cfdisk.c:2183
+msgid "Enter the number of sectors per track: "
+msgstr "Zadejte poèet sektorù na stopu: "
+
+#: fdisk/cfdisk.c:2190 fdisk/cfdisk.c:2724
+msgid "Illegal sectors value"
+msgstr "Chybný poèet sektorù"
+
+#: fdisk/cfdisk.c:2289
+msgid "Enter filesystem type: "
+msgstr "Zadejte typ systému souborù: "
+
+#: fdisk/cfdisk.c:2307
+msgid "Cannot change FS Type to empty"
+msgstr "Nelze nastavit typ SS na prázdný"
+
+#: fdisk/cfdisk.c:2309
+msgid "Cannot change FS Type to extended"
+msgstr "Nelze nastavit typ SS na roz¹íøený"
+
+#: fdisk/cfdisk.c:2331 fdisk/fdisksunlabel.c:44
+msgid "Boot"
+msgstr "Startovací"
+
+#: fdisk/cfdisk.c:2333
+#, c-format
+msgid "Unk(%02X)"
+msgstr "Nez(%02X)"
+
+#: fdisk/cfdisk.c:2336 fdisk/cfdisk.c:2339
+msgid ", NC"
+msgstr ", NC"
+
+#: fdisk/cfdisk.c:2344 fdisk/cfdisk.c:2347
+msgid "NC"
+msgstr "NC"
+
+#: fdisk/cfdisk.c:2355
+msgid "Pri/Log"
+msgstr "Pri/Log"
+
+#: fdisk/cfdisk.c:2429
+#, c-format
+msgid "Disk Drive: %s"
+msgstr "Disk: %s"
+
+#: fdisk/cfdisk.c:2431
+#, c-format
+msgid "Heads: %d   Sectors per Track: %d   Cylinders: %d"
+msgstr "Hlav: %d   Sektorù na stopu: %d   Cylindrù: %d"
+
+#: fdisk/cfdisk.c:2435
+msgid "Name"
+msgstr "Jméno"
+
+#: fdisk/cfdisk.c:2436
+msgid "Flags"
+msgstr "Pøíznaky"
+
+#: fdisk/cfdisk.c:2437
+msgid "Part Type"
+msgstr "Typ oddílu"
+
+#: fdisk/cfdisk.c:2438
+msgid "FS Type"
+msgstr "Typ SS"
+
+#: fdisk/cfdisk.c:2439
+msgid "[Label]"
+msgstr "[Jméno]"
+
+#: fdisk/cfdisk.c:2441
+msgid "  Sectors"
+msgstr " Sektory"
+
+#: fdisk/cfdisk.c:2445
+msgid "Size (MB)"
+msgstr "Velikost (MB)"
+
+#: fdisk/cfdisk.c:2500
+msgid "Bootable"
+msgstr "Start"
+
+#: fdisk/cfdisk.c:2500
+msgid "Toggle bootable flag of the current partition"
+msgstr "Pøepne pøíznak startovatelnosti aktuálnímu diskovému oddílu"
+
+#: fdisk/cfdisk.c:2501
+msgid "Delete"
+msgstr "Smazat"
+
+#: fdisk/cfdisk.c:2501
+msgid "Delete the current partition"
+msgstr "Sma¾e aktuální diskový oddíl"
+
+#: fdisk/cfdisk.c:2502
+msgid "Geometry"
+msgstr "Geometrie"
+
+#: fdisk/cfdisk.c:2502
+msgid "Change disk geometry (experts only)"
+msgstr "Zmìní geometrii disku (pouze pro odborníky)"
+
+#: fdisk/cfdisk.c:2503
+msgid "Help"
+msgstr "Nápovìda"
+
+#: fdisk/cfdisk.c:2503
+msgid "Print help screen"
+msgstr "Vypí¹e nápovìdu"
+
+#: fdisk/cfdisk.c:2504
+msgid "Maximize"
+msgstr "Zvìt¹ení"
+
+#: fdisk/cfdisk.c:2504
+msgid "Maximize disk usage of the current partition (experts only)"
+msgstr ""
+"Zvìt¹í velikost aktuálního diskového oddílu na maximum (pouze pro odborníky)"
+
+#: fdisk/cfdisk.c:2505
+msgid "New"
+msgstr "Nový"
+
+#: fdisk/cfdisk.c:2505
+msgid "Create new partition from free space"
+msgstr "Vytvoøí nový diskový oddíl ve volném prostoru"
+
+#: fdisk/cfdisk.c:2506
+msgid "Print"
+msgstr "Tisk"
+
+#: fdisk/cfdisk.c:2506
+msgid "Print partition table to the screen or to a file"
+msgstr "Vypí¹e tabulku rozdìlení disku (na obrazovku èi do souboru)"
+
+#: fdisk/cfdisk.c:2507
+msgid "Quit"
+msgstr "Konec"
+
+#: fdisk/cfdisk.c:2507
+msgid "Quit program without writing partition table"
+msgstr "Ukonèí program bez ulo¾ení tabulky rozdìlení disku"
+
+#: fdisk/cfdisk.c:2508
+msgid "Type"
+msgstr "Druh"
+
+#: fdisk/cfdisk.c:2508
+msgid "Change the filesystem type (DOS, Linux, OS/2 and so on)"
+msgstr "Zmìní typ systému souborù (DOS, Linux, OS/2 atd.)"
+
+#: fdisk/cfdisk.c:2509
+msgid "Units"
+msgstr "Jednotky"
+
+#: fdisk/cfdisk.c:2509
+msgid "Change units of the partition size display (MB, sect, cyl)"
+msgstr "Zmìní jednotky, ve kterých je udávána velikost diskového oddílu"
+
+#: fdisk/cfdisk.c:2510
+msgid "Write"
+msgstr "Ulo¾it"
+
+#: fdisk/cfdisk.c:2510
+msgid "Write partition table to disk (this might destroy data)"
+msgstr "Ulo¾í tabulku rozdìlení disku na disk (mù¾e znièit data)"
+
+#: fdisk/cfdisk.c:2556
+msgid "Cannot make this partition bootable"
+msgstr "Tento oddíl nelze nastavit jako startovací."
+
+#: fdisk/cfdisk.c:2566
+msgid "Cannot delete an empty partition"
+msgstr "Prázdný diskový oddíl nelze smazat."
+
+#: fdisk/cfdisk.c:2586 fdisk/cfdisk.c:2588
+msgid "Cannot maximize this partition"
+msgstr "Tento diskový oddíl nelze zvìt¹it."
+
+#: fdisk/cfdisk.c:2596
+msgid "This partition is unusable"
+msgstr "Tento diskový oddíl je nepou¾itelný."
+
+#: fdisk/cfdisk.c:2598
+msgid "This partition is already in use"
+msgstr "Tento diskový oddíl je ji¾ pou¾íván."
+
+#: fdisk/cfdisk.c:2615
+msgid "Cannot change the type of an empty partition"
+msgstr "Typ prázdného diskového oddílu nelze zmìnit."
+
+#: fdisk/cfdisk.c:2640 fdisk/cfdisk.c:2646
+msgid "No more partitions"
+msgstr "®ádné dal¹í diskové oddíly"
+
+#: fdisk/cfdisk.c:2653
+msgid "Illegal command"
+msgstr "Chybný pøíkaz"
+
+#: fdisk/cfdisk.c:2663
+msgid "Copyright (C) 1994-1999 Kevin E. Martin & aeb\n"
+msgstr "Copyright (C) 1994-1999 Kevin E. Martin & aeb\n"
+
+#. Unfortunately, xgettext does not handle multi-line strings
+#. so, let's use explicit \n's instead
+#: fdisk/cfdisk.c:2670
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+"Print version:\n"
+"        %s -v\n"
+"Print partition table:\n"
+"        %s -P {r|s|t} [options] device\n"
+"Interactive use:\n"
+"        %s [options] device\n"
+"\n"
+"Options:\n"
+"-a: Use arrow instead of highlighting;\n"
+"-z: Start with a zero partition table, instead of reading the pt from disk;\n"
+"-c C -h H -s S: Override the kernel's idea of the number of cylinders,\n"
+"                the number of heads and the number of sectors/track.\n"
+"\n"
+msgstr ""
+"\n"
+"Pou¾ití:\n"
+"Vypí¹e informace o verzi:\n"
+"        %s -v\n"
+"Vypí¹e tabulku rozdìlení disku:\n"
+"        %s -P {r|s|t} [pøepínaèe] zaøízení\n"
+"Interaktivní re¾im:\n"
+"        %s [pøepínaèe] zaøízení\n"
+"\n"
+"Pøepínaèe:\n"
+"-a: Namísto zvýrazòování pou¾ije ¹ipku;\n"
+"-z: Zaène s nulovou tabulkou rozdìlení disku místo, aby ji èetl z disku;\n"
+"-c C -h H -s S: Zadání geometrie disku (má pøednost pøed údaji, které "
+"udr¾uje\n"
+"                jádro.\n"
+"\n"
+
+#: fdisk/fdisk.c:248
+msgid ""
+"Usage: fdisk [-b SSZ] [-u] DISK     Change partition table\n"
+"       fdisk -l [-b SSZ] [-u] DISK  List partition table(s)\n"
+"       fdisk -s PARTITION           Give partition size(s) in blocks\n"
+"       fdisk -v                     Give fdisk version\n"
+"Here DISK is something like /dev/hdb or /dev/sda\n"
+"and PARTITION is something like /dev/hda7\n"
+"-u: give Start and End in sector (instead of cylinder) units\n"
+"-b 2048: (for certain MO drives) use 2048-byte sectors\n"
+msgstr ""
+"Pou¾ití: fdisk [-b SSZ] [-u] DISK     Zmìní tabulku rozdìlení disku\n"
+"         fdisk -l [-b SSZ] [-u] DISK  Vypí¹e tabulku rozdìlení disku\n"
+"         fdisk -s ODDÍL               Vypí¹e velikost diskového oddílu\n"
+"                                      v blocích\n"
+"         fdisk -v                     Vypí¹e informace o verzi\n"
+"DISK je nìco jako /dev/hdb èi /dev/sda a ODDÍL je nìco jako /dev/hda7\n"
+"-u: zadání Zaèátku a Konce v sektorech (místo cylindrech)\n"
+"-b 2048: (pro nìkteré MO jednotky) pou¾ije 2048bajtové sektory\n"
+
+#: fdisk/fdisk.c:260
+msgid ""
+"Usage: fdisk [-l] [-b SSZ] [-u] device\n"
+"E.g.: fdisk /dev/hda  (for the first IDE disk)\n"
+"  or: fdisk /dev/sdc  (for the third SCSI disk)\n"
+"  or: fdisk /dev/eda  (for the first PS/2 ESDI drive)\n"
+"  or: fdisk /dev/rd/c0d0  or: fdisk /dev/ida/c0d0  (for RAID devices)\n"
+"  ...\n"
+msgstr ""
+"Pou¾ití: fdisk [-l] [-b SSZ] [-u] zaøízení\n"
+"Napø: fdisk /dev/hda  (pro první IDE disk)\n"
+"  èi: fdisk /dev/sdc  (pro tøetí SCSI disk)\n"
+"  èi: fdisk /dev/eda  (pro první PS/2 ESDI disk)\n"
+"  èi: fdisk /dev/rd/c0d0  èi: fdisk /dev/ida/c0d0  (pro RAID zaøízení)\n"
+"  ...\n"
+
+#: fdisk/fdisk.c:268
+msgid "A disk block device is needed.\n"
+msgstr "Je tøeba blokové zaøízení disku.\n"
+
+#: fdisk/fdisk.c:271
+msgid ""
+"Given name does not refer to a partition,\n"
+"or maybe not even to a block device.\n"
+msgstr ""
+"Zadané jméno neodpovídá diskovému oddílu,\n"
+" a mo¾ná ani blokovému zaøízení.\n"
+
+#: fdisk/fdisk.c:275
+#, c-format
+msgid "Unable to open %s\n"
+msgstr "%s nelze otevøít\n"
+
+#: fdisk/fdisk.c:278
+#, c-format
+msgid "Unable to read %s\n"
+msgstr "%s nelze èíst\n"
+
+#: fdisk/fdisk.c:281
+#, c-format
+msgid "Unable to seek on %s\n"
+msgstr "Ukazovátko nelze posunout na %s.\n"
+
+#: fdisk/fdisk.c:284
+#, c-format
+msgid "Unable to write %s\n"
+msgstr "%s nelze ulo¾it\n"
+
+#: fdisk/fdisk.c:287
+#, c-format
+msgid "BLKGETSIZE ioctl failed on %s\n"
+msgstr "volání BLKGETSIZE ioctl pro %s selhalo\n"
+
+#: fdisk/fdisk.c:291
+msgid "Unable to allocate any more memory\n"
+msgstr "Nelze alokovat více pamìti\n"
+
+#: fdisk/fdisk.c:293
+msgid "Fatal error\n"
+msgstr "Fatální chyba\n"
+
+#: fdisk/fdisk.c:304 fdisk/fdisk.c:323 fdisk/fdisk.c:341 fdisk/fdisk.c:348
+#: fdisk/fdisk.c:371 fdisk/fdisk.c:389 fdisk/fdiskbsdlabel.c:105
+msgid "Command action"
+msgstr "Pøíkazy"
+
+#: fdisk/fdisk.c:305
+msgid "   a   toggle a read only flag"
+msgstr "   a   pøepne pøíznak \"pouze pro ètení\""
+
+#. sun
+#: fdisk/fdisk.c:306 fdisk/fdisk.c:350
+msgid "   b   edit bsd disklabel"
+msgstr "   b   úprava bsd popisu disku"
+
+#: fdisk/fdisk.c:307
+msgid "   c   toggle the mountable flag"
+msgstr "   c   pøepne pøíznak \"pøipojitelný\""
+
+#. sun
+#: fdisk/fdisk.c:308 fdisk/fdisk.c:327 fdisk/fdisk.c:352
+msgid "   d   delete a partition"
+msgstr "   d   sma¾e diskový oddíl"
+
+#: fdisk/fdisk.c:309 fdisk/fdisk.c:328 fdisk/fdisk.c:353
+msgid "   l   list known partition types"
+msgstr "   l   vypí¹e známé typy diskových oddílù"
+
+#. sun
+#: fdisk/fdisk.c:310 fdisk/fdisk.c:329 fdisk/fdisk.c:342 fdisk/fdisk.c:354
+#: fdisk/fdisk.c:379 fdisk/fdisk.c:396 fdisk/fdiskbsdlabel.c:110
+msgid "   m   print this menu"
+msgstr "   m   vypí¹e tuto nabídku"
+
+#: fdisk/fdisk.c:311 fdisk/fdisk.c:330 fdisk/fdisk.c:355
+msgid "   n   add a new partition"
+msgstr "   n   vytvoøí nový diskový oddíl"
+
+#: fdisk/fdisk.c:312 fdisk/fdisk.c:331 fdisk/fdisk.c:343 fdisk/fdisk.c:356
+msgid "   o   create a new empty DOS partition table"
+msgstr "   o   vytvoøí prázdný DOSOVÝ diskový oddíl"
+
+#: fdisk/fdisk.c:313 fdisk/fdisk.c:332 fdisk/fdisk.c:357 fdisk/fdisk.c:380
+#: fdisk/fdisk.c:397
+msgid "   p   print the partition table"
+msgstr "   p   vypí¹e tabulku rozdìlení disku"
+
+#: fdisk/fdisk.c:314 fdisk/fdisk.c:333 fdisk/fdisk.c:344 fdisk/fdisk.c:358
+#: fdisk/fdisk.c:381 fdisk/fdisk.c:398 fdisk/fdiskbsdlabel.c:113
+msgid "   q   quit without saving changes"
+msgstr "   q   ukonèí program bez ulo¾ení zmìn"
+
+#: fdisk/fdisk.c:315 fdisk/fdisk.c:334 fdisk/fdisk.c:345 fdisk/fdisk.c:359
+msgid "   s   create a new empty Sun disklabel"
+msgstr "   s   vytvoøí prázdný Sun popis disku"
+
+#. sun
+#: fdisk/fdisk.c:316 fdisk/fdisk.c:335 fdisk/fdisk.c:360
+msgid "   t   change a partition's system id"
+msgstr "   t   zmìní id diskového oddílu"
+
+#: fdisk/fdisk.c:317 fdisk/fdisk.c:336 fdisk/fdisk.c:361
+msgid "   u   change display/entry units"
+msgstr "   u   zmìní jednotky v nich¾ jsou vypisovány informace"
+
+#: fdisk/fdisk.c:318 fdisk/fdisk.c:337 fdisk/fdisk.c:362 fdisk/fdisk.c:384
+#: fdisk/fdisk.c:401
+msgid "   v   verify the partition table"
+msgstr "   v   ovìøí tabulku rozdìlení disku"
+
+#: fdisk/fdisk.c:319 fdisk/fdisk.c:338 fdisk/fdisk.c:363 fdisk/fdisk.c:385
+#: fdisk/fdisk.c:402
+msgid "   w   write table to disk and exit"
+msgstr "   w   ulo¾í tabulku rozdìlení disku a ukonèí program"
+
+#: fdisk/fdisk.c:320 fdisk/fdisk.c:364
+msgid "   x   extra functionality (experts only)"
+msgstr "   x   roz¹iøující funkce (pouze pro odborníky)"
+
+#: fdisk/fdisk.c:324
+msgid "   a   select bootable partition"
+msgstr "   a   nastaví startovací diskový oddíl"
+
+#. sgi flavour
+#: fdisk/fdisk.c:325
+msgid "   b   edit bootfile entry"
+msgstr "   b   úprava polo¾ky startovacího souboru"
+
+#. sgi
+#: fdisk/fdisk.c:326
+msgid "   c   select sgi swap partition"
+msgstr "   c   nastaví sgi odkládací diskový oddíl"
+
+#: fdisk/fdisk.c:349
+msgid "   a   toggle a bootable flag"
+msgstr "   a   pøepne pøíznak \"startovací\""
+
+#: fdisk/fdisk.c:351
+msgid "   c   toggle the dos compatibility flag"
+msgstr "   c   pøepne pøíznak \"DOS kompatibilní\""
+
+#: fdisk/fdisk.c:372
+msgid "   a   change number of alternate cylinders"
+msgstr "   a   zmìní mno¾ství alternativních cylindrù"
+
+#. sun
+#: fdisk/fdisk.c:373 fdisk/fdisk.c:391
+msgid "   c   change number of cylinders"
+msgstr "   c   zmìní mno¾ství cylindrù"
+
+#: fdisk/fdisk.c:374 fdisk/fdisk.c:392
+msgid "   d   print the raw data in the partition table"
+msgstr "   d   vypí¹e tabulku rozdìlení disku (tak jak je ulo¾ena na disku)"
+
+#: fdisk/fdisk.c:375
+msgid "   e   change number of extra sectors per cylinder"
+msgstr "   e   zmìní mno¾ství extra sektorù na stopu"
+
+#. sun
+#: fdisk/fdisk.c:376 fdisk/fdisk.c:395
+msgid "   h   change number of heads"
+msgstr "   h   zmìní mno¾ství hlav"
+
+#: fdisk/fdisk.c:377
+msgid "   i   change interleave factor"
+msgstr "   i   zmìní prokládací faktor"
+
+#. sun
+#: fdisk/fdisk.c:378
+msgid "   o   change rotation speed (rpm)"
+msgstr "   o   zmìní rychlost otáèení"
+
+#: fdisk/fdisk.c:382 fdisk/fdisk.c:399 fdisk/fdiskbsdlabel.c:115
+msgid "   r   return to main menu"
+msgstr "   r   návrat do hlavní nabídky"
+
+#: fdisk/fdisk.c:383 fdisk/fdisk.c:400
+msgid "   s   change number of sectors/track"
+msgstr "   s   zmìní poèet sektorù/stopu"
+
+#: fdisk/fdisk.c:386
+msgid "   y   change number of physical cylinders"
+msgstr "   y   zmìní poèet fyzických cylindrù"
+
+#: fdisk/fdisk.c:390
+msgid "   b   move beginning of data in a partition"
+msgstr "   b   posune poèátek dat v diskovém oddílu"
+
+#: fdisk/fdisk.c:393
+msgid "   e   list extended partitions"
+msgstr "   e   vypí¹e roz¹íøené diskové oddíly"
+
+#. !sun
+#: fdisk/fdisk.c:394
+msgid "   g   create an IRIX partition table"
+msgstr "   g   vytvoøí IRIX tabulku rozdìlení disku"
+
+#: fdisk/fdisk.c:490
+msgid "You must set"
+msgstr "Musíte nastavit"
+
+#: fdisk/fdisk.c:504
+msgid "heads"
+msgstr "hlavy"
+
+#: fdisk/fdisk.c:506 fdisk/fdisk.c:914 fdisk/sfdisk.c:843
+msgid "sectors"
+msgstr "sektory"
+
+#: fdisk/fdisk.c:508 fdisk/fdisk.c:914 fdisk/fdiskbsdlabel.c:441
+#: fdisk/sfdisk.c:843
+msgid "cylinders"
+msgstr "cylindry"
+
+#: fdisk/fdisk.c:512
+#, c-format
+msgid ""
+"%s%s.\n"
+"You can do this from the extra functions menu.\n"
+msgstr ""
+"%s%s.\n"
+"Mù¾ete tak uèinit z nabídky roz¹iøujících funkcí.\n"
+
+#: fdisk/fdisk.c:513
+msgid " and "
+msgstr " a "
+
+#: fdisk/fdisk.c:547
+msgid "Bad offset in primary extended partition\n"
+msgstr "Chybný posun v primárním diskovém oddílu\n"
+
+#: fdisk/fdisk.c:554
+#, c-format
+msgid "Warning: deleting partitions after %d\n"
+msgstr "Varování: ma¾u diskový oddíl za %d\n"
+
+#: fdisk/fdisk.c:575
+#, c-format
+msgid "Warning: extra link pointer in partition table %d\n"
+msgstr "Varování: nadbyteèný ukazatel na link v tabulce rozdìlení disku %d.\n"
+
+#: fdisk/fdisk.c:583
+#, c-format
+msgid "Warning: ignoring extra data in partition table %d\n"
+msgstr "Varování: nadbyteèná data v tabulce rozdìlení disku %d ignorována.\n"
+
+#: fdisk/fdisk.c:609
+msgid ""
+"Building a new DOS disklabel. Changes will remain in memory only,\n"
+"until you decide to write them. After that, of course, the previous\n"
+"content won't be recoverable.\n"
+"\n"
+msgstr ""
+"Vytváøím novou DOSOVOU tabulku rozdìlení disku. Zmìny budou ulo¾eny pouze "
+"do\n"
+"pamìti, dokud se nerozhodnete je ulo¾it na disk. Poté ji¾ nebudou stará "
+"data\n"
+"pochopitelnì dostupná.\n"
+
+#: fdisk/fdisk.c:645
+msgid "You will not be able to write the partition table.\n"
+msgstr "Nebudete moci ulo¾it tabulku rozdìlení disku.\n"
+
+#: fdisk/fdisk.c:654
+#, c-format
+msgid "Note: sector size is %d (not %d)\n"
+msgstr "Pozor: velikost sektoru je %d (nikoliv %d)\n"
+
+#: fdisk/fdisk.c:702
+msgid ""
+"Device contains neither a valid DOS partition table, nor Sun or SGI "
+"disklabel\n"
+msgstr ""
+"Zaøízení neobsahuje ani DOSOVOU tabulku rozdìlení disku, ani SUN èi SGI "
+"popis\n"
+"disku\n"
+
+#: fdisk/fdisk.c:718
+msgid "Internal error\n"
+msgstr "Vnitøní chyba\n"
+
+#: fdisk/fdisk.c:728
+#, c-format
+msgid "Ignoring extra extended partition %d\n"
+msgstr "Nadbyteèný roz¹íøený diskový oddíl %d ignorován.\n"
+
+#: fdisk/fdisk.c:735
+#, c-format
+msgid ""
+"Warning: invalid flag 0x%04x of partition table %d will be corrected by "
+"w(rite)\n"
+msgstr ""
+"Varování: chybný pøíznak 0x%04x tabulky rozdìlení disku %d bude opraven "
+"zápisem(w)\n"
+
+#: fdisk/fdisk.c:756
+msgid ""
+"\n"
+"got EOF thrice - exiting..\n"
+msgstr ""
+"\n"
+"tøikrát jsem nalezl EOF - konèím..\n"
+
+#: fdisk/fdisk.c:793
+msgid "Hex code (type L to list codes): "
+msgstr "©estnáctkovì (L vypí¹e kódy):"
+
+#: fdisk/fdisk.c:832
+#, c-format
+msgid "%s (%d-%d, default %d): "
+msgstr "%s (%d-%d, implicitnì %d): "
+
+#: fdisk/fdisk.c:886
+#, c-format
+msgid "Using default value %d\n"
+msgstr "Pou¾ívám implicitní hodnotu %d\n"
+
+#: fdisk/fdisk.c:890
+msgid "Value out of range.\n"
+msgstr "Hodnota je mimo meze.\n"
+
+#: fdisk/fdisk.c:897
+msgid "Partition number"
+msgstr "Èíslo diskového oddílu"
+
+#: fdisk/fdisk.c:905
+#, c-format
+msgid "Warning: partition %d has empty type\n"
+msgstr "Varování: diskový oddíl %d nemá urèen typ\n"
+
+#: fdisk/fdisk.c:912
+msgid "cylinder"
+msgstr "cylindr"
+
+#: fdisk/fdisk.c:912
+msgid "sector"
+msgstr "sektor"
+
+#: fdisk/fdisk.c:921
+#, c-format
+msgid "Changing display/entry units to %s\n"
+msgstr "Mìním jednotky v nich¾ jsou vypisovány informace na %sy\n"
+
+#: fdisk/fdisk.c:931
+#, c-format
+msgid "WARNING: Partition %d is an extended partition\n"
+msgstr "VAROVÁNÍ: diskový oddíl %d je roz¹íøeným diskovým oddílem\n"
+
+#: fdisk/fdisk.c:944
+msgid "DOS Compatibility flag is set\n"
+msgstr "Pøíznak DOSOVÉ kompatibility je nastaven.\n"
+
+#: fdisk/fdisk.c:948
+msgid "DOS Compatibility flag is not set\n"
+msgstr "Pøíznak DOSOVÉ kompatibility není nastaven.\n"
+
+#: fdisk/fdisk.c:1034
+#, c-format
+msgid "Partition %d does not exist yet!\n"
+msgstr "Diskový oddíl %d zatím neexistuje!\n"
+
+#: fdisk/fdisk.c:1039
+msgid ""
+"Type 0 means free space to many systems\n"
+"(but not to Linux). Having partitions of\n"
+"type 0 is probably unwise. You can delete\n"
+"a partition using the `d' command.\n"
+msgstr ""
+"Na mnoha systémech (ale ne na Linuxu) typ 0 oznaèuje\n"
+"volný prostor. Vytváøet diskové oddíly typu 0 není moudré.\n"
+"Diskový oddíl mù¾ete smazat pomocí pøíkazu `d'.\n"
+
+#: fdisk/fdisk.c:1048
+msgid ""
+"You cannot change a partition into an extended one or vice versa\n"
+"Delete it first.\n"
+msgstr ""
+"Nemù¾ete mìnit bì¾né diskové oddíly na roz¹íøené a zpìt. Nejdøíve jej "
+"sma¾te.\n"
+
+#: fdisk/fdisk.c:1057
+msgid ""
+"Consider leaving partition 3 as Whole disk (5),\n"
+"as SunOS/Solaris expects it and even Linux likes it.\n"
+"\n"
+msgstr ""
+"Zva¾te zda by nebylo vhodné ponechat diskový oddíl 3 jako Celý disk (5),\n"
+"nebo» SunOS/Solaris to oèekává a i Linux tomu dává pøednost.\n"
+"\n"
+
+#: fdisk/fdisk.c:1063
+msgid ""
+"Consider leaving partition 9 as volume header (0),\n"
+"and partition 11 as entire volume (6)as IRIX expects it.\n"
+"\n"
+msgstr ""
+"Zva¾te zda by nebylo vhodné ponechat diskový oddíl 9 jako hlavièku svazku "
+"(0),\n"
+"a diskový oddíl 11 jako celý svazek (6), nebo» IRIX to oèekává.\n"
+"\n"
+
+#: fdisk/fdisk.c:1077
+#, c-format
+msgid "Changed system type of partition %d to %x (%s)\n"
+msgstr "Typ diskového oddílu %d byl zmìnìn na %x (%s).\n"
+
+#: fdisk/fdisk.c:1130
+#, c-format
+msgid "Partition %d has different physical/logical beginnings (non-Linux?):\n"
+msgstr ""
+"Diskový oddíl %d má rozdílný fyzický a logický zaèátek (nelinuxový?):\n"
+
+#: fdisk/fdisk.c:1132 fdisk/fdisk.c:1140 fdisk/fdisk.c:1149 fdisk/fdisk.c:1158
+#, c-format
+msgid "     phys=(%d, %d, %d) "
+msgstr "     fyz=(%d, %d, %d) "
+
+#: fdisk/fdisk.c:1133 fdisk/fdisk.c:1141
+#, c-format
+msgid "logical=(%d, %d, %d)\n"
+msgstr "logický=(%d, %d, %d)\n"
+
+#: fdisk/fdisk.c:1138
+#, c-format
+msgid "Partition %d has different physical/logical endings:\n"
+msgstr "Diskový oddíl %d má rozdílný fyzický a logický konec:\n"
+
+#: fdisk/fdisk.c:1147
+#, c-format
+msgid "Partition %i does not start on cylinder boundary:\n"
+msgstr "Diskový oddíl %i nezaèíná na hranici cylindru:\n"
+
+#: fdisk/fdisk.c:1150
+#, c-format
+msgid "should be (%d, %d, 1)\n"
+msgstr "mìlo by být (%d, %d, 1)\n"
+
+#: fdisk/fdisk.c:1156
+#, c-format
+msgid "Partition %i does not end on cylinder boundary:\n"
+msgstr "Diskový oddíl %i nekonèí na hranici cylindru:\n"
+
+#: fdisk/fdisk.c:1159
+#, c-format
+msgid "should be (%d, %d, %d)\n"
+msgstr "mìlo by být (%d, %d, %d)\n"
+
+#: fdisk/fdisk.c:1166
+#, c-format
+msgid ""
+"\n"
+"Disk %s: %d heads, %d sectors, %d cylinders\n"
+"Units = %s of %d * %d bytes\n"
+"\n"
+msgstr ""
+"\n"
+"Disk %s: hlav: %d, sektorù: %d, cylindrù: %d\n"
+"Jednotky = %sy po %d * %d bajtech\n"
+
+#. FIXME! let's see how this shows up with other languagues
+#. acme@conectiva.com.br
+#: fdisk/fdisk.c:1203
+#, c-format
+msgid "%*s Boot    Start       End    Blocks   Id  System\n"
+msgstr "%*s Boot   Zaèátek     Konec  Bloky    Id  Systém\n"
+
+#: fdisk/fdisk.c:1204 fdisk/fdisksgilabel.c:207 fdisk/fdisksunlabel.c:631
+msgid "Device"
+msgstr "Zaøízení"
+
+#: fdisk/fdisk.c:1244
+#, c-format
+msgid ""
+"\n"
+"Disk %s: %d heads, %d sectors, %d cylinders\n"
+"\n"
+msgstr ""
+"\n"
+"Disk %s: hlav: %d, sektorù: %d, cylindrù: %d\n"
+"\n"
+
+#: fdisk/fdisk.c:1246
+msgid "Nr AF  Hd Sec  Cyl  Hd Sec  Cyl   Start    Size ID\n"
+msgstr "È  AF  Hd Sek  Cyl  Hd Sek  Cyl   Start    Vel ID\n"
+
+#: fdisk/fdisk.c:1285
+#, c-format
+msgid "Warning: partition %d contains sector 0\n"
+msgstr "Varování: diskový oddíl %d obsahuje sektor 0\n"
+
+#: fdisk/fdisk.c:1288
+#, c-format
+msgid "Partition %d: head %d greater than maximum %d\n"
+msgstr "Diskový oddíl %d: hlava %d má vìt¹í èíslo ne¾ je maximum %d\n"
+
+#: fdisk/fdisk.c:1291
+#, c-format
+msgid "Partition %d: sector %d greater than maximum %d\n"
+msgstr "Diskový oddíl %d: sektor %d má vìt¹í èíslo ne¾ je maximum %d\n"
+
+#: fdisk/fdisk.c:1294
+#, c-format
+msgid "Partitions %d: cylinder %d greater than maximum %d\n"
+msgstr "Diskový oddíl %d: cylindr %d má vìt¹í èíslo ne¾ je maximum %d\n"
+
+#: fdisk/fdisk.c:1298
+#, c-format
+msgid "Partition %d: previous sectors %d disagrees with total %d\n"
+msgstr "Diskový oddíl %d: pøedchozí sektory %d nesouhlasí s úhrnem %d\n"
+
+#: fdisk/fdisk.c:1328
+#, c-format
+msgid "Warning: bad start-of-data in partition %d\n"
+msgstr "Varování: chybný poèátek dat v diskovém oddílu %d\n"
+
+#: fdisk/fdisk.c:1336
+#, c-format
+msgid "Warning: partition %d overlaps partition %d.\n"
+msgstr "Varování: diskový oddíl %d pøesahuje do diskového oddílu %d.\n"
+
+#: fdisk/fdisk.c:1354
+#, c-format
+msgid "Warning: partition %d is empty\n"
+msgstr "Varování: diskový oddíl %d je prázdný.\n"
+
+#: fdisk/fdisk.c:1359
+#, c-format
+msgid "Logical partition %d not entirely in partition %d\n"
+msgstr "Logický diskový oddíl %d pøesahuje mimo diskový oddíl %d.\n"
+
+#: fdisk/fdisk.c:1365
+#, c-format
+msgid "Total allocated sectors %d greater than the maximum %d\n"
+msgstr "Celkový poèet alokovaných sektorù (%d) je vìt¹í ne¾ maximum (%d).\n"
+
+#: fdisk/fdisk.c:1368
+#, c-format
+msgid "%d unallocated sectors\n"
+msgstr "nealokovaných sektorù: %d\n"
+
+#: fdisk/fdisk.c:1380 fdisk/fdisksgilabel.c:684 fdisk/fdisksunlabel.c:479
+#, c-format
+msgid "Partition %d is already defined.  Delete it before re-adding it.\n"
+msgstr ""
+"Diskový oddíl %d je ji¾ definován. Pøed opìtovným vytvoøením jej musíte\n"
+"nejprve smazat.\n"
+
+#: fdisk/fdisk.c:1401 fdisk/fdiskbsdlabel.c:252 fdisk/fdisksgilabel.c:706
+#: fdisk/fdisksunlabel.c:494
+#, c-format
+msgid "First %s"
+msgstr "První %s"
+
+#: fdisk/fdisk.c:1416 fdisk/fdisksunlabel.c:519
+#, c-format
+msgid "Sector %d is already allocated\n"
+msgstr "Sektor %d je ji¾ alokován\n"
+
+#: fdisk/fdisk.c:1448
+msgid "No free sectors available\n"
+msgstr "Nejsou ¾ádné volné sektory.\n"
+
+#: fdisk/fdisk.c:1458 fdisk/fdiskbsdlabel.c:256 fdisk/fdisksunlabel.c:529
+#, c-format
+msgid "Last %s or +size or +sizeM or +sizeK"
+msgstr "Poslední %s èi +velikost èi +velikostM èi velikostK"
+
+#: fdisk/fdisk.c:1488
+#, c-format
+msgid "Warning: partition %d has an odd number of sectors.\n"
+msgstr "Varování: diskový oddíl %d má lichý poèet sektorù.\n"
+
+#: fdisk/fdisk.c:1525 fdisk/fdiskbsdlabel.c:590
+msgid "The maximum number of partitions has been created\n"
+msgstr "Ji¾ bylo vytvoøeno maximální mno¾ství diskových oddílù.\n"
+
+#: fdisk/fdisk.c:1535
+msgid "You must delete some partition and add an extended partition first\n"
+msgstr "Musíte nejprve nìkteré smazat a pøidat roz¹íøený diskový oddíl.\n"
+
+#: fdisk/fdisk.c:1539
+#, c-format
+msgid ""
+"Command action\n"
+"   %s\n"
+"   p   primary partition (1-4)\n"
+msgstr ""
+"Pøíkaz\n"
+"   %s\n"
+"   p   primární diskový oddíl (1-4)\n"
+
+#: fdisk/fdisk.c:1541
+msgid "l   logical (5 or over)"
+msgstr "l   logický (5 a více)"
+
+#: fdisk/fdisk.c:1541
+msgid "e   extended"
+msgstr "e   roz¹íøený"
+
+#: fdisk/fdisk.c:1558
+#, c-format
+msgid "Invalid partition number for type `%c'\n"
+msgstr "Chybné èíslo diskového oddílu pro typ `%c'.\n"
+
+#: fdisk/fdisk.c:1590
+msgid ""
+"The partition table has been altered!\n"
+"\n"
+msgstr "Tabulka rozdìlení disku byla zmìnìna!\n"
+
+#: fdisk/fdisk.c:1592
+msgid "Calling ioctl() to re-read partition table.\n"
+msgstr "Volám ioctl() pro znovunaètení tabulky rozdìlení disku.\n"
+
+#: fdisk/fdisk.c:1609
+msgid "Syncing disks.\n"
+msgstr "Synchronizují se disky.\n"
+
+#: fdisk/fdisk.c:1614
+#, c-format
+msgid ""
+"Re-read table failed with error %d: %s.\n"
+"Reboot your system to ensure the partition table is updated.\n"
+msgstr ""
+"Opìtovné naètení tabulky rozdìlení disku skonèilo s chybou %d: %s.\n"
+"Restartujte systém, aby tabulka byla zmìnìna.\n"
+
+#: fdisk/fdisk.c:1620
+msgid ""
+"\n"
+"WARNING: If you have created or modified any DOS 6.x\n"
+"partitions, please see the fdisk manual page for additional\n"
+"information.\n"
+msgstr ""
+"\n"
+"VAROVÁNÍ: Pokud jste vytvoøil èi zmìnil nìjaké\n"
+"DOS 6.x diskové oddíly, pøeètìte si prosím manuálovou\n"
+"stránku programu fdisk, abyste získal dodateèné informace.\n"
+
+#: fdisk/fdisk.c:1651
+#, c-format
+msgid "Device: %s\n"
+msgstr "Zaøízení: %s\n"
+
+#: fdisk/fdisk.c:1666
+#, c-format
+msgid "Partition %d has no data area\n"
+msgstr "Diskový oddíl %d neobsahuje datovou oblast.\n"
+
+#: fdisk/fdisk.c:1672
+msgid "New beginning of data"
+msgstr "Nový zaèátek dat"
+
+#: fdisk/fdisk.c:1686
+msgid "Expert command (m for help): "
+msgstr "Pøíkaz pro odborníky (m pro nápovìdu): "
+
+#: fdisk/fdisk.c:1697
+msgid "Number of cylinders"
+msgstr "Poèet cylindrù"
+
+#: fdisk/fdisk.c:1718
+msgid "Number of heads"
+msgstr "Poèet hlav"
+
+#: fdisk/fdisk.c:1743
+msgid "Number of sectors"
+msgstr "Poèet sektorù"
+
+#: fdisk/fdisk.c:1746
+msgid "Warning: setting sector offset for DOS compatiblity\n"
+msgstr "Varování: nastaven posun sektoru kvùli kompatibilitì s DOSEM\n"
+
+#: fdisk/fdisk.c:1808
+#, c-format
+msgid "Disk %s doesn't contain a valid partition table\n"
+msgstr "Na disku %s není korektní tabulka rozdìlení disku.\n"
+
+#: fdisk/fdisk.c:1822
+#, c-format
+msgid "Cannot open %s\n"
+msgstr "%s nelze otevøít.\n"
+
+#: fdisk/fdisk.c:1887
+msgid "This kernel finds the sector size itself - -b option ignored\n"
+msgstr ""
+"Toto jádro detekuje velikost sektoru automaticky - pøepínaè -b ignorován\n"
+
+#: fdisk/fdisk.c:1890
+msgid ""
+"Warning: the -b (set sector size) option should be used with one specified "
+"device\n"
+msgstr ""
+"Varování: pøepínaè -b (nastavení velikosti sektoru) by mìl být pou¾it s "
+"jedním\n"
+"          zadaným zaøízením.\n"
+
+#: fdisk/fdisk.c:1948
+msgid "Command (m for help): "
+msgstr "Pøíkaz (m pro nápovìdu): "
+
+#: fdisk/fdisk.c:1962
+#, c-format
+msgid ""
+"\n"
+"The current boot file is: %s\n"
+msgstr ""
+"\n"
+"Aktuální startovací soubor: %s\n"
+
+#: fdisk/fdisk.c:1964
+msgid "Please enter the name of the new boot file: "
+msgstr "Zadejte jméno nového startovacího souboru: "
+
+#: fdisk/fdisk.c:1966
+msgid "Boot file unchanged\n"
+msgstr "Startovací soubor nebyl zmìnìn.\n"
+
+#: fdisk/fdisk.c:2026
+msgid ""
+"\n"
+"\tSorry, no experts menu for SGI partition tables available.\n"
+"\n"
+msgstr ""
+"\n"
+"\tPro SGI diskové oddíly nejsou k dispozici ¾ádné roz¹iøující funkce.\n"
+"\n"
+
+#: fdisk/fdiskaixlabel.c:29
+msgid ""
+"\n"
+"\tThere is a valid AIX label on this disk.\n"
+"\tUnfortunately Linux cannot handle these\n"
+"\tdisks at the moment.  Nevertheless some\n"
+"\tadvice:\n"
+"\t1. fdisk will destroy its contents on write.\n"
+"\t2. Be sure that this disk is NOT a still vital\n"
+"\t   part of a volume group. (Otherwise you may\n"
+"\t   erase the other disks as well, if unmirrored.)\n"
+"\t3. Before deleting this physical volume be sure\n"
+"\t   to remove the disk logically from your AIX\n"
+"\t   machine.  (Otherwise you become an AIXpert)."
+msgstr ""
+"\n"
+"\tNa tomto disku je AIX tabulka rozdìlení disku.\n"
+"\tLinux s tìmito disky v souèasné dobì neumí pracovat.\n"
+"\tNicménì nìkolik rad pro Vás:\n"
+"\t1. pøi zápisu fdisk znièí jejich obsah\n"
+"\t2. Ujistìte se, ¾e tento disk NENÍ dùle¾itou souèástí\n"
+"\t   skupiny svazkù. (Jinak mù¾ete smazat, pokud nejsou\n"
+"\t   zrcadleny, i ostatní disky.)\n"
+"\t3. Pøedtím, ne¾ sma¾ete fyzický svazek, se ujistìte, ¾e\n"
+"\t   ji¾ není logickou souèástí Va¹eho AIX systému. (Jinak\n"
+"\t   se z Vás stává AIXpert)."
+
+#: fdisk/fdiskbsdlabel.c:97
+#, c-format
+msgid ""
+"\n"
+"BSD label for device: %s\n"
+msgstr ""
+"\n"
+"BSD tabulka rozdìlení disku pro zaøízení: %s\n"
+
+#: fdisk/fdiskbsdlabel.c:106
+msgid "   d   delete a BSD partition"
+msgstr "   d   smazat BSD diskový oddíl"
+
+#: fdisk/fdiskbsdlabel.c:107
+msgid "   e   edit drive data"
+msgstr "   e   upravovat data na disku"
+
+#: fdisk/fdiskbsdlabel.c:108
+msgid "   i   install bootstrap"
+msgstr "   i   instalovat zavadìè"
+
+#: fdisk/fdiskbsdlabel.c:109
+msgid "   l   list known filesystem types"
+msgstr "   l   vypsat známé typy systémù souborù"
+
+#: fdisk/fdiskbsdlabel.c:111
+msgid "   n   add a new BSD partition"
+msgstr "   n   vytvoøit nový BSD diskový oddíl"
+
+#: fdisk/fdiskbsdlabel.c:112
+msgid "   p   print BSD partition table"
+msgstr "   p   vytisknout BSD tabulku rozdìlení disku"
+
+#: fdisk/fdiskbsdlabel.c:117
+msgid "   s   show complete disklabel"
+msgstr "   s   zobrazí úplnou tabulku rozdìlení disku"
+
+#: fdisk/fdiskbsdlabel.c:118
+msgid "   t   change a partition's filesystem id"
+msgstr "   t   zmìní id systému souborù daného diskového oddílu"
+
+#: fdisk/fdiskbsdlabel.c:119
+msgid "   w   write disklabel to disk"
+msgstr "   w   ulo¾í tabulku rozdìlení disku na disk"
+
+#: fdisk/fdiskbsdlabel.c:121
+msgid "   x   link BSD partition to non-BSD partition"
+msgstr "   x   pøipojí BSD diskový oddíl na ne-BSD diskový oddíl"
+
+#: fdisk/fdiskbsdlabel.c:146
+#, c-format
+msgid "Partition %s%d has invalid starting sector 0.\n"
+msgstr "Diskový oddíl %s%d má chybný poèáteèní sektor 0.\n"
+
+#: fdisk/fdiskbsdlabel.c:150
+#, c-format
+msgid "Reading disklabel of %s%d at sector %d.\n"
+msgstr "Ètu tabulku rozdìlení disku %s%d v sektoru %d.\n"
+
+#: fdisk/fdiskbsdlabel.c:159
+#, c-format
+msgid "There is no *BSD partition on %s.\n"
+msgstr "Na %s se nenachází ¾ádný *BSD diskový oddíl.\n"
+
+#: fdisk/fdiskbsdlabel.c:174
+msgid "BSD disklabel command (m for help): "
+msgstr "Pøíkaz pro BSD tabulku rozdìlení disku (m pro nápovìdu): "
+
+#: fdisk/fdiskbsdlabel.c:286
+#, c-format
+msgid "type: %s\n"
+msgstr "typ: %s\n"
+
+#: fdisk/fdiskbsdlabel.c:288
+#, c-format
+msgid "type: %d\n"
+msgstr "typ: %d\n"
+
+#: fdisk/fdiskbsdlabel.c:289
+#, c-format
+msgid "disk: %.*s\n"
+msgstr "disk: %.*s\n"
+
+#: fdisk/fdiskbsdlabel.c:290
+#, c-format
+msgid "label: %.*s\n"
+msgstr "tabulka: %.*s\n"
+
+#: fdisk/fdiskbsdlabel.c:291
+msgid "flags:"
+msgstr "pøíznaky:"
+
+#: fdisk/fdiskbsdlabel.c:293
+msgid " removable"
+msgstr " výmìnný"
+
+# ???
+#: fdisk/fdiskbsdlabel.c:295
+msgid " ecc"
+msgstr " ecc"
+
+#: fdisk/fdiskbsdlabel.c:297
+msgid " badsect"
+msgstr " chybnýsekt"
+
+#. On various machines the fields of *lp are short/int/long
+#. In order to avoid problems, we cast them all to long.
+#: fdisk/fdiskbsdlabel.c:301
+#, c-format
+msgid "bytes/sector: %ld\n"
+msgstr "bajtù/sektor: %ld\n"
+
+#: fdisk/fdiskbsdlabel.c:302
+#, c-format
+msgid "sectors/track: %ld\n"
+msgstr "sektorù/stopu: %ld\n"
+
+#: fdisk/fdiskbsdlabel.c:303
+#, c-format
+msgid "tracks/cylinder: %ld\n"
+msgstr "stop/cylindr: %ld\n"
+
+#: fdisk/fdiskbsdlabel.c:304
+#, c-format
+msgid "sectors/cylinder: %ld\n"
+msgstr "sektorù/cylindr: %ld\n"
+
+#: fdisk/fdiskbsdlabel.c:305
+#, c-format
+msgid "cylinders: %ld\n"
+msgstr "cylindrù: %ld\n"
+
+#: fdisk/fdiskbsdlabel.c:306
+#, c-format
+msgid "rpm: %d\n"
+msgstr "otm: %d\n"
+
+# *skew ??? 
+# zde pøeklad spí¹e odhaduji
+#: fdisk/fdiskbsdlabel.c:307
+#, c-format
+msgid "interleave: %d\n"
+msgstr "interleave: %d\n"
+
+#: fdisk/fdiskbsdlabel.c:308
+#, c-format
+msgid "trackskew: %d\n"
+msgstr "zakøivení stopy: %d\n"
+
+#: fdisk/fdiskbsdlabel.c:309
+#, c-format
+msgid "cylinderskew: %d\n"
+msgstr "zakøivení cylindru: %d\n"
+
+#: fdisk/fdiskbsdlabel.c:310
+#, c-format
+msgid "headswitch: %ld\t\t# milliseconds\n"
+msgstr "pøesun hlavy: %ld\t\t# milisekund\n"
+
+#: fdisk/fdiskbsdlabel.c:311
+#, c-format
+msgid "track-to-track seek: %ld\t# milliseconds\n"
+msgstr "posun stopa-stopa: %ld\t# milisekund\n"
+
+#: fdisk/fdiskbsdlabel.c:312
+msgid "drivedata: "
+msgstr "diskdata: "
+
+#: fdisk/fdiskbsdlabel.c:321
+#, c-format
+msgid ""
+"\n"
+"%d partitions:\n"
+msgstr ""
+"\n"
+"poèet diskových oddílù - %d:\n"
+
+#: fdisk/fdiskbsdlabel.c:322
+msgid "#        size   offset    fstype   [fsize bsize   cpg]\n"
+msgstr "#       velik  posun     typ ss   [fsize bsize   cpg]\n"
+
+#: fdisk/fdiskbsdlabel.c:378
+#, c-format
+msgid "Writing disklabel to %s%d.\n"
+msgstr "Ukládám tabulku rozdìlení disku na %s%d.\n"
+
+#: fdisk/fdiskbsdlabel.c:381
+#, c-format
+msgid "Writing disklabel to %s.\n"
+msgstr "Ukládám tabulku rozdìlení disku na %s.\n"
+
+#: fdisk/fdiskbsdlabel.c:392
+#, c-format
+msgid "%s%d contains no disklabel.\n"
+msgstr "Na %s%d se nenachází ¾ádná tabulka rozdìlení disku.\n"
+
+#: fdisk/fdiskbsdlabel.c:395
+#, c-format
+msgid "%s contains no disklabel.\n"
+msgstr "Na %s se nenachází ¾ádná tabulka rozdìlení disku.\n"
+
+#: fdisk/fdiskbsdlabel.c:399
+msgid "Do you want to create a disklabel? (y/n) "
+msgstr "Chcete vytvoøit tabulku rozdìlení disku? (y/n)"
+
+#: fdisk/fdiskbsdlabel.c:438
+msgid "bytes/sector"
+msgstr "bajtù/sektor"
+
+#: fdisk/fdiskbsdlabel.c:439
+msgid "sectors/track"
+msgstr "sektorù/stopu"
+
+#: fdisk/fdiskbsdlabel.c:440
+msgid "tracks/cylinder"
+msgstr "stop/cylindr"
+
+#: fdisk/fdiskbsdlabel.c:448
+msgid "sectors/cylinder"
+msgstr "sektorù/cylindr"
+
+#: fdisk/fdiskbsdlabel.c:452
+msgid "Must be <= sectors/track * tracks/cylinder (default).\n"
+msgstr "Musí být <= sektorù/stopu * stop/cylindr (implicitní).\n"
+
+#: fdisk/fdiskbsdlabel.c:454
+msgid "rpm"
+msgstr "otm"
+
+#: fdisk/fdiskbsdlabel.c:455
+msgid "interleave"
+msgstr "interleave"
+
+#: fdisk/fdiskbsdlabel.c:456
+msgid "trackskew"
+msgstr "zakøivení stopy"
+
+#: fdisk/fdiskbsdlabel.c:457
+msgid "cylinderskew"
+msgstr "zakøivení cylindru"
+
+#: fdisk/fdiskbsdlabel.c:458
+msgid "headswitch"
+msgstr "pøesun hlavy"
+
+#: fdisk/fdiskbsdlabel.c:459
+msgid "track-to-track seek"
+msgstr "posun stopa-stopa"
+
+#: fdisk/fdiskbsdlabel.c:500
+#, c-format
+msgid "Bootstrap: %sboot -> boot%s (%s): "
+msgstr "Zavadìè: %sstart -> start%s (%s): "
+
+#: fdisk/fdiskbsdlabel.c:526
+msgid "Bootstrap overlaps with disk label!\n"
+msgstr "Zavadìè pøesahuje do tabulky rozdìlení disku!\n"
+
+#: fdisk/fdiskbsdlabel.c:547
+#, c-format
+msgid "Bootstrap installed on %s%d.\n"
+msgstr "Zavadìè instalován na %s%d.\n"
+
+#: fdisk/fdiskbsdlabel.c:549
+#, c-format
+msgid "Bootstrap installed on %s.\n"
+msgstr "Zavadìè instalován na %s.\n"
+
+#: fdisk/fdiskbsdlabel.c:570
+#, c-format
+msgid "Partition (a-%c): "
+msgstr "Diskový oddíl (a-%c): "
+
+#: fdisk/fdiskbsdlabel.c:601
+msgid "This partition already exists.\n"
+msgstr "Tento diskový oddíl ji¾ existuje.\n"
+
+#: fdisk/fdiskbsdlabel.c:723
+#, c-format
+msgid "Warning: too many partitions (%d, maximum is %d).\n"
+msgstr "Varování: pøíli¹ mnoho diskových oddílù (%d, maximum %d).\n"
+
+#: fdisk/fdiskbsdlabel.c:769
+msgid ""
+"\n"
+"Syncing disks.\n"
+msgstr ""
+"\n"
+"Synchronizují se disky.\n"
+
+#: fdisk/fdisksgilabel.c:56
+msgid "SGI volhdr"
+msgstr "Hlavièka SGI svazku"
+
+#: fdisk/fdisksgilabel.c:57
+msgid "SGI trkrepl"
+msgstr "SGI trkrepl"
+
+#: fdisk/fdisksgilabel.c:58
+msgid "SGI secrepl"
+msgstr "SGI secrepl"
+
+#: fdisk/fdisksgilabel.c:59
+msgid "SGI raw"
+msgstr "SGI raw"
+
+#: fdisk/fdisksgilabel.c:60
+msgid "SGI bsd"
+msgstr "SGI bsd"
+
+#: fdisk/fdisksgilabel.c:61
+msgid "SGI sysv"
+msgstr "SGI sysv"
+
+#: fdisk/fdisksgilabel.c:62
+msgid "SGI volume"
+msgstr "SGI svazek"
+
+#: fdisk/fdisksgilabel.c:63
+msgid "SGI efs"
+msgstr "SGI efs"
+
+#: fdisk/fdisksgilabel.c:64
+msgid "SGI lvol"
+msgstr "SGI lvol"
+
+#: fdisk/fdisksgilabel.c:65
+msgid "SGI rlvol"
+msgstr "SGI rlvol"
+
+#: fdisk/fdisksgilabel.c:66
+msgid "SGI xfs"
+msgstr "SGI xfs"
+
+#: fdisk/fdisksgilabel.c:67
+msgid "SGI xlvol"
+msgstr "SGI xlvol"
+
+#: fdisk/fdisksgilabel.c:68
+msgid "SGI rxlvol"
+msgstr "SGI rxlvol"
+
+#. Minix 1.4b and later
+#: fdisk/fdisksgilabel.c:69 fdisk/fdisksunlabel.c:52 fdisk/i386_sys_types.c:55
+msgid "Linux swap"
+msgstr "Linux swap"
+
+#: fdisk/fdisksgilabel.c:70 fdisk/fdisksunlabel.c:53
+msgid "Linux native"
+msgstr "Linux nativní"
+
+#: fdisk/fdisksgilabel.c:143
+msgid ""
+"According to MIPS Computer Systems, Inc the Label must not contain more than "
+"512 bytes\n"
+msgstr ""
+"Podle MIPS Computer Systems, Inc jméno nesmí obsahovat více ne¾ 512 bajtù\n"
+
+#: fdisk/fdisksgilabel.c:162
+msgid "Detected sgi disklabel with wrong checksum.\n"
+msgstr ""
+"Nalezl jsem sgi tabulku rozdìlení disku s chybným kontrolním souètem.\n"
+
+#: fdisk/fdisksgilabel.c:186
+#, c-format
+msgid ""
+"\n"
+"Disk %s (SGI disk label): %d heads, %d sectors\n"
+"%d cylinders, %d physical cylinders\n"
+"%d extra sects/cyl, interleave %d:1\n"
+"%s\n"
+"Units = %s of %d * 512 bytes\n"
+"\n"
+msgstr ""
+"\n"
+"Disk %s (SGI tabulka rozdìlení disku): hlav: %d, sektorù: %d,\n"
+"cylindrù: %d, fyzických cylindrù: %d\n"
+"extra sektorù/cyl: %d, interleave: %d:1\n"
+"%s\n"
+"Jednotky = %sy po %d * 512 bajtech\n"
+"\n"
+
+#: fdisk/fdisksgilabel.c:199
+#, c-format
+msgid ""
+"\n"
+"Disk %s (SGI disk label): %d heads, %d sectors, %d cylinders\n"
+"Units = %s of %d * 512 bytes\n"
+"\n"
+msgstr ""
+"\n"
+"Disk %s (SGI tabulka rozdìlení disku): hlav: %d, sektorù: %d, cylindrù: %d\n"
+"Jednotky = %sy po %d * 512 bajtech\n"
+"\n"
+
+#: fdisk/fdisksgilabel.c:205
+#, c-format
+msgid ""
+"----- partitions -----\n"
+"%*s  Info      Start       End   Sectors  Id  System\n"
+msgstr ""
+"----- diskové oddíly -----\n"
+"%*s  Info      Zaèátek     Konec Sektory  Id  Systém\n"
+
+#: fdisk/fdisksgilabel.c:227
+#, c-format
+msgid ""
+"----- bootinfo -----\n"
+"Bootfile: %s\n"
+"----- directory entries -----\n"
+msgstr ""
+"----- bootinfo -----\n"
+"Startovací soubor: %s\n"
+"----- adresáøové polo¾ky -----\n"
+
+#: fdisk/fdisksgilabel.c:237
+#, c-format
+msgid "%2d: %-10s sector%5u size%8u\n"
+msgstr "%2d: %-10s sektor%5u velikost%8u\n"
+
+#: fdisk/fdisksgilabel.c:298
+msgid ""
+"\n"
+"Invalid Bootfile!\n"
+"\tThe bootfile must be an absolute non-zero pathname,\n"
+"\te.g. \"/unix\" or \"/unix.save\".\n"
+msgstr ""
+"\n"
+"Chybný startovací soubor!\n"
+"\tStartovací soubor musí být zadán plným jménem, napø.\n"
+"\t\"/unix\" èi \"/unix.save\".\n"
+
+#: fdisk/fdisksgilabel.c:305
+msgid ""
+"\n"
+"\tName of Bootfile too long:  16 bytes maximum.\n"
+msgstr ""
+"\n"
+"\tJméno startovacího souboru je pøíli¹ dlouhé: 16 bajtù je maximum.\n"
+
+#: fdisk/fdisksgilabel.c:310
+msgid ""
+"\n"
+"\tBootfile must have a fully qualified pathname.\n"
+msgstr ""
+"\n"
+"\tStartovací soubor musí být zadán plným jménem.\n"
+
+#: fdisk/fdisksgilabel.c:315
+msgid ""
+"\n"
+"\tBe aware, that the bootfile is not checked for existence.\n"
+"\tSGI's default is \"/unix\" and for backup \"/unix.save\".\n"
+msgstr ""
+"\n"
+"Uvìdomte si, ¾e existence startovacího souboru není ovìøována.\n"
+"\tImplicitnì se pou¾ije \"/unix\" a jako záloha \"/unix.save\".\n"
+
+#: fdisk/fdisksgilabel.c:343
+#, c-format
+msgid ""
+"\n"
+"\tBootfile is changed to \"%s\".\n"
+msgstr ""
+"\n"
+"\tStartovací soubor byl zmìnìn na \"%s\".\n"
+
+#: fdisk/fdisksgilabel.c:448
+msgid "More than one entire disk entry present.\n"
+msgstr "Existuje více ne¾ jedna polo¾ka celého disku.\n"
+
+#: fdisk/fdisksgilabel.c:456 fdisk/fdisksunlabel.c:455
+msgid "No partitions defined\n"
+msgstr "Nejsou definovány ¾ádné diskové oddíly\n"
+
+#: fdisk/fdisksgilabel.c:463
+msgid "IRIX likes when Partition 11 covers the entire disk.\n"
+msgstr "IRIX preferuje, kdy¾ Diskový oddíl 11 zaujímá celý disk.\n"
+
+#: fdisk/fdisksgilabel.c:465
+#, c-format
+msgid ""
+"The entire disk partition should start at block 0,\n"
+"not at diskblock %d.\n"
+msgstr ""
+"Diskový oddíl zaujímající celý disk by mìl zaèínat blokem 0,\n"
+"nikoliv blokem %d.\n"
+
+#: fdisk/fdisksgilabel.c:469
+#, c-format
+msgid ""
+"The entire disk partition is only %d diskblock large,\n"
+"but the disk is %d diskblocks long.\n"
+msgstr ""
+"Diskový oddíl zaujímající celý disk má velikost  v blocích pouze %d,\n"
+"ale velikost disku v blocích je %d.\n"
+
+#: fdisk/fdisksgilabel.c:476
+msgid "One Partition (#11) should cover the entire disk.\n"
+msgstr "Jeden Diskový Oddíl (#11) by mìl zaujímat celý disk.\n"
+
+#: fdisk/fdisksgilabel.c:488
+#, c-format
+msgid "Partition %d does not start on cylinder boundary.\n"
+msgstr "Diskový oddíl %d nezaèíná na hranici cylindru.\n"
+
+#: fdisk/fdisksgilabel.c:495
+#, c-format
+msgid "Partition %d does not end on cylinder boundary.\n"
+msgstr "Diskový oddíl %d nekonèí na hranici cylindru.\n"
+
+#: fdisk/fdisksgilabel.c:503
+#, c-format
+msgid "The Partition %d and %d overlap by %d sectors.\n"
+msgstr "Diskové oddíly %d a %d se navzájem pøekrývají %d sektory.\n"
+
+#: fdisk/fdisksgilabel.c:512 fdisk/fdisksgilabel.c:532
+#, c-format
+msgid "Unused gap of %8d sectors - sectors %8d-%d\n"
+msgstr "Nevyu¾ívaný prostor o velikosti v sektorech %8d - sektory %8d-%d\n"
+
+#: fdisk/fdisksgilabel.c:545
+msgid ""
+"\n"
+"The boot partition does not exist.\n"
+msgstr ""
+"\n"
+"Startovací diskový oddíl neexistuje.\n"
+
+#: fdisk/fdisksgilabel.c:549
+msgid ""
+"\n"
+"The swap partition does not exist.\n"
+msgstr ""
+"\n"
+"Diskový oddíl pro odkládací prostor neexistuje.\n"
+
+#: fdisk/fdisksgilabel.c:554
+msgid ""
+"\n"
+"The swap partition has no swap type.\n"
+msgstr ""
+"\n"
+"Diskový oddíl pro odkládací prostor nemá zadán typ.\n"
+
+#: fdisk/fdisksgilabel.c:558
+msgid "\tYou have chosen an unusual boot file name.\n"
+msgstr "\tVybral jste si neobvyklé jméno pro startovací soubor.\n"
+
+#: fdisk/fdisksgilabel.c:569
+msgid "Sorry You may change the Tag of non-empty partitions.\n"
+msgstr "Lituji, mù¾ete mìnit znaèku neprázdných diskových oddílù.\n"
+
+#: fdisk/fdisksgilabel.c:576
+msgid ""
+"It is highly recommended that the partition at offset 0\n"
+"is of type \"SGI volhdr\", the IRIX system will rely on it to\n"
+"retrieve from its directory standalone tools like sash and fx.\n"
+"Only the \"SGI volume\" entire disk section may violate this.\n"
+"Type YES if you are sure about tagging this partition differently.\n"
+msgstr ""
+"Doporuèuje se, aby diskový oddíl zaèínající na posunu 0 byl typu\n"
+"\"SGI volhdr\". IRIX jej pou¾ívá k pøístupu k nástrojùm jako je sash\n"
+"a fx. Vyjímkou je pouze \"SGI svazek\" zaujímající celý disk.\n"
+"Zadejte YES, pokud jste si jist, ¾e chcete oznaèit tento diskový oddíl "
+"jinak.\n"
+
+#. rebuild freelist
+#: fdisk/fdisksgilabel.c:621
+msgid "Do You know, You got a partition overlap on the disk?\n"
+msgstr "Víte, ¾e na Va¹em disku se diskové oddíly pøekrývají?\n"
+
+#: fdisk/fdisksgilabel.c:691
+msgid "Attempting to generate entire disk entry automatically.\n"
+msgstr "Pokou¹ím se automaticky vytvoøit polo¾ku pro celý disk.\n"
+
+#: fdisk/fdisksgilabel.c:698
+msgid "The entire disk is already covered with partitions.\n"
+msgstr "Diskové oddíly ji¾ zabírají celý prostor disky.\n"
+
+#: fdisk/fdisksgilabel.c:703
+msgid "You got a partition overlap on the disk. Fix it first!\n"
+msgstr "Diskové oddíly se pøekrývají. Nejprve to opravte!\n"
+
+#: fdisk/fdisksgilabel.c:712 fdisk/fdisksgilabel.c:741
+msgid ""
+"It is highly recommended that eleventh partition\n"
+"covers the entire disk and is of type `SGI volume'\n"
+msgstr ""
+"Doporuèuje se, aby jedenáctý diskový oddíl zaujímal celý\n"
+"prostor disku a byl typu `SGI svazek'\n"
+
+#: fdisk/fdisksgilabel.c:728
+msgid "You will get a partition overlap on the disk. Fix it first!\n"
+msgstr ""
+"Takto se diskové oddíly budou navzájem pøekrývat. Nejprve to opravte!\n"
+
+#: fdisk/fdisksgilabel.c:733
+#, c-format
+msgid " Last %s"
+msgstr " Poslední %s"
+
+#: fdisk/fdisksgilabel.c:756
+msgid ""
+"Building a new SGI disklabel. Changes will remain in memory only,\n"
+"until you decide to write them. After that, of course, the previous\n"
+"content will be unrecoverable lost.\n"
+"\n"
+msgstr ""
+"Vytváøím novou SGI tabulku rozdìlení disku. Zmìny budou ulo¾eny pouze do\n"
+"pamìti, dokud se nerozhodnete je ulo¾it na disk. Poté ji¾ nebudou stará "
+"data\n"
+"pochopitelnì dostupná.\n"
+
+#: fdisk/fdisksgilabel.c:784
+#, c-format
+msgid "Trying to keep parameters of partition %d.\n"
+msgstr "Pokou¹ím se zachovat parametry diskového oddílu %d.\n"
+
+#: fdisk/fdisksgilabel.c:786
+#, c-format
+msgid "ID=%02x\tSTART=%d\tLENGTH=%d\n"
+msgstr "ID=%02x\tZAÈÁTEK=%d\tDÉLKA=%d\n"
+
+#: fdisk/fdisksunlabel.c:43 fdisk/i386_sys_types.c:6
+msgid "Empty"
+msgstr "Prázdný prostor"
+
+#: fdisk/fdisksunlabel.c:45
+msgid "SunOS root"
+msgstr "SunOS root"
+
+#: fdisk/fdisksunlabel.c:46
+msgid "SunOS swap"
+msgstr "SunOS swap"
+
+#: fdisk/fdisksunlabel.c:47
+msgid "SunOS usr"
+msgstr "SunOS usr"
+
+#: fdisk/fdisksunlabel.c:48
+msgid "Whole disk"
+msgstr "Celý disk"
+
+#: fdisk/fdisksunlabel.c:49
+msgid "SunOS stand"
+msgstr "SunOS stand"
+
+#: fdisk/fdisksunlabel.c:50
+msgid "SunOS var"
+msgstr "SunOS var"
+
+#: fdisk/fdisksunlabel.c:51
+msgid "SunOS home"
+msgstr "SunOS home"
+
+#: fdisk/fdisksunlabel.c:122
+msgid ""
+"Detected sun disklabel with wrong checksum.\n"
+"Probably you'll have to set all the values,\n"
+"e.g. heads, sectors, cylinders and partitions\n"
+"or force a fresh label (s command in main menu)\n"
+msgstr ""
+"Nalezl jsem sun tabulku rozdìlení disku s chybných kontrolním souètem.\n"
+"Pravdìpodobnì budete muset nastavit v¹echny hodnoty jako hlavy, sektory,\n"
+"cylindry a diskové oddíly, nebo vytvoøit novou tabulku (pøíkaz s v hlavní\n"
+"nabídce)\n"
+
+#: fdisk/fdisksunlabel.c:215
+#, c-format
+msgid "Autoconfigure found a %s%s%s\n"
+msgstr "Automatická konfigurace nalezla %s%s%s\n"
+
+#: fdisk/fdisksunlabel.c:242
+msgid ""
+"Building a new sun disklabel. Changes will remain in memory only,\n"
+"until you decide to write them. After that, of course, the previous\n"
+"content won't be recoverable.\n"
+"\n"
+msgstr ""
+"Vytváøím novou sun tabulku rozdìlení disku. Zmìny budou ulo¾eny pouze do\n"
+"pamìti, dokud se nerozhodnete je ulo¾it na disk. Poté ji¾ nebudou stará "
+"data\n"
+"pochopitelnì dostupná.\n"
+
+#: fdisk/fdisksunlabel.c:253
+msgid ""
+"Drive type\n"
+"   ?   auto configure\n"
+"   0   custom (with hardware detected defaults)"
+msgstr ""
+"Typ disku\n"
+"   ?   automatická konfigurace\n"
+"   0   u¾ivatelská konfigurace (s detekovaným implicitním nastavením)"
+
+#: fdisk/fdisksunlabel.c:263
+msgid "Select type (? for auto, 0 for custom): "
+msgstr "Zadejte typ (? pro auto, 0 pro u¾ivatelský): "
+
+#: fdisk/fdisksunlabel.c:275
+msgid "Autoconfigure failed.\n"
+msgstr "Automatická konfigurace selhala.\n"
+
+#: fdisk/fdisksunlabel.c:303
+msgid "Sectors/track"
+msgstr "Sektorù/stopu"
+
+#: fdisk/fdisksunlabel.c:310
+msgid "Alternate cylinders"
+msgstr "Alternativní cylindry"
+
+#: fdisk/fdisksunlabel.c:313
+msgid "Physical cylinders"
+msgstr "Fyzické cylindry"
+
+#: fdisk/fdisksunlabel.c:316 fdisk/fdisksunlabel.c:681
+msgid "Rotation speed (rpm)"
+msgstr "Rychlost otáèení (otm)"
+
+#: fdisk/fdisksunlabel.c:318 fdisk/fdisksunlabel.c:674
+msgid "Interleave factor"
+msgstr "Interleave faktor"
+
+#: fdisk/fdisksunlabel.c:321 fdisk/fdisksunlabel.c:667
+msgid "Extra sectors per cylinder"
+msgstr "Extra sektory na cylindr"
+
+#: fdisk/fdisksunlabel.c:334
+msgid "You may change all the disk params from the x menu"
+msgstr "V¹echny parametry disku mù¾ete zmìnit z nabídky x"
+
+#: fdisk/fdisksunlabel.c:337
+msgid "3,5\" floppy"
+msgstr "3,5\" pru¾ný disk"
+
+#: fdisk/fdisksunlabel.c:337
+msgid "Linux custom"
+msgstr "Linux u¾ivatelský"
+
+#: fdisk/fdisksunlabel.c:418
+#, c-format
+msgid "Partition %d doesn't end on cylinder boundary\n"
+msgstr "Diskový oddíl %d nekonèí na hranici cylindru.\n"
+
+#: fdisk/fdisksunlabel.c:438
+#, c-format
+msgid "Partition %d overlaps with others in sectors %d-%d\n"
+msgstr "Diskový oddíl %d pøesahuje do jiných v sektorech %d-%d\n"
+
+#: fdisk/fdisksunlabel.c:460
+#, c-format
+msgid "Unused gap - sectors 0-%d\n"
+msgstr "Nevyu¾ívaný prostor - sektory 0-%d\n"
+
+#: fdisk/fdisksunlabel.c:462 fdisk/fdisksunlabel.c:466
+#, c-format
+msgid "Unused gap - sectors %d-%d\n"
+msgstr "Nevyu¾ívaný prostor - sektory %d-%d\n"
+
+#: fdisk/fdisksunlabel.c:489
+msgid ""
+"Other partitions already cover the whole disk.\n"
+"Delete some/shrink them before retry.\n"
+msgstr ""
+"Jiné diskové oddíly ji¾ zaujímá celý disk.\n"
+"Sma¾te/zmen¹ete nìjaké a zkuste to znovu.\n"
+
+#: fdisk/fdisksunlabel.c:547
+#, c-format
+msgid ""
+"You haven't covered the whole disk with the 3rd partition, but your value\n"
+"%d %s covers some other partition. Your entry has been changed\n"
+"to %d %s\n"
+msgstr ""
+"Tøetí diskový oddíl nezabírá celý disk, ale va¹e hodnota %d %s\n"
+"zaujímá jiné diskové oddíly. Va¹e polo¾ka byla zmìnìna na %d %s.\n"
+
+#: fdisk/fdisksunlabel.c:567
+#, c-format
+msgid ""
+"If you want to maintain SunOS/Solaris compatibility, consider leaving this\n"
+"partition as Whole disk (5), starting at 0, with %u sectors\n"
+msgstr ""
+"Pokud chcete zachovat kompatibilitu se SunOS/Solarisem, zva¾te ponechání\n"
+"tohoto diskového oddílu jako Celého disku (5), zaèínajícího na 0 o délce\n"
+"v sektorech %u\n"
+
+#: fdisk/fdisksunlabel.c:580
+msgid ""
+"It is highly recommended that the partition at offset 0\n"
+"is UFS, EXT2FS filesystem or SunOS swap. Putting Linux swap\n"
+"there may destroy your partition table and bootblock.\n"
+"Type YES if you're very sure you would like that partition\n"
+"tagged with 82 (Linux swap): "
+msgstr ""
+"Doporuèuje se, aby diskový oddíl zaèínající na posunu 0 byl typu\n"
+"UFS, EXT2FS èi SunOS swap. Vytvoøení odkládacího prostoru pro Linux\n"
+"na tomto místì by mohlo znièit tabulku rozdìlení disku a startovací blok.\n"
+"Zadejte YES, pokud jste si jist, ¾e chcete tento diskový oddíl oznaèit 82\n"
+"(odkládací prostor pro Linux): "
+
+#: fdisk/fdisksunlabel.c:611
+#, c-format
+msgid ""
+"\n"
+"Disk %s (Sun disk label): %d heads, %d sectors, %d rpm\n"
+"%d cylinders, %d alternate cylinders, %d physical cylinders\n"
+"%d extra sects/cyl, interleave %d:1\n"
+"%s\n"
+"Units = %s of %d * 512 bytes\n"
+"\n"
+msgstr ""
+"\n"
+"Disk %s (Sun tabulka rozdìlení disku): hlav: %d, sektorù: %d, otm: %d,\n"
+"cylindrù: %d, alternativních cylindrù: %d, fyzických cylindrù: %d\n"
+"extra sektorù/cyl: %d, interleave: %d:1\n"
+"%s\n"
+"Jednotky = %sy po %d * 512 bajtech\n"
+"\n"
+
+#: fdisk/fdisksunlabel.c:625
+#, c-format
+msgid ""
+"\n"
+"Disk %s (Sun disk label): %d heads, %d sectors, %d cylinders\n"
+"Units = %s of %d * 512 bytes\n"
+"\n"
+msgstr ""
+"\n"
+"Disk %s (Sun tabulka rozdìlení disku): hlav: %d, sektorù: %d, cylindrù: %d\n"
+"Jednotky = %sy po %d * 512 bajtech\n"
+"\n"
+
+#: fdisk/fdisksunlabel.c:630
+#, c-format
+msgid "%*s Flag    Start       End    Blocks   Id  System\n"
+msgstr "%*s Pøíznak Zaèátek     Konec  Bloky    Id  Systém\n"
+
+#: fdisk/fdisksunlabel.c:655
+msgid "Number of alternate cylinders"
+msgstr "Poèet alternativních cylindrù"
+
+#: fdisk/fdisksunlabel.c:688
+msgid "Number of physical cylinders"
+msgstr "Poèet fyzických cylindrù"
+
+#: fdisk/i386_sys_types.c:7
+msgid "FAT12"
+msgstr "FAT12"
+
+#: fdisk/i386_sys_types.c:8
+msgid "XENIX root"
+msgstr "XENIX root"
+
+#: fdisk/i386_sys_types.c:9
+msgid "XENIX usr"
+msgstr "XENIX usr"
+
+#: fdisk/i386_sys_types.c:10
+msgid "FAT16 <32M"
+msgstr "FAT16 <32M"
+
+#: fdisk/i386_sys_types.c:11
+msgid "Extended"
+msgstr "Roz¹íøený"
+
+#. DOS 3.3+ extended partition
+#: fdisk/i386_sys_types.c:12
+msgid "FAT16"
+msgstr "FAT16"
+
+#. DOS 16-bit >=32M
+#: fdisk/i386_sys_types.c:13
+msgid "HPFS/NTFS"
+msgstr "HPFS/NTFS"
+
+#. OS/2 IFS, eg, HPFS or NTFS or QNX
+#: fdisk/i386_sys_types.c:14
+msgid "AIX"
+msgstr "AIX"
+
+#. AIX boot (AIX -- PS/2 port) or SplitDrive
+#: fdisk/i386_sys_types.c:15
+msgid "AIX bootable"
+msgstr "AIX startovací"
+
+#. AIX data or Coherent
+#: fdisk/i386_sys_types.c:16
+msgid "OS/2 Boot Manager"
+msgstr "OS/2 Boot Manager"
+
+#. OS/2 Boot Manager
+#: fdisk/i386_sys_types.c:17
+msgid "Win95 FAT32"
+msgstr "Win95 FAT32"
+
+#: fdisk/i386_sys_types.c:18
+msgid "Win95 FAT32 (LBA)"
+msgstr "Win95 FAT32 (LBA)"
+
+#. LBA really is `Extended Int 13h'
+#: fdisk/i386_sys_types.c:19
+msgid "Win95 FAT16 (LBA)"
+msgstr "Win95 FAT16 (LBA)"
+
+#: fdisk/i386_sys_types.c:20
+msgid "Win95 Ext'd (LBA)"
+msgstr "Win95 Ext'd (LBA)"
+
+#: fdisk/i386_sys_types.c:21
+msgid "OPUS"
+msgstr "OPUS"
+
+#: fdisk/i386_sys_types.c:22
+msgid "Hidden FAT12"
+msgstr "Skrytá FAT12"
+
+#: fdisk/i386_sys_types.c:23
+msgid "Compaq diagnostics"
+msgstr "Compaq diagnostics"
+
+#: fdisk/i386_sys_types.c:24
+msgid "Hidden FAT16 <32M"
+msgstr "Skrytá FAT16 <32M"
+
+#: fdisk/i386_sys_types.c:25
+msgid "Hidden FAT16"
+msgstr "Skrytá FAT16"
+
+#: fdisk/i386_sys_types.c:26
+msgid "Hidden HPFS/NTFS"
+msgstr "Skrytá HPFS/NTFS"
+
+#: fdisk/i386_sys_types.c:27
+msgid "AST Windows swapfile"
+msgstr "AST Windows odkládací soubor"
+
+#: fdisk/i386_sys_types.c:28
+msgid "Hidden Win95 FAT32"
+msgstr "Skrytá Win95 FAT32"
+
+#: fdisk/i386_sys_types.c:29
+msgid "Hidden Win95 FAT32 (LBA)"
+msgstr "Skrytá Win95 FAT32 (LBA)"
+
+#: fdisk/i386_sys_types.c:30
+msgid "Hidden Win95 FAT16 (LBA)"
+msgstr "Skrytá Win95 FAT16 (LBA)"
+
+#: fdisk/i386_sys_types.c:31
+msgid "NEC DOS"
+msgstr "NEC DOS"
+
+#: fdisk/i386_sys_types.c:32
+msgid "PartitionMagic recovery"
+msgstr "PartitionMagic recovery"
+
+#: fdisk/i386_sys_types.c:33
+msgid "Venix 80286"
+msgstr "Venix 80286"
+
+#: fdisk/i386_sys_types.c:34
+msgid "PPC PReP Boot"
+msgstr "PPC PReP Boot"
+
+#: fdisk/i386_sys_types.c:35
+msgid "SFS"
+msgstr "SFS"
+
+#: fdisk/i386_sys_types.c:36
+msgid "QNX4.x"
+msgstr "QNX4.x"
+
+#: fdisk/i386_sys_types.c:37
+msgid "QNX4.x 2nd part"
+msgstr "QNX4.x 2. èást"
+
+#: fdisk/i386_sys_types.c:38
+msgid "QNX4.x 3rd part"
+msgstr "QNX4.x 3. èást"
+
+#: fdisk/i386_sys_types.c:39
+msgid "OnTrack DM"
+msgstr "OnTrack DM"
+
+#: fdisk/i386_sys_types.c:40
+msgid "OnTrack DM6 Aux1"
+msgstr "OnTrack DM6 Aux1"
+
+#. (or Novell)
+#: fdisk/i386_sys_types.c:41
+msgid "CP/M"
+msgstr "CP/M"
+
+#. CP/M or Microport SysV/AT
+#: fdisk/i386_sys_types.c:42
+msgid "OnTrack DM6 Aux3"
+msgstr "OnTrack DM6 Aux3"
+
+#: fdisk/i386_sys_types.c:43
+msgid "OnTrackDM6"
+msgstr "OnTrackDM6"
+
+#: fdisk/i386_sys_types.c:44
+msgid "EZ-Drive"
+msgstr "EZ-Drive"
+
+#: fdisk/i386_sys_types.c:45
+msgid "Golden Bow"
+msgstr "Golden Bow"
+
+#: fdisk/i386_sys_types.c:46
+msgid "Priam Edisk"
+msgstr "Priam Edisk"
+
+#. DOS R/O or SpeedStor
+#: fdisk/i386_sys_types.c:47 fdisk/i386_sys_types.c:76
+#: fdisk/i386_sys_types.c:78 fdisk/i386_sys_types.c:79
+msgid "SpeedStor"
+msgstr "SpeedStor"
+
+#: fdisk/i386_sys_types.c:48
+msgid "GNU HURD or SysV"
+msgstr "GNU HURD èi SysV"
+
+#. GNU HURD or Mach or Sys V/386 (such as ISC UNIX)
+#: fdisk/i386_sys_types.c:49
+msgid "Novell Netware 286"
+msgstr "Novell Netware 286"
+
+#: fdisk/i386_sys_types.c:50
+msgid "Novell Netware 386"
+msgstr "Novell Netware 386"
+
+#: fdisk/i386_sys_types.c:51
+msgid "DiskSecure Multi-Boot"
+msgstr "DiskSecure Multi-Boot"
+
+#: fdisk/i386_sys_types.c:52
+msgid "PC/IX"
+msgstr "PC/IX"
+
+#: fdisk/i386_sys_types.c:53
+msgid "Old Minix"
+msgstr "Starý Minix"
+
+#. Minix 1.4a and earlier
+#: fdisk/i386_sys_types.c:54
+msgid "Minix / old Linux"
+msgstr "Minix / starý Linux"
+
+#: fdisk/i386_sys_types.c:57
+msgid "OS/2 hidden C: drive"
+msgstr "OS/2 skrytý C: disk"
+
+#: fdisk/i386_sys_types.c:58
+msgid "Linux extended"
+msgstr "Linux extended"
+
+#: fdisk/i386_sys_types.c:59 fdisk/i386_sys_types.c:60
+msgid "NTFS volume set"
+msgstr "NTFS svazek"
+
+#: fdisk/i386_sys_types.c:61
+msgid "Amoeba"
+msgstr "Amoeba"
+
+#: fdisk/i386_sys_types.c:62
+msgid "Amoeba BBT"
+msgstr "Amoeba BBT"
+
+#. (bad block table)
+#: fdisk/i386_sys_types.c:63
+msgid "IBM Thinkpad hibernation"
+msgstr "IBM Thinkpad hibernation"
+
+#: fdisk/i386_sys_types.c:64
+msgid "BSD/386"
+msgstr "BSD/386"
+
+#: fdisk/i386_sys_types.c:65
+msgid "OpenBSD"
+msgstr "OpenBSD"
+
+#: fdisk/i386_sys_types.c:66
+msgid "NeXTSTEP"
+msgstr "NeXTSTEP"
+
+#: fdisk/i386_sys_types.c:67
+msgid "BSDI fs"
+msgstr "BSDI ss"
+
+#: fdisk/i386_sys_types.c:68
+msgid "BSDI swap"
+msgstr "BSDI swap"
+
+#: fdisk/i386_sys_types.c:69
+msgid "DRDOS/sec (FAT-12)"
+msgstr "DRDOS/sec (FAT-12)"
+
+#: fdisk/i386_sys_types.c:70
+msgid "DRDOS/sec (FAT-16 < 32M)"
+msgstr "DRDOS/sec (FAT-16 < 32M)"
+
+#: fdisk/i386_sys_types.c:71
+msgid "DRDOS/sec (FAT-16)"
+msgstr "DRDOS/sec (FAT-16)"
+
+#: fdisk/i386_sys_types.c:72
+msgid "Syrinx"
+msgstr "Syrinx"
+
+#: fdisk/i386_sys_types.c:73
+msgid "CP/M / CTOS / ..."
+msgstr "CP/M / CTOS / ..."
+
+#. CP/M or Concurrent CP/M or Concurrent DOS or CTOS
+#: fdisk/i386_sys_types.c:74
+msgid "DOS access"
+msgstr "DOS access"
+
+#. DOS access or SpeedStor 12-bit FAT extended partition
+#: fdisk/i386_sys_types.c:75
+msgid "DOS R/O"
+msgstr "DOS R/O"
+
+#. SpeedStor 16-bit FAT extended partition < 1024 cyl.
+#: fdisk/i386_sys_types.c:77
+msgid "BeOS fs"
+msgstr "BeOS ss"
+
+#. SpeedStor large partition
+#: fdisk/i386_sys_types.c:80
+msgid "DOS secondary"
+msgstr "DOS sekundární"
+
+#. DOS 3.3+ secondary
+#: fdisk/i386_sys_types.c:81
+msgid "Linux raid autodetect"
+msgstr "Linux raid autodetect"
+
+#. New (2.2.x) raid partition with autodetect
+#. using persistent superblock
+#: fdisk/i386_sys_types.c:83
+msgid "LANstep"
+msgstr "LANstep"
+
+#. SpeedStor >1024 cyl. or LANstep
+#: fdisk/i386_sys_types.c:84
+msgid "BBT"
+msgstr "BBT"
+
+#: fdisk/sfdisk.c:148
+#, c-format
+msgid "seek error on %s - cannot seek to %lu\n"
+msgstr "chyba posunu ukazovátka na %s - ukazovátko nelze posunout na %lu\n"
+
+#: fdisk/sfdisk.c:153
+#, c-format
+msgid "seek error: wanted 0x%08x%08x, got 0x%08x%08x\n"
+msgstr ""
+"chyba pøi posunu ukazovátka: po¾adavek 0x%08x%08x, výsledek 0x%08x%08x\n"
+
+#: fdisk/sfdisk.c:199
+msgid "out of memory - giving up\n"
+msgstr "nedostatek pamìti - konèím\n"
+
+#: fdisk/sfdisk.c:203 fdisk/sfdisk.c:286
+#, c-format
+msgid "read error on %s - cannot read sector %lu\n"
+msgstr "chyba ètení na %s - sektor %lu nelze èíst\n"
+
+#: fdisk/sfdisk.c:219
+#, c-format
+msgid "ERROR: sector %lu does not have an msdos signature\n"
+msgstr "CHYBA: sektor %lu nemá msdos podpis\n"
+
+#: fdisk/sfdisk.c:236
+#, c-format
+msgid "write error on %s - cannot write sector %lu\n"
+msgstr "chyba zápisu na %s - sektor %lu nelze zapsat\n"
+
+#: fdisk/sfdisk.c:274
+#, c-format
+msgid "cannot open partition sector save file (%s)\n"
+msgstr "soubor pro ulo¾ení sektorù (%s) nelze otevøít\n"
+
+#: fdisk/sfdisk.c:292
+#, c-format
+msgid "write error on %s\n"
+msgstr "chyba zápisu na %s\n"
+
+#: fdisk/sfdisk.c:310
+#, c-format
+msgid "cannot stat partition restore file (%s)\n"
+msgstr "volání stat pro soubor s ulo¾enými sektory (%s) selhalo\n"
+
+#: fdisk/sfdisk.c:315
+msgid "partition restore file has wrong size - not restoring\n"
+msgstr "soubor s ulo¾enými sektory má chybnou velikost - nebude obnoven\n"
+
+#: fdisk/sfdisk.c:319
+msgid "out of memory?\n"
+msgstr "nedostatek pamìti?\n"
+
+#: fdisk/sfdisk.c:325
+#, c-format
+msgid "cannot open partition restore file (%s)\n"
+msgstr "soubor s ulo¾enými sektory (%s) nelze otevøít\n"
+
+#: fdisk/sfdisk.c:331
+#, c-format
+msgid "error reading %s\n"
+msgstr "chyba pøi ètení %s\n"
+
+#: fdisk/sfdisk.c:338
+#, c-format
+msgid "cannot open device %s for writing\n"
+msgstr "zaøízení %s nelze otevøít pro zápis\n"
+
+#: fdisk/sfdisk.c:350
+#, c-format
+msgid "error writing sector %lu on %s\n"
+msgstr "chyba pøi zápisu sektoru %lu na %s\n"
+
+#: fdisk/sfdisk.c:416
+#, c-format
+msgid ""
+"Warning: start=%d - this looks like a partition rather than\n"
+"the entire disk. Using fdisk on it is probably meaningless.\n"
+"[Use the --force option if you really want this]\n"
+msgstr ""
+"Varování: zaèátek=%d - to vypadá spí¹e jako diskový oddíl ne¾li\n"
+"celý disk. Pou¾ití fdisku je v tom pøípadì pravdìpodobnì zbyteèné\n"
+"[Pou¾ijte pøepínaè --force pokud to opravdu chcete.]\n"
+
+#: fdisk/sfdisk.c:422
+#, c-format
+msgid "Warning: HDIO_GETGEO says that there are %d heads\n"
+msgstr "Varování: dle HDIO_GETGEO je poèet hlav %d\n"
+
+#: fdisk/sfdisk.c:425
+#, c-format
+msgid "Warning: HDIO_GETGEO says that there are %d sectors\n"
+msgstr "Varování: dle HDIO_GETGEO je poèet sektorù %d\n"
+
+#: fdisk/sfdisk.c:428
+#, c-format
+msgid "Warning: HDIO_GETGEO says that there are %d cylinders\n"
+msgstr "Varování: dle HDIO_GETGEO je poèet cylindrù %d\n"
+
+#: fdisk/sfdisk.c:432
+#, c-format
+msgid "Disk %s: cannot get geometry\n"
+msgstr "Disk %s: geometrii nelze zjistit\n"
+
+#: fdisk/sfdisk.c:434
+#, c-format
+msgid ""
+"Warning: unlikely number of sectors (%d) - usually at most 63\n"
+"This will give problems with all software that uses C/H/S addressing.\n"
+msgstr ""
+"Varování: podivný poèet sektorù (%d) - obvykle nebývá více ne¾ 63\n"
+"To zpùsobí problémy v¹em programùm, které pou¾ívají CHS adresování.\n"
+
+#: fdisk/sfdisk.c:438
+#, c-format
+msgid ""
+"\n"
+"Disk %s: %lu cylinders, %lu heads, %lu sectors/track\n"
+msgstr ""
+"\n"
+"Disk %s: cylindrù: %lu, hlav: %lu, sektorù/stopu: %lu\n"
+
+#: fdisk/sfdisk.c:518
+#, c-format
+msgid ""
+"%s of partition %s has impossible value for head: %d (should be in 0-%d)\n"
+msgstr "%s diskového oddílu %s má chybný poèet hlav: %d (mìlo by být 0-%d)\n"
+
+#: fdisk/sfdisk.c:523
+#, c-format
+msgid ""
+"%s of partition %s has impossible value for sector: %d (should be in 1-%d)\n"
+msgstr ""
+"%s diskového oddílu %s má chybný poèet sektorù: %d (mìlo by být 1-%d)\n"
+
+#: fdisk/sfdisk.c:528
+#, c-format
+msgid ""
+"%s of partition %s has impossible value for cylinders: %d (should be in "
+"0-%d)\n"
+msgstr ""
+"%s diskového oddílu %s má chybný poèet cylindrù: %d (mìlo by být 0-%d)\n"
+
+#: fdisk/sfdisk.c:567
+msgid ""
+"Id  Name\n"
+"\n"
+msgstr "Id  Jméno\n"
+
+#: fdisk/sfdisk.c:720
+msgid "Re-reading the partition table ...\n"
+msgstr "Naèítám znovu tabulku rozdìlení disku ...\n"
+
+#: fdisk/sfdisk.c:726
+msgid ""
+"The command to re-read the partition table failed\n"
+"Reboot your system now, before using mkfs\n"
+msgstr ""
+"Nepodaøilo se znovu naèíst tabulku rozdìlení disku.\n"
+"Restartujte nyní, pøed pou¾itím mkfs, systém.\n"
+
+#: fdisk/sfdisk.c:731
+#, c-format
+msgid "Error closing %s\n"
+msgstr "Chyba pøi zavírání %s\n"
+
+#: fdisk/sfdisk.c:769
+#, c-format
+msgid "%s: no such partition\n"
+msgstr "diskový oddíl %s neexistuje\n"
+
+#: fdisk/sfdisk.c:792
+msgid "unrecognized format - using sectors\n"
+msgstr "Neznámý formát - pou¾ívám sektory\n"
+
+#: fdisk/sfdisk.c:831
+#, c-format
+msgid "# partition table of %s\n"
+msgstr "# tabulka rozdìlení disku pro %s\n"
+
+#: fdisk/sfdisk.c:832
+msgid ""
+"unit: sectors\n"
+"\n"
+msgstr ""
+"jednotky: sektory\n"
+"\n"
+
+#: fdisk/sfdisk.c:842
+#, c-format
+msgid "unimplemented format - using %s\n"
+msgstr "nepou¾ívaný formát - pou¾ívám %s\n"
+
+#: fdisk/sfdisk.c:846
+#, c-format
+msgid ""
+"Units = cylinders of %lu bytes, blocks of 1024 bytes, counting from %d\n"
+"\n"
+msgstr ""
+"Jednotky = cylindry po %lu bajtech, bloky po 1024 bajtech, poèítáno od %d\n"
+"\n"
+
+#: fdisk/sfdisk.c:849
+msgid "   Device Boot Start     End   #cyls   #blocks   Id  System\n"
+msgstr "   Zaøíz  Boot Zaèátek   Konec #cylind #bloky    Id  Systém\n"
+
+#: fdisk/sfdisk.c:854
+#, c-format
+msgid ""
+"Units = sectors of 512 bytes, counting from %d\n"
+"\n"
+msgstr ""
+"Jednotky = sektory po 512 bajtech, poèítáno od %d\n"
+"\n"
+
+#: fdisk/sfdisk.c:856
+msgid "   Device Boot    Start       End  #sectors  Id  System\n"
+msgstr "   Zaøíz  Boot    Zaèátek     Konec #sektory Id  Systém\n"
+
+#: fdisk/sfdisk.c:859
+#, c-format
+msgid ""
+"Units = blocks of 1024 bytes, counting from %d\n"
+"\n"
+msgstr ""
+"Jednotky = bloky po 1024 bajtech, poèítáno od %d\n"
+"\n"
+
+#: fdisk/sfdisk.c:861
+msgid "   Device Boot   Start       End   #blocks   Id  System\n"
+msgstr "   Zaøíz  Boot   Zaèátek     Konec #bloky   Id  Systém\n"
+
+#: fdisk/sfdisk.c:864
+#, c-format
+msgid ""
+"Units = megabytes of 1048576 bytes, blocks of 1024 bytes, counting from %d\n"
+"\n"
+msgstr ""
+"Jednotky = megabajty po 1048576 bajtech, bloky po 1024 bajtech, poèítáno od "
+"%d\n"
+"\n"
+
+#: fdisk/sfdisk.c:866
+msgid "   Device Boot Start   End     MB   #blocks   Id  System\n"
+msgstr "   Zaøíz  Boot Zaèátek Konec   MB   #bloky    Id  Systém\n"
+
+#: fdisk/sfdisk.c:932
+#, c-format
+msgid " start=%9lu"
+msgstr " zaèátek=%9lu"
+
+#: fdisk/sfdisk.c:933
+#, c-format
+msgid ", size=%8lu"
+msgstr ", velikost=%lu"
+
+#: fdisk/sfdisk.c:935
+#, c-format
+msgid ", Id=%2x"
+msgstr ", Id=%2x"
+
+#: fdisk/sfdisk.c:937
+msgid ", bootable"
+msgstr ", startovací"
+
+#: fdisk/sfdisk.c:998
+#, c-format
+msgid "\t\tstart: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr "\t\tzaèátek: (c,h,s) pøedpoklad (%ld,%ld,%ld) nalezeno (%ld,%ld,%ld)\n"
+
+#: fdisk/sfdisk.c:1005
+#, c-format
+msgid "\t\tend: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr "\t\tkonec: (c,h,s) pøedpoklad (%ld,%ld,%ld) nalezeno (%ld,%ld,%ld)\n"
+
+#: fdisk/sfdisk.c:1008
+#, c-format
+msgid "partition ends on cylinder %ld, beyond the end of the disk\n"
+msgstr "diskový oddíl konèí na cylindru %ld, t.j. za koncem disku\n"
+
+#: fdisk/sfdisk.c:1018
+msgid "No partitions found\n"
+msgstr "Nebyly nalezeny ¾ádné diskové oddíly\n"
+
+#: fdisk/sfdisk.c:1021
+#, c-format
+msgid ""
+"Warning: The first partition looks like it was made\n"
+"  for C/H/S=*/%ld/%ld (instead of %ld/%ld/%ld).\n"
+"For this listing I'll assume that geometry.\n"
+msgstr ""
+"Varování: Zdá se, ¾e první diskový oddíl byl vytvoøen\n"
+"pro C/H/S=*/%ld/%ld (místo %ld/%ld/%ld).\n"
+"Zobrazuji za pou¾ití této geometrie.\n"
+
+#: fdisk/sfdisk.c:1068
+msgid "no partition table present.\n"
+msgstr "Nebyla nalezena ¾ádná tabulka rozdìlení disku.\n"
+
+#: fdisk/sfdisk.c:1070
+#, c-format
+msgid "strange, only %d partitions defined.\n"
+msgstr "Zvlá¹tní - poèet definovaných diskových oddílù je pouze %d.\n"
+
+#: fdisk/sfdisk.c:1079
+#, c-format
+msgid "Warning: partition %s has size 0 but is not marked Empty\n"
+msgstr ""
+"Varování: diskový oddíl %s má velikost 0 a není oznaèen jako prázdný.\n"
+
+#: fdisk/sfdisk.c:1082
+#, c-format
+msgid "Warning: partition %s has size 0 and is bootable\n"
+msgstr "Varování: diskový oddíl %s má velikost 0 a je startovací.\n"
+
+#: fdisk/sfdisk.c:1085
+#, c-format
+msgid "Warning: partition %s has size 0 and nonzero start\n"
+msgstr "Varování: diskový oddíl %s má velikost 0 a nenulový zaèátek.\n"
+
+#: fdisk/sfdisk.c:1096
+#, c-format
+msgid "Warning: partition %s "
+msgstr "Varování: diskový oddíl %s "
+
+#: fdisk/sfdisk.c:1097
+#, c-format
+msgid "is not contained in partition %s\n"
+msgstr "není obsa¾en v diskovém oddílu %s.\n"
+
+#: fdisk/sfdisk.c:1108
+#, c-format
+msgid "Warning: partitions %s "
+msgstr "Varování: diskové oddíly %s "
+
+#: fdisk/sfdisk.c:1109
+#, c-format
+msgid "and %s overlap\n"
+msgstr "a %s se navzájem pøekrývají.\n"
+
+#: fdisk/sfdisk.c:1120
+#, c-format
+msgid "Warning: partition %s contains part of "
+msgstr "Varování: diskový oddíl %s obsahuje èást "
+
+#: fdisk/sfdisk.c:1121
+#, c-format
+msgid "the partition table (sector %lu),\n"
+msgstr "tabulky rozdìlení disku (sektor %lu)\n"
+
+#: fdisk/sfdisk.c:1122
+msgid "and will destroy it when filled\n"
+msgstr "a znièí ji, pokud bude obsazen\n"
+
+#: fdisk/sfdisk.c:1131
+#, c-format
+msgid "Warning: partition %s starts at sector 0\n"
+msgstr "Varování: diskový oddíl %s zaèíná na sektoru 0\n"
+
+#: fdisk/sfdisk.c:1135
+#, c-format
+msgid "Warning: partition %s extends past end of disk\n"
+msgstr "Varování: diskový oddíl %s pøesahuje za konec disku.\n"
+
+#: fdisk/sfdisk.c:1149
+msgid "Among the primary partitions, at most one can be extended\n"
+msgstr "Pouze jeden z diskových oddílù mù¾e být roz¹íøeným.\n"
+
+#: fdisk/sfdisk.c:1150
+msgid " (although this is not a problem under Linux)\n"
+msgstr " (aèkoliv pod Linuxem to nepøedstavuje problém)\n"
+
+#: fdisk/sfdisk.c:1167
+#, c-format
+msgid "Warning: partition %s does not start at a cylinder boundary\n"
+msgstr "Varování: diskový oddíl %s nezaèíná na hranici cylindru.\n"
+
+#: fdisk/sfdisk.c:1173
+#, c-format
+msgid "Warning: partition %s does not end at a cylinder boundary\n"
+msgstr "Varování: diskový oddíl %s nekonèí na hranici cylindru.\n"
+
+#: fdisk/sfdisk.c:1191
+msgid ""
+"Warning: more than one primary partition is marked bootable (active)\n"
+"This does not matter for LILO, but the DOS MBR will not boot this disk.\n"
+msgstr ""
+"Varování: více ne¾ jeden primární diskový oddíl je oznaèen jako startovací.\n"
+"LILU to neèiní problémy, ale DOS MBR z tohoto disku nenastartuje.\n"
+
+#: fdisk/sfdisk.c:1198
+msgid ""
+"Warning: usually one can boot from primary partitions only\n"
+"LILO disregards the `bootable' flag.\n"
+msgstr ""
+"Varování: obyèejnì je mo¾né startovat pouze z primárních diskových oddíl|ù.\n"
+"LILO nebude brát ohled na pøíznak 'startovací'.\n"
+
+#: fdisk/sfdisk.c:1204
+msgid ""
+"Warning: no primary partition is marked bootable (active)\n"
+"This does not matter for LILO, but the DOS MBR will not boot this disk.\n"
+msgstr ""
+"Varování: ¾ádný primární diskový oddíl není oznaèen jako startovací.\n"
+"LILU to neèiní problémy, ale DOS z tohoto disku nenastartuje.\n"
+
+#: fdisk/sfdisk.c:1221
+#, c-format
+msgid ""
+"partition %s: start: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+"diskový oddíl %s: zaèátek: (c,h,s) pøedpoklad (%ld,%ld,%ld), nalezeno\n"
+"(%ld,%ld,%ld)\n"
+
+#: fdisk/sfdisk.c:1230
+#, c-format
+msgid "partition %s: end: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+"diskový oddíl %s: konec: (c,h,s) pøedpoklad (%ld,%ld,%ld), nalezeno\n"
+"(%ld,%ld,%ld)\n"
+
+#: fdisk/sfdisk.c:1233
+#, c-format
+msgid "partition %s ends on cylinder %ld, beyond the end of the disk\n"
+msgstr "diskový oddíl %s konèí na cylindru %ld, t.j. za koncem disku\n"
+
+#: fdisk/sfdisk.c:1266 fdisk/sfdisk.c:1343
+#, c-format
+msgid "too many partitions - ignoring those past nr (%d)\n"
+msgstr "pøíli¹ mnoho diskových oddílù - ignoruji > %d\n"
+
+#: fdisk/sfdisk.c:1281
+msgid "tree of partitions?\n"
+msgstr "strom diskových oddílù?\n"
+
+#: fdisk/sfdisk.c:1385
+msgid "detected Disk Manager - unable to handle that\n"
+msgstr "nalezen Disk Manager - s tím neumím pracovat\n"
+
+#: fdisk/sfdisk.c:1392
+msgid "DM6 signature found - giving up\n"
+msgstr "nalezen DM6 podpis - konèím\n"
+
+#: fdisk/sfdisk.c:1412
+msgid "strange..., an extended partition of size 0?\n"
+msgstr "zvlá¹tní..., roz¹íøený diskový oddíl o velikosti 0?\n"
+
+#: fdisk/sfdisk.c:1419
+msgid "strange..., a BSD partition of size 0?\n"
+msgstr "zvlá¹tní..., BSD diskový oddíl o velikosti 0?\n"
+
+#: fdisk/sfdisk.c:1451
+#, c-format
+msgid " %s: unrecognized partition\n"
+msgstr " diskový oddíl %s není znám\n"
+
+#: fdisk/sfdisk.c:1463
+msgid "-n flag was given: Nothing changed\n"
+msgstr "byl zadán pøepínaè -n: Nic nebylo zmìnìno\n"
+
+#: fdisk/sfdisk.c:1476
+msgid "Failed saving the old sectors - aborting\n"
+msgstr "Chyba pøi ukládání starých sektorù - konèím\n"
+
+#: fdisk/sfdisk.c:1481
+#, c-format
+msgid "Failed writing the partition on %s\n"
+msgstr "Chyba pøi zápisu na diskový oddíl %s\n"
+
+#: fdisk/sfdisk.c:1558
+msgid "long or incomplete input line - quitting\n"
+msgstr "pøíli¹ dlouhý èi neúplný øádek - konèím\n"
+
+#: fdisk/sfdisk.c:1594
+#, c-format
+msgid "input error: `=' expected after %s field\n"
+msgstr "vstupní chyba: po polo¾ce %s jsem oèekával znak `='\n"
+
+#: fdisk/sfdisk.c:1601
+#, c-format
+msgid "input error: unexpected character %c after %s field\n"
+msgstr "vstupní chyba: neoèekávaný znak %c po polo¾ce %s\n"
+
+#: fdisk/sfdisk.c:1607
+#, c-format
+msgid "unrecognized input: %s\n"
+msgstr "nerozpoznaný vstup: %s\n"
+
+#: fdisk/sfdisk.c:1639
+msgid "number too big\n"
+msgstr "èíslo je pøíli¹ veliké\n"
+
+#: fdisk/sfdisk.c:1643
+msgid "trailing junk after number\n"
+msgstr "nesmysly za èíslem\n"
+
+#: fdisk/sfdisk.c:1759
+msgid "no room for partition descriptor\n"
+msgstr "není místo pro popis diskového oddílu\n"
+
+#: fdisk/sfdisk.c:1792
+msgid "cannot build surrounding extended partition\n"
+msgstr "okolní roz¹iøující diskový oddíl nelze vytvoøit\n"
+
+#: fdisk/sfdisk.c:1843
+msgid "too many input fields\n"
+msgstr "pøíli¹ mnoho vstupních polo¾ek\n"
+
+#. no free blocks left - don't read any further
+#: fdisk/sfdisk.c:1877
+msgid "No room for more\n"
+msgstr "Ji¾ nejsou volné bloky\n"
+
+#: fdisk/sfdisk.c:1896
+msgid "Illegal type\n"
+msgstr "Chybný typ\n"
+
+#: fdisk/sfdisk.c:1928
+#, c-format
+msgid "Warning: exceeds max allowable size (%lu)\n"
+msgstr "Varování: pøekroèení maximální povolené velikosti (%lu)\n"
+
+#: fdisk/sfdisk.c:1933
+msgid "Warning: empty partition\n"
+msgstr "Varování: prázdný diskový oddíl\n"
+
+#: fdisk/sfdisk.c:1947
+#, c-format
+msgid "Warning: bad partition start (earliest %lu)\n"
+msgstr "Varování: chybný zaèátek diskového oddílu (døívìj¹í %lu)\n"
+
+#: fdisk/sfdisk.c:1960
+msgid "unrecognized bootable flag - choose - or *\n"
+msgstr "nerozpoznaný pøíznak 'startovací' - zvolte - èi *\n"
+
+#: fdisk/sfdisk.c:1977 fdisk/sfdisk.c:1990
+msgid "partial c,h,s specification?\n"
+msgstr "neúplná c,h,s specifikace?\n"
+
+#: fdisk/sfdisk.c:2001
+msgid "Extended partition not where expected\n"
+msgstr "Roz¹íøený diskový oddíl na neoèekávaném místì\n"
+
+#: fdisk/sfdisk.c:2033
+msgid "bad input\n"
+msgstr "chybný vstup\n"
+
+#: fdisk/sfdisk.c:2055
+msgid "too many partitions\n"
+msgstr "pøíli¹ mnoho diskových oddílù\n"
+
+#: fdisk/sfdisk.c:2088
+msgid ""
+"Input in the following format; absent fields get a default value.\n"
+"<start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s>\n"
+"Usually you only need to specify <start> and <size> (and perhaps <type>).\n"
+msgstr ""
+"Vstup v následujícím formátu; chybìjící polo¾ky budou nahrazeny "
+"implicitními\n"
+"hodnotami.\n"
+"<zaèátek> <velikost> <typ [E,S,L,X,hex]> <startovací [-,*]> <c,h,s> <c,h,s>\n"
+"Obvykle je tøeba zadat pouze <zaèátek> a <velikost> (a mo¾ná <typ>).\n"
+
+#: fdisk/sfdisk.c:2108
+msgid "version"
+msgstr "verze"
+
+#: fdisk/sfdisk.c:2114
+#, c-format
+msgid "Usage: %s [options] device ...\n"
+msgstr "Pou¾ití: %s [pøepínaèe] zaøízení ...\n"
+
+#: fdisk/sfdisk.c:2115
+msgid "device: something like /dev/hda or /dev/sda"
+msgstr "zaøízení: nìco jako /dev/hda èi /dev/sda"
+
+#: fdisk/sfdisk.c:2116
+msgid "useful options:"
+msgstr "u¾iteèné pøepínaèe:"
+
+#: fdisk/sfdisk.c:2117
+msgid "    -s [or --show-size]: list size of a partition"
+msgstr "    -s [èi --show-size]: vypí¹e velikost diskového oddílu"
+
+#: fdisk/sfdisk.c:2118
+msgid "    -c [or --id]:        print or change partition Id"
+msgstr "    -c [èi --id]:        vypí¹e èi zmìní Id diskového oddílu"
+
+#: fdisk/sfdisk.c:2119
+msgid "    -l [or --list]:      list partitions of each device"
+msgstr "    -l [èi --list]:      ke ka¾dému zaøízení vypí¹e diskové oddíly"
+
+#: fdisk/sfdisk.c:2120
+msgid "    -d [or --dump]:      idem, but in a format suitable for later input"
+msgstr ""
+"    -d [èi --dump]:      idem, ale ve formátu vhodném k dal¹ímu zpracování"
+
+#: fdisk/sfdisk.c:2121
+msgid "    -i [or --increment]: number cylinders etc. from 1 instead of from 0"
+msgstr "    -i [èi --increment]: èísluje cylindry etc. od 1 místo od 0"
+
+#: fdisk/sfdisk.c:2122
+msgid ""
+"    -uS, -uB, -uC, -uM:  accept/report in units of "
+"sectors/blocks/cylinders/MB"
+msgstr ""
+"    -uS, -uB, -uC, -uM:  jako jednotky pou¾ije Sektory/Bloky/Cylindry èi MB"
+
+#: fdisk/sfdisk.c:2123
+msgid "    -T [or --list-types]:list the known partition types"
+msgstr "    -T [èi --list-types]:vypí¹e známé typy diskových oddílù"
+
+#: fdisk/sfdisk.c:2124
+msgid "    -D [or --DOS]:       for DOS-compatibility: waste a little space"
+msgstr "    -D [èi --DOS]:       pro kompatibilitu s DOSEM: ubírá trochu místa"
+
+#: fdisk/sfdisk.c:2125
+msgid "    -R [or --re-read]:   make kernel reread partition table"
+msgstr ""
+"    -R [èi --re-read]:   donutí jádro znovu naèíst tabulku rozdìlení disku"
+
+#: fdisk/sfdisk.c:2126
+msgid "    -N# :                change only the partition with number #"
+msgstr "    -N# :                zmìní pouze diskový oddíl s èíslem #"
+
+#: fdisk/sfdisk.c:2127
+msgid "    -n :                 do not actually write to disk"
+msgstr "    -n :                 ¾ádné zmìny nebudou ulo¾eny na disk"
+
+#: fdisk/sfdisk.c:2128
+msgid ""
+"    -O file :            save the sectors that will be overwritten to file"
+msgstr "    -O SOUBOR :           ulo¾í zmìnìné sektory do SOUBORU"
+
+#: fdisk/sfdisk.c:2129
+msgid "    -I file :            restore these sectors again"
+msgstr "    -I SOUBOR :            obnoví tyto sektory ze SOUBORU"
+
+#: fdisk/sfdisk.c:2130
+msgid "    -v [or --version]:   print version"
+msgstr "    -v [èi --version]:   vypí¹e informace o verzi"
+
+#: fdisk/sfdisk.c:2131
+msgid "    -? [or --help]:      print this message"
+msgstr "    -? [èi --help]:      vypí¹e tuto nápovìdu"
+
+#: fdisk/sfdisk.c:2132
+msgid "dangerous options:"
+msgstr "nebezpeèné pøepínaèe:"
+
+#: fdisk/sfdisk.c:2133
+msgid "    -g [or --show-geometry]: print the kernel's idea of the geometry"
+msgstr ""
+"    -g [èi --show-geometry]: vypí¹e informace o geometrii, které\n"
+"                                    udr¾uje jádro"
+
+#: fdisk/sfdisk.c:2134
+msgid ""
+"    -x [or --show-extended]: also list extended partitions on output\n"
+"                             or expect descriptors for them on input"
+msgstr ""
+"    -x [èi --show-extended]: vypí¹e informace o roz¹íøených diskových\n"
+"                             oddílech a na vstupu bude oèekávat jejich popis"
+
+#: fdisk/sfdisk.c:2136
+msgid ""
+"    -L  [or --Linux]:      do not complain about things irrelevant for Linux"
+msgstr ""
+"    -L  [èi --Linux]:      problémy nepodstatné pro Linux budou ignorovány"
+
+#: fdisk/sfdisk.c:2137
+msgid "    -q  [or --quiet]:      suppress warning messages"
+msgstr "    -q  [èi --quiet]:      nebude vypisovat varovné hlá¹ky"
+
+#: fdisk/sfdisk.c:2138
+msgid "    You can override the detected geometry using:"
+msgstr "    Nalezenou geometrii mù¾ete pøepsat pomocí:"
+
+#: fdisk/sfdisk.c:2139
+msgid "    -C# [or --cylinders #]:set the number of cylinders to use"
+msgstr "    -C# [èi --cylinders #]:nastaví poèet cylindrù"
+
+#: fdisk/sfdisk.c:2140
+msgid "    -H# [or --heads #]:    set the number of heads to use"
+msgstr "    -H# [èi --heads #]:    nastaví poèet hlav"
+
+#: fdisk/sfdisk.c:2141
+msgid "    -S# [or --sectors #]:  set the number of sectors to use"
+msgstr "    -S# [èi --sectors #]:  nastaví poèet cylindrù"
+
+#: fdisk/sfdisk.c:2142
+msgid "You can disable all consistency checking with:"
+msgstr "Ovìøování konzistence mù¾ete vypnout pomocí:"
+
+#: fdisk/sfdisk.c:2143
+msgid "    -f  [or --force]:      do what I say, even if it is stupid"
+msgstr "    -f  [èi --force]:      akceptuje ve¹keré - i nesmyslné - po¾adavky"
+
+#: fdisk/sfdisk.c:2149
+msgid "Usage:"
+msgstr "Pou¾ití:"
+
+#: fdisk/sfdisk.c:2150
+#, c-format
+msgid "%s device\t\t list active partitions on device\n"
+msgstr "%s zaøízení\t\t vypí¹e aktivní diskové oddíly na daném zaøízení\n"
+
+#: fdisk/sfdisk.c:2151
+#, c-format
+msgid "%s device n1 n2 ... activate partitions n1 ..., inactivate the rest\n"
+msgstr ""
+"%s zaøízení n1 n2 ... aktivuje diskové oddíly n1 ..., deaktivuje ostatní\n"
+
+#: fdisk/sfdisk.c:2152
+#, c-format
+msgid "%s -An device\t activate partition n, inactivate the other ones\n"
+msgstr "%s -An zaøízení\t aktivuje diskové oddíly n ..., deaktivuje ostatní\n"
+
+#: fdisk/sfdisk.c:2271
+msgid "no command?\n"
+msgstr "¾ádný pøíkaz?\n"
+
+#: fdisk/sfdisk.c:2394
+#, c-format
+msgid "total: %d blocks\n"
+msgstr "celkový poèet blokù: %d\n"
+
+#: fdisk/sfdisk.c:2431
+msgid "usage: sfdisk --print-id device partition-number\n"
+msgstr "Pou¾ití: sfdisk --print-id zaøízení èíslo diskového oddílu\n"
+
+#: fdisk/sfdisk.c:2433
+msgid "usage: sfdisk --change-id device partition-number Id\n"
+msgstr "Pou¾ití: sfdisk --change-id zaøízení Id diskového oddílu\n"
+
+#: fdisk/sfdisk.c:2435
+msgid "usage: sfdisk --id device partition-number [Id]\n"
+msgstr "Pou¾ití: sfdisk --id zaøízení èíslo diskového oddílu [Id]\n"
+
+#: fdisk/sfdisk.c:2442
+msgid "can specify only one device (except with -l or -s)\n"
+msgstr "mù¾ete zadat pouze jedno zaøízení (vyjímkou jsou pøepínaèe -l a -s)\n"
+
+#: fdisk/sfdisk.c:2467
+#, c-format
+msgid "cannot open %s %s\n"
+msgstr "%s %s nelze otevøít\n"
+
+#: fdisk/sfdisk.c:2467
+msgid "read-write"
+msgstr "pro ètení/zápis"
+
+#: fdisk/sfdisk.c:2467
+msgid "for reading"
+msgstr "pro ètení"
+
+#: fdisk/sfdisk.c:2492
+#, c-format
+msgid "%s: OK\n"
+msgstr "%s: OK\n"
+
+#: fdisk/sfdisk.c:2509
+#, c-format
+msgid "%s: %d cylinders, %d heads, %d sectors/track\n"
+msgstr "%s: %d cylindrù, %d hlav, %d sektorù/stopu\n"
+
+#: fdisk/sfdisk.c:2512
+#, c-format
+msgid "%s: unknown geometry\n"
+msgstr "%s: neznámá geometrie\n"
+
+#: fdisk/sfdisk.c:2528
+#, c-format
+msgid "BLKGETSIZE ioctl failed for %s\n"
+msgstr "volání BLKGETSIZE ioctl pro %s selhalo\n"
+
+#: fdisk/sfdisk.c:2605
+#, c-format
+msgid "bad active byte: 0x%x instead of 0x80\n"
+msgstr "chybný aktivní bajt: 0x%x místo 0x80\n"
+
+#: fdisk/sfdisk.c:2622 fdisk/sfdisk.c:2675 fdisk/sfdisk.c:2705
+msgid ""
+"Done\n"
+"\n"
+msgstr ""
+"Hotovo\n"
+"\n"
+
+#: fdisk/sfdisk.c:2631
+#, c-format
+msgid ""
+"You have %d active primary partitions. This does not matter for LILO,\n"
+"but the DOS MBR will only boot a disk with 1 active partition.\n"
+msgstr ""
+"Poèet aktivních diskových oddílù je %d. LILU to neèiní problémy, ale DOS "
+"MBR\n"
+"nastartuje pouze z disku s jedním aktivním diskovým oddílem.\n"
+
+#: fdisk/sfdisk.c:2645
+#, c-format
+msgid "partition %s has id %x and is not hidden\n"
+msgstr "diskový oddíl %s má id %x a není skrytý\n"
+
+#: fdisk/sfdisk.c:2701
+#, c-format
+msgid "Bad Id %x\n"
+msgstr "Id %x je chybné\n"
+
+#: fdisk/sfdisk.c:2716
+msgid "This disk is currently in use.\n"
+msgstr "Tento disk je právì pou¾íván.\n"
+
+#: fdisk/sfdisk.c:2733
+#, c-format
+msgid "Fatal error: cannot find %s\n"
+msgstr "Fatální chyba: %s nelze nalézt\n"
+
+#: fdisk/sfdisk.c:2736
+#, c-format
+msgid "Warning: %s is not a block device\n"
+msgstr "Varování: %s není blokovým zaøízením\n"
+
+#: fdisk/sfdisk.c:2742
+msgid "Checking that no-one is using this disk right now ...\n"
+msgstr "Ovìøuji, zda tento disk není právì pou¾íván ...\n"
+
+#: fdisk/sfdisk.c:2744
+msgid ""
+"\n"
+"This disk is currently in use - repartitioning is probably a bad idea.Umount "
+"all file systems, and swapoff all swap partitions on this disk.Use the "
+"--no-reread flag to suppress this check.\n"
+msgstr ""
+"\n"
+"Tento disk je právì pou¾íván - vytváøení diskových oddílù není dobrým "
+"nápadem. Odpojte v¹echny systémy souborù a pomocí swapoff deaktivujte "
+"v¹echny odkládací prostory na tomto disku. K potlaèení této kontroly mù¾ete "
+"pou¾ít pøepínaè --no-reread.\n"
+
+#: fdisk/sfdisk.c:2748
+msgid "Use the --force flag to overrule all checks.\n"
+msgstr "Pou¾ijte pøepínaè --force k potlaèení ve¹kerých kontrol.\n"
+
+#: fdisk/sfdisk.c:2752
+msgid "OK"
+msgstr "OK"
+
+#: fdisk/sfdisk.c:2761
+msgid "Old situation:\n"
+msgstr "Stará situace:\n"
+
+#: fdisk/sfdisk.c:2765
+#, c-format
+msgid "Partition %d does not exist, cannot change it\n"
+msgstr "Diskový oddíl %d neexistuje. Nelze jej zmìnit.\n"
+
+#: fdisk/sfdisk.c:2773
+msgid "New situation:\n"
+msgstr "Nová situace:\n"
+
+#: fdisk/sfdisk.c:2778
+msgid ""
+"I don't like these partitions - nothing changed.\n"
+"(If you really want this, use the --force option.)\n"
+msgstr ""
+"Toto rozlo¾ení diskových oddílù se mi nelíbí - nic nemìním.\n"
+"(Pokud jej opravdu chcete pou¾ít, pak zadejte pøepínaè --force.)\n"
+
+#: fdisk/sfdisk.c:2781
+msgid "I don't like this - probably you should answer No\n"
+msgstr "Toto se mi nelíbí - mìl byste odpovìdìt NO\n"
+
+#: fdisk/sfdisk.c:2786
+msgid "Are you satisfied with this? [ynq] "
+msgstr "Vyhovuje Vám to? [ynq] "
+
+#: fdisk/sfdisk.c:2788
+msgid "Do you want to write this to disk? [ynq] "
+msgstr "Ulo¾it na disk? [ynq] "
+
+#: fdisk/sfdisk.c:2793
+msgid ""
+"\n"
+"sfdisk: premature end of input\n"
+msgstr ""
+"\n"
+"sfdisk: pøedèasný konec vstupu\n"
+
+#: fdisk/sfdisk.c:2795
+msgid "Quitting - nothing changed\n"
+msgstr "Konèím - nebyly uèinìny ¾ádné zmìny\n"
+
+#: fdisk/sfdisk.c:2801
+msgid "Please answer one of y,n,q\n"
+msgstr "Odpovìzte prosím y,n èi q\n"
+
+#: fdisk/sfdisk.c:2809
+msgid ""
+"Successfully wrote the new partition table\n"
+"\n"
+msgstr ""
+"Nová tabulka rozdìlení disku byla úspì¹nì ulo¾ena.\n"
+"\n"
+
+#: fdisk/sfdisk.c:2815
+msgid ""
+"If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)\n"
+"to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1\n"
+"(See fdisk(8).)\n"
+msgstr ""
+"Pokud jste vytvoøil èi zmìnil nìjaké DOSOVÉ diskové oddíly - napø. "
+"/dev/bla7,\n"
+"pou¾ijte dd(1) k vynulování prvních 512 bajtù: 'dd if=/dev/zero "
+"of=/dev/bla7\n"
+"bs=512 count=1' (viz fdisk(8)).\n"
+
+#: games/banner.c:1048
+msgid "usage: banner [-w width]\n"
+msgstr "Pou¾ití: banner [-w ¹íøka]\n"
+
+#: games/banner.c:1068
+msgid "Message: "
+msgstr "Zpráva: "
+
+#: games/banner.c:1102
+#, c-format
+msgid "The character '%c' is not in my character set"
+msgstr "Znak '%c' není souèástí není souèástí mé sady znakù."
+
+#: games/banner.c:1110
+#, c-format
+msgid "Message '%s' is OK\n"
+msgstr "Zpráva '%s' je v poøádku\n"
+
+#: getopt-1.0.3b/getopt.c:229
+msgid "Try `getopt --help' for more information.\n"
+msgstr "Více informací získáte pøíkazem `getopt --help'.\n"
+
+#: getopt-1.0.3b/getopt.c:295
+msgid "empty long option after -l or --long argument"
+msgstr "prázdná dlouhá volba po pøepínaèi -l èi --long"
+
+#: getopt-1.0.3b/getopt.c:315
+msgid "unknown shell after -s or --shell argument"
+msgstr "neznámý shell po pøepínaèi -s èi --shell"
+
+#: getopt-1.0.3b/getopt.c:320
+msgid "Usage: getopt optstring parameters\n"
+msgstr "Pou¾ití: getopt øetìzec-s-volbami pøepínaèe\n"
+
+#: getopt-1.0.3b/getopt.c:321
+msgid "       getopt [options] [--] optstring parameters\n"
+msgstr "       getopt [volby] [--] øetìzec-s-volbami pøepínaèe\n"
+
+#: getopt-1.0.3b/getopt.c:322
+msgid "       getopt [options] -o|--options optstring [options] [--]\n"
+msgstr "       getopt [volby] -o|--options øetìzec-s-volbami [volby] [--]\n"
+
+#: getopt-1.0.3b/getopt.c:323
+msgid "              parameters\n"
+msgstr "              argumenty\n"
+
+#: getopt-1.0.3b/getopt.c:324
+msgid ""
+"  -a, --alternative            Allow long options starting with single -\n"
+msgstr ""
+"  -a, --alternative            Akceptuje dlouhé volby zaèínající jedním -\n"
+
+#: getopt-1.0.3b/getopt.c:325
+msgid "  -h, --help                   This small usage guide\n"
+msgstr "  -h, --help                   Vypí¹e tuto nápovìdu\n"
+
+#: getopt-1.0.3b/getopt.c:326
+msgid "  -l, --longoptions=longopts   Long options to be recognized\n"
+msgstr "  -l, --longoptions=dlouhvol   Rozpoznávané dlouhé volby\n"
+
+#: getopt-1.0.3b/getopt.c:327
+msgid ""
+"  -n, --name=progname          The name under which errors are reported\n"
+msgstr ""
+"  -n, --name=jménoprog          Jméno, pod kterým jsou oznamovány chyby\n"
+
+#: getopt-1.0.3b/getopt.c:328
+msgid "  -o, --options=optstring      Short options to be recognized\n"
+msgstr "  -o, --options=krátvol        Rozpoznávané krátké volby\n"
+
+#: getopt-1.0.3b/getopt.c:329
+msgid "  -q, --quiet                  Disable error reporting by getopt(3)\n"
+msgstr ""
+"  -q, --quiet                  Vypne oznamování chyb pomocí getopt(3)\n"
+
+#: getopt-1.0.3b/getopt.c:330
+msgid "  -Q, --quiet-output           No normal output\n"
+msgstr "  -Q, --quiet-output           ®ádný normální výstup\n"
+
+#: getopt-1.0.3b/getopt.c:331
+msgid "  -s, --shell=shell            Set shell quoting conventions\n"
+msgstr "  -s, --shell=shell            Nastaví konvence uzavíraní\n"
+
+#: getopt-1.0.3b/getopt.c:332
+msgid "  -T, --test                   Test for getopt(1) version\n"
+msgstr "  -T, --test                   Testuje verzi getopt(1)\n"
+
+#: getopt-1.0.3b/getopt.c:333
+msgid "  -V, --version                Output version information\n"
+msgstr "  -V, --version                Vypí¹e informace o verzi\n"
+
+#: getopt-1.0.3b/getopt.c:387 getopt-1.0.3b/getopt.c:445
+msgid "missing optstring argument"
+msgstr "chybí øetìzec-s-volbami"
+
+#: getopt-1.0.3b/getopt.c:433
+msgid "getopt (enhanced) 1.0.3\n"
+msgstr "getopt (roz¹íøené) 1.0.3\n"
+
+#: getopt-1.0.3b/getopt.c:439
+msgid "internal error, contact the author."
+msgstr "Vnitøní chyba, oznamte ji autorovi."
+
+#: login-utils/agetty.c:303
+msgid "calling open_tty\n"
+msgstr "volám open_tty\n"
+
+#. Initialize the termio settings (raw mode, eight-bit, blocking i/o).
+#: login-utils/agetty.c:316
+msgid "calling termio_init\n"
+msgstr "volám termio_init\n"
+
+#: login-utils/agetty.c:321
+msgid "writing init string\n"
+msgstr "zapisuji inicializaèní øetìzec\n"
+
+#. Optionally detect the baud rate from the modem status message.
+#: login-utils/agetty.c:331
+msgid "before autobaud\n"
+msgstr "pøed autobaud\n"
+
+#: login-utils/agetty.c:343
+msgid "waiting for cr-lf\n"
+msgstr "èekám na cr-lf\n"
+
+#: login-utils/agetty.c:347
+#, c-format
+msgid "read %c\n"
+msgstr "pøeèteno %c\n"
+
+#. Read the login name.
+#: login-utils/agetty.c:356
+msgid "reading login name\n"
+msgstr "ètu pøihla¹ovací jméno\n"
+
+#: login-utils/agetty.c:377
+#, c-format
+msgid "%s: can't exec %s: %m"
+msgstr "%s: %s nelze spustit: %m"
+
+#: login-utils/agetty.c:397
+msgid "can't malloc initstring"
+msgstr "pamì» pro inicializaèní øetìzec nelze alokovat"
+
+#: login-utils/agetty.c:459
+#, c-format
+msgid "bad timeout value: %s"
+msgstr "chybný èasový limit: %s"
+
+#: login-utils/agetty.c:468
+msgid "after getopt loop\n"
+msgstr "po zpracování argumentù pøíkazové øádky\n"
+
+#: login-utils/agetty.c:486
+msgid "exiting parseargs\n"
+msgstr "opou¹tím funkci parseargs\n"
+
+#: login-utils/agetty.c:499
+msgid "entered parse_speeds\n"
+msgstr "vstupuji do funkce parse_speeds\n"
+
+#: login-utils/agetty.c:502
+#, c-format
+msgid "bad speed: %s"
+msgstr "chybná rychlost %s"
+
+#: login-utils/agetty.c:504
+msgid "too many alternate speeds"
+msgstr "pøíli¹ mnoho alternativních rychlostí"
+
+#: login-utils/agetty.c:506
+msgid "exiting parsespeeds\n"
+msgstr "opou¹tím funkci parsespeeds\n"
+
+#: login-utils/agetty.c:579
+#, c-format
+msgid "%s: open for update: %m"
+msgstr "%s: otevøení za úèelem aktualizace: %m"
+
+#: login-utils/agetty.c:595
+#, c-format
+msgid "%s: no utmp entry"
+msgstr "¾ádná utmp polo¾ka pro %s"
+
+#: login-utils/agetty.c:624
+#, c-format
+msgid "/dev: chdir() failed: %m"
+msgstr "/dev: volání chdir() selhalo: %m"
+
+#: login-utils/agetty.c:628
+#, c-format
+msgid "/dev/%s: not a character device"
+msgstr "/dev/%s není znakovým zaøízením"
+
+#. ignore close(2) errors
+#: login-utils/agetty.c:635
+msgid "open(2)\n"
+msgstr "open(2)\n"
+
+#: login-utils/agetty.c:637
+#, c-format
+msgid "/dev/%s: cannot open as standard input: %m"
+msgstr "/dev/%s nelze otevøít jako standardní vstup: %m"
+
+#: login-utils/agetty.c:647
+#, c-format
+msgid "%s: not open for read/write"
+msgstr "%s: není otevøeno pro ètení/zápis"
+
+#. Set up standard output and standard error file descriptors.
+#: login-utils/agetty.c:651
+msgid "duping\n"
+msgstr "volám dup\n"
+
+#. set up stdout and stderr
+#: login-utils/agetty.c:653
+#, c-format
+msgid "%s: dup problem: %m"
+msgstr "%s: volání dup selhalo: %m"
+
+#: login-utils/agetty.c:723
+msgid "term_io 2\n"
+msgstr "term_io 2\n"
+
+#: login-utils/agetty.c:905
+msgid "user"
+msgstr "u¾ivatel"
+
+#: login-utils/agetty.c:905
+msgid "users"
+msgstr "u¾ivatelé"
+
+#: login-utils/agetty.c:993
+#, c-format
+msgid "%s: read: %m"
+msgstr "%s: pøeèteno: %m"
+
+#: login-utils/agetty.c:1039
+#, c-format
+msgid "%s: input overrun"
+msgstr "%s: pøeteèení vstupu"
+
+#: login-utils/agetty.c:1163
+#, c-format
+msgid ""
+"Usage: %s [-hiLmw] [-l login_program] [-t timeout] [-I initstring] "
+"baud_rate,... line [termtype]\n"
+"or\t[-hiLmw] [-l login_program] [-t timeout] [-I initstring] line "
+"baud_rate,... [termtype]\n"
+msgstr ""
+"Pou¾ití: %s [-hiLmw] [-l login_program] [-t èasový limit] [-I inicializaèní "
+"øetìzec] baud_rate,... linka [typ terminálu]\n"
+"èi\t[-hiLmw] [-l login_program] [-t èasový limit] [-I inicializaèní øetìzec] "
+"linka baud_rate,... [typ terminálu]\n"
+
+#: login-utils/checktty.c:46
+#, c-format
+msgid "badlogin: %s\n"
+msgstr "chybné pøihla¹ovací jméno: %s\n"
+
+# ???
+#: login-utils/checktty.c:52
+#, c-format
+msgid "sleepexit %d\n"
+msgstr "sleepexit %d\n"
+
+#: login-utils/checktty.c:108 login-utils/checktty.c:130
+msgid "login: memory low, login may fail\n"
+msgstr "login: nedostatek pamìti, pøihlá¹ení se nemusí zdaøit\n"
+
+#: login-utils/checktty.c:109
+msgid "can't malloc for ttyclass"
+msgstr "pamì» pro ttyclass nelze alokovat"
+
+#: login-utils/checktty.c:131
+msgid "can't malloc for grplist"
+msgstr "pamì» pro grplist nelze alokovat"
+
+#. there was a default rule, but user didn't match, reject!
+#: login-utils/checktty.c:431
+#, c-format
+msgid "Login on %s from %s denied by default.\n"
+msgstr "Pøihlá¹ení z %2$s na tty %1$s implicitnì odmítnuto.\n"
+
+#. if we get here, /etc/usertty exists, there's a line
+#. matching our username, but it doesn't contain the
+#. name of the tty where the user is trying to log in.
+#. So deny access!
+#: login-utils/checktty.c:442
+#, c-format
+msgid "Login on %s from %s denied.\n"
+msgstr "Pøihlá¹ení z $2%s na $1%s odmítnuto.\n"
+
+#: login-utils/chfn.c:139 login-utils/chsh.c:118
+#, c-format
+msgid "%s: you (user %d) don't exist.\n"
+msgstr "%s: vy (u¾ivatel %d) neexistujete.\n"
+
+#: login-utils/chfn.c:146 login-utils/chsh.c:125
+#, c-format
+msgid "%s: user \"%s\" does not exist.\n"
+msgstr "%s: u¾ivatel \"%s\" neexistuje.\n"
+
+#: login-utils/chfn.c:151 login-utils/chsh.c:130
+#, c-format
+msgid "%s: can only change local entries; use yp%s instead.\n"
+msgstr "%s: mù¾e mìnit pouze místní polo¾ky; pou¾ijte yp%s.\n"
+
+#: login-utils/chfn.c:163
+#, c-format
+msgid "Changing finger information for %s.\n"
+msgstr "Mìním finger informace o %s.\n"
+
+#: login-utils/chfn.c:169 login-utils/chfn.c:173 login-utils/chfn.c:180
+#: login-utils/chfn.c:184 login-utils/chsh.c:154 login-utils/chsh.c:158
+#: login-utils/chsh.c:165 login-utils/chsh.c:169
+msgid "Password error."
+msgstr "Chybné heslo."
+
+#: login-utils/chfn.c:193 login-utils/chsh.c:178 login-utils/login.c:689
+#: login-utils/newgrp.c:47 login-utils/simpleinit.c:219 mount/lomount.c:200
+#: mount/lomount.c:206 mount/losetup.c:115 mount/losetup.c:121
+msgid "Password: "
+msgstr "Heslo: "
+
+#: login-utils/chfn.c:196 login-utils/chsh.c:181
+msgid "Incorrect password."
+msgstr "Chybné heslo."
+
+#: login-utils/chfn.c:207
+msgid "Finger information not changed.\n"
+msgstr "Finger informace nebyly zmìnìny.\n"
+
+#: login-utils/chfn.c:310
+#, c-format
+msgid "Usage: %s [ -f full-name ] [ -o office ] "
+msgstr "Pou¾ití: %s [ -f plné-jméno ] [ -o kanceláø ] "
+
+#: login-utils/chfn.c:311
+msgid ""
+"[ -p office-phone ]\n"
+"\t[ -h home-phone ] "
+msgstr ""
+"[ -p telefon-do-kanceláøe ]\n"
+"\t[ -h telefon-domù ] "
+
+#: login-utils/chfn.c:312
+msgid "[ --help ] [ --version ]\n"
+msgstr "[ --help ] [ -- version ]\n"
+
+#: login-utils/chfn.c:381 login-utils/chsh.c:294
+msgid ""
+"\n"
+"Aborted.\n"
+msgstr ""
+"\n"
+"Ukonèen.\n"
+
+#: login-utils/chfn.c:414
+msgid "field is too long.\n"
+msgstr "Polo¾ka je pøíli¹ dlouhá.\n"
+
+#: login-utils/chfn.c:428
+#, c-format
+msgid "'%c' is not allowed.\n"
+msgstr "'%c' není povoleno.\n"
+
+#: login-utils/chfn.c:433
+msgid "Control characters are not allowed.\n"
+msgstr "Kontrolní znaky nejsou povoleny.\n"
+
+#: login-utils/chfn.c:498
+msgid "Finger information *NOT* changed.  Try again later.\n"
+msgstr "Finger informace *NEBYLY* zmìnìny. Zkuste to opìt pozdìji.\n"
+
+#: login-utils/chfn.c:501
+msgid "Finger information changed.\n"
+msgstr "Finger informace byly zmìnìny.\n"
+
+#: login-utils/chfn.c:515 login-utils/chsh.c:412 sys-utils/cytune.c:324
+msgid "malloc failed"
+msgstr "volání malloc selhalo"
+
+#: login-utils/chsh.c:141
+#, c-format
+msgid "%s: Your shell is not in /etc/shells, shell change denied\n"
+msgstr "%s: Vá¹ shell není v /etc/shells, zmìna shellu odmítnuta\n"
+
+#: login-utils/chsh.c:148
+#, c-format
+msgid "Changing shell for %s.\n"
+msgstr "Mìním shell pro %s.\n"
+
+#: login-utils/chsh.c:189
+msgid "New shell"
+msgstr "Nový shell"
+
+#: login-utils/chsh.c:196
+msgid "Shell not changed.\n"
+msgstr "Shell nebyl zmìnìn.\n"
+
+#: login-utils/chsh.c:203
+msgid "Shell *NOT* changed.  Try again later.\n"
+msgstr "Shell *NEBYL* zmìnìn. Zkuste to opìt pozdìji.\n"
+
+#: login-utils/chsh.c:206
+msgid "Shell changed.\n"
+msgstr "Shell byl zmìnìn.\n"
+
+#: login-utils/chsh.c:274
+#, c-format
+msgid "Usage: %s [ -s shell ] "
+msgstr "Pou¾ití: %s [ -s shell ] "
+
+#: login-utils/chsh.c:275
+msgid "[ --list-shells ] [ --help ] [ --version ]\n"
+msgstr "[ --list-shells ] [ --help ] [ --version ]\n"
+
+#: login-utils/chsh.c:276
+msgid "       [ username ]\n"
+msgstr "       [ u¾ivatelské jméno ]\n"
+
+#: login-utils/chsh.c:320
+#, c-format
+msgid "%s: shell must be a full path name.\n"
+msgstr "%s: shell musí být zadán úplným jménem cesty.\n"
+
+#: login-utils/chsh.c:324
+#, c-format
+msgid "%s: \"%s\" does not exist.\n"
+msgstr "%s: \"%s\" neexistuje.\n"
+
+#: login-utils/chsh.c:328
+#, c-format
+msgid "%s: \"%s\" is not executable.\n"
+msgstr "%s: \"%s\" není spustitelným souborem.\n"
+
+#: login-utils/chsh.c:335
+#, c-format
+msgid "%s: '%c' is not allowed.\n"
+msgstr "%s: '%c' není povoleno.\n"
+
+#: login-utils/chsh.c:339
+#, c-format
+msgid "%s: Control characters are not allowed.\n"
+msgstr "%s: Kontrolní znaky nejsou povoleny.\n"
+
+#: login-utils/chsh.c:346
+#, c-format
+msgid "Warning: \"%s\" is not listed in /etc/shells\n"
+msgstr "Varování: \"%s\" není v /etc/shells\n"
+
+#: login-utils/chsh.c:348
+#, c-format
+msgid "%s: \"%s\" is not listed in /etc/shells.\n"
+msgstr "%s: \"%s\" není v /etc/shells.\n"
+
+#: login-utils/chsh.c:350
+#, c-format
+msgid "%s: use -l option to see list\n"
+msgstr "%s: pou¾ijte pøepínaè -l pro vypsání seznamu\n"
+
+#: login-utils/chsh.c:356
+#, c-format
+msgid "Warning: \"%s\" is not listed in /etc/shells.\n"
+msgstr "Varování: \"%s\" není v /etc/shells.\n"
+
+#: login-utils/chsh.c:357
+#, c-format
+msgid "Use %s -l to see list.\n"
+msgstr "Pou¾ijte %s -l pro vypsání seznamu\n"
+
+#: login-utils/chsh.c:378
+msgid "No known shells.\n"
+msgstr "Není znám ¾ádný shell.\n"
+
+#: login-utils/cryptocard.c:70
+msgid "couldn't open /dev/urandom"
+msgstr "/dev/urandom nelze otevøít"
+
+#: login-utils/cryptocard.c:75
+msgid "couldn't read random data from /dev/urandom"
+msgstr "náhodná data z /dev/urandom nelze èíst"
+
+#: login-utils/cryptocard.c:98
+#, c-format
+msgid "can't open %s for reading"
+msgstr "%s pro ètení nelze otevøít"
+
+#: login-utils/cryptocard.c:102
+#, c-format
+msgid "can't stat(%s)"
+msgstr "volání stat(%s) selhalo"
+
+#: login-utils/cryptocard.c:108
+#, c-format
+msgid "%s doesn't have the correct filemodes"
+msgstr "%s má chybná pøístupová práva"
+
+#: login-utils/cryptocard.c:113
+#, c-format
+msgid "can't read data from %s"
+msgstr "data z %s nelze èíst"
+
+#: login-utils/islocal.c:36
+#, c-format
+msgid "Can't read %s, exiting."
+msgstr "%s nelze èíst, konèím."
+
+#: login-utils/last.c:143
+msgid "usage: last [-#] [-f file] [-t tty] [-h hostname] [user ...]\n"
+msgstr ""
+"Pou¾ití: last [-#] [-f soubor] [-t tty] [-h jméno poèítaèe]\n"
+"                [u¾ivatel ...]\n"
+
+#: login-utils/last.c:283
+msgid "  still logged in"
+msgstr "  stále pøihlá¹en"
+
+#: login-utils/last.c:305
+#, c-format
+msgid ""
+"\n"
+"wtmp begins %s"
+msgstr ""
+"\n"
+"wtmp zaèíná %s"
+
+#: login-utils/last.c:367 login-utils/last.c:387 login-utils/last.c:442
+msgid "last: malloc failure.\n"
+msgstr "last: volání malloc selhalo.\n"
+
+#: login-utils/last.c:416
+msgid "last: gethostname"
+msgstr "last: gethostname"
+
+#: login-utils/last.c:469
+#, c-format
+msgid ""
+"\n"
+"interrupted %10.10s %5.5s \n"
+msgstr ""
+"\n"
+"pøeru¹en %10.10s %5.5s \n"
+
+#: login-utils/login.c:384
+msgid "login: -h for super-user only.\n"
+msgstr "login: pøepínaè -h mù¾e pou¾ít pouze superu¾ivatel\n"
+
+#: login-utils/login.c:409
+msgid "usage: login [-fp] [username]\n"
+msgstr "Pou¾ití: login [fp] [u¾ivatelské jméno]\n"
+
+#: login-utils/login.c:511
+#, c-format
+msgid "login: PAM Failure, aborting: %s\n"
+msgstr "login: chyba PAM, konèím: %s\n"
+
+#: login-utils/login.c:513
+#, c-format
+msgid "Couldn't initialize PAM: %s"
+msgstr "PAM nelze inicializovat: %s"
+
+#: login-utils/login.c:553
+#, c-format
+msgid "FAILED LOGIN %d FROM %s FOR %s, %s"
+msgstr "%1$d. CHYBNÉ PØIHLÁ©ENÍ U®IVATELE %3$s Z %2$s, %4$s"
+
+#: login-utils/login.c:556
+msgid ""
+"Login incorrect\n"
+"\n"
+msgstr ""
+"Chybné pøihlá¹ení\n"
+"\n"
+
+#: login-utils/login.c:565
+#, c-format
+msgid "TOO MANY LOGIN TRIES (%d) FROM %s FOR %s, %s"
+msgstr "PØÍLI|S MNOHO (%1$d) POKUSÙ U®IVATELE %3$s O PØIHLÁ©ENÍ Z %2$s, %4$s"
+
+#: login-utils/login.c:570
+#, c-format
+msgid "FAILED LOGIN SESSION FROM %s FOR %s, %s"
+msgstr "NEÚSPÌ©NÉ PØIHLÁ©ENÍ U®IVATELE %2$s Z %1$s, %3$s"
+
+#: login-utils/login.c:575
+msgid ""
+"\n"
+"Login incorrect\n"
+msgstr ""
+"\n"
+"Chybné pøihlá¹ení\n"
+
+#: login-utils/login.c:624
+msgid "Illegal username"
+msgstr "Chybné u¾ivatelské jméno"
+
+#: login-utils/login.c:667
+#, c-format
+msgid "%s login refused on this terminal.\n"
+msgstr "pøihlá¹ení u¾ivatele %s na tomto terminálu odmítnuto\n"
+
+#: login-utils/login.c:672
+#, c-format
+msgid "LOGIN %s REFUSED FROM %s ON TTY %s"
+msgstr "PØIHLÁ©ENÍ U®IVATELE %s Z %s NA TTY %s ODMÍTNUTO"
+
+#: login-utils/login.c:676
+#, c-format
+msgid "LOGIN %s REFUSED ON TTY %s"
+msgstr "PØIHLÁ©ENÍ U®IVATELE %s NA TTY %s ODMÍTNUTO"
+
+#: login-utils/login.c:728
+msgid "Login incorrect\n"
+msgstr "Chybné pøihlá¹ení\n"
+
+#: login-utils/login.c:750
+msgid ""
+"Too many users logged on already.\n"
+"Try again later.\n"
+msgstr ""
+"Ji¾ je pøihlá¹eno pøíli¹ mnoho u¾ivatelù.\n"
+"Zkuste to opìt pozdìji.\n"
+
+#: login-utils/login.c:754
+msgid "You have too many processes running.\n"
+msgstr "Máte spu¹tìno pøíli¹ mnoho procesù.\n"
+
+#: login-utils/login.c:800
+msgid "Warning: no Kerberos tickets issued\n"
+msgstr "Varování: ¾ádné Kerberos lístky\n"
+
+#: login-utils/login.c:812
+msgid "Sorry -- your password has expired.\n"
+msgstr "Lituji -- platnost Va¹eho hesla vypr¹ela.\n"
+
+#: login-utils/login.c:818
+#, c-format
+msgid "Warning: your password expires on %s %d, %d\n"
+msgstr "Varování: platnost Va¹eho hesla vypr¹í %s %d, %d\n"
+
+#: login-utils/login.c:826
+msgid "Sorry -- your account has expired.\n"
+msgstr "Lituji -- platnost Va¹eho úètu vypr¹ela.\n"
+
+#: login-utils/login.c:832
+#, c-format
+msgid "Warning: your account expires on %s %d, %d\n"
+msgstr "Varování: platnost Va¹eho úètu vypr¹í %s %d, %d\n"
+
+#: login-utils/login.c:1066
+#, c-format
+msgid "DIALUP AT %s BY %s"
+msgstr "PØÍSTUP U®IVATELE %2$s VYTÁÈENOU LINKOU NA TTY %1$s"
+
+#: login-utils/login.c:1073
+#, c-format
+msgid "ROOT LOGIN ON %s FROM %s"
+msgstr "PØIHLÁ©ENÍ U®IVATELE ROOT Z %2$s NA TTY %1$s"
+
+#: login-utils/login.c:1076
+#, c-format
+msgid "ROOT LOGIN ON %s"
+msgstr "PØIHLÁ©ENÍ U®IVATELE ROOT NA TTY %s"
+
+#: login-utils/login.c:1079
+#, c-format
+msgid "LOGIN ON %s BY %s FROM %s"
+msgstr "PØIHLÁ©ENÍ U®IVATELE %2$s Z %3$s NA TTY %1$s"
+
+#: login-utils/login.c:1082
+#, c-format
+msgid "LOGIN ON %s BY %s"
+msgstr "PØIHLÁ©ENÍ U®IVATELE %2$s NA TTY %1$s"
+
+#: login-utils/login.c:1093
+#, c-format
+msgid "You have %smail.\n"
+msgstr "Máte %spo¹tu.\n"
+
+#: login-utils/login.c:1094
+msgid "new "
+msgstr "novou "
+
+#. error in fork()
+#: login-utils/login.c:1112
+#, c-format
+msgid "login: failure forking: %s"
+msgstr "login: volání fork selhalo: %s"
+
+#: login-utils/login.c:1127
+msgid "setuid() failed"
+msgstr "volání setuid() selhalo"
+
+#: login-utils/login.c:1133
+#, c-format
+msgid "No directory %s!\n"
+msgstr "Adresáø %s neexistuje!\n"
+
+#: login-utils/login.c:1137
+msgid "Logging in with home = \"/\".\n"
+msgstr "Pøihla¹uji s domácím adresáøem nastaveným na \"/\".\n"
+
+#: login-utils/login.c:1145
+msgid "login: no memory for shell script.\n"
+msgstr "login: nedostatek pamìti pro skript shellu.\n"
+
+#: login-utils/login.c:1173
+#, c-format
+msgid "login: couldn't exec shell script: %s.\n"
+msgstr "login: skript shellu %s nelze spustit.\n"
+
+#: login-utils/login.c:1176
+#, c-format
+msgid "login: no shell: %s.\n"
+msgstr "login: ¾ádný shell: %s.\n"
+
+#: login-utils/login.c:1192
+#, c-format
+msgid ""
+"\n"
+"%s login: "
+msgstr ""
+"\n"
+"Pøihla¹ovací jméno na %s: "
+
+#: login-utils/login.c:1203
+msgid "login name much too long.\n"
+msgstr "pøihla¹ovací jméno je pøíli¹ dlouhé.\n"
+
+#: login-utils/login.c:1204
+msgid "NAME too long"
+msgstr "JMÉNO je pøíli¹ dlouhé"
+
+#: login-utils/login.c:1211
+msgid "login names may not start with '-'.\n"
+msgstr "pøihla¹ovací jméno nesmí zaèínat '-'.\n"
+
+#: login-utils/login.c:1221
+msgid "too many bare linefeeds.\n"
+msgstr "pøíli¹ mnoho znakù LF\n"
+
+#: login-utils/login.c:1222
+msgid "EXCESSIVE linefeeds"
+msgstr "PØÍLI© mnoho znakù LF"
+
+#: login-utils/login.c:1233
+#, c-format
+msgid "Login timed out after %d seconds\n"
+msgstr "Vypr¹el èasový limit (%d vteøin) pro pøihlá¹ení.\n"
+
+#: login-utils/login.c:1333
+#, c-format
+msgid "Last login: %.*s "
+msgstr "Poslední pøihlá¹ení: %.*s "
+
+#: login-utils/login.c:1337
+#, c-format
+msgid "from %.*s\n"
+msgstr "z %.*s\n"
+
+#: login-utils/login.c:1340
+#, c-format
+msgid "on %.*s\n"
+msgstr "%.*s\n"
+
+#: login-utils/login.c:1363
+#, c-format
+msgid "LOGIN FAILURE FROM %s, %s"
+msgstr "CHYBNÉ PØIHLÁ©ENÍ U®IVATELE %2$s Z %1$s"
+
+#: login-utils/login.c:1366
+#, c-format
+msgid "LOGIN FAILURE ON %s, %s"
+msgstr "CHYBNÉ PØIHLÁ©ENÍ U®IVATELE %2$s NA TTY %1$s"
+
+#: login-utils/login.c:1370
+#, c-format
+msgid "%d LOGIN FAILURES FROM %s, %s"
+msgstr "POÈET CHYBNÝCH PØIHLÁ©ENÍ U®IVATELE %3$s Z %2$s: %1$d"
+
+#: login-utils/login.c:1373
+#, c-format
+msgid "%d LOGIN FAILURES ON %s, %s"
+msgstr "POÈET CHYBNÝCH PØIHLÁ©ENÍ U®IVATELE %3$s NA TTY %2$s: %1$d"
+
+#: login-utils/mesg.c:89
+msgid "is y\n"
+msgstr "pøíjem zpráv je zapnut\n"
+
+#: login-utils/mesg.c:92
+msgid "is n\n"
+msgstr "pøíjem zpráv je vypnut\n"
+
+#: login-utils/mesg.c:112
+msgid "usage: mesg [y | n]\n"
+msgstr "Pou¾ití: mesg [y | n]\n"
+
+#: login-utils/newgrp.c:67
+msgid "newgrp: Who are you?"
+msgstr "newgrp: Kdo jste?"
+
+#: login-utils/newgrp.c:75 login-utils/newgrp.c:85
+msgid "newgrp: setgid"
+msgstr "newgrp: setgid"
+
+#: login-utils/newgrp.c:80
+msgid "newgrp: No such group."
+msgstr "newgrp: ®ádná taková skupina neexistuje."
+
+#: login-utils/newgrp.c:89
+msgid "newgrp: Permission denied"
+msgstr "newgrp: Pøístup odmítnut"
+
+#: login-utils/newgrp.c:96
+msgid "newgrp: setuid"
+msgstr "newgrp: setuid"
+
+#: login-utils/newgrp.c:102
+msgid "No shell"
+msgstr "®ádný shell"
+
+#: login-utils/passwd.c:163
+msgid "The password must have at least 6 characters, try again.\n"
+msgstr "Heslo musí obsahovat alespoò 6 znakù, zkuste to znovu.\n"
+
+#: login-utils/passwd.c:176
+msgid "The password must contain characters out of two of the following\n"
+msgstr "Heslo musí obsahovat znaky alespoò ze dvou z následující skupin:\n"
+
+#: login-utils/passwd.c:177
+msgid "classes:  upper and lower case letters, digits and non alphanumeric\n"
+msgstr "velká nebo malá písmena, èíslice a nealfanumerické znaky.\n"
+
+#: login-utils/passwd.c:178
+msgid "characters. See passwd(1) for more information.\n"
+msgstr "Viz passwd(1) pro více informací.\n"
+
+#: login-utils/passwd.c:183
+msgid "You cannot reuse the old password.\n"
+msgstr "Nemù¾ete opìt pou¾ít staré heslo.\n"
+
+#: login-utils/passwd.c:188
+msgid "Please don't use something like your username as password!\n"
+msgstr ""
+"Nepou¾ívejte, jako heslo Va¹e u¾ivatelské jméno ani nic nìco podobného.\n"
+
+#: login-utils/passwd.c:199 login-utils/passwd.c:206
+msgid "Please don't use something like your realname as password!\n"
+msgstr "Nepou¾ívejte, jako heslo Va¹e skuteèné jméno ani nic nìco podobného.\n"
+
+#: login-utils/passwd.c:223
+msgid "Usage: passwd [username [password]]\n"
+msgstr "Pou¾ití: password [u¾ivatelské jméno [heslo]]\n"
+
+#: login-utils/passwd.c:224
+msgid "Only root may use the one and two argument forms.\n"
+msgstr "Pouze superu¾ivatel mù¾e pou¾ít argumenty.\n"
+
+#: login-utils/passwd.c:280
+msgid "Usage: passwd [-foqsvV] [user [password]]\n"
+msgstr "Pou¾ití: passwd [foqsvV] [u¾ivatel [heslo]]\n"
+
+#: login-utils/passwd.c:301
+#, c-format
+msgid "Can't exec %s: %s\n"
+msgstr "%s nelze spustit: %s\n"
+
+#: login-utils/passwd.c:312
+msgid "Cannot find login name"
+msgstr "Pøihla¹ovací jméno nelze nalézt"
+
+#: login-utils/passwd.c:319 login-utils/passwd.c:326
+msgid "Only root can change the password for others.\n"
+msgstr "Pouze superu¾ivatel mù¾e zmìnit hesla jiným u¾ivatelùm.\n"
+
+#: login-utils/passwd.c:334
+msgid "Too many arguments.\n"
+msgstr "Pøíli¹ mnoho argumentù.\n"
+
+#: login-utils/passwd.c:339
+#, c-format
+msgid "Can't find username anywhere. Is `%s' really a user?"
+msgstr "U¾ivatelské jméno nelze nalézt. Je `%s' opravdu u¾ivatelem?"
+
+#: login-utils/passwd.c:343
+msgid "Sorry, I can only change local passwords. Use yppasswd instead."
+msgstr "Lituji, ale mohu zmìnit pouze místní hesla. Pou¾ijte yppasswd."
+
+#: login-utils/passwd.c:349
+msgid "UID and username does not match, imposter!"
+msgstr "UID a u¾ivatelské jméno se neshodují!"
+
+#: login-utils/passwd.c:354
+#, c-format
+msgid "Changing password for %s\n"
+msgstr "Mìním heslo u¾ivatele %s\n"
+
+#: login-utils/passwd.c:358
+msgid "Enter old password: "
+msgstr "Zadejte staré heslo: "
+
+#: login-utils/passwd.c:360
+msgid "Illegal password, imposter."
+msgstr "Nepovolené heslo."
+
+#: login-utils/passwd.c:372
+msgid "Enter new password: "
+msgstr "Zadejte nové heslo: "
+
+#: login-utils/passwd.c:374
+msgid "Password not changed."
+msgstr "Heslo nebylo zmìnìno."
+
+#: login-utils/passwd.c:384
+msgid "Re-type new password: "
+msgstr "Potvrïte nové heslo: "
+
+#: login-utils/passwd.c:387
+msgid "You misspelled it. Password not changed."
+msgstr "Pøepsal jste se. Heslo nebylo zmìnìno."
+
+#: login-utils/passwd.c:402
+#, c-format
+msgid "password changed, user %s"
+msgstr "heslo bylo zmìnìno, u¾ivatel %s"
+
+#: login-utils/passwd.c:405
+msgid "ROOT PASSWORD CHANGED"
+msgstr "HESLO U®IVATELE ROOT BYLO ZMÌNÌNO"
+
+#: login-utils/passwd.c:407
+#, c-format
+msgid "password changed by root, user %s"
+msgstr "heslo zmìnìno u¾ivatelem root, u¾ivatel %s"
+
+#: login-utils/passwd.c:414
+msgid "calling setpwnam to set password.\n"
+msgstr "Volám setpwnam pro nastavení hesla.\n"
+
+#: login-utils/passwd.c:418
+msgid "Password *NOT* changed.  Try again later.\n"
+msgstr "Heslo *NEBYLO* zmìnìno. Zkuste to pozdìji.\n"
+
+#: login-utils/passwd.c:424
+msgid "Password changed.\n"
+msgstr "Heslo bylo zmìnìno.\n"
+
+#: login-utils/shutdown.c:85
+msgid "Usage: shutdown [-h|-r] [-fqs] [now|hh:ss|+mins]\n"
+msgstr "Pou¾ití: shutdown [-h|-r] [-fqs] [now|hh:ss|+minuty]\n"
+
+#: login-utils/shutdown.c:103
+msgid "Shutdown process aborted"
+msgstr "Proces shutdown ukonèen"
+
+#: login-utils/shutdown.c:125
+#, c-format
+msgid "%s: Only root can shut a system down.\n"
+msgstr "%s: Pouze superu¾ivatel mù¾e vypnout systém.\n"
+
+#: login-utils/shutdown.c:219
+msgid "That must be tomorrow, can't you wait till then?\n"
+msgstr "To bude zítra. To do té doby nemù¾ete poèkat?\n"
+
+#: login-utils/shutdown.c:271
+msgid "for maintenance; bounce, bounce"
+msgstr "kvùli údr¾bì"
+
+#: login-utils/shutdown.c:275
+#, c-format
+msgid "timeout = %d, quiet = %d, reboot = %d\n"
+msgstr "èasový limit = %d, klid = %d, restart = %d\n"
+
+#: login-utils/shutdown.c:300
+msgid "The system is being shut down within 5 minutes"
+msgstr "Systém bude za 5 minut vypnut"
+
+#: login-utils/shutdown.c:304
+msgid "Login is therefore prohibited."
+msgstr "Pøihla¹ování je tudí¾ zakázáno."
+
+#: login-utils/shutdown.c:325
+#, c-format
+msgid "%s by %s: %s"
+msgstr "%s u¾ivatelem %s: %s"
+
+#: login-utils/shutdown.c:326
+msgid "rebooted"
+msgstr "restartován"
+
+#: login-utils/shutdown.c:326
+msgid "halted"
+msgstr "vypnut"
+
+#. RB_AUTOBOOT
+#: login-utils/shutdown.c:377
+msgid ""
+"\n"
+"Why am I still alive after reboot?"
+msgstr ""
+"\n"
+"Proè jsem po restartu stále na¾ivu?"
+
+#: login-utils/shutdown.c:379
+msgid ""
+"\n"
+"Now you can turn off the power..."
+msgstr ""
+"\n"
+"Nyní mù¾ete vypnout proud..."
+
+#: login-utils/shutdown.c:394
+msgid "Calling kernel power-off facility...\n"
+msgstr "Volám zaøízení jádra pro vypínání proudu...\n"
+
+#: login-utils/shutdown.c:397
+#, c-format
+msgid "Error powering off\t%s\n"
+msgstr "Chyba pøi vypínání proudu\t%s\n"
+
+#: login-utils/shutdown.c:405
+#, c-format
+msgid "Executing the program \"%s\" ...\n"
+msgstr "Spou¹tím program \"%s\" ...\n"
+
+#: login-utils/shutdown.c:408
+#, c-format
+msgid "Error executing\t%s\n"
+msgstr "Chyba pøi spu¹tìní\t%s\n"
+
+#: login-utils/shutdown.c:431
+#, c-format
+msgid "\aURGENT: broadcast message from %s:"
+msgstr "\aNALÉHAVÉ: v¹eobecná zpráva od %s:"
+
+#: login-utils/shutdown.c:437
+msgid "System going down IMMEDIATELY!\n"
+msgstr "Systém bude OKAM®ITÌ vypnut!\n"
+
+#: login-utils/shutdown.c:440
+#, c-format
+msgid "System going down in %d hour%s %d minutes"
+msgstr "Systém bude vypnut za %dh%s%dmin"
+
+#: login-utils/shutdown.c:441 login-utils/shutdown.c:444
+msgid "s"
+msgstr " "
+
+#: login-utils/shutdown.c:443
+#, c-format
+msgid "System going down in %d minute%s\n"
+msgstr "Systém bude vypnut za %dmin%s\n"
+
+#: login-utils/shutdown.c:449
+#, c-format
+msgid "\t... %s ...\n"
+msgstr "\t... %s ...\n"
+
+#: login-utils/shutdown.c:506
+msgid "Cannot fork for swapoff. Shrug!"
+msgstr "Swapoff nelze spustit - volání fork selhalo."
+
+#: login-utils/shutdown.c:514
+msgid "Cannot exec swapoff, hoping umount will do the trick."
+msgstr "Swapoff nelze spustit - volání exec selhalo. Snad pomù¾e umount."
+
+#: login-utils/shutdown.c:533
+msgid "Cannot fork for umount, trying manually."
+msgstr "Umount nelze spustit - volání fork selhalo, zkou¹ím to ruènì."
+
+#: login-utils/shutdown.c:542
+#, c-format
+msgid "Cannot exec %s, trying umount.\n"
+msgstr "%s nelze spustit - volání exec selhalo, zkou¹ím umount.\n"
+
+#: login-utils/shutdown.c:546
+msgid "Cannot exec umount, giving up on umount."
+msgstr ""
+"Umount nelze spustit - volání exec selhalo, vzdávám snahu o spu¹tìní umount."
+
+#: login-utils/shutdown.c:551
+msgid "Unmounting any remaining filesystems..."
+msgstr "Odpojuji v¹echny zbývající systémy souborù..."
+
+#: login-utils/shutdown.c:587
+#, c-format
+msgid "shutdown: Couldn't umount %s\n"
+msgstr "shutdown: %s nelze odpojit\n"
+
+#: login-utils/simpleinit.c:79
+msgid "Booting to single user mode.\n"
+msgstr "Startuji do re¾imu pro jednoho u¾ivatele.\n"
+
+#: login-utils/simpleinit.c:83
+msgid "exec of single user shell failed\n"
+msgstr ""
+"Spu¹tìní shellu pro jednoho u¾ivatele se nezdaøilo - volání exec selhalo.\n"
+
+#: login-utils/simpleinit.c:87
+msgid "fork of single user shell failed\n"
+msgstr ""
+"Spu¹tìní shellu pro jednoho u¾ivatele se nezdaøilo - volání fork selhalo.\n"
+
+#: login-utils/simpleinit.c:226
+msgid ""
+"\n"
+"Wrong password.\n"
+msgstr ""
+"\n"
+"Chybné heslo.\n"
+
+#: login-utils/simpleinit.c:252
+msgid "exec rc failed\n"
+msgstr "spu¹tìní rc se nezdaøilo - volání exec selhalo\n"
+
+#: login-utils/simpleinit.c:255
+msgid "open of rc file failed\n"
+msgstr "rc soubor nelze otevøít\n"
+
+#: login-utils/simpleinit.c:261
+msgid "fork of rc shell failed\n"
+msgstr "spu¹tìní rc se nezdaøilo - volání fork selhalo\n"
+
+#: login-utils/simpleinit.c:273
+msgid "fork failed\n"
+msgstr "volání fork selhalo\n"
+
+#: login-utils/simpleinit.c:302 text-utils/more.c:1548
+msgid "exec failed\n"
+msgstr "volání exec selhalo\n"
+
+#: login-utils/simpleinit.c:324
+msgid "cannot open inittab\n"
+msgstr "inittab nelze otevøít\n"
+
+#: login-utils/simpleinit.c:362
+msgid "no TERM or cannot stat tty\n"
+msgstr "¾ádný TERM nebo selhalo volání stat pro tty\n"
+
+#: login-utils/ttymsg.c:81
+msgid "too many iov's (change code in wall/ttymsg.c)"
+msgstr "pøíli¹ mnoho iov (zmìòte kód v wall/ttymsg.c)"
+
+#: login-utils/ttymsg.c:91
+msgid "excessively long line arg"
+msgstr "pøíli¹ dlouhý øádek s argumenty"
+
+#: login-utils/ttymsg.c:145
+msgid "cannot fork"
+msgstr "volání fork selhalo"
+
+#: login-utils/ttymsg.c:149
+#, c-format
+msgid "fork: %s"
+msgstr "fork: %s"
+
+#: login-utils/ttymsg.c:177
+#, c-format
+msgid "%s: BAD ERROR"
+msgstr "%s: ZÁVA®NÁ CHYBA"
+
+#: login-utils/vipw.c:149
+#, c-format
+msgid "%s: the %s file is busy.\n"
+msgstr "%s: soubor %s je ji¾ pou¾íván.\n"
+
+#: login-utils/vipw.c:165
+#, c-format
+msgid "%s: the %s file is busy (%s present)\n"
+msgstr "%s: %s soubor je ji¾ pou¾íván (nalezen %s)\n"
+
+#: login-utils/vipw.c:171
+#, c-format
+msgid "%s: can't link %s: %s\n"
+msgstr "%s: volání link pro %s selhalo: %s\n"
+
+#: login-utils/vipw.c:193
+#, c-format
+msgid "%s: can't unlock %s: %s (your changes are still in %s)\n"
+msgstr "%s: %s nelze odemknout: %s (Va¹e zmìny jsou stále v %s)\n"
+
+#: login-utils/vipw.c:217
+#, c-format
+msgid "%s: Cannot fork\n"
+msgstr "%s: volání fork selhalo\n"
+
+#: login-utils/vipw.c:257
+#, c-format
+msgid "%s: %s unchanged\n"
+msgstr "%s: %s nezmìnìno\n"
+
+#: login-utils/vipw.c:300
+#, c-format
+msgid "%s: no changes made\n"
+msgstr "%s: ¾ádné zmìny\n"
+
+#: login-utils/wall.c:106
+#, c-format
+msgid "usage: %s [file]\n"
+msgstr "Pou¾ití: %s [soubor]\n"
+
+#: login-utils/wall.c:154
+#, c-format
+msgid "%s: can't open temporary file.\n"
+msgstr "%s: doèasný soubor nelze otevøít.\n"
+
+#: login-utils/wall.c:181
+#, c-format
+msgid "Broadcast Message from %s@%s"
+msgstr "V¹eobecná zpráva od %s@%s"
+
+#: login-utils/wall.c:191
+#, c-format
+msgid "%s: can't read %s.\n"
+msgstr "%s: %s nelze èíst.\n"
+
+#: login-utils/wall.c:216
+#, c-format
+msgid "%s: can't stat temporary file.\n"
+msgstr "%s: volání stat pro doèasný soubor selhalo.\n"
+
+#: login-utils/wall.c:225
+#, c-format
+msgid "%s: can't read temporary file.\n"
+msgstr "%s: doèasný soubor nelze èíst.\n"
+
+#: misc-utils/cal.c:184
+msgid "illegal month value: use 1-12"
+msgstr "chybná hodnota pro mìsíc: pou¾ijte 1-12"
+
+#: misc-utils/cal.c:188
+msgid "illegal year value: use 1-9999"
+msgstr "chybná hodnota pro rok: pou¾ijte 1-9999"
+
+#: misc-utils/cal.c:484
+msgid "usage: cal [-mjy] [[month] year]\n"
+msgstr "Pou¾ití: cal [mjy] [[mìsíc] rok]\n"
+
+#: misc-utils/ddate.c:184
+#, c-format
+msgid "usage: %s [+format] [day month year]\n"
+msgstr "Pou¾ití: %s [+formát] [den mìsíc rok]\n"
+
+# ???
+#. handle St. Tib's Day
+#: misc-utils/ddate.c:230
+msgid "St. Tib's Day"
+msgstr "Den svatého Tiba"
+
+#: misc-utils/kill.c:199
+#, c-format
+msgid "%s: unknown signal %s\n"
+msgstr "%s: neznámý signál %s\n"
+
+#: misc-utils/kill.c:261
+#, c-format
+msgid "%s: can't find process \"%s\"\n"
+msgstr "%s: proces \"%s\" nelze nalézt\n"
+
+#: misc-utils/kill.c:303
+#, c-format
+msgid "%s: unknown signal %s; valid signals:\n"
+msgstr "%s: neznámý signál %s; platné signály:\n"
+
+#: misc-utils/kill.c:343
+#, c-format
+msgid "usage: %s [ -s signal | -p ] [ -a ] pid ...\n"
+msgstr "Pou¾ití: %s [ -s signál | -p ] [ -a ] pid ...\n"
+
+#: misc-utils/kill.c:344
+#, c-format
+msgid "       %s -l [ signal ]\n"
+msgstr "         %s -l [ signál ]\n"
+
+#: misc-utils/logger.c:144
+#, c-format
+msgid "logger: %s: %s.\n"
+msgstr "logger: %s: %s.\n"
+
+# 'facility'? lépe asi jako zaøízení, zle to by se pletlo s 'device' 
+#: misc-utils/logger.c:241
+#, c-format
+msgid "logger: unknown facility name: %s.\n"
+msgstr "logger: neznámé pøíslu¹enství: %s\n"
+
+#: misc-utils/logger.c:253
+#, c-format
+msgid "logger: unknown priority name: %s.\n"
+msgstr "logger: neznámé jméno priority: %s\n"
+
+#: misc-utils/logger.c:280
+msgid ""
+"usage: logger [-is] [-f file] [-p pri] [-t tag] [-u socket] [ message ... ]\n"
+msgstr ""
+"Pou¾ití: logger [-is] [-f soubor] [-p pri] [-t znaèka] [-u soket] [ zpráva "
+"... ]\n"
+
+#: misc-utils/look.c:170 misc-utils/setterm.c:1153 text-utils/more.c:1862
+#: text-utils/more.c:1873
+msgid "Out of memory"
+msgstr "Nedostatek pamìti"
+
+#: misc-utils/look.c:340
+msgid "usage: look [-dfa] [-t char] string [file]\n"
+msgstr "Pou¾ití: look [-dfa] [-t znak] øetìzec [soubor]\n"
+
+#: misc-utils/mcookie.c:122 misc-utils/mcookie.c:149
+#, c-format
+msgid "Could not open %s\n"
+msgstr "%s nelze nalézt\n"
+
+#: misc-utils/mcookie.c:126 misc-utils/mcookie.c:145
+#, c-format
+msgid "Got %d bytes from %s\n"
+msgstr "%db z %s\n"
+
+#: misc-utils/namei.c:107
+#, c-format
+msgid "namei: unable to get current directory - %s\n"
+msgstr "namei: aktuální adresáø nelze zjistit - %s\n"
+
+#: misc-utils/namei.c:118
+#, c-format
+msgid "namei: unable to chdir to %s - %s (%d)\n"
+msgstr "namei: do adresáøe %s nelze pøejít - %s (%d)\n"
+
+#: misc-utils/namei.c:128
+msgid "usage: namei [-mx] pathname [pathname ...]\n"
+msgstr "Pou¾ití: namei [mx] jméno cesty [jméno cesty ...]\n"
+
+#: misc-utils/namei.c:157
+msgid "namei: could not chdir to root!\n"
+msgstr "namei: do adresáøe root nelze pøejít!\n"
+
+#: misc-utils/namei.c:164
+msgid "namei: could not stat root!\n"
+msgstr "namei: volání stat pro adresáø root selhalo!\n"
+
+#: misc-utils/namei.c:219
+#, c-format
+msgid " ? could not chdir into %s - %s (%d)\n"
+msgstr " ? do adresáøe %s nelze pøejít - %s (%d)\n"
+
+#: misc-utils/namei.c:248
+#, c-format
+msgid " ? problems reading symlink %s - %s (%d)\n"
+msgstr " ? problémy pøi ètení symbolického odkazu %s - %s (%d)\n"
+
+#: misc-utils/namei.c:258
+msgid "  *** EXCEEDED UNIX LIMIT OF SYMLINKS ***"
+msgstr "  *** PØEKROÈEN UNIXOVÝ LIMIT PRO SYMBOLICKÉ ODKAZY ***"
+
+#: misc-utils/namei.c:294
+#, c-format
+msgid "namei: unknown file type 0%06o on file %s\n"
+msgstr "namei: typ 0%06o souboru %s je neznámý\n"
+
+#: misc-utils/script.c:108
+msgid "usage: script [-a] [file]\n"
+msgstr "Pou¾ití: script [-a] [soubor]\n"
+
+#: misc-utils/script.c:128
+#, c-format
+msgid "Script started, file is %s\n"
+msgstr "Script spu¹tìn. Soubor je %s.\n"
+
+#: misc-utils/script.c:197
+#, c-format
+msgid "Script started on %s"
+msgstr "Script spu¹tìn %s"
+
+#: misc-utils/script.c:263
+#, c-format
+msgid ""
+"\n"
+"Script done on %s"
+msgstr ""
+"\n"
+"Script ukonèen %s"
+
+#: misc-utils/script.c:268
+#, c-format
+msgid "Script done, file is %s\n"
+msgstr "Script utils. Soubor je %s\n"
+
+#: misc-utils/script.c:280
+msgid "openpty failed\n"
+msgstr "volání openpty selhalo\n"
+
+#: misc-utils/script.c:314
+msgid "Out of pty's\n"
+msgstr "Nejsou ¾ádná dal¹í volná pty\n"
+
+#. Print error message about arguments, and the command's syntax.
+#: misc-utils/setterm.c:745
+#, c-format
+msgid "%s: Argument error, usage\n"
+msgstr "%s: Chybný pøepínaè, pou¾ití\n"
+
+#: misc-utils/setterm.c:748
+msgid "  [ -term terminal_name ]\n"
+msgstr "  [ -term jméno terminálu]\n"
+
+#: misc-utils/setterm.c:749
+msgid "  [ -reset ]\n"
+msgstr "  [ -reset ]\n"
+
+#: misc-utils/setterm.c:750
+msgid "  [ -initialize ]\n"
+msgstr "  [ -initialize ]\n"
+
+#: misc-utils/setterm.c:751
+msgid "  [ -cursor [on|off] ]\n"
+msgstr "  [ -cursor [on|off] ]\n"
+
+#: misc-utils/setterm.c:753
+msgid "  [ -snow [on|off] ]\n"
+msgstr "  [ -snow [on|off] ]\n"
+
+#: misc-utils/setterm.c:754
+msgid "  [ -softscroll [on|off] ]\n"
+msgstr "  [ -softscroll [on|off] ]\n"
+
+#: misc-utils/setterm.c:755
+msgid "  [ -keyboard pc|olivetti|dutch|extended ]\n"
+msgstr "  [ -keyboard pc|olivetti|dutch|extended ]\n"
+
+#: misc-utils/setterm.c:757
+msgid "  [ -repeat [on|off] ]\n"
+msgstr "  [ -repeat [on|off] ]\n"
+
+#: misc-utils/setterm.c:758
+msgid "  [ -appcursorkeys [on|off] ]\n"
+msgstr "  [ -appcursorkeys [on|off] ]\n"
+
+#: misc-utils/setterm.c:759
+msgid "  [ -linewrap [on|off] ]\n"
+msgstr "  [ -linewrap [on|off] ]\n"
+
+#: misc-utils/setterm.c:760
+msgid "  [ -default ]\n"
+msgstr "  [ -default ]\n"
+
+#: misc-utils/setterm.c:761
+msgid "  [ -foreground black|blue|green|cyan"
+msgstr "  [ -foreground black|blue|green|cyan"
+
+#: misc-utils/setterm.c:762 misc-utils/setterm.c:764
+msgid "|red|magenta|yellow|white|default ]\n"
+msgstr "|red|magenta|yellow|white|default ]\n"
+
+#: misc-utils/setterm.c:763
+msgid "  [ -background black|blue|green|cyan"
+msgstr "  [ -background black|blue|green|cyan"
+
+#: misc-utils/setterm.c:765
+msgid "  [ -ulcolor black|grey|blue|green|cyan"
+msgstr "  [ -ulcolor black|grey|blue|green|cyan"
+
+#: misc-utils/setterm.c:766 misc-utils/setterm.c:768 misc-utils/setterm.c:770
+#: misc-utils/setterm.c:772
+msgid "|red|magenta|yellow|white ]\n"
+msgstr "|red|magenta|yellow|white ]\n"
+
+#: misc-utils/setterm.c:767
+msgid "  [ -ulcolor bright blue|green|cyan"
+msgstr "  [ -ulcolor bright blue|green|cyan"
+
+#: misc-utils/setterm.c:769
+msgid "  [ -hbcolor black|grey|blue|green|cyan"
+msgstr "  [ -hbcolor black|grey|blue|green|cyan"
+
+#: misc-utils/setterm.c:771
+msgid "  [ -hbcolor bright blue|green|cyan"
+msgstr "  [ -hbcolor bright blue|green|cyan"
+
+#: misc-utils/setterm.c:774
+msgid "  [ -standout [ attr ] ]\n"
+msgstr "  [ -standout [ atribut ] ]\n"
+
+#: misc-utils/setterm.c:776
+msgid "  [ -inversescreen [on|off] ]\n"
+msgstr "  [ -inversescreen [on|off] ]\n"
+
+#: misc-utils/setterm.c:777
+msgid "  [ -bold [on|off] ]\n"
+msgstr "  [ -bold [on|off] ]\n"
+
+#: misc-utils/setterm.c:778
+msgid "  [ -half-bright [on|off] ]\n"
+msgstr "  [ -half-bright [on|off] ]\n"
+
+#: misc-utils/setterm.c:779
+msgid "  [ -blink [on|off] ]\n"
+msgstr "  [ -blink [on|off] ]\n"
+
+#: misc-utils/setterm.c:780
+msgid "  [ -reverse [on|off] ]\n"
+msgstr "  [ -reverse [on|off] ]\n"
+
+#: misc-utils/setterm.c:781
+msgid "  [ -underline [on|off] ]\n"
+msgstr "  [ -underline [on|off] ]\n"
+
+#: misc-utils/setterm.c:782
+msgid "  [ -store ]\n"
+msgstr "  [ -store ]\n"
+
+#: misc-utils/setterm.c:783
+msgid "  [ -clear [all|rest] ]\n"
+msgstr "  [ -clear [all|rest] ]\n"
+
+#: misc-utils/setterm.c:784
+msgid "  [ -tabs [ tab1 tab2 tab3 ... ] ]      (tabn = 1-160)\n"
+msgstr "  [ -tabs [ tab1 tab2 tab3 ... ] ]      (tabn = 1-160)\n"
+
+#: misc-utils/setterm.c:785
+msgid "  [ -clrtabs [ tab1 tab2 tab3 ... ] ]   (tabn = 1-160)\n"
+msgstr "  [ -clrtabs [ tab1 tab2 tab3 ... ] ]   (tabn = 1-160)\n"
+
+#: misc-utils/setterm.c:786
+msgid "  [ -regtabs [1-160] ]\n"
+msgstr "  [ -regtabs [1-160] ]\n"
+
+#: misc-utils/setterm.c:787
+msgid "  [ -blank [0-60] ]\n"
+msgstr "  [ -blank [0-60] ]\n"
+
+#: misc-utils/setterm.c:788
+msgid "  [ -dump   [1-NR_CONSOLES] ]\n"
+msgstr "  [ -dump   [1-NR_CONSOLES] ]\n"
+
+#: misc-utils/setterm.c:789
+msgid "  [ -append [1-NR_CONSOLES] ]\n"
+msgstr "  [ -append [1-NR_CONSOLES] ]\n"
+
+#: misc-utils/setterm.c:790
+msgid "  [ -file dumpfilename ]\n"
+msgstr "  [ -file soubor pro ulo¾ení ]\n"
+
+#: misc-utils/setterm.c:791
+msgid "  [ -msg [on|off] ]\n"
+msgstr "  [ -msg [on|off] ]\n"
+
+#: misc-utils/setterm.c:792
+msgid "  [ -msglevel [0-8] ]\n"
+msgstr "  [ -msglevel [0-8] ]\n"
+
+#: misc-utils/setterm.c:793
+msgid "  [ -powersave [on|vsync|hsync|powerdown|off] ]\n"
+msgstr "  [ -powersave [on|vsync|hsync|powerdown|off] ]\n"
+
+#: misc-utils/setterm.c:794
+msgid "  [ -powerdown [0-60] ]\n"
+msgstr "  [ -powerdown [0-60] ]\n"
+
+#: misc-utils/setterm.c:795
+msgid "  [ -blength [0-2000] ]\n"
+msgstr "  [ -blength [0-2000] ]\n"
+
+#: misc-utils/setterm.c:796
+msgid "  [ -bfreq freqnumber ]\n"
+msgstr "  [ -bfreq frekvence ]\n"
+
+#: misc-utils/setterm.c:841
+msgid "keyboard.pc"
+msgstr "keyboard.pc"
+
+#: misc-utils/setterm.c:844
+msgid "keyboard.olivetti"
+msgstr "keyboard.olivetti"
+
+#: misc-utils/setterm.c:847
+msgid "keyboard.dutch"
+msgstr "keyboard.dutch"
+
+#: misc-utils/setterm.c:850
+msgid "keyboard.extended"
+msgstr "keyboard.extended"
+
+#: misc-utils/setterm.c:884
+msgid "snow.on"
+msgstr "snì¾ení zapnuto"
+
+#: misc-utils/setterm.c:886
+msgid "snow.off"
+msgstr "snì¾ení vypnuto"
+
+#: misc-utils/setterm.c:892
+msgid "softscroll.on"
+msgstr "softwarové rolování zapnuto"
+
+#: misc-utils/setterm.c:894
+msgid "softscroll.off"
+msgstr "softwarové rolování vypnuto"
+
+#: misc-utils/setterm.c:1069
+msgid "cannot (un)set powersave mode\n"
+msgstr "¹etøící re¾im nelze vypnout/zapnout\n"
+
+#: misc-utils/setterm.c:1108 misc-utils/setterm.c:1116
+#, c-format
+msgid "klogctl error: %s\n"
+msgstr "chyba klogctl: %s\n"
+
+#: misc-utils/setterm.c:1157
+#, c-format
+msgid "Error reading %s\n"
+msgstr "Chyba pøi ètení %s\n"
+
+#: misc-utils/setterm.c:1172
+msgid "Error writing screendump\n"
+msgstr "Chyba pøi ukládání obrazu obrazovky\n"
+
+#: misc-utils/setterm.c:1186
+#, c-format
+msgid "couldn't read %s, and cannot ioctl dump\n"
+msgstr "nelze èíst %s a nelze provést dump pomocí volání ioctl\n"
+
+#: misc-utils/setterm.c:1251
+#, c-format
+msgid "%s: $TERM is not defined.\n"
+msgstr "%s: promìnná TERM není nastavena.\n"
+
+#: misc-utils/tsort.c:119
+msgid "usage: tsort [ inputfile ]\n"
+msgstr "Pou¾ití: tsort [ soubor ]\n"
+
+#: misc-utils/tsort.c:156
+msgid "tsort: odd data count.\n"
+msgstr "tsort: lichý poèet uzlù\n"
+
+#: misc-utils/tsort.c:321
+msgid "tsort: cycle in data.\n"
+msgstr "tsort: smyèka v datech.\n"
+
+#: misc-utils/tsort.c:334
+msgid "tsort: internal error -- could not find cycle.\n"
+msgstr "tsort: vnitøní chyba -- smyèku nelze najít.\n"
+
+#: misc-utils/whereis.c:158
+msgid "whereis [ -sbmu ] [ -SBM dir ... -f ] name...\n"
+msgstr "whereis [ -sbmu ] [ -SBM adresáø ... -f ] jméno...\n"
+
+#: misc-utils/write.c:99
+msgid "write: can't find your tty's name\n"
+msgstr "write: jméno Va¹eho tty nelze zjistit\n"
+
+#: misc-utils/write.c:110
+msgid "write: you have write permission turned off.\n"
+msgstr "write: máte vypnut pøíjem zpráv.\n"
+
+#: misc-utils/write.c:131
+#, c-format
+msgid "write: %s is not logged in on %s.\n"
+msgstr "write: u¾ivatel %s není na %s pøihlá¹en.\n"
+
+#: misc-utils/write.c:139
+#, c-format
+msgid "write: %s has messages disabled on %s\n"
+msgstr "write: u¾ivatel %s má na %s vypnut pøíjem zpráv\n"
+
+#: misc-utils/write.c:146
+msgid "usage: write user [tty]\n"
+msgstr "Pou¾ití: write u¾ivatel [tty]\n"
+
+#: misc-utils/write.c:245
+#, c-format
+msgid "write: %s is not logged in\n"
+msgstr "write: u¾ivatel %s není pøihlá¹en\n"
+
+#: misc-utils/write.c:254
+#, c-format
+msgid "write: %s has messages disabled\n"
+msgstr "write: u¾ivatel %s má vypnut pøíjem zpráv\n"
+
+#: misc-utils/write.c:258
+#, c-format
+msgid "write: %s is logged in more than once; writing to %s\n"
+msgstr "writing: u¾ivatel %s je pøihlá¹en vícekrát; pí¹i na %s\n"
+
+#: misc-utils/write.c:325
+#, c-format
+msgid "Message from %s@%s on %s at %s ..."
+msgstr "Zpráva od %s@%s na %s v %s ..."
+
+#: mount/fstab.c:116
+#, c-format
+msgid "warning: error reading %s: %s"
+msgstr "varování: chyba pøi ètení %s: %s"
+
+#: mount/fstab.c:143 mount/fstab.c:166
+#, c-format
+msgid "warning: can't open %s: %s"
+msgstr "varování: %s nelze otevøít: %s"
+
+#: mount/fstab.c:147
+#, c-format
+msgid "mount: could not open %s - using %s instead\n"
+msgstr "mount: %s nelze otevøít - pou¾ívám %s\n"
+
+#. linktargetfile does not exist (as a file)
+#. and we cannot create it. Read-only filesystem?
+#. Too many files open in the system? Filesystem full?
+#: mount/fstab.c:358
+#, c-format
+msgid "can't create lock file %s: %s (use -n flag to override)"
+msgstr ""
+"zamykací soubor %s nelze vytvoøit: %s\n"
+"(pou¾ijte pøepínaè -n pro vynechání zápisu do mtab)"
+
+#: mount/fstab.c:370
+#, c-format
+msgid "can't link lock file %s: %s (use -n flag to override)"
+msgstr ""
+"volání link pro zamykací soubor %s selhalo: %s\n"
+"(pou¾ijte pøepínaè -n pro vynechání zápisu do mtab)"
+
+#: mount/fstab.c:382
+#, c-format
+msgid "can't open lock file %s: %s (use -n flag to override)"
+msgstr ""
+"zamykací soubor %s nelze otevøít: %s\n"
+"(pou¾ijte pøepínaè -n pro vynechání zápisu do mtab)"
+
+#: mount/fstab.c:397
+#, c-format
+msgid "Can't lock lock file %s: %s\n"
+msgstr "Zamykací soubor %s nelze zamknout: %s\n"
+
+#: mount/fstab.c:408
+#, c-format
+msgid "can't lock lock file %s: %s"
+msgstr "Zamykací soubor %s nelze zamknout: %s"
+
+#: mount/fstab.c:410
+msgid "timed out"
+msgstr "vypr¹el èas"
+
+#: mount/fstab.c:455 mount/fstab.c:463
+#, c-format
+msgid "cannot open %s (%s) - mtab not updated"
+msgstr "nelze otevøít %s (%s) - mtab nebyl aktualizován"
+
+#: mount/fstab.c:488
+msgid "mount: warning: cannot change mounted device with a remount\n"
+msgstr "mount: varování: pomocí nelze remount zmìnit pøipojené zaøízení\n"
+
+#: mount/fstab.c:493
+msgid "mount: warning: cannot change filesystem type with a remount\n"
+msgstr "mount: varování: pomocí nelze remount zmìnit typ systému souborù\n"
+
+#: mount/fstab.c:501 mount/fstab.c:507
+#, c-format
+msgid "error writing %s: %s"
+msgstr "chyba pøi zápisu %s: %s"
+
+#: mount/fstab.c:514
+#, c-format
+msgid "error changing mode of %s: %s\n"
+msgstr "chyba pøi zmìnì módu %s: %s\n"
+
+#: mount/fstab.c:521
+#, c-format
+msgid "can't rename %s to %s: %s\n"
+msgstr "%s nelze pøejmenovat na %s: %s\n"
+
+#: mount/lomount.c:78
+#, c-format
+msgid "loop: can't open device %s: %s\n"
+msgstr "loop: zaøízení %s nelze otevøít: %s\n"
+
+#: mount/lomount.c:84
+#, c-format
+msgid "loop: can't get info on device %s: %s\n"
+msgstr "loop: informace o zaøízení %s nelze získat: %s\n"
+
+#: mount/lomount.c:89 mount/losetup.c:74
+#, c-format
+msgid "%s: [%04x]:%ld (%s) offset %d, %s encryption\n"
+msgstr "%s: [%04x]:%ld (%s) posun %d, %s ¹ifra\n"
+
+#: mount/lomount.c:143
+msgid "mount: could not find any device /dev/loop#"
+msgstr "mount: ¾ádné zaøízení /dev/loop# nelze nalézt"
+
+#: mount/lomount.c:147
+msgid ""
+"mount: Could not find any loop device.\n"
+"       Maybe /dev/loop# has a wrong major number?"
+msgstr ""
+"mount: ¾ádné loop zaøízení nelze nalézt.\n"
+"       Nemá /dev/loop# chybné vìt¹í èíslo zaøízení?"
+
+#: mount/lomount.c:151
+#, c-format
+msgid ""
+"mount: Could not find any loop device, and, according to %s,\n"
+"       this kernel does not know about the loop device.\n"
+"       (If so, then recompile or `insmod loop.o'.)"
+msgstr ""
+"mount: ®ádné loop zaøízení nelze nalézt a dle %s toto jádro\n"
+"       nezná loop zaøízení. Pokud je tomu tak, pak jej znovu pøelo¾te,\n"
+"       èi zkuste `insmod loop.o'."
+
+#: mount/lomount.c:156
+msgid ""
+"mount: Could not find any loop device. Maybe this kernel does not know\n"
+"       about the loop device (then recompile or `insmod loop.o'), or\n"
+"       maybe /dev/loop# has the wrong major number?"
+msgstr ""
+"mount: ®ádné loop zaøízení nelze nalézt. Mo¾ná toto jádro nezná loop "
+"zaøízení\n"
+"       (pak jej znovu pøelo¾te, èi zkuste `insmod loop.o'), èi /dev/loop# "
+"má\n"
+"       chybné vìt¹í èíslo?"
+
+#: mount/lomount.c:160
+msgid "mount: could not find any free loop device"
+msgstr "mount: ¾ádné volné loop zaøízení nelze najít"
+
+#: mount/lomount.c:191 mount/losetup.c:106
+#, c-format
+msgid "Unsupported encryption type %s\n"
+msgstr "Nepodporovaný ¹ifrovací typ %s\n"
+
+#: mount/lomount.c:210 mount/losetup.c:125
+msgid "Init (up to 16 hex digits): "
+msgstr "Init (a¾ 16 ¹estnáctkových èíslic): "
+
+#: mount/lomount.c:217 mount/losetup.c:132
+#, c-format
+msgid "Non-hex digit '%c'.\n"
+msgstr "Ne¹estnáctková èíslice '%c'.\n"
+
+#: mount/lomount.c:223 mount/losetup.c:138
+#, c-format
+msgid "Don't know how to get key for encryption system %d\n"
+msgstr "Nevím jak získat klíè pro ¹ifrovací systém %d\n"
+
+#: mount/lomount.c:239
+#, c-format
+msgid "set_loop(%s,%s,%d): success\n"
+msgstr "set_loop(%s,%s,%d): úspìch\n"
+
+#: mount/lomount.c:250
+#, c-format
+msgid "loop: can't delete device %s: %s\n"
+msgstr "loop: zaøízení %s nelze smazat: %s\n"
+
+#: mount/lomount.c:260
+#, c-format
+msgid "del_loop(%s): success\n"
+msgstr "del_loop(%s): úspìch\n"
+
+#: mount/lomount.c:268
+msgid "This mount was compiled without loop support. Please recompile.\n"
+msgstr "Tento program byl pøelo¾en bez podpory pro loop. Pøelo¾te jej znovu.\n"
+
+#: mount/losetup.c:70
+msgid "Cannot get loop info"
+msgstr "Informace o loop nelze získat"
+
+#: mount/losetup.c:174
+#, c-format
+msgid ""
+"usage:\n"
+"  %s loop_device                                      # give info\n"
+"  %s -d loop_device                                   # delete\n"
+"  %s [ -e encryption ] [ -o offset ] loop_device file # setup\n"
+msgstr ""
+"Pou¾ití:\n"
+"  %s loop zaøízení                                    # vypí¹e informace\n"
+"  %s -d loop zaøízení                                 # sma¾e\n"
+"  %s [ -e ¹ifra ] [ -o posun ] loop zaøízení soubor   # nastaví\n"
+
+#: mount/losetup.c:231
+msgid "No loop support was available at compile time. Please recompile.\n"
+msgstr "Podpora pro loop nebyla pøi pøekladu zadána. Pøelo¾te program znovu.\n"
+
+#: mount/mntent.c:165
+#, c-format
+msgid "[mntent]: warning: no final newline at the end of %s\n"
+msgstr "[mntent]: varování: %s není ukonèeno novou øádkou\n"
+
+#: mount/mntent.c:216
+#, c-format
+msgid "[mntent]: line %d in %s is bad%s\n"
+msgstr "[mntent]: øádek %d v %s je chybný%s\n"
+
+#: mount/mntent.c:219
+msgid "; rest of file ignored"
+msgstr "; ignoruji zbytek souboru"
+
+#: mount/mount.c:323
+#, c-format
+msgid "mount: according to mtab, %s is already mounted on %s"
+msgstr "mount: podle mtab je %s ji¾ pøipojeno na %s"
+
+#: mount/mount.c:326
+#, c-format
+msgid "mount: according to mtab, %s is mounted on %s"
+msgstr "mount: podle mtab je %s pøipojeno na %s"
+
+#: mount/mount.c:347
+#, c-format
+msgid "mount: can't open %s for writing: %s"
+msgstr "mount: %s nelze otevøít pro zápis: %s"
+
+#: mount/mount.c:362 mount/mount.c:611
+#, c-format
+msgid "mount: error writing %s: %s"
+msgstr "mount: chyba pøi zápisu %s: %s"
+
+#: mount/mount.c:369
+#, c-format
+msgid "mount: error changing mode of %s: %s"
+msgstr "mount: chyba pøi zmìnì módu %s: %s"
+
+#: mount/mount.c:443
+msgid "mount failed"
+msgstr "pøipojení se nezdaøilo"
+
+#: mount/mount.c:445
+#, c-format
+msgid "mount: only root can mount %s on %s"
+msgstr "mount: pouze superu¾ivatel mù¾e pøipojit %s na %s"
+
+#: mount/mount.c:470
+msgid "mount: loop device specified twice"
+msgstr "mount: zaøízení loop bylo zadáno dvakrát"
+
+#: mount/mount.c:476
+msgid "mount: type specified twice"
+msgstr "mount: typ byl zadán dvakrát"
+
+#: mount/mount.c:488
+msgid "mount: skipping the setup of a loop device\n"
+msgstr "mount: pøeskakuji nastavení loop zaøízení\n"
+
+#: mount/mount.c:497
+#, c-format
+msgid "mount: going to use the loop device %s\n"
+msgstr "mount: chystám se pou¾ít zaøízení loop %s\n"
+
+#: mount/mount.c:501
+msgid "mount: failed setting up loop device\n"
+msgstr "mount: nepodaøilo se nastavit zaøízení loop\n"
+
+#: mount/mount.c:505
+msgid "mount: setup loop device successfully\n"
+msgstr "mount: zaøízení loop bylo korektnì nastaveno\n"
+
+#: mount/mount.c:518
+msgid "mount: this version was compiled without support for the type `nfs'"
+msgstr "mount: tato verze byla pøelo¾ena bez podpory pro typ `nfs'"
+
+#: mount/mount.c:568 mount/mount.c:993
+#, c-format
+msgid "mount: cannot fork: %s"
+msgstr "mount: volání fork selhalo: %s"
+
+#: mount/mount.c:606
+#, c-format
+msgid "mount: can't open %s: %s"
+msgstr "mount: %s nelze otevøít: %s"
+
+#: mount/mount.c:634
+msgid "mount: you must specify the filesystem type"
+msgstr "mount: musíte zadat typ systému souborù"
+
+#: mount/mount.c:641 mount/mount.c:676
+#, c-format
+msgid "mount: mount point %s is not a directory"
+msgstr "mount: pøípojný bod %s není adresáøem"
+
+#: mount/mount.c:643
+msgid "mount: permission denied"
+msgstr "mount: pøístup odmítnut"
+
+#: mount/mount.c:645
+msgid "mount: must be superuser to use mount"
+msgstr "mount: mount mù¾e pou¾ívat pouze superu¾ivatel"
+
+#. heuristic: if /proc/version exists, then probably proc is mounted
+#. proc mounted?
+#: mount/mount.c:649 mount/mount.c:653
+#, c-format
+msgid "mount: %s is busy"
+msgstr "mount: %s je ji¾ pøipojeno"
+
+#. no
+#. yes, don't mention it
+#: mount/mount.c:655
+msgid "mount: proc already mounted"
+msgstr "mount: proc je ji¾ pøipojeno"
+
+#: mount/mount.c:657
+#, c-format
+msgid "mount: %s already mounted or %s busy"
+msgstr "mount: %s je ji¾ pøipojeno, èi je %s ji¾ pou¾íváno"
+
+#: mount/mount.c:663
+#, c-format
+msgid "mount: mount point %s does not exist"
+msgstr "mount: pøípojný bod %s neexistuje"
+
+#: mount/mount.c:665
+#, c-format
+msgid "mount: mount point %s is a symbolic link to nowhere"
+msgstr "mount: pøípojný bod %s je symbolickým odkazem, jen¾ nikam neukazuje"
+
+#: mount/mount.c:668
+#, c-format
+msgid "mount: special device %s does not exist"
+msgstr "mount: speciální zaøízení %s neexistuje"
+
+#: mount/mount.c:678
+#, c-format
+msgid ""
+"mount: special device %s does not exist\n"
+"       (a path prefix is not a directory)\n"
+msgstr ""
+"mount: speciální zaøízení %s neexistuje\n"
+"              (název cesty nezaèíná adresáøem)\n"
+
+#: mount/mount.c:690
+#, c-format
+msgid "mount: %s not mounted already, or bad option"
+msgstr "mount: %s je¹tì není pøipojeno èi chybný pøepínaè"
+
+#: mount/mount.c:692
+#, c-format
+msgid ""
+"mount: wrong fs type, bad option, bad superblock on %s,\n"
+"       or too many mounted file systems"
+msgstr ""
+"mount: chybný typ ss, chybný pøepínaè, chybný superblok na %s\n"
+"       nebo pøíli¹ mnoho pøipojených systémù souborù"
+
+#: mount/mount.c:707
+msgid "mount table full"
+msgstr "tabulka pøipojení je plná"
+
+#: mount/mount.c:709
+#, c-format
+msgid "mount: %s: can't read superblock"
+msgstr "mount: %s: superblok nelze pøeèíst"
+
+#: mount/mount.c:712
+#, c-format
+msgid "mount: %s has wrong major or minor number"
+msgstr "mount: %s má chybné vìt¹í èi men¹í èíslo zaøízení"
+
+#: mount/mount.c:717
+#, c-format
+msgid "mount: fs type %s not supported by kernel"
+msgstr "mount: typ ss %s není podporován jádrem"
+
+#: mount/mount.c:729
+#, c-format
+msgid "mount: probably you meant %s"
+msgstr "mount: pravdìpodobnì jste myslel %s"
+
+#: mount/mount.c:731
+msgid "mount: maybe you meant iso9660 ?"
+msgstr "mount: mo¾ná jste myslel iso9660 ?"
+
+#: mount/mount.c:734
+#, c-format
+msgid "mount: %s has wrong device number or fs type %s not supported"
+msgstr "mount: %s má chybné èíslo zaøízení, èi ss typ %s není podporován"
+
+#. strange ...
+#: mount/mount.c:739
+#, c-format
+msgid "mount: %s is not a block device, and stat fails?"
+msgstr "mount: %s není blokovým zaøízením a volání stat selhalo?"
+
+#: mount/mount.c:741
+#, c-format
+msgid ""
+"mount: the kernel does not recognize %s as a block device\n"
+"       (maybe `insmod driver'?)"
+msgstr ""
+"mount: jádro nerozpoznalo %s jako blokové zaøízení (mo¾ná `insmod ovladaè'?)"
+
+#: mount/mount.c:744
+#, c-format
+msgid "mount: %s is not a block device (maybe try `-o loop'?)"
+msgstr "mount: %s není blokovým zaøízením (mo¾ná pomù¾e `-o loop'?)"
+
+#: mount/mount.c:747
+#, c-format
+msgid "mount: %s is not a block device"
+msgstr "mount: %s není blokovým zaøízením"
+
+#: mount/mount.c:750
+#, c-format
+msgid "mount: %s is not a valid block device"
+msgstr "mount: %s není platným blokovým zaøízením"
+
+#: mount/mount.c:754
+#, c-format
+msgid "mount: block device %s is not permitted on its filesystem"
+msgstr "mount: blokové zaøízení %s není na tomto systému souborù povoleno"
+
+#: mount/mount.c:770
+#, c-format
+msgid "mount: %s%s is write-protected, mounting read-only"
+msgstr "mount: %s%s je chránìno proti zápisu, pøipojuji pouze pro ètení"
+
+#: mount/mount.c:771
+msgid "block device "
+msgstr "blokové zaøízení"
+
+#: mount/mount.c:857
+#, c-format
+msgid "mount: consider mounting %s by %s\n"
+msgstr "mount: zva¾te pøipojení %s dle %s\n"
+
+#: mount/mount.c:858
+msgid "UUID"
+msgstr "UUID"
+
+#: mount/mount.c:858
+msgid "label"
+msgstr "jméno"
+
+#: mount/mount.c:860 mount/mount.c:1176
+msgid "mount: no such partition found"
+msgstr "mount: ¾ádný odpovídající diskový oddíl nebyl nalezen"
+
+#: mount/mount.c:868
+msgid "mount: no type was given - I'll assume nfs because of the colon\n"
+msgstr "mount: nebyl zadán typ - budu pou¾ívat nfs kvùli dvojteèce\n"
+
+#.
+#. * Retry in the background.
+#.
+#: mount/mount.c:884
+#, c-format
+msgid "mount: backgrounding \"%s\"\n"
+msgstr "mount: pracuji na pozadí \"%s\"\n"
+
+#: mount/mount.c:895
+#, c-format
+msgid "mount: giving up \"%s\"\n"
+msgstr "mount: konèím \"%s\"\n"
+
+#: mount/mount.c:944
+#, c-format
+msgid "mount: %s already mounted on %s\n"
+msgstr "mount: %s je ji¾ pøipojeno na %s\n"
+
+#: mount/mount.c:1055
+msgid ""
+"Usage: mount [-hV]\n"
+"       mount -a [-nfFrsvw] [-t vfstypes]\n"
+"       mount [-nfrsvw] [-o options] special | node\n"
+"       mount [-nfrsvw] [-t vfstype] [-o options] special node\n"
+"       A special device can be indicated by  -L label  or  -U uuid .\n"
+msgstr ""
+"Pou¾ití: mount [-hV]\n"
+"         mount -a [-nfFrsvw] [-tvfstypy]\n"
+"         mount [-nfrsvw] [-o volby] speciální soubor | uzel\n"
+"         mount [-nfrsvw] [-t vfstyp] [-o volby] speciální soubor uzel\n"
+"         Speciální zaøízení mù¾e být oznaèeno pomocí -L popiska èi -U uuid.\n"
+
+#: mount/mount.c:1161
+msgid "mount: only root can do that"
+msgstr "mount: toto mù¾e provést pouze superu¾ivatel"
+
+#: mount/mount.c:1166
+#, c-format
+msgid "mount: no %s found - creating it..\n"
+msgstr "mount: %s nebylo nalezeno - vytváøím jej..\n"
+
+#: mount/mount.c:1178
+#, c-format
+msgid "mount: mounting %s\n"
+msgstr "mount: pøipojuji %s\n"
+
+#: mount/mount.c:1187
+msgid "not mounted anything"
+msgstr "nic nebylo pøipojeno"
+
+#: mount/mount.c:1200
+#, c-format
+msgid "mount: cannot find %s in %s"
+msgstr "mount: %s nelze v %s nalézt"
+
+#: mount/mount.c:1214
+#, c-format
+msgid "mount: can't find %s in %s or %s"
+msgstr "mount: %s nelze nalézt v %s ani %s"
+
+#: mount/mount_by_label.c:141
+msgid "mount: bad UUID"
+msgstr "mount: chybné UUID"
+
+#: mount/mount_guess_fstype.c:187
+#, c-format
+msgid "mount: you didn't specify a filesystem type for %s\n"
+msgstr "mount: nezadal jste typ systému souborù pro %s\n"
+
+#: mount/mount_guess_fstype.c:190
+#, c-format
+msgid "       I will try type %s\n"
+msgstr "       Vyzkou¹ím typ %s\n"
+
+#: mount/mount_guess_fstype.c:192
+#, c-format
+msgid "       I will try all types mentioned in %s or %s\n"
+msgstr "       Vyzkou¹ím v¹echny typy v %s èi %s\n"
+
+#: mount/nfsmount.c:157
+msgid "mount: excessively long host:dir argument\n"
+msgstr "mount: pøíli¹ dlouhý argument pro poèítaè:adresáø\n"
+
+#: mount/nfsmount.c:170
+msgid "mount: warning: multiple hostnames not supported\n"
+msgstr "mount: varování: vícenásobná jména poèítaèù nejsou podporována\n"
+
+#: mount/nfsmount.c:174
+msgid "mount: directory to mount not in host:dir format\n"
+msgstr "mount: adresáø pro pøipojení není ve tvaru poèítaè:adresáø\n"
+
+#: mount/nfsmount.c:185 mount/nfsmount.c:420
+#, c-format
+msgid "mount: can't get address for %s\n"
+msgstr "mount:  adresu %s nelze zjistit\n"
+
+#: mount/nfsmount.c:191
+msgid "mount: got bad hp->h_length\n"
+msgstr "mount: ¹patné hp->h_length\n"
+
+#: mount/nfsmount.c:208
+msgid "mount: excessively long option argument\n"
+msgstr "mount: pøíli¹ dlouhý argument pro volbu\n"
+
+#: mount/nfsmount.c:299
+msgid "Warning: Unrecognized proto= option.\n"
+msgstr "Varování: neznámá volba pro proto=.\n"
+
+#: mount/nfsmount.c:306
+msgid "Warning: Option namlen is not supported.\n"
+msgstr "Varování: volba namlen není podporována.\n"
+
+#: mount/nfsmount.c:310
+#, c-format
+msgid "unknown nfs mount parameter: %s=%d\n"
+msgstr "parametr %s=%d pro pøipojení nfs není znám\n"
+
+#: mount/nfsmount.c:345
+msgid "Warning: option nolock is not supported.\n"
+msgstr "Varování: volba nolock není podporována.\n"
+
+#: mount/nfsmount.c:348
+#, c-format
+msgid "unknown nfs mount option: %s%s\n"
+msgstr "volba %s%s pro pøipojení nfs je neznámá\n"
+
+#: mount/nfsmount.c:426
+msgid "mount: got bad hp->h_length?\n"
+msgstr "mount: ¹patné hp->h_length?\n"
+
+#: mount/nfsmount.c:528
+#, c-format
+msgid "mount: %s:%s failed, reason given by server: %s\n"
+msgstr "mount: %s:%s selhalo; pøíèina udaná serverem: %s\n"
+
+#: mount/nfsmount.c:539
+msgid "NFS over TCP is not supported.\n"
+msgstr "NFS pøes TCP není podporováno.\n"
+
+#: mount/nfsmount.c:546
+msgid "nfs socket"
+msgstr "nfs soket"
+
+#: mount/nfsmount.c:550
+msgid "nfs bindresvport"
+msgstr "nfs bindresvport"
+
+#: mount/nfsmount.c:561
+msgid "used portmapper to find NFS port\n"
+msgstr "pro nalezení NFS portu jsem pou¾il portmapper\n"
+
+#: mount/nfsmount.c:565
+#, c-format
+msgid "using port %d for nfs deamon\n"
+msgstr "pou¾ívám port %d pro nfs server\n"
+
+#: mount/nfsmount.c:576
+msgid "nfs connect"
+msgstr "nfs connect"
+
+#: mount/nfsmount.c:665
+#, c-format
+msgid "unknown nfs status return value: %d"
+msgstr "návratová hodnota nfs status %d je neznámá"
+
+#: mount/sundries.c:40 mount/sundries.c:55
+msgid "not enough memory"
+msgstr "Nedostatek pamìti"
+
+#: mount/sundries.c:65
+msgid "bug in xstrndup call"
+msgstr "chyba ve volání xstrndup"
+
+#: mount/swapon.c:51
+#, c-format
+msgid ""
+"usage: %s [-hV]\n"
+"       %s -a [-v]\n"
+"       %s [-v] [-p priority] special ...\n"
+"       %s [-s]\n"
+msgstr ""
+"Pou¾ití: %s [-hV]\n"
+"         %s -a [-v]\n"
+"         %s [-v] [-p priorita] zvlá¹tní soubor ...\n"
+"         %s [-s]\n"
+
+#: mount/swapon.c:88
+#, c-format
+msgid "%s on %s\n"
+msgstr "%s na %s\n"
+
+#: mount/swapon.c:93
+#, c-format
+msgid "swapon: cannot stat %s: %s\n"
+msgstr "swapon: volání stat pro %s selhalo: %s\n"
+
+#: mount/swapon.c:100
+#, c-format
+msgid "swapon: warning: %s has insecure permissions %04o, 0600 suggested\n"
+msgstr ""
+"swapon: varování: pøístupová práva pro %s (%04o) nejsou bezpeèná, pou¾ijte "
+"0600\n"
+
+#: mount/swapon.c:108
+#, c-format
+msgid "swapon: Skipping file %s - it appears to have holes.\n"
+msgstr "swapon: soubor %s vynechávám - zdá se, ¾e v nìm jsou díry.\n"
+
+#: mount/swapon.c:213
+#, c-format
+msgid "%s: cannot open %s: %s\n"
+msgstr "%s: %s nelze otevøít: %s\n"
+
+#: mount/umount.c:65
+msgid "umount: compiled without support for -f\n"
+msgstr "umount byl pøelo¾en bez podpory pro -f\n"
+
+#: mount/umount.c:115
+#, c-format
+msgid "host: %s, directory: %s\n"
+msgstr "poèítaè: %s, adresáø: %s\n"
+
+#: mount/umount.c:132
+#, c-format
+msgid "umount: can't get address for %s\n"
+msgstr "umount: adresu %s nelze zjistit\n"
+
+#: mount/umount.c:137
+msgid "umount: got bad hostp->h_length\n"
+msgstr "umount: chybná hodnota hostp->h_length\n"
+
+#: mount/umount.c:175
+#, c-format
+msgid "umount: %s: invalid block device"
+msgstr "umount: blokové zaøízení %s je chybné"
+
+#: mount/umount.c:177
+#, c-format
+msgid "umount: %s: not mounted"
+msgstr "umount: %s není pøipojeno"
+
+#: mount/umount.c:179
+#, c-format
+msgid "umount: %s: can't write superblock"
+msgstr "umount: superblok nelze na %s zapsat"
+
+#. Let us hope fstab has a line "proc /proc ..."
+#. and not "none /proc ..."
+#: mount/umount.c:183
+#, c-format
+msgid "umount: %s: device is busy"
+msgstr "umount: zaøízení %s je ji¾ pou¾íváno"
+
+#: mount/umount.c:185
+#, c-format
+msgid "umount: %s: not found"
+msgstr "umount: %s nelze najít"
+
+#: mount/umount.c:187
+#, c-format
+msgid "umount: %s: must be superuser to umount"
+msgstr "umount: musíte být superu¾ivatelem, abyste mohl odpojit %s"
+
+#: mount/umount.c:189
+#, c-format
+msgid "umount: %s: block devices not permitted on fs"
+msgstr "umount: %s: bloková zaøízení nejsou na systému souborù povolena"
+
+#: mount/umount.c:191
+#, c-format
+msgid "umount: %s: %s"
+msgstr "umount: %s: %s"
+
+#: mount/umount.c:235
+msgid "no umount2, trying umount...\n"
+msgstr "nenalezl jsem umount2, zkou¹ím umount...\n"
+
+#: mount/umount.c:248
+#, c-format
+msgid "could not umount %s - trying %s instead\n"
+msgstr "%s nelze odpojit - zkou¹ím %s\n"
+
+#: mount/umount.c:264
+#, c-format
+msgid "umount: %s busy - remounted read-only\n"
+msgstr ""
+"umount: %s je ji¾ pou¾íváno - znovu pøipojeno v re¾imu pro pouze ètení\n"
+
+#: mount/umount.c:272
+#, c-format
+msgid "umount: could not remount %s read-only\n"
+msgstr "umount: %s nelze znovu pøipojit v re¾imu pouze pro ètení\n"
+
+#: mount/umount.c:280
+#, c-format
+msgid "%s umounted\n"
+msgstr "%s odpojeno\n"
+
+#: mount/umount.c:363
+msgid "umount: cannot find list of filesystems to unmount"
+msgstr "umount: seznam systémù souborù na odpojení nelze nalézt"
+
+#: mount/umount.c:392
+msgid ""
+"Usage: umount [-hV]\n"
+"       umount -a [-f] [-r] [-n] [-v] [-t vfstypes]\n"
+"       umount [-f] [-r] [-n] [-v] special | node...\n"
+msgstr ""
+"Pou¾ití: umount [-hV]\n"
+"         umount -a [-f] [-r] [-n] [-v] [-t typy vfs]\n"
+"         umount [-f] [-r] [-n] [-v] speciální soubor | uzel...\n"
+
+#: mount/umount.c:453
+msgid "umount: only root can do that"
+msgstr "umount: toto mù¾e provést pouze u¾ivatel root"
+
+#: mount/umount.c:468
+#, c-format
+msgid "Trying to umount %s\n"
+msgstr "Zkou¹ím odpojit %s\n"
+
+#: mount/umount.c:472
+#, c-format
+msgid "Could not find %s in mtab\n"
+msgstr "%s nelze v mtab najít\n"
+
+#: mount/umount.c:476
+#, c-format
+msgid "umount: %s is not mounted (according to mtab)"
+msgstr "umount: podle mtab není %s pøipojeno"
+
+#: mount/umount.c:478
+#, c-format
+msgid "umount: it seems %s is mounted multiple times"
+msgstr "umount: zdá se, ¾e %s je pøipojeno více ne¾ jednou"
+
+#: mount/umount.c:480
+#, c-format
+msgid "umount: %s is not in the fstab (and you are not root)"
+msgstr "umount: %s není ve fstab (a Vy nejste root)"
+
+#: mount/umount.c:486
+#, c-format
+msgid "umount: %s mount disagrees with the fstab"
+msgstr "umount: pøipojení %s neodpovídá fstab"
+
+#: mount/umount.c:505
+#, c-format
+msgid "umount: only root can unmount %s from %s"
+msgstr "unmount: pouze u¾ivatel root mù¾e odpojit %s ze %s"
+
+#: mount/umount.c:515
+#, c-format
+msgid "umount: only %s can unmount %s from %s"
+msgstr "unmount: pouze u¾ivatel %s mù¾e odpojit %s ze %s"
+
+#: sys-utils/ctrlaltdel.c:26
+msgid "You must be root to set the Ctrl-Alt-Del behaviour.\n"
+msgstr "Pouze u¾ivatel root mù¾e nastavit chování Ctrl-Alt-Del.\n"
+
+#: sys-utils/ctrlaltdel.c:41
+msgid "Usage: ctrlaltdel hard|soft\n"
+msgstr "Pou¾ití: ctrlaltdel hard|soft\n"
+
+#: sys-utils/cytune.c:118
+#, c-format
+msgid ""
+"File %s, For threshold value %lu, Maximum characters in fifo were %d,\n"
+"and the maximum transfer rate in characters/second was %f\n"
+msgstr ""
+"Soubor %s, pro prahovou hodnotu %lu, maximální poèet znakù ve fifo byl %d\n"
+"a maximální pøenosová rychlost ve znacích za sekundu byla %f\n"
+
+#: sys-utils/cytune.c:129
+#, c-format
+msgid ""
+"File %s, For threshold value %lu and timrout value %lu, Maximum characters "
+"in fifo were %d,\n"
+"and the maximum transfer rate in characters/second was %f\n"
+msgstr ""
+"Soubor %s, pro prahovou hodnotu %lu a èasový limit %lu, maximální poèet "
+"znakù\n"
+"ve fifo byl %d a maximální pøenosová rychlost ve znacích za sekundu byla %f\n"
+
+#: sys-utils/cytune.c:196
+#, c-format
+msgid "Invalid interval value: %s\n"
+msgstr "Chybné rozpìtí: %s\n"
+
+#: sys-utils/cytune.c:204
+#, c-format
+msgid "Invalid set value: %s\n"
+msgstr "Chybná hodnota: %s\n"
+
+#: sys-utils/cytune.c:212
+#, c-format
+msgid "Invalid default value: %s\n"
+msgstr "Chybná implicitní hodnota: %s\n"
+
+#: sys-utils/cytune.c:220
+#, c-format
+msgid "Invalid set time value: %s\n"
+msgstr "Chybný èasový údaj: %s\n"
+
+#: sys-utils/cytune.c:228
+#, c-format
+msgid "Invalid default time value: %s\n"
+msgstr "Chybný implicitní èasový údaj: %s\n"
+
+#: sys-utils/cytune.c:245
+#, c-format
+msgid ""
+"Usage: %s [-q [-i interval]] ([-s value]|[-S value]) ([-t value]|[-T value]) "
+"[-g|-G] file [file...]\n"
+msgstr ""
+"Pou¾ití: %s [-q [-i interval]] ([-s hodnota]|[-S hodnota]) ([-t hodnota]|[-T "
+"hodnota]) [-g|-G] soubor [soubor...]\n"
+
+#: sys-utils/cytune.c:257 sys-utils/cytune.c:275 sys-utils/cytune.c:294
+#: sys-utils/cytune.c:342
+#, c-format
+msgid "Can't open %s: %s\n"
+msgstr "%s nelze otevøít: %s\n"
+
+#: sys-utils/cytune.c:264
+#, c-format
+msgid "Can't set %s to threshold %d: %s\n"
+msgstr "%s nelze nastavit na prahovou hodnotu %d: %s\n"
+
+#: sys-utils/cytune.c:282
+#, c-format
+msgid "Can't set %s to time threshold %d: %s\n"
+msgstr "%s nelze nastavit na èasový limit %d: %s\n"
+
+#: sys-utils/cytune.c:299 sys-utils/cytune.c:354 sys-utils/cytune.c:385
+#, c-format
+msgid "Can't get threshold for %s: %s\n"
+msgstr "Prahovou hodnotu pro %s nelze zjistit: %s\n"
+
+#: sys-utils/cytune.c:305 sys-utils/cytune.c:360 sys-utils/cytune.c:391
+#, c-format
+msgid "Can't get timeout for %s: %s\n"
+msgstr "Èasový limit pro %s nelze zjistit: %s\n"
+
+#: sys-utils/cytune.c:309
+#, c-format
+msgid "%s: %ld %s threshold and %ld %s timeout\n"
+msgstr "%s: %ld %s prahová hodnota a %ld %s èasový limit\n"
+
+#: sys-utils/cytune.c:311 sys-utils/cytune.c:313
+msgid "current"
+msgstr "aktuální"
+
+#: sys-utils/cytune.c:311 sys-utils/cytune.c:313
+msgid "default"
+msgstr "implicitní"
+
+#: sys-utils/cytune.c:330
+msgid "Can't set signal handler"
+msgstr "Zpracování signálu nelze nastavit"
+
+#: sys-utils/cytune.c:334 sys-utils/cytune.c:369
+msgid "gettimeofday failed"
+msgstr "volání gettimeofday selhalo"
+
+#: sys-utils/cytune.c:347 sys-utils/cytune.c:379
+#, c-format
+msgid "Can't issue CYGETMON on %s: %s\n"
+msgstr "CYGETMON nelze na %s provést: %s\n"
+
+#: sys-utils/cytune.c:421
+#, c-format
+msgid "%s: %lu ints, %lu/%lu chars; "
+msgstr "%s: %lu pøeru¹ení, %lu/%lu znakù; "
+
+#: sys-utils/cytune.c:422
+#, c-format
+msgid "fifo: %lu thresh, %lu tmout, "
+msgstr "fifo: %lu práh, %lu èasový limit, "
+
+#: sys-utils/cytune.c:423
+#, c-format
+msgid "%lu max, %lu now\n"
+msgstr "%lu max, %lu nyní\n"
+
+#: sys-utils/cytune.c:428
+#, c-format
+msgid "   %f int/sec; %f rec, %f send (char/sec)\n"
+msgstr "   %f pøer/sek; %f pøíj, %f odesl (znak/sek)\n"
+
+#: sys-utils/cytune.c:433
+#, c-format
+msgid ""
+"%s: %lu ints, %lu chars; fifo: %lu thresh, %lu tmout, %lu max, %lu now\n"
+msgstr ""
+"%s: %lu pøeru¹ení, %lu znakù; fifo: %lu práh, %lu èasový limit, %lu max, %lu "
+"nyní\n"
+
+#: sys-utils/cytune.c:438
+#, c-format
+msgid "   %f int/sec; %f rec (char/sec)\n"
+msgstr "   %f pøer/sek; %f pøíj (znak/sek)\n"
+
+#: sys-utils/dmesg.c:38
+#, c-format
+msgid "Usage: %s [-c] [-n level] [-s bufsize]\n"
+msgstr "Pou¾ití: %s [-c] [-n úroveò] [-s velikost bufferu]\n"
+
+#: sys-utils/ipcrm.c:46
+#, c-format
+msgid "usage: %s [shm | msg | sem] id\n"
+msgstr "Pou¾ití: %s [shm | msg | sem] id\n"
+
+#: sys-utils/ipcrm.c:70
+#, c-format
+msgid "usage: %s [-shm | -msg | -sem] id\n"
+msgstr "Pou¾ití: %s [-shm | -msg | -sem] id\n"
+
+#: sys-utils/ipcrm.c:73
+msgid "resource deleted\n"
+msgstr "prostøedek smazán\n"
+
+#: sys-utils/ipcs.c:91
+#, c-format
+msgid "usage : %s -asmq -tclup \n"
+msgstr "Pou¾ití : %s -asmq -tclup \n"
+
+#: sys-utils/ipcs.c:92
+#, c-format
+msgid "\t%s [-s -m -q] -i id\n"
+msgstr "\t%s [-s -m -q] -i id\n"
+
+#: sys-utils/ipcs.c:93
+#, c-format
+msgid "\t%s -h for help.\n"
+msgstr "\t%s -h pro nápovìdu.\n"
+
+#: sys-utils/ipcs.c:99
+#, c-format
+msgid "%s provides information on ipc facilities for"
+msgstr "%s poskytuje informace o ipc prostøedcích, "
+
+#: sys-utils/ipcs.c:100
+msgid " which you have read access.\n"
+msgstr "je kterým máte pøístup pro ètení.\n"
+
+#: sys-utils/ipcs.c:101
+msgid ""
+"Resource Specification:\n"
+"\t-m : shared_mem\n"
+"\t-q : messages\n"
+msgstr ""
+"Zadání prostøedku:\n"
+"\t-m : sdílená pamì»\n"
+"\t-q : zprávy\n"
+
+#: sys-utils/ipcs.c:102
+msgid ""
+"\t-s : semaphores\n"
+"\t-a : all (default)\n"
+msgstr ""
+"\t-s : semafory\n"
+"\t-a : v¹e (implicitní)\n"
+
+#: sys-utils/ipcs.c:103
+msgid ""
+"Output Format:\n"
+"\t-t : time\n"
+"\t-p : pid\n"
+"\t-c : creator\n"
+msgstr ""
+"Výstupní formát:\n"
+"\t-t : èas\n"
+"\t-p : pid\n"
+"\t-c : tvùrce\n"
+
+#: sys-utils/ipcs.c:104
+msgid ""
+"\t-l : limits\n"
+"\t-u : summary\n"
+msgstr ""
+"\t-l : omezení\n"
+"\t-u : shrnutí\n"
+
+#: sys-utils/ipcs.c:105
+msgid "-i id [-s -q -m] : details on resource identified by id\n"
+msgstr "-i id [-s -q -m] : podrobnosti o prostøedku urèeném dle id\n"
+
+#: sys-utils/ipcs.c:237 sys-utils/ipcs.c:439
+msgid "kernel not configured for shared memory\n"
+msgstr "jádro nepodporuje sdílenou pamì»\n"
+
+#: sys-utils/ipcs.c:243
+msgid "------ Shared Memory Limits --------\n"
+msgstr "------ Omezení pro sdílenou pamì» --------\n"
+
+#: sys-utils/ipcs.c:246
+#, c-format
+msgid "max number of segments = %d\n"
+msgstr "maximální poèet segmentù = %d\n"
+
+#: sys-utils/ipcs.c:247
+#, c-format
+msgid "max seg size (kbytes) = %d\n"
+msgstr "maximální velikost segmentu (v kilobajtech) = %d\n"
+
+#: sys-utils/ipcs.c:248
+#, c-format
+msgid "max total shared memory (kbytes) = %d\n"
+msgstr "celkové maximum pro sdílenou pamì» (v kilobajtech) = %d\n"
+
+#: sys-utils/ipcs.c:249
+#, c-format
+msgid "min seg size (bytes) = %d\n"
+msgstr "minimální velikost segmentu (v bajtech) = %d\n"
+
+#: sys-utils/ipcs.c:253
+msgid "------ Shared Memory Status --------\n"
+msgstr "------ Stav sdílené pamìti --------\n"
+
+#: sys-utils/ipcs.c:254
+#, c-format
+msgid "segments allocated %d\n"
+msgstr "alokované segmenty %d\n"
+
+#: sys-utils/ipcs.c:255
+#, c-format
+msgid "pages allocated %ld\n"
+msgstr "alokované stránky %ld\n"
+
+#: sys-utils/ipcs.c:256
+#, c-format
+msgid "pages resident  %ld\n"
+msgstr "rezidentní stránky %ld\n"
+
+#: sys-utils/ipcs.c:257
+#, c-format
+msgid "pages swapped   %ld\n"
+msgstr "stránky v odkládacím prostoru %ld\n"
+
+#: sys-utils/ipcs.c:258
+#, c-format
+msgid "Swap performance: %ld attempts\t %ld successes\n"
+msgstr "Statistika pro odkládání: pokusù: %ld\t, z toho úspì¹ných: %ld\n"
+
+#: sys-utils/ipcs.c:263
+msgid "------ Shared Memory Segment Creators/Owners --------\n"
+msgstr "------ Tvùrci/vlastníci segmentù sdílené pamìti ------\n"
+
+#: sys-utils/ipcs.c:264 sys-utils/ipcs.c:370 sys-utils/ipcs.c:462
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s%-10s\n"
+msgstr "%-10s%-10s%-10s%-10s%-10s%-10s\n"
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:271 sys-utils/ipcs.c:276
+#: sys-utils/ipcs.c:281 sys-utils/ipcs.c:377
+msgid "shmid"
+msgstr "shmid"
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:282 sys-utils/ipcs.c:371
+#: sys-utils/ipcs.c:386 sys-utils/ipcs.c:463 sys-utils/ipcs.c:480
+msgid "perms"
+msgstr "práva"
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:371 sys-utils/ipcs.c:463
+msgid "cuid"
+msgstr "cuid"
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:371 sys-utils/ipcs.c:463
+msgid "cgid"
+msgstr "cgid"
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:371 sys-utils/ipcs.c:463
+msgid "uid"
+msgstr "uid"
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:463
+msgid "gid"
+msgstr "gid"
+
+#: sys-utils/ipcs.c:269
+msgid "------ Shared Memory Attach/Detach/Change Times --------\n"
+msgstr "------ Èasy pøipojení/odpojení/zmìny pro sdílenou pamì» --------\n"
+
+#: sys-utils/ipcs.c:270
+#, c-format
+msgid "%-10s%-10s  %-20s%-20s%-20s\n"
+msgstr "%-10s%-10s  %-20s%-20s%-20s\n"
+
+#: sys-utils/ipcs.c:271 sys-utils/ipcs.c:276 sys-utils/ipcs.c:282
+#: sys-utils/ipcs.c:377 sys-utils/ipcs.c:386 sys-utils/ipcs.c:469
+#: sys-utils/ipcs.c:474 sys-utils/ipcs.c:480
+msgid "owner"
+msgstr "vlastník"
+
+#: sys-utils/ipcs.c:271
+msgid "attached"
+msgstr "pøipojení"
+
+#: sys-utils/ipcs.c:271
+msgid "detached"
+msgstr "odpojení"
+
+#: sys-utils/ipcs.c:271
+msgid "changed"
+msgstr "zmìna"
+
+#: sys-utils/ipcs.c:275
+msgid "------ Shared Memory Creator/Last-op --------\n"
+msgstr "------ Tvùrce sdílené pamìti/poslední operace --------\n"
+
+#: sys-utils/ipcs.c:276 sys-utils/ipcs.c:474
+#, c-format
+msgid "%-10s%-10s%-10s%-10s\n"
+msgstr "%-10s%-10s%-10s%-10s\n"
+
+#: sys-utils/ipcs.c:276
+msgid "cpid"
+msgstr "cpid"
+
+#: sys-utils/ipcs.c:276
+msgid "lpid"
+msgstr "lpid"
+
+#: sys-utils/ipcs.c:280
+msgid "------ Shared Memory Segments --------\n"
+msgstr "------ Segmenty sdílené pamìti --------\n"
+
+#: sys-utils/ipcs.c:281
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s%-10s%-12s\n"
+msgstr "%-10s%-10s%-10s%-10s%-10s%-10s%-12s\n"
+
+#: sys-utils/ipcs.c:281 sys-utils/ipcs.c:386 sys-utils/ipcs.c:479
+msgid "key"
+msgstr "klíè"
+
+#: sys-utils/ipcs.c:282
+msgid "bytes"
+msgstr "bajty"
+
+#: sys-utils/ipcs.c:282
+msgid "nattch"
+msgstr "nattch"
+
+#: sys-utils/ipcs.c:282 sys-utils/ipcs.c:386
+msgid "status"
+msgstr "stav"
+
+#: sys-utils/ipcs.c:302 sys-utils/ipcs.c:303 sys-utils/ipcs.c:304
+#: sys-utils/ipcs.c:407 sys-utils/ipcs.c:408 sys-utils/ipcs.c:500
+#: sys-utils/ipcs.c:501 sys-utils/ipcs.c:502
+msgid "Not set"
+msgstr "Nenastaveno"
+
+#: sys-utils/ipcs.c:324
+msgid "dest"
+msgstr "cíl"
+
+#: sys-utils/ipcs.c:325
+msgid "locked"
+msgstr "zamèeno"
+
+#: sys-utils/ipcs.c:345
+msgid "kernel not configured for semaphores\n"
+msgstr "jádro nepodporuje semafory\n"
+
+#: sys-utils/ipcs.c:351
+msgid "------ Semaphore Limits --------\n"
+msgstr "------Omezení pro semafory --------\n"
+
+#: sys-utils/ipcs.c:355
+#, c-format
+msgid "max number of arrays = %d\n"
+msgstr "maximální poèet polí = %d\n"
+
+#: sys-utils/ipcs.c:356
+#, c-format
+msgid "max semaphores per array = %d\n"
+msgstr "maximální poèet semaforù v poli = %d\n"
+
+#: sys-utils/ipcs.c:357
+#, c-format
+msgid "max semaphores system wide = %d\n"
+msgstr "celkový maximální poèet semaforù = %d\n"
+
+#: sys-utils/ipcs.c:358
+#, c-format
+msgid "max ops per semop call = %d\n"
+msgstr "maximální poèet operací na jedno semop volání = %d\n"
+
+#: sys-utils/ipcs.c:359
+#, c-format
+msgid "semaphore max value = %d\n"
+msgstr "maximální hodnota semaforu = %d\n"
+
+#: sys-utils/ipcs.c:363
+msgid "------ Semaphore Status --------\n"
+msgstr "------ Stav semaforu --------\n"
+
+#: sys-utils/ipcs.c:364
+#, c-format
+msgid "used arrays = %d\n"
+msgstr "pou¾itá pole = %d\n"
+
+#: sys-utils/ipcs.c:365
+#, c-format
+msgid "allocated semaphores = %d\n"
+msgstr "alokované semafory = %d\n"
+
+#: sys-utils/ipcs.c:369
+msgid "------ Semaphore Arrays Creators/Owners --------\n"
+msgstr "------ Tvùrci/vlastníci polí semaforù --------\n"
+
+#: sys-utils/ipcs.c:371 sys-utils/ipcs.c:386
+msgid "semid"
+msgstr "semid"
+
+#: sys-utils/ipcs.c:375
+msgid "------ Shared Memory Operation/Change Times --------\n"
+msgstr "------ Èasy operace/zmìny sdílené pamìti --------\n"
+
+#: sys-utils/ipcs.c:376
+#, c-format
+msgid "%-8s%-10s  %-26.24s %-26.24s\n"
+msgstr "%-8s%-10s  %-26.24s %-26.24s\n"
+
+#: sys-utils/ipcs.c:377
+msgid "last-op"
+msgstr "poslední operace"
+
+#: sys-utils/ipcs.c:377
+msgid "last-changed"
+msgstr "poslední zmìna"
+
+#: sys-utils/ipcs.c:384
+msgid "------ Semaphore Arrays --------\n"
+msgstr "------ Pole semaforù --------\n"
+
+#: sys-utils/ipcs.c:385
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s%-12s\n"
+msgstr "%-10s%-10s%-10s%-10s%-10s%-12s\n"
+
+#: sys-utils/ipcs.c:386
+msgid "nsems"
+msgstr "nsems"
+
+#: sys-utils/ipcs.c:447
+msgid "------ Messages: Limits --------\n"
+msgstr "------ Zprávy: Omezení --------\n"
+
+#: sys-utils/ipcs.c:448
+#, c-format
+msgid "max queues system wide = %d\n"
+msgstr "celkový maximální poèet front = %d\n"
+
+#: sys-utils/ipcs.c:449
+#, c-format
+msgid "max size of message (bytes) = %d\n"
+msgstr "maximální velikost zprávy (v bajtech) = %d\n"
+
+#: sys-utils/ipcs.c:450
+#, c-format
+msgid "default max size of queue (bytes) = %d\n"
+msgstr "implicitní maximální velikost fronty (v bajtech) = %d\n"
+
+#: sys-utils/ipcs.c:454
+msgid "------ Messages: Status --------\n"
+msgstr "------ Zprávy: Stav --------\n"
+
+#: sys-utils/ipcs.c:455
+#, c-format
+msgid "allocated queues = %d\n"
+msgstr "alokované fronty = %d\n"
+
+#: sys-utils/ipcs.c:456
+#, c-format
+msgid "used headers = %d\n"
+msgstr "pou¾ité hlavièky = %d\n"
+
+#: sys-utils/ipcs.c:457
+#, c-format
+msgid "used space = %d bytes\n"
+msgstr "pou¾itý prostor (v bajtech) = %d\n"
+
+#: sys-utils/ipcs.c:461
+msgid "------ Message Queues: Creators/Owners --------\n"
+msgstr "------ Fronty zpráv: Tvùrci/Vlastníci --------\n"
+
+#: sys-utils/ipcs.c:463 sys-utils/ipcs.c:469 sys-utils/ipcs.c:474
+#: sys-utils/ipcs.c:479
+msgid "msqid"
+msgstr "msqid"
+
+#: sys-utils/ipcs.c:467
+msgid "------ Message Queues Send/Recv/Change Times --------\n"
+msgstr "------ Èasy odeslání.pøíchodu/zmìny pro fronty zpráv --------\n"
+
+#: sys-utils/ipcs.c:468
+#, c-format
+msgid "%-8s%-10s  %-20s%-20s%-20s\n"
+msgstr "%-8s%-10s  %-20s%-20s%-20s\n"
+
+#: sys-utils/ipcs.c:469
+msgid "send"
+msgstr "odeslání"
+
+#: sys-utils/ipcs.c:469
+msgid "recv"
+msgstr "pøíjem"
+
+#: sys-utils/ipcs.c:469
+msgid "change"
+msgstr "zmìna"
+
+#: sys-utils/ipcs.c:473
+msgid "------ Message Queues PIDs --------\n"
+msgstr "------ PID pro fronty zpráv --------\n"
+
+#: sys-utils/ipcs.c:474
+msgid "lspid"
+msgstr "lspid"
+
+#: sys-utils/ipcs.c:474
+msgid "lrpid"
+msgstr "lrpid"
+
+#: sys-utils/ipcs.c:478
+msgid "------ Message Queues --------\n"
+msgstr "------ Fronty zpráv --------\n"
+
+#: sys-utils/ipcs.c:479
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-12s%-12s\n"
+msgstr "%-10s%-10s%-10s%-10s%-12s%-12s\n"
+
+#: sys-utils/ipcs.c:480
+msgid "used-bytes"
+msgstr "u¾ité bajty"
+
+#: sys-utils/ipcs.c:480
+msgid "messages"
+msgstr "zprávy"
+
+#: sys-utils/ipcs.c:539
+#, c-format
+msgid ""
+"\n"
+"Shared memory Segment shmid=%d\n"
+msgstr ""
+"\n"
+"shmid segmentu sdílené pamìti = %d\n"
+
+#: sys-utils/ipcs.c:540
+#, c-format
+msgid "uid=%d\tgid=%d\tcuid=%d\tcgid=%d\n"
+msgstr "uid=%d\tgid=%d\tcuid=%d\tcgid=%d\n"
+
+#: sys-utils/ipcs.c:542
+#, c-format
+msgid "mode=%#o\taccess_perms=%#o\n"
+msgstr "mód=%#o\tpøístupová práva=%#o\n"
+
+#: sys-utils/ipcs.c:543
+#, c-format
+msgid "bytes=%d\tlpid=%d\tcpid=%d\tnattch=%d\n"
+msgstr "bajtù=%d\tlpid=%d\tcpid=%d\tnattch=%d\n"
+
+#: sys-utils/ipcs.c:546
+#, c-format
+msgid "att_time=%s"
+msgstr "pøipoj_èas=%s"
+
+#: sys-utils/ipcs.c:547 sys-utils/ipcs.c:549 sys-utils/ipcs.c:598
+msgid "Not set\n"
+msgstr "Nenastaveno\n"
+
+#: sys-utils/ipcs.c:548
+#, c-format
+msgid "det_time=%s"
+msgstr "odpoj_èas=%s"
+
+#: sys-utils/ipcs.c:550
+#, c-format
+msgid "change_time=%s"
+msgstr "èas_zmìny=%s"
+
+#: sys-utils/ipcs.c:566
+#, c-format
+msgid ""
+"\n"
+"Message Queue msqid=%d\n"
+msgstr ""
+"\n"
+"msgid fronty zpráv=%d\n"
+
+#: sys-utils/ipcs.c:567
+#, c-format
+msgid "uid=%d\tgid=%d\tcuid=%d\tcgid=%d\tmode=%#o\n"
+msgstr "uid=%d\tgid=%d\tcuid=%d\tcgid=%d\tmód=%#o\n"
+
+#: sys-utils/ipcs.c:569
+#, c-format
+msgid "cbytes=%d\tqbytes=%d\tqnum=%d\tlspid=%d\tlrpid=%d\n"
+msgstr "cbytes=%d\tqbytes=%d\tqnum=%d\tlspid=%d\tlrpid=%d\n"
+
+#: sys-utils/ipcs.c:572
+#, c-format
+msgid "send_time=%srcv_time=%schange_time=%s"
+msgstr "send_time=%srcv_time=%schange_time=%s"
+
+#: sys-utils/ipcs.c:573 sys-utils/ipcs.c:574 sys-utils/ipcs.c:575
+msgid "Not Set\n"
+msgstr "Nenastaveno\n"
+
+#: sys-utils/ipcs.c:592
+#, c-format
+msgid ""
+"\n"
+"Semaphore Array semid=%d\n"
+msgstr ""
+"\n"
+"semid pole semaforù = %d\n"
+
+#: sys-utils/ipcs.c:593
+#, c-format
+msgid "uid=%d\t gid=%d\t cuid=%d\t cgid=%d\n"
+msgstr "uid=%d\t gid=%d\t cuid=%d\t cgid=%d\n"
+
+#: sys-utils/ipcs.c:595
+#, c-format
+msgid "mode=%#o, access_perms=%#o\n"
+msgstr "mód=%#o, pøístupová práva=%#o\n"
+
+#: sys-utils/ipcs.c:596
+#, c-format
+msgid "nsems = %d\n"
+msgstr "nsems = %d\n"
+
+#: sys-utils/ipcs.c:597
+#, c-format
+msgid "otime = %s"
+msgstr "èas poslední operace = %s"
+
+#: sys-utils/ipcs.c:599
+#, c-format
+msgid "ctime = %s"
+msgstr "èas zmìny = %s"
+
+#: sys-utils/ipcs.c:601
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s\n"
+msgstr "%-10s%-10s%-10s%-10s%-10s\n"
+
+#: sys-utils/ipcs.c:601
+msgid "semnum"
+msgstr "semnum"
+
+#: sys-utils/ipcs.c:601
+msgid "value"
+msgstr "hodnota"
+
+#: sys-utils/ipcs.c:601
+msgid "ncount"
+msgstr "ncount"
+
+#: sys-utils/ipcs.c:602
+msgid "zcount"
+msgstr "zcount"
+
+#: sys-utils/ipcs.c:602
+msgid "pid"
+msgstr "pid"
+
+#: sys-utils/rdev.c:68
+msgid "usage: rdev [ -rsv ] [ -o OFFSET ] [ IMAGE [ VALUE [ OFFSET ] ] ]"
+msgstr "Pou¾ití: rsv [ -rsv ] [ -o POSUN ] [ OBRAZ [ HODNOTA [ POSUN ] ] ]"
+
+#: sys-utils/rdev.c:69
+msgid ""
+"  rdev /dev/fd0  (or rdev /linux, etc.) displays the current ROOT device"
+msgstr "  rdev /dev/fd0  (èi rdev /linux, etc.) vypí¹e aktuální ROOT zaøízení"
+
+#: sys-utils/rdev.c:70
+msgid "  rdev /dev/fd0 /dev/hda2         sets ROOT to /dev/hda2"
+msgstr "  rdev /dev/fd0 /dev/hda2         nastaví ROOT na /dev/hda2"
+
+#: sys-utils/rdev.c:71
+msgid "  rdev -R /dev/fd0 1              set the ROOTFLAGS (readonly status)"
+msgstr ""
+"  rdev -R /dev/fd0 1              nastaví PØÍZNAKY ROOT (pouze pro ètení)"
+
+#: sys-utils/rdev.c:72
+msgid "  rdev -s /dev/fd0 /dev/hda2      set the SWAP device"
+msgstr ""
+"  rdev -s /dev/fd0 /dev/hda2      nastaví zaøízení pro odkládací prostor"
+
+#: sys-utils/rdev.c:73
+msgid "  rdev -r /dev/fd0 627            set the RAMDISK size"
+msgstr "  rdev -r /dev/fd0 627            nastaví velikost RAMDISKU"
+
+#: sys-utils/rdev.c:74
+msgid "  rdev -v /dev/fd0 1              set the bootup VIDEOMODE"
+msgstr "  rdev -v /dev/fd0 1              nastaví startovací VIDEOMÓD"
+
+#: sys-utils/rdev.c:75
+msgid "  rdev -o N ...                   use the byte offset N"
+msgstr "  rdev -o N ...                   posun v bajtech"
+
+#: sys-utils/rdev.c:76
+msgid "  rootflags ...                   same as rdev -R"
+msgstr "  root pøíznaky ...               stejné jako rdev -R"
+
+#: sys-utils/rdev.c:77
+msgid "  swapdev ...                     same as rdev -s"
+msgstr "  odkládací prostor ...           stejné jako rdev -s"
+
+#: sys-utils/rdev.c:78
+msgid "  ramsize ...                     same as rdev -r"
+msgstr "  velikost ram ...                stejné jako rdev -r"
+
+#: sys-utils/rdev.c:79
+msgid "  vidmode ...                     same as rdev -v"
+msgstr "  vidmód ...                      stejné jako rdev -v"
+
+#: sys-utils/rdev.c:80
+msgid ""
+"Note: video modes are: -3=Ask, -2=Extended, -1=NormalVga, 1=key1, 2=key2,..."
+msgstr ""
+"Poznámka: video módy: -3=Ask, -2=Extended, -1=NormalVga, 1=kláv1, 2=kláv2,..."
+
+#: sys-utils/rdev.c:81
+msgid "      use -R 1 to mount root readonly, -R 0 for read/write."
+msgstr "          Pomocí -R 1 pøipojíte pouze pro ètení, -R 0 umo¾ní zápis."
+
+#: sys-utils/readprofile.c:50
+#, c-format
+msgid ""
+"%s: Usage: \"%s [options]\n"
+"\t -m <mapfile>  (default = \"%s\")\n"
+"\t -p <pro-file> (default = \"%s\")\n"
+"\t -i            print only info about the sampling step\n"
+"\t -v            print verbose data\n"
+"\t -a            print all symbols, even if count is 0\n"
+"\t -r            reset all the counters (root only)\n"
+"\t -V            print version and exit\n"
+msgstr ""
+"%s: Pou¾ití: \"%s [pøepínaèe]\n"
+"\t -m <mapsoubor>  (implicitní = \"%s\")\n"
+"\t -p <pro-soubor> (implicitní = \"%s\")\n"
+"\t -i            vypí¹e pouze informace o profilovacím kroku\n"
+"\t -v            vypí¹e podrobné informace\n"
+"\t -a            vypí¹e ve¹keré symboly i pokud je hodnota èítaèe 0\n"
+"\t -r            vynuluje ve¹keré èítaèe (pouze root)\n"
+"\t -V            vypí¹e informace o verzi a skonèí\n"
+
+#: sys-utils/readprofile.c:113
+#, c-format
+msgid "%s Version %s\n"
+msgstr "%s Verze %s\n"
+
+#: sys-utils/readprofile.c:125
+msgid "anything\n"
+msgstr "cokoliv\n"
+
+#: sys-utils/readprofile.c:154
+#, c-format
+msgid "Sampling_step: %i\n"
+msgstr "Profilovací_krok: %i\n"
+
+#: sys-utils/readprofile.c:167 sys-utils/readprofile.c:193
+#, c-format
+msgid "%s: %s(%i): wrong map line\n"
+msgstr "%s: %s(%i): chybný map øádek\n"
+
+#: sys-utils/readprofile.c:180
+#, c-format
+msgid "%s: can't find \"_stext\" in %s\n"
+msgstr "%s: \"_stext\" nelze v %s nalézt\n"
+
+#: sys-utils/readprofile.c:221
+msgid "total"
+msgstr "celkem"
+
+#: sys-utils/renice.c:67
+msgid ""
+"usage: renice priority [ [ -p ] pids ] [ [ -g ] pgrps ] [ [ -u ] users ]\n"
+msgstr ""
+"Pou¾ití: renice priorita [ [ -p ] pid ] [[ -g ] pgrp ] [ [ -u ] u¾ivatel ]\n"
+
+#: sys-utils/renice.c:94
+#, c-format
+msgid "renice: %s: unknown user\n"
+msgstr "renice: %s: neznámý u¾ivatel\n"
+
+#: sys-utils/renice.c:102
+#, c-format
+msgid "renice: %s: bad value\n"
+msgstr "renice: %s: chybná hodnota\n"
+
+#: sys-utils/renice.c:121
+msgid "getpriority"
+msgstr "getpriority"
+
+#: sys-utils/renice.c:126
+msgid "setpriority"
+msgstr "setpriority"
+
+#: sys-utils/renice.c:129
+#, c-format
+msgid "%d: old priority %d, new priority %d\n"
+msgstr "%d: pùvodní priorita %d, nová priorita %d\n"
+
+#: sys-utils/setsid.c:23
+#, c-format
+msgid "usage: %s program [arg ...]\n"
+msgstr "Pou¾ití: %s program [arg ...]\n"
+
+#: sys-utils/tunelp.c:76
+#, c-format
+msgid ""
+"Usage: %s <device> [ -i <IRQ> | -t <TIME> | -c <CHARS> | -w <WAIT> | \n"
+"          -a [on|off] | -o [on|off] | -C [on|off] | -q [on|off] | -s | \n"
+"          -T [on|off] ]\n"
+msgstr ""
+"Pou¾ití: %s <zaøízení> [ -i <IRQ> | -t <ÈAS> | -c <ZNAKY> | -w <ÈEKÁNÍ> | \n"
+"            -a [on|off] | -o [on|off] | -C [on|off] | -q [on|off] | -s |\n"
+"            -T [on|off] ]\n"
+
+#: sys-utils/tunelp.c:92
+msgid "malloc error"
+msgstr "chyba malloc"
+
+#: sys-utils/tunelp.c:103
+msgid "sscanf error"
+msgstr "chyba sscanf"
+
+#: sys-utils/tunelp.c:236
+#, c-format
+msgid "%s: %s not an lp device.\n"
+msgstr "%s: %s není lp zaøízením\n"
+
+#: sys-utils/tunelp.c:257
+#, c-format
+msgid "%s status is %d"
+msgstr "status %s je %d"
+
+#: sys-utils/tunelp.c:258
+msgid ", busy"
+msgstr ", zaneprázdnìna"
+
+#: sys-utils/tunelp.c:259
+msgid ", ready"
+msgstr ", pøipravena"
+
+#: sys-utils/tunelp.c:260
+msgid ", out of paper"
+msgstr ", do¹el papír"
+
+#: sys-utils/tunelp.c:261
+msgid ", on-line"
+msgstr ", zapnuta"
+
+#: sys-utils/tunelp.c:262
+msgid ", error"
+msgstr ", chyba"
+
+#: sys-utils/tunelp.c:279
+msgid "LPGETIRQ error"
+msgstr "chyba LPGETIRQ"
+
+#: sys-utils/tunelp.c:285
+#, c-format
+msgid "%s using IRQ %d\n"
+msgstr "%s pou¾ívá IRQ %d\n"
+
+#: sys-utils/tunelp.c:287
+#, c-format
+msgid "%s using polling\n"
+msgstr "%s pou¾ívá poll\n"
+
+#: text-utils/col.c:150
+#, c-format
+msgid "col: bad -l argument %s.\n"
+msgstr "col: chybný argument %s pro pøepínaè -l\n"
+
+#: text-utils/col.c:511
+msgid "usage: col [-bfx] [-l nline]\n"
+msgstr "Pou¾ití: col [-bfx] [-l poè. øádkù]\n"
+
+#: text-utils/col.c:517
+msgid "col: write error.\n"
+msgstr "col: chyba pøi ukládání\n"
+
+#: text-utils/col.c:524
+#, c-format
+msgid "col: warning: can't back up %s.\n"
+msgstr "col: varování: %s nelze zazálohovat.\n"
+
+#: text-utils/col.c:525
+msgid "past first line"
+msgstr "jsem za prvním øádkem"
+
+#: text-utils/col.c:525
+msgid "-- line already flushed"
+msgstr "-- øádek ji¾ není v bufru"
+
+#: text-utils/colcrt.c:93
+#, c-format
+msgid "usage: %s [ - ] [ -2 ] [ file ... ]\n"
+msgstr "Pou¾ití: %s [ - ] [-2 ] [ soubor ... ]\n"
+
+#: text-utils/column.c:276
+msgid "line too long"
+msgstr "øádek je pøíli¹ dlouhý"
+
+#: text-utils/column.c:311
+msgid "usage: column [-tx] [-c columns] [file ...]\n"
+msgstr "Pou¾ití: column [-tx] [c sloupce] [soubor ...]\n"
+
+#: text-utils/hexsyntax.c:80
+msgid "hexdump: bad length value.\n"
+msgstr "hexdump: chybná délka\n"
+
+#: text-utils/hexsyntax.c:91
+msgid "hexdump: bad skip value.\n"
+msgstr "hexdump: chybná vzdálenost\n"
+
+#: text-utils/hexsyntax.c:129
+msgid ""
+"hexdump: [-bcdovx] [-e fmt] [-f fmt_file] [-n length] [-s skip] [file ...]\n"
+msgstr ""
+"hexdump: [-bcdovx] [-e fmt] [-f fmt_soubor] [-n délka] [-s vzdálenost] "
+"[soubor ...]\n"
+
+#: text-utils/more.c:328
+#, c-format
+msgid "usage: %s [-dfln] [+linenum | +/pattern] name1 name2 ...\n"
+msgstr "Pou¾ití: %s [-dfln] [+èíslo øádku | +/vzorek] jméno1 jméno2 ...\n"
+
+#: text-utils/more.c:503
+#, c-format
+msgid ""
+"\n"
+"*** %s: directory ***\n"
+"\n"
+msgstr ""
+"\n"
+"*** %s je adresáø ***\n"
+"\n"
+
+#. simple ELF detection
+#: text-utils/more.c:542
+#, c-format
+msgid ""
+"\n"
+"******** %s: Not a text file ********\n"
+"\n"
+msgstr ""
+"\n"
+"***** %s není textovým souborem *****\n"
+"\n"
+
+#: text-utils/more.c:646
+msgid "[Use q or Q to quit]"
+msgstr "[Stisknìte q èi Q pro ukonèení]"
+
+#: text-utils/more.c:832
+msgid "--More--"
+msgstr "--Více--"
+
+#: text-utils/more.c:834
+#, c-format
+msgid "(Next file: %s)"
+msgstr "(Dal¹í soubor: %s)"
+
+#: text-utils/more.c:840
+msgid "[Press space to continue, 'q' to quit.]"
+msgstr "[Stisknìte mezerník pro pokraèování, 'q' pro ukonèení.]"
+
+#: text-utils/more.c:1138
+#, c-format
+msgid "...back %d page"
+msgstr "...pøeskakuji zpìt o poèet stran: %d"
+
+#: text-utils/more.c:1184
+#, c-format
+msgid "...skipping %d line"
+msgstr "...pøeskakuji o poèet øádkù: %d"
+
+#: text-utils/more.c:1225
+msgid ""
+"\n"
+"***Back***\n"
+"\n"
+msgstr ""
+"\n"
+"***Zpìt***\n"
+
+#: text-utils/more.c:1263
+msgid "Can't open help file"
+msgstr "Soubor s nápovìdou nelze otevøít."
+
+#: text-utils/more.c:1284 text-utils/more.c:1288
+msgid "[Press 'h' for instructions.]"
+msgstr "[Stisknìte 'h' pro nápovìdu.]"
+
+#: text-utils/more.c:1323
+#, c-format
+msgid "\"%s\" line %d"
+msgstr "\"%s\" øádek %d"
+
+#: text-utils/more.c:1325
+#, c-format
+msgid "[Not a file] line %d"
+msgstr "[Nejedná se o soubor] øádek %d"
+
+#: text-utils/more.c:1409
+msgid "  Overflow\n"
+msgstr "  Pøeteèení\n"
+
+#: text-utils/more.c:1456
+msgid "...skipping\n"
+msgstr "...vynechávám\n"
+
+#: text-utils/more.c:1486
+msgid "Regular expression botch"
+msgstr "Chyba v regulárním výrazu"
+
+#: text-utils/more.c:1498
+msgid ""
+"\n"
+"Pattern not found\n"
+msgstr ""
+"\n"
+"Vzorek nebyl nalezen\n"
+
+#: text-utils/more.c:1501
+msgid "Pattern not found"
+msgstr "Vzorek nebyl nalezen"
+
+#: text-utils/more.c:1562
+msgid "can't fork\n"
+msgstr "volání fork selhalo\n"
+
+#: text-utils/more.c:1601
+msgid ""
+"\n"
+"...Skipping "
+msgstr ""
+"\n"
+"...Vynechávám "
+
+#: text-utils/more.c:1605
+msgid "...Skipping "
+msgstr "...Pøecházím "
+
+#: text-utils/more.c:1606
+msgid "to file "
+msgstr "na soubor "
+
+#: text-utils/more.c:1606
+msgid "back to file "
+msgstr "zpìt na soubor "
+
+#: text-utils/more.c:1845
+msgid "Line too long"
+msgstr "Øádek je pøíli¹ dlouhý"
+
+#: text-utils/more.c:1889
+msgid "No previous command to substitute for"
+msgstr "Neexistuje ¾ádný pøíkaz, jen¾ by bylo mo¾no nahradit"
+
+#: text-utils/odsyntax.c:133
+msgid "od: od(1) has been deprecated for hexdump(1).\n"
+msgstr "od: program od(1) je zastaralý, místo nìj pou¾ijte hexdump(1).\n"
+
+#: text-utils/odsyntax.c:136
+#, c-format
+msgid "od: hexdump(1) compatibility doesn't support the -%c option%s\n"
+msgstr "od: re¾im kompatibility s hexdump(1) nepodporuje -%c volbu%s\n"
+
+#: text-utils/odsyntax.c:137
+msgid "; see strings(1)."
+msgstr "; viz strings(1)."
+
+#: text-utils/parse.c:63
+#, c-format
+msgid "hexdump: can't read %s.\n"
+msgstr "hexdump: %s nelze èíst.\n"
+
+#: text-utils/parse.c:68
+msgid "hexdump: line too long.\n"
+msgstr "hexdump: øádek je pøíli¹ dlouhý.\n"
+
+#: text-utils/parse.c:406
+msgid "hexdump: byte count with multiple conversion characters.\n"
+msgstr "hexdump: poèet bajtù s více ne¾ jedním konverzním znakem.\n"
+
+#: text-utils/parse.c:490
+#, c-format
+msgid "hexdump: bad byte count for conversion character %s.\n"
+msgstr "hexdump: chybný poèet bajtù pro konverzní znak %s.\n"
+
+#: text-utils/parse.c:497
+msgid "hexdump: %%s requires a precision or a byte count.\n"
+msgstr "hexdump: %%s vy¾aduje uvedení pøesnosti èi poètu bajtù.\n"
+
+#: text-utils/parse.c:503
+#, c-format
+msgid "hexdump: bad format {%s}\n"
+msgstr "hexdump: chybný formát {%s}\n"
+
+#: text-utils/parse.c:509
+msgid "hexdump: bad conversion character %%%s.\n"
+msgstr "hexdump: chybný znak v konverzi %%%s.\n"
+
+#: text-utils/rev.c:109
+msgid "Unable to allocate bufferspace\n"
+msgstr "Místo pro buffer nelze naalokovat.\n"
+
+#: text-utils/rev.c:167
+msgid "usage: rev [file ...]\n"
+msgstr "Pou¾ití: rev [soubor ...]\n"
+
+#: text-utils/ul.c:125
+#, c-format
+msgid "usage: %s [ -i ] [ -tTerm ] file...\n"
+msgstr "Pou¾ití: %s [ -i ] [-tTerm ] soubor...\n"
+
+#: text-utils/ul.c:136
+msgid "trouble reading terminfo"
+msgstr "chyba pøi ètení terminfo databáze"
+
+#: text-utils/ul.c:223
+#, c-format
+msgid "Unknown escape sequence in input: %o, %o\n"
+msgstr "Neznámá posloupnost øídících znakù na vstupu: %o, %o\n"
+
+#: text-utils/ul.c:372
+msgid "Unable to allocate buffer.\n"
+msgstr "Buffer nelze naalokovat.\n"
+
+#: text-utils/ul.c:529
+msgid "Input line too long.\n"
+msgstr "Vstupní øádka je pøíli¹ dlouhá.\n"
+
+#: text-utils/ul.c:542
+msgid "Out of memory when growing buffer.\n"
+msgstr "Nedostatek pamìti pro rostoucí buffer.\n"
+
+#: kbd/kbdrate.c:139 kbd/kbdrate.c:271
+#, c-format
+msgid "Typematic Rate set to %.1f cps (delay = %d ms)\n"
+msgstr "Rychlost opakování kláves nastavena na %.1f cps (prodleva = %d ms)\n"
+
+#: kbd/kbdrate.c:247
+msgid "Cannot open /dev/port"
+msgstr "/dev/port nelze otevøít"
+
+#~ msgid "Copyright (C) 1994-1998 Kevin E. Martin & aeb"
+#~ msgstr "Copyright (C) 1994-1998 Kevin E. Martin & aeb"
+
+#~ msgid "Using %s as default device!\n"
+#~ msgstr "Pou¾ívám %s jako implicitní zaøízení!\n"
+
+#~ msgid "last: %s: "
+#~ msgstr "last: %s: "
+
+#~ msgid "'/' in \"%s\""
+#~ msgstr "'/' v \"%s\""
+
+#~ msgid "wall: cannot read %s.\n"
+#~ msgstr "wall: %s nelze èíst.\n"
+
+#~ msgid "wall: %s\n"
+#~ msgstr "wall: %s\n"
+
+#~ msgid "look: "
+#~ msgstr "look: "
+
+#~ msgid "%s\n"
+#~ msgstr "%s\n"
+
+#~ msgid "[ [ -g ] pgrps ] [ [ -u ] users ]\n"
+#~ msgstr "[ [ -g ] PGRP ... ] [ [ -u ] u¾ivatel ... ]\n"
+
+#~ msgid "usage: "
+#~ msgstr "Pou¾ití: "
+
+#~ msgid "That must be tomorrow, "
+#~ msgstr "To bude zítra, "
+
+#~ msgid "Cannot exec swapoff, "
+#~ msgstr "Swapoff nelze spustit - volání exec selhalo, "
+
+#~ msgid "Cannot exec "
+#~ msgstr "Volání exec selhalo"
+
+#~ msgid ", trying umount."
+#~ msgstr ", zkou¹ím umount."
+
+#~ msgid "can't open %s (%s) - mtab not updated"
+#~ msgstr "nelze otevøít %s (%s) - mtab nebyl aktualizován"
+
+#~ msgid "util-linux kbdrate %s \n"
+#~ msgstr "util-linux kbdrate %s \n"
diff --git a/po/de.po b/po/de.po
new file mode 100644 (file)
index 0000000..2de3016
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,7787 @@
+# util-linux.po
+# German translation
+# Copyright (C) 1999
+# Elrond <Elrond@Wunder-Nett.org>, 1999.
+#
+# Permission is granted to freely copy and distribute
+# this file and modified versions, provided, that this
+# header is not removed and modified versions are marked
+# as such.
+#
+# People who helped or contributed (in historical order):
+#   Martin Schulze <joey@infodrom.north.de>
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: util-linux 2.9s\n"
+"POT-Creation-Date: 1999-06-27 19:14+0200\n"
+"PO-Revision-Date: 1999-06-29 21:56+0200\n"
+"Last-Translator: Elrond <Elrond@Wunder-Nett.org>\n"
+"Language-Team: Elrond <Elrond@Wunder-Nett.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: disk-utils/fdformat.c:33
+msgid "Formatting ... "
+msgstr "Formatieren ... "
+
+#: disk-utils/fdformat.c:51 disk-utils/fdformat.c:86
+msgid "done\n"
+msgstr "Beendet\n"
+
+#: disk-utils/fdformat.c:62
+msgid "Verifying ... "
+msgstr "Überprüfen ... "
+
+# This is from a perror()
+#: disk-utils/fdformat.c:73
+msgid "Read: "
+msgstr "Lesen: "
+
+#: disk-utils/fdformat.c:75
+#, c-format
+msgid "Problem reading cylinder %d, expected %d, read %d\n"
+msgstr ""
+"Problem beim Lesen von Zylinder %d, es wurde %d erwartet, aber %d gelesen\n"
+
+# Oh, well, that doesn't sound pretty good.
+#: disk-utils/fdformat.c:81
+#, c-format
+msgid ""
+"bad data in cyl %d\n"
+"Continuing ... "
+msgstr ""
+"Schlechte Daten bei Zylinder %d\n"
+"Operation wird fortgesetzt ... "
+
+#: disk-utils/fdformat.c:96
+#, c-format
+msgid "usage: %s [ -n ] device\n"
+msgstr "Aufruf: %s [ -n ] Gerät\n"
+
+#: disk-utils/fdformat.c:122
+#, c-format
+msgid "%s: not a floppy device\n"
+msgstr "%s ist kein Diskettenlaufwerk\n"
+
+#: disk-utils/fdformat.c:128
+msgid "Could not determine current format type"
+msgstr "Konnte das aktuelle Format nicht feststellen"
+
+#: disk-utils/fdformat.c:129
+#, c-format
+msgid "%s-sided, %d tracks, %d sec/track. Total capacity %d kB.\n"
+msgstr "%sseitig, %d Spuren, %d Sektoren/Spur, Totale Kapazität: %dkB.\n"
+
+#: disk-utils/fdformat.c:130
+msgid "Double"
+msgstr "Doppel"
+
+#: disk-utils/fdformat.c:130
+msgid "Single"
+msgstr "Einfach"
+
+#: disk-utils/fsck.minix.c:288
+#, c-format
+msgid "%s is mounted.\t "
+msgstr ""
+
+#: disk-utils/fsck.minix.c:290
+msgid "Do you really want to continue"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:294
+msgid "check aborted.\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:311 disk-utils/fsck.minix.c:331
+msgid "Zone nr < FIRSTZONE in file `"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:313 disk-utils/fsck.minix.c:333
+msgid "Zone nr >= ZONES in file `"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:318 disk-utils/fsck.minix.c:338
+msgid "Remove block"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:356
+msgid "Read error: unable to seek to block in file '"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:362
+msgid "Read error: bad block in file '"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:378
+msgid ""
+"Internal error: trying to write bad block\n"
+"Write request ignored\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:386
+msgid "Write error: bad block in file '"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:607
+msgid "Warning: Firstzone != Norm_firstzone\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:612 disk-utils/mkfs.minix.c:528
+#, c-format
+msgid "%ld inodes\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:613 disk-utils/mkfs.minix.c:529
+#, c-format
+msgid "%ld blocks\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:614 disk-utils/mkfs.minix.c:530
+#, c-format
+msgid "Firstdatazone=%ld (%ld)\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:615 disk-utils/mkfs.minix.c:531
+#, c-format
+msgid "Zonesize=%d\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:616
+#, c-format
+msgid "Maxsize=%ld\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:617
+#, c-format
+msgid "Filesystem state=%d\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:618
+#, c-format
+msgid ""
+"namelen=%d\n"
+"\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:632 disk-utils/fsck.minix.c:684
+#, c-format
+msgid "Inode %d marked not used, but used for file '"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:637 disk-utils/fsck.minix.c:688
+msgid "Mark in use"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:659 disk-utils/fsck.minix.c:708
+#, c-format
+msgid " has mode %05o\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:665 disk-utils/fsck.minix.c:713
+msgid "Warning: inode count too big.\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:749 disk-utils/fsck.minix.c:783
+msgid "Block has been used before. Now in file `"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:752 disk-utils/fsck.minix.c:786
+#: disk-utils/fsck.minix.c:1114 disk-utils/fsck.minix.c:1123
+#: disk-utils/fsck.minix.c:1167 disk-utils/fsck.minix.c:1176
+msgid "Clear"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:761 disk-utils/fsck.minix.c:795
+#, c-format
+msgid "Block %d in file `"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:763 disk-utils/fsck.minix.c:797
+msgid "' is marked not in use."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:764 disk-utils/fsck.minix.c:798
+msgid "Correct"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:948 disk-utils/fsck.minix.c:1012
+msgid " contains a bad inode number for file '"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:950 disk-utils/fsck.minix.c:1014
+msgid " Remove"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:964 disk-utils/fsck.minix.c:1028
+msgid ": bad directory: '.' isn't first\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:971 disk-utils/fsck.minix.c:1036
+msgid ": bad directory: '..' isn't second\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1071
+msgid ": bad directory: size<32"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1090
+msgid ": bad directory: size < 32"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1113 disk-utils/fsck.minix.c:1166
+#, c-format
+msgid "Inode %d mode not cleared."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1122 disk-utils/fsck.minix.c:1175
+#, c-format
+msgid "Inode %d not used, marked used in the bitmap."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1128 disk-utils/fsck.minix.c:1181
+#, c-format
+msgid "Inode %d used, marked unused in the bitmap."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1134 disk-utils/fsck.minix.c:1186
+#, c-format
+msgid "Inode %d (mode = %07o), i_nlinks=%d, counted=%d."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1136 disk-utils/fsck.minix.c:1188
+msgid "Set i_nlinks to count"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1148 disk-utils/fsck.minix.c:1200
+#, c-format
+msgid "Zone %d: marked in use, no file uses it."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1149 disk-utils/fsck.minix.c:1201
+msgid "Unmark"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1153 disk-utils/fsck.minix.c:1205
+#, c-format
+msgid "Zone %d: %sin use, counted=%d\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1154 disk-utils/fsck.minix.c:1206
+msgid "not "
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1182
+msgid "Set"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1296
+#, c-format
+msgid "%s is clean, no check.\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1300
+#, c-format
+msgid "Forcing filesystem check on %s.\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1302
+#, c-format
+msgid "Filesystem on %s is dirty, needs checking.\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1331
+msgid ""
+"\n"
+"%6ld inodes used (%ld%%)\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1336
+msgid "%6ld zones used (%ld%%)\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1338
+#, c-format
+msgid ""
+"\n"
+"%6d regular files\n"
+"%6d directories\n"
+"%6d character device files\n"
+"%6d block device files\n"
+"%6d links\n"
+"%6d symbolic links\n"
+"------\n"
+"%6d files\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1351
+msgid ""
+"----------------------------\n"
+"FILE SYSTEM HAS BEEN CHANGED\n"
+"----------------------------\n"
+msgstr ""
+
+#: disk-utils/mkfs.c:66
+msgid "Usage: mkfs [-V] [-t fstype] [fs-options] device [size]\n"
+msgstr "Aufruf: mkfs [-V] [-t FS-Typ] [FS-Optionen] Gerät [Größe]\n"
+
+#: disk-utils/mkfs.c:80 fdisk/cfdisk.c:328 getopt-1.0.3b/getopt.c:85
+#: getopt-1.0.3b/getopt.c:95 login-utils/wall.c:217 mount/sundries.c:192
+#, c-format
+msgid "%s: Out of memory!\n"
+msgstr "%s: Speicher ist alle!\n"
+
+#: disk-utils/mkfs.c:89
+msgid "mkfs version "
+msgstr "mkfs Version "
+
+#: disk-utils/mkfs.minix.c:186
+#, c-format
+msgid "Usage: %s [-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]\n"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:210
+#, c-format
+msgid "%s is mounted; will not make a filesystem here!"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:271
+msgid "seek to boot block failed in write_tables"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:273
+msgid "unable to clear boot sector"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:275
+msgid "seek failed in write_tables"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:277
+msgid "unable to write super-block"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:279
+msgid "unable to write inode map"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:281
+msgid "unable to write zone map"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:283
+msgid "unable to write inodes"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:290
+msgid "seek failed in write_block"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:292
+msgid "write failed in write_block"
+msgstr ""
+
+#. Could make triple indirect block here
+#: disk-utils/mkfs.minix.c:300 disk-utils/mkfs.minix.c:374
+#: disk-utils/mkfs.minix.c:425
+msgid "too many bad blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:308
+msgid "not enough good blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:517
+msgid "unable to allocate buffers for maps"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:526
+msgid "unable to allocate buffer for inodes"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:532
+#, c-format
+msgid ""
+"Maxsize=%ld\n"
+"\n"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:546
+msgid "seek failed during testing of blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:554
+msgid "Weird values in do_check: probably bugs\n"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:585
+msgid "seek failed in check_blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:594
+msgid "bad blocks before data-area: cannot make fs"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:600 disk-utils/mkfs.minix.c:622
+#, c-format
+msgid "%d bad blocks\n"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:602 disk-utils/mkfs.minix.c:624
+msgid "one bad block\n"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:614
+msgid "can't open file of bad blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:637 disk-utils/mkfs.minix.c:640
+msgid "bad inode size"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:669
+#, c-format
+msgid "%s: not compiled with minix v2 support\n"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:685
+msgid "strtol error: number of blocks not specified"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:717
+#, fuzzy, c-format
+msgid "unable to open %s"
+msgstr "Konnte %s nicht öffnen"
+
+#: disk-utils/mkfs.minix.c:719
+#, c-format
+msgid "unable to stat %s"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:723
+#, fuzzy, c-format
+msgid "will not try to make filesystem on '%s'"
+msgstr "Auf »%s« wird kein Dateisystem erzeugt"
+
+#: disk-utils/mkswap.c:101
+#, c-format
+msgid "Assuming pages of size %d\n"
+msgstr "Es wird eine Seitengröße von %d angenommen.\n"
+
+#: disk-utils/mkswap.c:234
+msgid "one bad page\n"
+msgstr "Eine beschädigte »Seite«\n"
+
+#: disk-utils/mkswap.c:236
+#, c-format
+msgid "%d bad pages\n"
+msgstr "%d beschädigte »Seiten«\n"
+
+#: disk-utils/mkswap.c:340
+#, c-format
+msgid "%s: error: Nowhere to set up swap on?\n"
+msgstr ""
+"%s: Es wurde nicht angegeben, wo der Swapbereich angelegt werden soll.\n"
+
+#: disk-utils/mkswap.c:349
+#, c-format
+msgid "%s: error: size %ld is larger than device size %d\n"
+msgstr ""
+"%s: Fehler: Die angegebene Größe %ld ist größer als die des Gerätes: %d\n"
+
+#: disk-utils/mkswap.c:367
+#, c-format
+msgid "%s: error: unknown version %d\n"
+msgstr "%s: Fehler: unbekannte Version %d\n"
+
+#: disk-utils/mkswap.c:373
+#, c-format
+msgid "%s: error: swap area needs to be at least %ldkB\n"
+msgstr "%s: Fehler: Der Swapbereich muß mindestens %ldkB groß sein\n"
+
+#: disk-utils/mkswap.c:392
+#, c-format
+msgid "%s: warning: truncating swap area to %ldkB\n"
+msgstr "%s: Warnung: Der Swapbereich wird nur mit der Größe %ldkB angelegt\n"
+
+#: disk-utils/mkswap.c:419
+#, c-format
+msgid ""
+"%s: Device '%s' contains a valid Sun disklabel.\n"
+"This probably means creating v0 swap would destroy your partition table\n"
+"No swap created. If you really want to create swap v0 on that device, use\n"
+"the -f option to force it.\n"
+msgstr ""
+"%s: Das Gerät %s enthält einen gültigen »Sun disklabel«.\n"
+"Das bedeutet wahrscheinlich, daß das Anlegen eines v0-Swapbereiches die\n"
+"Partitionstabelle zerstören wird.\n"
+"Es wird kein Swapbereich angelegt. Wenn Sie wirklich einen Swapbereich\n"
+"anlegen wollen, so benutzen Sie die -f Option.\n"
+
+#: disk-utils/mkswap.c:444
+#, c-format
+msgid "Setting up swapspace version %d, size = %ld bytes\n"
+msgstr "Swapbereich Version %d mit der Größe %ld Bytes wird angelegt\n"
+
+#: disk-utils/setfdprm.c:30
+#, fuzzy, c-format
+msgid "Invalid number: %s\n"
+msgstr "Ungültige Nummer: %s\n"
+
+#: disk-utils/setfdprm.c:80
+#, fuzzy, c-format
+msgid "Syntax error: '%s'\n"
+msgstr "Syntaxfehler: »%s«\n"
+
+#: disk-utils/setfdprm.c:90
+#, c-format
+msgid "No such parameter set: '%s'\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:100
+#, c-format
+msgid "usage: %s [ -p ] dev name\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:101
+#, c-format
+msgid ""
+"       %s [ -p ] dev size sect heads tracks stretch gap rate spec1 fmt_gap\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:104
+#, c-format
+msgid "       %s [ -c | -y | -n | -d ] dev\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:106
+#, c-format
+msgid "       %s [ -c | -y | -n ] dev\n"
+msgstr ""
+
+# "Unbrauchbar"
+#: fdisk/cfdisk.c:353 fdisk/cfdisk.c:1840
+msgid "Unusable"
+msgstr "Unbenutzbar"
+
+#: fdisk/cfdisk.c:355 fdisk/cfdisk.c:1842
+msgid "Free Space"
+msgstr "Freier Bereich"
+
+#: fdisk/cfdisk.c:358
+msgid "Linux ext2"
+msgstr "Linux ext2"
+
+#. also Solaris
+#: fdisk/cfdisk.c:360 fdisk/i386_sys_types.c:53
+msgid "Linux"
+msgstr "Linux"
+
+#: fdisk/cfdisk.c:363
+msgid "OS/2 HPFS"
+msgstr "OS/2 HPFS"
+
+#: fdisk/cfdisk.c:365
+msgid "OS/2 IFS"
+msgstr "OS/2 IFS"
+
+#: fdisk/cfdisk.c:369
+msgid "NTFS"
+msgstr "NTFS"
+
+#: fdisk/cfdisk.c:380
+msgid "Disk has been changed.\n"
+msgstr "Festplatte wurde verändert.\n"
+
+#: fdisk/cfdisk.c:381
+msgid "Reboot the system to ensure the partition table is correctly updated.\n"
+msgstr ""
+"Rebooten Sie das System, um sicherzustellen, daß die Partitionstabelle neu "
+"gelesen wird.\n"
+
+#: fdisk/cfdisk.c:384
+msgid ""
+"\n"
+"WARNING: If you have created or modified any\n"
+"DOS 6.x partitions, please see the cfdisk manual\n"
+"page for additional information.\n"
+msgstr ""
+"\n"
+"WARNUNG: Wenn Sie eine DOS 6.x Partition angelegt\n"
+"oder verändert haben, dann schauen Sie bitte in die\n"
+"cfdisk-manual-Seite nach weiteren Informationen\n"
+
+#: fdisk/cfdisk.c:479
+msgid "FATAL ERROR"
+msgstr "FATALER FEHLER"
+
+#: fdisk/cfdisk.c:488
+msgid "Press any key to exit cfdisk"
+msgstr "Eine Taste drücken, um cfdisk zu beenden"
+
+#: fdisk/cfdisk.c:524 fdisk/cfdisk.c:532
+msgid "Cannot seek on disk drive"
+msgstr "Konnte »seek()« nicht auf der Festplatte benutzen"
+
+#: fdisk/cfdisk.c:526
+msgid "Cannot read disk drive"
+msgstr "Konnte nicht von der Festplatte lesen"
+
+#: fdisk/cfdisk.c:534
+msgid "Cannot write disk drive"
+msgstr "Konnte nicht auf die Festplatte schreiben"
+
+#: fdisk/cfdisk.c:771
+msgid "Too many partitions"
+msgstr "Zu viele Partitionen"
+
+#: fdisk/cfdisk.c:776
+msgid "Partition begins before sector 0"
+msgstr "Partition fängt vor Sektor 0 an"
+
+#: fdisk/cfdisk.c:781
+msgid "Partition ends before sector 0"
+msgstr "Partition endet vor Sektor 0"
+
+#: fdisk/cfdisk.c:786
+msgid "Partition begins after end-of-disk"
+msgstr "Partition fängt hinter dem Ende der Festplatte an"
+
+#: fdisk/cfdisk.c:791
+msgid "Partition ends after end-of-disk"
+msgstr "Partition endet hinter dem Ende der Festplatte"
+
+#: fdisk/cfdisk.c:839
+msgid ""
+"!!!! Internal error creating logical drive with no extended partition !!!!"
+msgstr ""
+"!! Interner Fehler beim Erzeugen einer log. Part. ohne eine erw. Part. !!"
+
+#: fdisk/cfdisk.c:850 fdisk/cfdisk.c:862
+msgid ""
+"Cannot create logical drive here -- would create two extended partitions"
+msgstr ""
+"Kann hier keine log. Part. anlegen -- eine zweite erw. müßte erzeugt werden."
+
+#: fdisk/cfdisk.c:1012
+msgid "Menu item too long. Menu may look odd."
+msgstr "Menüeintrag ist zu lang. Das Menü könnte ungewöhnlich aussehen"
+
+# "Ausrichtung" "Nehme horizontale Voreinstellung."
+#: fdisk/cfdisk.c:1068
+msgid "Menu without direction. Defaulting horizontal."
+msgstr "Menü ohne Richtung, verwende horizontal."
+
+#: fdisk/cfdisk.c:1185
+msgid "Illegal key"
+msgstr "Diese Taste ist hier nicht verwendbar"
+
+#: fdisk/cfdisk.c:1208
+msgid "Press a key to continue"
+msgstr "Eine Taste drücken, um fortzufahren"
+
+#: fdisk/cfdisk.c:1255 fdisk/cfdisk.c:1811 fdisk/cfdisk.c:2334
+#: fdisk/cfdisk.c:2336
+msgid "Primary"
+msgstr "Primäre"
+
+#: fdisk/cfdisk.c:1255
+msgid "Create a new primary partition"
+msgstr "Erzeuge eine neue primäre Partition"
+
+#: fdisk/cfdisk.c:1256 fdisk/cfdisk.c:1811 fdisk/cfdisk.c:2333
+#: fdisk/cfdisk.c:2336
+msgid "Logical"
+msgstr "Logische"
+
+#: fdisk/cfdisk.c:1256
+msgid "Create a new logical partition"
+msgstr "Erzeuge eine neue logische Partition"
+
+#: fdisk/cfdisk.c:1257 fdisk/cfdisk.c:1310 fdisk/cfdisk.c:2023
+msgid "Cancel"
+msgstr "Abbruch"
+
+#: fdisk/cfdisk.c:1257 fdisk/cfdisk.c:1310
+msgid "Don't create a partition"
+msgstr "Erzeuge keine neue Partition"
+
+#: fdisk/cfdisk.c:1273
+msgid "!!! Internal error !!!"
+msgstr "!!! Interner Fehler !!!"
+
+#: fdisk/cfdisk.c:1276
+msgid "Size (in MB): "
+msgstr "Größe (in MB): "
+
+#: fdisk/cfdisk.c:1308
+msgid "Beginning"
+msgstr "Anfang"
+
+#: fdisk/cfdisk.c:1308
+msgid "Add partition at beginning of free space"
+msgstr "Erzeuge Partition am Anfang des freien Bereiches"
+
+#: fdisk/cfdisk.c:1309
+msgid "End"
+msgstr "Ende"
+
+#: fdisk/cfdisk.c:1309
+msgid "Add partition at end of free space"
+msgstr "Erzeuge Partition am Ende des freien Bereiches"
+
+#: fdisk/cfdisk.c:1327
+msgid "No room to create the extended partition"
+msgstr "Kein Platz, um die erweiterte Partition anzulegen"
+
+#. probably a file or cdrom
+#: fdisk/cfdisk.c:1359
+msgid "Cannot read disk drive geometry"
+msgstr "Konnte die Festplattengeometrie nicht lesen"
+
+#: fdisk/cfdisk.c:1374
+msgid "Bad signature on partition table"
+msgstr "Beschädigte Signatur in der Partitionstabelle"
+
+#: fdisk/cfdisk.c:1377
+msgid "Cannot get disk size"
+msgstr "Konnte die Größe der Festplatte nicht feststellen"
+
+#: fdisk/cfdisk.c:1395
+msgid "Cannot derive a geometry from an empty partition table"
+msgstr "Konnte die Geometrie nicht aus einer leeren Partitionstabelle ableiten"
+
+#: fdisk/cfdisk.c:1403
+msgid "Cannot derive a geometry from the partition table"
+msgstr "Konnte die Geometrie nicht aus der Partitionstabelle ableiten"
+
+# That's not a direct translation, but I've tried to be
+# more informative.
+#: fdisk/cfdisk.c:1436
+msgid "Cannot open disk drive"
+msgstr "Konnte nicht auf die Festplatte zugreifen"
+
+# "Nur lesender Zugriff möglich - Sie haben keine Schreibberechtigung" (joey)
+#: fdisk/cfdisk.c:1438 fdisk/cfdisk.c:1622
+msgid "Opened disk read-only - you have no permission to write"
+msgstr ""
+"Platte wurde nur zum Lesen geöffnet - Sie haben keine Rechte zum Schreiben"
+
+# "Ungültige primäre Partition"
+#. avoid snprintf - it does not exist on ancient systems
+#: fdisk/cfdisk.c:1481
+msgid "Bad primary partition"
+msgstr "Beschädigte primäre Partition"
+
+#. avoid snprintf
+#: fdisk/cfdisk.c:1512
+msgid "Bad logical partition"
+msgstr "Beschädigte logische Partition"
+
+#: fdisk/cfdisk.c:1634
+msgid "Warning!!  This may destroy data on your disk!"
+msgstr "Warnung!!  Dies kann Daten auf der Festplatte zerstören!"
+
+#: fdisk/cfdisk.c:1638
+msgid "Are you sure you want write the partition table to disk? (yes or no): "
+msgstr ""
+"Sind Sie sicher, daß Sie die Partitionstabelle schreiben wollen? (yes/no): "
+
+#: fdisk/cfdisk.c:1644
+#, fuzzy
+msgid "no"
+msgstr "nein"
+
+#: fdisk/cfdisk.c:1645
+msgid "Did not write partition table to disk"
+msgstr "Die Partitionstabelle wurde nicht auf die Festplatte geschrieben"
+
+#: fdisk/cfdisk.c:1647
+#, fuzzy
+msgid "yes"
+msgstr "ja"
+
+#: fdisk/cfdisk.c:1650
+msgid "Please enter `yes' or `no'"
+msgstr "Bitte »yes« oder »no« eingeben"
+
+#: fdisk/cfdisk.c:1659
+msgid "Writing partition table to disk..."
+msgstr "Die Partitionstabelle wird auf die Festplatte geschrieben..."
+
+#: fdisk/cfdisk.c:1684 fdisk/cfdisk.c:1688
+msgid "Wrote partition table to disk"
+msgstr "Die Partitionstabelle wurde auf die Festplatte geschrieben"
+
+# That's not a good translation, but I guess, I can't make it longer.
+#: fdisk/cfdisk.c:1686
+msgid ""
+"Wrote partition table, but re-read table failed.  Reboot to update table."
+msgstr ""
+"Die Tabelle wurde geschr., aber das Neueinlesen schlug fehl.  Rebooten Sie."
+
+# This one isn't realy correct.
+#: fdisk/cfdisk.c:1696
+msgid ""
+"Not precisely one primary partition is bootable. DOS MBR cannot boot this."
+msgstr ""
+"Mehrere Partitionen sind als bootbar markiert, der DOS MBR kann nicht booten."
+
+# "Geben sie einen Dateinamen ein oder drücken Sie Return, um es auf dem Bildschirm anzuzeigen: "
+# is too long
+#: fdisk/cfdisk.c:1754 fdisk/cfdisk.c:1872 fdisk/cfdisk.c:1964
+msgid "Enter filename or press RETURN to display on screen: "
+msgstr "Dateiname oder Return um es auf dem Bildschirm anzuzeigen: "
+
+#: fdisk/cfdisk.c:1762 fdisk/cfdisk.c:1880 fdisk/cfdisk.c:1972
+#, c-format
+msgid "Cannot open file '%s'"
+msgstr "Konnte %s nicht öffnen"
+
+#: fdisk/cfdisk.c:1773
+#, c-format
+msgid "Disk Drive: %s\n"
+msgstr "Festplatte: %s\n"
+
+#: fdisk/cfdisk.c:1775
+msgid "Sector 0:\n"
+msgstr "Sektor 0:\n"
+
+#: fdisk/cfdisk.c:1782
+#, c-format
+msgid "Sector %d:\n"
+msgstr "Sektor %d:\n"
+
+#: fdisk/cfdisk.c:1802
+msgid "   None   "
+msgstr "   Keine  "
+
+#: fdisk/cfdisk.c:1804
+msgid "   Pri/Log"
+msgstr "   Pri/Log"
+
+#: fdisk/cfdisk.c:1806
+msgid "   Primary"
+msgstr "   Primäre"
+
+#: fdisk/cfdisk.c:1808
+msgid "   Logical"
+msgstr "  Logische"
+
+#. odd flag on end
+#. type id
+#. type name
+#: fdisk/cfdisk.c:1846 fdisk/fdisk.c:1059 fdisk/fdisk.c:1208
+#: fdisk/fdisksgilabel.c:224 fdisk/fdisksunlabel.c:646 fdisk/sfdisk.c:560
+msgid "Unknown"
+msgstr "Unbekannt"
+
+#: fdisk/cfdisk.c:1852
+#, c-format
+msgid "Boot (%02X)"
+msgstr "Boot (%02X)"
+
+#: fdisk/cfdisk.c:1854 fdisk/cfdisk.c:2342
+#, c-format
+msgid "Unknown (%02X)"
+msgstr "Unbekannt (%02X)"
+
+#: fdisk/cfdisk.c:1856
+#, c-format
+msgid "None (%02X)"
+msgstr "Keine (%02X)"
+
+#: fdisk/cfdisk.c:1891 fdisk/cfdisk.c:1983
+#, c-format
+msgid "Partition Table for %s\n"
+msgstr "Partitionstabelle von %s\n"
+
+#: fdisk/cfdisk.c:1893
+msgid "            First    Last\n"
+msgstr "            Erster   Letzter\n"
+
+#: fdisk/cfdisk.c:1894
+msgid ""
+" # Type     Sector   Sector   Offset  Length   Filesystem Type (ID)   Flags\n"
+msgstr ""
+" # Typ      Sektor   Sektor   Offset  Länge    Dateisystemtyp (ID)    Flags\n"
+
+#: fdisk/cfdisk.c:1895
+msgid ""
+"-- ------- -------- --------- ------ --------- ---------------------- "
+"---------\n"
+msgstr ""
+"-- ------- -------- --------- ------ --------- ---------------------- "
+"---------\n"
+
+#: fdisk/cfdisk.c:1985
+msgid "         ---Starting---      ----Ending----    Start Number of\n"
+msgstr "         ---Anfangs----      -----End------   Start  Anzahl der\n"
+
+#: fdisk/cfdisk.c:1986
+msgid " # Flags Head Sect Cyl   ID  Head Sect Cyl    Sector  Sectors\n"
+msgstr " # Flags Kopf Sekt Zyl.  ID  Kopf Sekt Zyl    Sektor  Sektoren\n"
+
+#: fdisk/cfdisk.c:1987
+msgid "-- ----- ---- ---- ---- ---- ---- ---- ---- -------- ---------\n"
+msgstr "-- ----- ---- ---- ---- ---- ---- ---- ---- -------- ---------\n"
+
+#: fdisk/cfdisk.c:2020
+#, fuzzy
+msgid "Raw"
+msgstr "\"Roh\""
+
+#: fdisk/cfdisk.c:2020
+#, fuzzy
+msgid "Print the table using raw data format"
+msgstr "Die \"rohen\" Daten der Tabelle ausgeben"
+
+#: fdisk/cfdisk.c:2021 fdisk/cfdisk.c:2123
+msgid "Sectors"
+msgstr "Sektoren"
+
+#: fdisk/cfdisk.c:2021
+msgid "Print the table ordered by sectors"
+msgstr "Die Tabelle nach Sektoren sortiert ausgeben"
+
+#: fdisk/cfdisk.c:2022
+msgid "Table"
+msgstr "Tabelle"
+
+# "Nur die Partitionstabelle ausgeben" (joey)
+#: fdisk/cfdisk.c:2022
+msgid "Just print the partition table"
+msgstr "Einfach die Tabelle ausgeben"
+
+#: fdisk/cfdisk.c:2023
+msgid "Don't print the table"
+msgstr "Zeige die Tabelle nicht an"
+
+#: fdisk/cfdisk.c:2051
+msgid "Help Screen for cfdisk "
+msgstr "Hilfe für cfdisk "
+
+#: fdisk/cfdisk.c:2053
+msgid "This is cfdisk, a curses based disk partitioning program, which"
+msgstr "Dies ist cfdisk, ein Programm das curses benutzt und es ihnen"
+
+#: fdisk/cfdisk.c:2054
+msgid "allows you to create, delete and modify partitions on your hard"
+msgstr "erlaubt, auf Ihren Festplatten Partitionen anzulegen, zu löschen"
+
+#: fdisk/cfdisk.c:2055
+msgid "disk drive."
+msgstr "und zu verändern."
+
+#: fdisk/cfdisk.c:2057
+msgid "Copyright (C) 1994-1998 Kevin E. Martin & aeb"
+msgstr "Copyright (C) 1994-1998 Kevin E. Martin & aeb"
+
+# "Befehl"
+#: fdisk/cfdisk.c:2059
+msgid "Command      Meaning"
+msgstr "Kommando     Bedeutung"
+
+#: fdisk/cfdisk.c:2060
+msgid "-------      -------"
+msgstr "--------     ---------"
+
+# "  b          Wechselt zwischen bootfähig und nicht bootfähig."
+#: fdisk/cfdisk.c:2061
+msgid "  b          Toggle bootable flag of the current partition"
+msgstr "  b          (De)Aktiviere das bootbar-flag der aktuellen Partition"
+
+#: fdisk/cfdisk.c:2062
+msgid "  d          Delete the current partition"
+msgstr "  d          Lösche die aktuelle Partition"
+
+#: fdisk/cfdisk.c:2063
+msgid "  g          Change cylinders, heads, sectors-per-track parameters"
+msgstr ""
+"  g          Ändere die Anzahl der Zylinder, Köpfe und Sektoren pro Spur"
+
+#: fdisk/cfdisk.c:2064
+msgid "             WARNING: This option should only be used by people who"
+msgstr "             WARNUNG: Diese Funktion sollte nur von Leuten benutzt"
+
+#: fdisk/cfdisk.c:2065
+msgid "             know what they are doing."
+msgstr "             werden, die wissen, was sie tun."
+
+#: fdisk/cfdisk.c:2066
+msgid "  h          Print this screen"
+msgstr "  h          Zeigt diese Hilfe"
+
+#: fdisk/cfdisk.c:2067
+msgid "  m          Maximize disk usage of the current partition"
+msgstr "  m          Maximieren der Nutzung der aktuellen Partition"
+
+#: fdisk/cfdisk.c:2068
+msgid "             Note: This may make the partition incompatible with"
+msgstr ""
+"             Beachten Sie, daß dies die Partition nicht mehr kompatibel"
+
+#: fdisk/cfdisk.c:2069
+msgid "             DOS, OS/2, ..."
+msgstr "             zu DOS, OS/2, ... machen kann"
+
+#: fdisk/cfdisk.c:2070
+msgid "  n          Create new partition from free space"
+msgstr "  n          Erzeuge aus dem freien Bereich eine neue Partition"
+
+#: fdisk/cfdisk.c:2071
+msgid "  p          Print partition table to the screen or to a file"
+msgstr ""
+"  p          Gib die Partitionstabelle auf dem Bildschirm oder in eine Datei "
+"aus"
+
+# "verschiedene"
+#: fdisk/cfdisk.c:2072
+msgid "             There are several different formats for the partition"
+msgstr "             Es gibt mehrere Formate für die Partitionstabelle, aus"
+
+#: fdisk/cfdisk.c:2073
+msgid "             that you can choose from:"
+msgstr "             denen man wählen kann"
+
+#: fdisk/cfdisk.c:2074
+msgid "                r - Raw data (exactly what would be written to disk)"
+msgstr ""
+"                r - »Rohe« Daten (was auf die Festplatte geschrieben würde)"
+
+#: fdisk/cfdisk.c:2075
+msgid "                s - Table ordered by sectors"
+msgstr "                s - Tabelle nach Sektoren sortiert"
+
+#: fdisk/cfdisk.c:2076
+msgid "                t - Table in raw format"
+msgstr "                t - Tabelle mit den reinen Daten"
+
+#: fdisk/cfdisk.c:2077
+msgid "  q          Quit program without writing partition table"
+msgstr ""
+"  q          Beende das Programm ohne die Partitionstabelle zu schreiben"
+
+#: fdisk/cfdisk.c:2078
+msgid "  t          Change the filesystem type"
+msgstr "  t          Ändere den Dateisystemtyp"
+
+# "  u          Einheit der Größenanzeige ändern"
+#: fdisk/cfdisk.c:2079
+msgid "  u          Change units of the partition size display"
+msgstr "  u          Wechsle zwischen den Einheiten für die Größenanzeige"
+
+#: fdisk/cfdisk.c:2080
+msgid "             Rotates through Mb, sectors and cylinders"
+msgstr "             Wechselt zwischen MB, Sektoren und Zylindern"
+
+#: fdisk/cfdisk.c:2081
+msgid "  W          Write partition table to disk (must enter upper case W)"
+msgstr ""
+"  W          Schreibe die Partitionstabelle auf die Festplatte (großes W)"
+
+# or "Da dieses ..." ?
+#: fdisk/cfdisk.c:2082
+msgid "             Since this might destroy data on the disk, you must"
+msgstr "             Da dies Daten auf der Festplatte zerstören kann, müssen"
+
+#: fdisk/cfdisk.c:2083
+msgid "             either confirm or deny the write by entering `yes' or"
+msgstr "             Sie das Schreiben mit »yes« oder »no« bestätigen oder"
+
+#: fdisk/cfdisk.c:2084
+msgid "             `no'"
+msgstr "             ablehnen"
+
+#: fdisk/cfdisk.c:2085
+msgid "Up Arrow     Move cursor to the previous partition"
+msgstr "Pfeil-hoch   Bewege den Cursor zur vorherigen Partition"
+
+#: fdisk/cfdisk.c:2086
+msgid "Down Arrow   Move cursor to the next partition"
+msgstr "Pfeil-runter Bewege den Cursor zur nächsten Partition"
+
+# "Strg" ?
+# "Baut den Bildschirm neu auf"
+#: fdisk/cfdisk.c:2087
+msgid "CTRL-L       Redraws the screen"
+msgstr "Ctrl-L       Zeichnet den Bildschirm erneut"
+
+#: fdisk/cfdisk.c:2088
+msgid "  ?          Print this screen"
+msgstr "  ?          Zeigt diese Hilfe"
+
+# "Hinweis"
+#: fdisk/cfdisk.c:2090
+msgid "Note: All of the commands can be entered with either upper or lower"
+msgstr "Alle Kommandos können sowohl als Klein- oder Großbuchstaben"
+
+#: fdisk/cfdisk.c:2091
+msgid "case letters (except for Writes)."
+msgstr "eingegeben werden (außer W zum Schreiben)."
+
+#: fdisk/cfdisk.c:2121 fdisk/cfdisk.c:2423 fdisk/fdisksunlabel.c:305
+#: fdisk/fdisksunlabel.c:307
+msgid "Cylinders"
+msgstr " Zylinder"
+
+#: fdisk/cfdisk.c:2121
+msgid "Change cylinder geometry"
+msgstr "Ändern der Anzahl der Zylinder"
+
+#: fdisk/cfdisk.c:2122 fdisk/fdisksunlabel.c:302
+msgid "Heads"
+msgstr "Köpfe"
+
+#: fdisk/cfdisk.c:2122
+msgid "Change head geometry"
+msgstr "Ändern der Anzahl der Köpfe"
+
+#: fdisk/cfdisk.c:2123
+msgid "Change sector geometry"
+msgstr "Ändern der Anzahl der Sektoren pro Spur"
+
+#: fdisk/cfdisk.c:2124
+msgid "Done"
+msgstr "Fertig"
+
+#: fdisk/cfdisk.c:2124
+msgid "Done with changing geometry"
+msgstr "Ändern der Geometrie beenden"
+
+#: fdisk/cfdisk.c:2137
+msgid "Enter the number of cylinders: "
+msgstr "Geben Sie die Anzahl der Zylinder ein: "
+
+#: fdisk/cfdisk.c:2144 fdisk/cfdisk.c:2687
+msgid "Illegal cylinders value"
+msgstr "Ungültiger Wert für die Anzahl der Zylinder"
+
+#: fdisk/cfdisk.c:2150
+msgid "Enter the number of heads: "
+msgstr "Geben Sie die Anzahl der Köpfe ein: "
+
+#: fdisk/cfdisk.c:2157 fdisk/cfdisk.c:2697
+msgid "Illegal heads value"
+msgstr "Ungültiger Wert für die Anzahl der Köpfe"
+
+#: fdisk/cfdisk.c:2163
+msgid "Enter the number of sectors per track: "
+msgstr "Geben Sie die Anzahl der Sektoren pro Spur ein: "
+
+#: fdisk/cfdisk.c:2170 fdisk/cfdisk.c:2704
+msgid "Illegal sectors value"
+msgstr "Ungültiger Wert für die Anzahl der Sektoren"
+
+#: fdisk/cfdisk.c:2269
+msgid "Enter filesystem type: "
+msgstr "Geben Sie den Dateisystemtyp ein: "
+
+#: fdisk/cfdisk.c:2287
+msgid "Cannot change FS Type to empty"
+msgstr "Der Dateisystemtyp kann nicht auf »leer« gesetzt werden"
+
+#: fdisk/cfdisk.c:2289
+msgid "Cannot change FS Type to extended"
+msgstr "Der Dateisystemtyp kann nicht auf »erweitert« gesetzt werden"
+
+#: fdisk/cfdisk.c:2311 fdisk/fdisksunlabel.c:44
+msgid "Boot"
+msgstr "Boot"
+
+#: fdisk/cfdisk.c:2313
+#, c-format
+msgid "Unk(%02X)"
+msgstr "Unb(%02X)"
+
+#: fdisk/cfdisk.c:2316 fdisk/cfdisk.c:2319
+msgid ", NC"
+msgstr ", NC"
+
+#: fdisk/cfdisk.c:2324 fdisk/cfdisk.c:2327
+msgid "NC"
+msgstr "NC"
+
+#: fdisk/cfdisk.c:2335
+msgid "Pri/Log"
+msgstr "Pri/Log"
+
+#: fdisk/cfdisk.c:2409
+#, c-format
+msgid "Disk Drive: %s"
+msgstr "Festplatte: %s"
+
+#: fdisk/cfdisk.c:2411
+#, c-format
+msgid "Heads: %d   Sectors per Track: %d   Cylinders: %d"
+msgstr "Köpfe: %d   Sektoren pro Spur: %d   Zylinder: %d"
+
+#: fdisk/cfdisk.c:2415
+msgid "Name"
+msgstr "Name"
+
+# I currently don't know a better translation
+#: fdisk/cfdisk.c:2416
+msgid "Flags"
+msgstr "Flags"
+
+#: fdisk/cfdisk.c:2417
+msgid "Part Type"
+msgstr "Part. Typ"
+
+#: fdisk/cfdisk.c:2418
+msgid "FS Type"
+msgstr "Dateisystemtyp"
+
+#: fdisk/cfdisk.c:2419
+msgid "[Label]"
+msgstr "[Bezeichner]"
+
+#: fdisk/cfdisk.c:2421
+msgid "  Sectors"
+msgstr " Sektoren"
+
+#: fdisk/cfdisk.c:2425
+msgid "Size (MB)"
+msgstr "Größe (MB)"
+
+#: fdisk/cfdisk.c:2480
+msgid "Bootable"
+msgstr "Bootbar"
+
+# "Bootfähigkeit der aktuellen Partition ändern" (joey)
+#: fdisk/cfdisk.c:2480
+msgid "Toggle bootable flag of the current partition"
+msgstr "(De)Aktiviere das bootbar-flag der aktuellen Partition"
+
+# "Löschen"
+#: fdisk/cfdisk.c:2481
+msgid "Delete"
+msgstr "Löschen"
+
+#: fdisk/cfdisk.c:2481
+msgid "Delete the current partition"
+msgstr "Löscht die aktuelle Partition"
+
+#: fdisk/cfdisk.c:2482
+msgid "Geometry"
+msgstr "Geometrie"
+
+#: fdisk/cfdisk.c:2482
+msgid "Change disk geometry (experts only)"
+msgstr "Ändern der Festplattengeometrieparameter (nur für Experten)"
+
+#: fdisk/cfdisk.c:2483
+msgid "Help"
+msgstr "Hilfe"
+
+#: fdisk/cfdisk.c:2483
+msgid "Print help screen"
+msgstr "Zeigt die Hilfe"
+
+#: fdisk/cfdisk.c:2484
+msgid "Maximize"
+msgstr "Maxim."
+
+#: fdisk/cfdisk.c:2484
+msgid "Maximize disk usage of the current partition (experts only)"
+msgstr "Maximieren der Nutzung der aktuellen Partition (nur für Experten)"
+
+#: fdisk/cfdisk.c:2485
+msgid "New"
+msgstr "Neue"
+
+# "Erzeuge aus dem freien Bereich eine neue Partition"
+#: fdisk/cfdisk.c:2485
+msgid "Create new partition from free space"
+msgstr "Neue Partition im freiem Bereich anlegen"
+
+#: fdisk/cfdisk.c:2486
+msgid "Print"
+msgstr "Ausgabe"
+
+# "Gib die Partitionstabelle auf dem Bildschirm oder in eine Datei aus"
+#: fdisk/cfdisk.c:2486
+msgid "Print partition table to the screen or to a file"
+msgstr "Partitionstabelle auf dem Bildschirm oder in Datei ausgeben"
+
+#: fdisk/cfdisk.c:2487
+msgid "Quit"
+msgstr "Ende"
+
+# "Beende das Programm ohne die Partitionstabelle zu schreiben"
+#: fdisk/cfdisk.c:2487
+msgid "Quit program without writing partition table"
+msgstr "Das Programm beenden, ohne die Partitionstabelle zu speichern"
+
+#: fdisk/cfdisk.c:2488
+msgid "Type"
+msgstr "Typ"
+
+#: fdisk/cfdisk.c:2488
+msgid "Change the filesystem type (DOS, Linux, OS/2 and so on)"
+msgstr "Ändere den Dateisystemtyp (DOS, Linux, OS/2, etc.)"
+
+# Maybe without the dot.
+#: fdisk/cfdisk.c:2489
+msgid "Units"
+msgstr "Einheit."
+
+# "Ändert die Einheiten der Größenanzeige ("
+#: fdisk/cfdisk.c:2489
+msgid "Change units of the partition size display (MB, sect, cyl)"
+msgstr "Wechsle zwischen den Einheiten für die Größenanzeige (MB, Sekt., Zyl.)"
+
+#: fdisk/cfdisk.c:2490
+msgid "Write"
+msgstr "Schreib."
+
+#: fdisk/cfdisk.c:2490
+msgid "Write partition table to disk (this might destroy data)"
+msgstr "Die Partitionstabelle schreiben (dies kann Daten zerstören)"
+
+#: fdisk/cfdisk.c:2536
+msgid "Cannot make this partition bootable"
+msgstr "Diese Partition kann nicht als bootbar markiert werden"
+
+#: fdisk/cfdisk.c:2546
+msgid "Cannot delete an empty partition"
+msgstr "Eine leere Partition kann nicht gelöscht werden"
+
+#: fdisk/cfdisk.c:2566 fdisk/cfdisk.c:2568
+msgid "Cannot maximize this partition"
+msgstr "Die Nutzung dieser Partition kann nicht maximiert werden"
+
+#: fdisk/cfdisk.c:2576
+msgid "This partition is unusable"
+msgstr "Diese Partition ist unbenutzbar"
+
+#: fdisk/cfdisk.c:2578
+msgid "This partition is already in use"
+msgstr "Diese Partition ist bereits in Benutzung"
+
+#: fdisk/cfdisk.c:2595
+msgid "Cannot change the type of an empty partition"
+msgstr "Der Dateisystemtyp einer leeren Partition kann nicht geändert werden"
+
+#: fdisk/cfdisk.c:2620 fdisk/cfdisk.c:2626
+msgid "No more partitions"
+msgstr "Keine weiteren Partitionen"
+
+# "Ungültige Taste"
+#: fdisk/cfdisk.c:2633
+msgid "Illegal command"
+msgstr "Unzulässiges Kommando"
+
+#: fdisk/cfdisk.c:2643
+msgid "Copyright (C) 1994-1999 Kevin E. Martin & aeb\n"
+msgstr "Copyright (C) 1994-1999 Kevin E. Martin & aeb\n"
+
+#. Unfortunately, xgettext does not handle multi-line strings
+#. so, let's use explicit \n's instead
+#: fdisk/cfdisk.c:2650
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+"Print version:\n"
+"        %s -v\n"
+"Print partition table:\n"
+"        %s -P {r|s|t} [options] device\n"
+"Interactive use:\n"
+"        %s [options] device\n"
+"\n"
+"Options:\n"
+"-a: Use arrow instead of highlighting;\n"
+"-z: Start with a zero partition table, instead of reading the pt from disk;\n"
+"-c C -h H -s S: Override the kernel's idea of the number of cylinders,\n"
+"                the number of heads and the number of sectors/track.\n"
+"\n"
+msgstr ""
+"\n"
+"Aufruf:\n"
+"Ausgabe der Version:\n"
+"        %s -v\n"
+"Ausgabe der Partitionstabelle:\n"
+"        %s -P {r|s|t} [Optionen] GERÄTEDATEI\n"
+"Interaktive Benutzung:\n"
+"        %s [Optionen] GERÄTEDATEI\n"
+"\n"
+"Optionen:\n"
+"-a: Use arrow instead of highlighting;\n"
+"-z: Start with a zero partition table, instead of reading the pt from disk;\n"
+"-c C -h H -s S: Override the kernel's idea of the number of cylinders,\n"
+"                the number of heads and the number of sectors/track.\n"
+"\n"
+
+#: fdisk/fdisk.c:241
+msgid ""
+"Usage: fdisk [-b SSZ] [-u] [DISK]     Change partition table\n"
+"       fdisk -l [-b SSZ] [-u] [DISK]  List partition table(s)\n"
+"       fdisk -s PARTITION         Give partition size(s) in blocks\n"
+"       fdisk -v                   Give fdisk version\n"
+"Here DISK is something like /dev/hdb or /dev/sda\n"
+"and PARTITION is something like /dev/hda7\n"
+"-u: give Start and End in sector (instead of cylinder) units\n"
+"-b 2048: (for certain MO drives) use 2048-byte sectors\n"
+msgstr ""
+"Aufruf: fdisk [-b SSZ] [-u] [Festplatte]    Partitionstabelle bearbeiten\n"
+"        fdisk -l [-b SSZ] [-u] [Festplatte] Partitionstabelle ausgeben\n"
+"        fdisk -s Partition                  Größe einer Partition in "
+"Blöcken\n"
+"        fdisk -v                            Version anzeigen\n"
+"\n"
+"Festplatte ist zum Beispiel /dev/hda oder /dev/sda\n"
+"Partition ist zum Beispiel /dev/hda7\n"
+"\n"
+"-u: Anfang und Ende werden in Sektoren statt in Zylindern angegeben\n"
+"-b 2048: (bestimmte MO-Geräte) benutze 2048 Byte Sektoren\n"
+
+#: fdisk/fdisk.c:251
+msgid "A disk block device is needed.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:254
+msgid ""
+"Given name does not refer to a partition,\n"
+"or maybe not even to a block device.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:258
+#, c-format
+msgid "Unable to open %s\n"
+msgstr "Konnte %s nicht öffnen\n"
+
+#: fdisk/fdisk.c:261
+#, c-format
+msgid "Unable to read %s\n"
+msgstr "Konnte %s nicht lesen\n"
+
+# "Konnte in %s nicht positionieren"
+#: fdisk/fdisk.c:264
+#, c-format
+msgid "Unable to seek on %s\n"
+msgstr ""
+
+#: fdisk/fdisk.c:267
+#, c-format
+msgid "Unable to write %s\n"
+msgstr "Konnte %s nicht schreiben\n"
+
+#: fdisk/fdisk.c:270
+msgid "Unable to allocate any more memory\n"
+msgstr "Konnte keinen weiteren Speicher reservieren\n"
+
+#: fdisk/fdisk.c:272
+msgid "Fatal error\n"
+msgstr "Fataler Fehler\n"
+
+#: fdisk/fdisk.c:283 fdisk/fdisk.c:302 fdisk/fdisk.c:320 fdisk/fdisk.c:327
+#: fdisk/fdisk.c:350 fdisk/fdisk.c:368 fdisk/fdiskbsdlabel.c:105
+msgid "Command action"
+msgstr "Kommando  Bedeutung"
+
+#: fdisk/fdisk.c:284
+msgid "   a   toggle a read only flag"
+msgstr ""
+
+#. sun
+#: fdisk/fdisk.c:285 fdisk/fdisk.c:329
+msgid "   b   edit bsd disklabel"
+msgstr "   b   »bsd disklabel« bearbeiten"
+
+#: fdisk/fdisk.c:286
+msgid "   c   toggle the mountable flag"
+msgstr ""
+
+#. sun
+#: fdisk/fdisk.c:287 fdisk/fdisk.c:306 fdisk/fdisk.c:331
+msgid "   d   delete a partition"
+msgstr "   d   Eine Partition löschen"
+
+#: fdisk/fdisk.c:288 fdisk/fdisk.c:307 fdisk/fdisk.c:332
+msgid "   l   list known partition types"
+msgstr "   l   Die bekannten Dateisystemtypen anzeigen"
+
+#. sun
+#: fdisk/fdisk.c:289 fdisk/fdisk.c:308 fdisk/fdisk.c:321 fdisk/fdisk.c:333
+#: fdisk/fdisk.c:358 fdisk/fdisk.c:375 fdisk/fdiskbsdlabel.c:110
+msgid "   m   print this menu"
+msgstr "   m   Dieses Menü anzeigen"
+
+#: fdisk/fdisk.c:290 fdisk/fdisk.c:309 fdisk/fdisk.c:334
+msgid "   n   add a new partition"
+msgstr "   n   Eine neue Partition anlegen"
+
+#: fdisk/fdisk.c:291 fdisk/fdisk.c:310 fdisk/fdisk.c:322 fdisk/fdisk.c:335
+msgid "   o   create a new empty DOS partition table"
+msgstr "   o   Eine neue leere DOS Partitionstabelle anlegen"
+
+#: fdisk/fdisk.c:292 fdisk/fdisk.c:311 fdisk/fdisk.c:336 fdisk/fdisk.c:359
+#: fdisk/fdisk.c:376
+msgid "   p   print the partition table"
+msgstr "   p   Die Partitionstabelle anzeigen"
+
+#: fdisk/fdisk.c:293 fdisk/fdisk.c:312 fdisk/fdisk.c:323 fdisk/fdisk.c:337
+#: fdisk/fdisk.c:360 fdisk/fdisk.c:377 fdisk/fdiskbsdlabel.c:113
+msgid "   q   quit without saving changes"
+msgstr "   q   Ende ohne Speichern der Änderungen"
+
+#: fdisk/fdisk.c:294 fdisk/fdisk.c:313 fdisk/fdisk.c:324 fdisk/fdisk.c:338
+msgid "   s   create a new empty Sun disklabel"
+msgstr "   s   Einen neuen leeren »Sun disklabel« anlegen"
+
+#. sun
+#: fdisk/fdisk.c:295 fdisk/fdisk.c:314 fdisk/fdisk.c:339
+msgid "   t   change a partition's system id"
+msgstr "   t   Den Dateisystemtyp einer Partition ändern"
+
+#: fdisk/fdisk.c:296 fdisk/fdisk.c:315 fdisk/fdisk.c:340
+msgid "   u   change display/entry units"
+msgstr "   u   Die Einheit für die Anzeige/Eingabe ändern"
+
+#: fdisk/fdisk.c:297 fdisk/fdisk.c:316 fdisk/fdisk.c:341 fdisk/fdisk.c:363
+#: fdisk/fdisk.c:380
+msgid "   v   verify the partition table"
+msgstr "   v   Die Partitionstabelle überprüfen"
+
+#: fdisk/fdisk.c:298 fdisk/fdisk.c:317 fdisk/fdisk.c:342 fdisk/fdisk.c:364
+#: fdisk/fdisk.c:381
+msgid "   w   write table to disk and exit"
+msgstr ""
+"   w   Die Tabelle auf die Festplatte schreiben und das Programm beenden"
+
+#: fdisk/fdisk.c:299 fdisk/fdisk.c:343
+msgid "   x   extra functionality (experts only)"
+msgstr "   x   Zusätzliche Funktionen (nur für Experten)"
+
+#: fdisk/fdisk.c:303
+msgid "   a   select bootable partition"
+msgstr "   a   Wählen der bootbaren Partition"
+
+#. sgi flavour
+#: fdisk/fdisk.c:304
+msgid "   b   edit bootfile entry"
+msgstr "   b   Bearbeiten des »bootfile«-Eintrags"
+
+#. sgi
+#: fdisk/fdisk.c:305
+msgid "   c   select sgi swap partition"
+msgstr "   c   Die sgi swap Partition auswählen"
+
+#: fdisk/fdisk.c:328
+msgid "   a   toggle a bootable flag"
+msgstr "   a   (De)Aktivieren des bootbar-Flags"
+
+#: fdisk/fdisk.c:330
+msgid "   c   toggle the dos compatibility flag"
+msgstr "   c   (De)Aktivieren des DOS Kompatibilitätsflags"
+
+#: fdisk/fdisk.c:351
+msgid "   a   change number of alternate cylinders"
+msgstr ""
+
+#. sun
+#: fdisk/fdisk.c:352 fdisk/fdisk.c:370
+msgid "   c   change number of cylinders"
+msgstr "   c   Die Anzahl der Zylinder ändern"
+
+#: fdisk/fdisk.c:353 fdisk/fdisk.c:371
+msgid "   d   print the raw data in the partition table"
+msgstr ""
+
+#: fdisk/fdisk.c:354
+msgid "   e   change number of extra sectors per cylinder"
+msgstr ""
+
+#. sun
+#: fdisk/fdisk.c:355 fdisk/fdisk.c:374
+msgid "   h   change number of heads"
+msgstr "   h   Die Anzahl der Köpfe ändern"
+
+#: fdisk/fdisk.c:356
+msgid "   i   change interleave factor"
+msgstr ""
+
+#. sun
+#: fdisk/fdisk.c:357
+msgid "   o   change rotation speed (rpm)"
+msgstr ""
+
+#: fdisk/fdisk.c:361 fdisk/fdisk.c:378 fdisk/fdiskbsdlabel.c:115
+msgid "   r   return to main menu"
+msgstr "   r   Zurück zum Hauptmenü"
+
+#: fdisk/fdisk.c:362 fdisk/fdisk.c:379
+msgid "   s   change number of sectors"
+msgstr "   s   Die Anzahl der Sektoren ändern"
+
+#: fdisk/fdisk.c:365
+msgid "   y   change number of physical cylinders"
+msgstr ""
+
+#: fdisk/fdisk.c:369
+msgid "   b   move beginning of data in a partition"
+msgstr ""
+
+#: fdisk/fdisk.c:372
+msgid "   e   list extended partitions"
+msgstr ""
+
+#. !sun
+#: fdisk/fdisk.c:373
+msgid "   g   create an IRIX partition table"
+msgstr ""
+
+#: fdisk/fdisk.c:469
+msgid "You must set"
+msgstr ""
+
+#: fdisk/fdisk.c:483
+msgid "heads"
+msgstr "Köpfe"
+
+#: fdisk/fdisk.c:485 fdisk/fdisk.c:893 fdisk/sfdisk.c:835
+msgid "sectors"
+msgstr "Sektoren"
+
+#: fdisk/fdisk.c:487 fdisk/fdisk.c:893 fdisk/fdiskbsdlabel.c:441
+#: fdisk/sfdisk.c:835
+msgid "cylinders"
+msgstr "Zylinder"
+
+#: fdisk/fdisk.c:491
+#, c-format
+msgid ""
+"%s%s.\n"
+"You can do this from the extra functions menu.\n"
+msgstr ""
+"%s%s.\n"
+"Sie können dies im Zusatzfunktionsmenü tun.\n"
+
+#: fdisk/fdisk.c:492
+msgid " and "
+msgstr " und "
+
+#: fdisk/fdisk.c:526
+msgid "Bad offset in primary extended partition\n"
+msgstr ""
+
+#: fdisk/fdisk.c:533
+#, c-format
+msgid "Warning: deleting partitions after %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:554
+#, c-format
+msgid "Warning: extra link pointer in partition table %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:562
+#, c-format
+msgid "Warning: ignoring extra data in partition table %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:588
+msgid ""
+"Building a new DOS disklabel. Changes will remain in memory only,\n"
+"until you decide to write them. After that, of course, the previous\n"
+"content won't be recoverable.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisk.c:624
+msgid "You will not be able to write the partition table.\n"
+msgstr "Sie werden die Partitionstabelle nicht schreiben können.\n"
+
+#: fdisk/fdisk.c:633
+#, c-format
+msgid "Note: sector size is %d (not %d)\n"
+msgstr "Hinweis: Die Sektorgröße ist %d (nicht %d)\n"
+
+#: fdisk/fdisk.c:681
+msgid ""
+"Device contains neither a valid DOS partition table, nor Sun or SGI "
+"disklabel\n"
+msgstr ""
+"Das Gerät enthält weder eine gültige DOS-Partitionstabelle,\n"
+"noch einen Sun oder »SGI disklabel«\n"
+
+#: fdisk/fdisk.c:697
+msgid "Internal error\n"
+msgstr "Interner Fehler\n"
+
+#: fdisk/fdisk.c:707
+#, c-format
+msgid "Ignoring extra extended partition %d\n"
+msgstr "Ignoriere die zusätzliche erweiterte Partition %d\n"
+
+#: fdisk/fdisk.c:714
+#, c-format
+msgid ""
+"Warning: invalid flag 0x%04x of partition table %d will be corrected by "
+"w(rite)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:735
+msgid ""
+"\n"
+"got EOF thrice - exiting..\n"
+msgstr ""
+
+#: fdisk/fdisk.c:772
+msgid "Hex code (type L to list codes): "
+msgstr "Hex code (L um eine Liste anzuzeigen): "
+
+#: fdisk/fdisk.c:811
+#, c-format
+msgid "%s (%d-%d, default %d): "
+msgstr "%s (%d-%d) [Standardwert: %d]: "
+
+#: fdisk/fdisk.c:865
+#, c-format
+msgid "Using default value %d\n"
+msgstr "Benutze den Standardwert %d\n"
+
+#: fdisk/fdisk.c:869
+msgid "Value out of range.\n"
+msgstr "Wert außerhalb des Bereichs.\n"
+
+#: fdisk/fdisk.c:876
+msgid "Partition number"
+msgstr "Partitionsnummer"
+
+#: fdisk/fdisk.c:884
+#, c-format
+msgid "Warning: partition %d has empty type\n"
+msgstr ""
+
+#: fdisk/fdisk.c:891
+msgid "cylinder"
+msgstr "Zylinder"
+
+#: fdisk/fdisk.c:891
+msgid "sector"
+msgstr "Sektor"
+
+#: fdisk/fdisk.c:900
+#, c-format
+msgid "Changing display/entry units to %s\n"
+msgstr "Die Einheit für die Anzeige/Eingabe ist nun %s\n"
+
+#: fdisk/fdisk.c:910
+#, c-format
+msgid "WARNING: Partition %d is an extended partition\n"
+msgstr "WARNUNG: Partition %d ist eine erweiterte Partition\n"
+
+#: fdisk/fdisk.c:923
+msgid "DOS Compatibility flag is set\n"
+msgstr ""
+
+#: fdisk/fdisk.c:927
+msgid "DOS Compatibility flag is not set\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1013
+#, c-format
+msgid "Partition %d does not exist yet!\n"
+msgstr "Partition %d existiert noch nicht!\n"
+
+#: fdisk/fdisk.c:1018
+msgid ""
+"Type 0 means free space to many systems\n"
+"(but not to Linux). Having partitions of\n"
+"type 0 is probably unwise. You can delete\n"
+"a partition using the `d' command.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1027
+msgid ""
+"You cannot change a partition into an extended one or vice versa\n"
+"Delete it first.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1036
+msgid ""
+"Consider leaving partition 3 as Whole disk (5),\n"
+"as SunOS/Solaris expects it and even Linux likes it.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1042
+msgid ""
+"Consider leaving partition 9 as volume header (0),\n"
+"and partition 11 as entire volume (6)as IRIX expects it.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1056
+#, c-format
+msgid "Changed system type of partition %d to %x (%s)\n"
+msgstr "Der Dateisystemtyp der Partition %d ist nun %x (%s)\n"
+
+#: fdisk/fdisk.c:1109
+#, c-format
+msgid "Partition %d has different physical/logical beginnings (non-Linux?):\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1111 fdisk/fdisk.c:1119 fdisk/fdisk.c:1128 fdisk/fdisk.c:1137
+#, c-format
+msgid "     phys=(%d, %d, %d) "
+msgstr ""
+
+#: fdisk/fdisk.c:1112 fdisk/fdisk.c:1120
+#, c-format
+msgid "logical=(%d, %d, %d)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1117
+#, c-format
+msgid "Partition %d has different physical/logical endings:\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1126
+#, c-format
+msgid "Partition %i does not start on cylinder boundary:\n"
+msgstr "Partition %i beginnt nicht an einer Zylindergrenze:\n"
+
+#: fdisk/fdisk.c:1129
+#, c-format
+msgid "should be (%d, %d, 1)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1135
+#, c-format
+msgid "Partition %i does not end on cylinder boundary:\n"
+msgstr "Partition %i endet nicht an einer Zylindergrenze:\n"
+
+#: fdisk/fdisk.c:1138
+#, c-format
+msgid "should be (%d, %d, %d)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1145
+#, c-format
+msgid ""
+"\n"
+"Disk %s: %d heads, %d sectors, %d cylinders\n"
+"Units = %s of %d * %d bytes\n"
+"\n"
+msgstr ""
+"\n"
+"Festplatte %s: %d Köpfe, %d Sektoren, %d Zylinder\n"
+"Einheiten: %s mit %d * %d Bytes\n"
+"\n"
+
+#. FIXME! let's see how this shows up with other languagues
+#. acme@conectiva.com.br
+#: fdisk/fdisk.c:1182
+#, c-format
+msgid "%*s Boot    Start       End    Blocks   Id  System\n"
+msgstr "%*s boot.  Anfang      Ende    Blöcke   Id  Dateisystemtyp\n"
+
+#: fdisk/fdisk.c:1183 fdisk/fdisksgilabel.c:207 fdisk/fdisksunlabel.c:631
+msgid "Device"
+msgstr "Gerät"
+
+#: fdisk/fdisk.c:1223
+#, c-format
+msgid ""
+"\n"
+"Disk %s: %d heads, %d sectors, %d cylinders\n"
+"\n"
+msgstr ""
+"\n"
+"Festplatte %s: %d Köpfe, %d Sektoren, %d Zylinder\n"
+"\n"
+
+#: fdisk/fdisk.c:1225
+msgid "Nr AF  Hd Sec  Cyl  Hd Sec  Cyl   Start    Size ID\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1264
+#, c-format
+msgid "Warning: partition %d contains sector 0\n"
+msgstr "Warnung: Partition %d enthält Sektor 0\n"
+
+#: fdisk/fdisk.c:1267
+#, c-format
+msgid "Partition %d: head %d greater than maximum %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1270
+#, c-format
+msgid "Partition %d: sector %d greater than maximum %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1273
+#, c-format
+msgid "Partitions %d: cylinder %d greater than maximum %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1277
+#, c-format
+msgid "Partition %d: previous sectors %d disagrees with total %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1307
+#, c-format
+msgid "Warning: bad start-of-data in partition %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1315
+#, c-format
+msgid "Warning: partition %d overlaps partition %d.\n"
+msgstr "Warnung: Partition %d überlappt mit Partition %d.\n"
+
+#: fdisk/fdisk.c:1333
+#, c-format
+msgid "Warning: partition %d is empty\n"
+msgstr "Warnung: Partition %d ist leer\n"
+
+#: fdisk/fdisk.c:1338
+#, c-format
+msgid "Logical partition %d not entirely in partition %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1344
+#, c-format
+msgid "Total allocated sectors %d greater than the maximum %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1347
+#, c-format
+msgid "%d unallocated sectors\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1359 fdisk/fdisksgilabel.c:684 fdisk/fdisksunlabel.c:479
+#, c-format
+msgid "Partition %d is already defined.  Delete it before re-adding it.\n"
+msgstr ""
+
+# %s can be "Sektor" or "Zylinder".
+#: fdisk/fdisk.c:1380 fdisk/fdiskbsdlabel.c:252 fdisk/fdisksgilabel.c:706
+#: fdisk/fdisksunlabel.c:494
+#, c-format
+msgid "First %s"
+msgstr "Erster %s"
+
+#: fdisk/fdisk.c:1395 fdisk/fdisksunlabel.c:519
+#, c-format
+msgid "Sector %d is already allocated\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1421
+msgid "No free sectors available\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1431 fdisk/fdiskbsdlabel.c:256 fdisk/fdisksunlabel.c:529
+#, c-format
+msgid "Last %s or +size or +sizeM or +sizeK"
+msgstr "Letzter %s oder +Größe, +GrößeK oder +GrößeM"
+
+#: fdisk/fdisk.c:1461
+#, c-format
+msgid "Warning: partition %d has an odd number of sectors.\n"
+msgstr "Warnung: Partition %d hat eine ungerade Anzahl an Sektoren.\n"
+
+#: fdisk/fdisk.c:1498 fdisk/fdiskbsdlabel.c:590
+msgid "The maximum number of partitions has been created\n"
+msgstr "Die maximale Anzahl von Partitionen wurde erzeugt\n"
+
+#: fdisk/fdisk.c:1508
+msgid "You must delete some partition and add an extended partition first\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1512
+#, c-format
+msgid ""
+"Command action\n"
+"   %s\n"
+"   p   primary partition (1-4)\n"
+msgstr ""
+"Kommando  Aktion\n"
+"   %s\n"
+"   p      Primäre Partition (1-4)\n"
+
+#: fdisk/fdisk.c:1514
+msgid "l   logical (5 or over)"
+msgstr "l      Logische Partition (5 oder größer)"
+
+#: fdisk/fdisk.c:1514
+msgid "e   extended"
+msgstr "e      Erweiterte"
+
+#: fdisk/fdisk.c:1531
+#, c-format
+msgid "Invalid partition number for type `%c'\n"
+msgstr "Ungültige Partitionsnummer für den Typ »%c«\n"
+
+#: fdisk/fdisk.c:1563
+msgid ""
+"The partition table has been altered!\n"
+"\n"
+msgstr ""
+"Die Partitionstabelle wurde verändert!\n"
+"\n"
+
+#: fdisk/fdisk.c:1565
+msgid "Calling ioctl() to re-read partition table.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1582
+msgid "Syncing disks.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1587
+#, c-format
+msgid ""
+"Re-read table failed with error %d: %s.\n"
+"Reboot your system to ensure the partition table is updated.\n"
+msgstr ""
+"Das Kernel konnte die Partitionstabelle nicht erneut lesen (Fehler %d):\n"
+"%s\n"
+"Rebooten Sie das System, um sicherzustellen, daß die Partitionstabelle neu "
+"gelesen wird.\n"
+
+#: fdisk/fdisk.c:1593
+msgid ""
+"\n"
+"WARNING: If you have created or modified any DOS 6.x\n"
+"partitions, please see the fdisk manual page for additional\n"
+"information.\n"
+msgstr ""
+"\n"
+"WARNUNG: Wenn Sie eine DOS 6.x Partition angelegt\n"
+"oder verändert haben, dann schauen Sie bitte in die\n"
+"fdisk-manual-Seite nach weiteren Informationen\n"
+
+#: fdisk/fdisk.c:1624
+#, c-format
+msgid "Device: %s\n"
+msgstr "Gerät: %s\n"
+
+#: fdisk/fdisk.c:1639
+#, c-format
+msgid "Partition %d has no data area\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1645
+msgid "New beginning of data"
+msgstr ""
+
+# That sounds pretty ummm...
+#: fdisk/fdisk.c:1659
+msgid "Expert command (m for help): "
+msgstr "Expertenkommando (m für Hilfe): "
+
+#: fdisk/fdisk.c:1670
+msgid "Number of cylinders"
+msgstr "Anzahl der Zylinder"
+
+#: fdisk/fdisk.c:1691
+msgid "Number of heads"
+msgstr "Anzahl der Köpfe"
+
+#: fdisk/fdisk.c:1716
+msgid "Number of sectors"
+msgstr "Anzahl der Sektoren"
+
+#: fdisk/fdisk.c:1719
+msgid "Warning: setting sector offset for DOS compatiblity\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1781
+#, c-format
+msgid "Disk %s doesn't contain a valid partition table\n"
+msgstr "Festplatte %s enthält keine gültige Partitionstabelle\n"
+
+#: fdisk/fdisk.c:1795
+#, c-format
+msgid "Cannot open %s\n"
+msgstr "Konnte %s nicht öffnen\n"
+
+#: fdisk/fdisk.c:1861
+msgid "This kernel finds the sector size itself - -b option ignored\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1864
+msgid ""
+"Warning: the -b (set sector size) option should be used with one specified "
+"device\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1985
+#, c-format
+msgid "Using %s as default device!\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1991
+msgid "Command (m for help): "
+msgstr "Kommando (m für Hilfe): "
+
+#: fdisk/fdisk.c:2005
+#, c-format
+msgid ""
+"\n"
+"The current boot file is: %s\n"
+msgstr ""
+
+#: fdisk/fdisk.c:2007
+msgid "Please enter the name of the new boot file: "
+msgstr ""
+
+#: fdisk/fdisk.c:2009
+msgid "Boot file unchanged\n"
+msgstr ""
+
+#: fdisk/fdisk.c:2069
+msgid ""
+"\n"
+"\tSorry, no experts menu for SGI partition tables available.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdiskaixlabel.c:29
+msgid ""
+"\n"
+"\tThere is a valid AIX label on this disk.\n"
+"\tUnfortunately Linux cannot handle these\n"
+"\tdisks at the moment.  Nevertheless some\n"
+"\tadvice:\n"
+"\t1. fdisk will destroy its contents on write.\n"
+"\t2. Be sure that this disk is NOT a still vital\n"
+"\t   part of a volume group. (Otherwise you may\n"
+"\t   erase the other disks as well, if unmirrored.)\n"
+"\t3. Before deleting this physical volume be sure\n"
+"\t   to remove the disk logically from your AIX\n"
+"\t   machine.  (Otherwise you become an AIXpert)."
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:97
+#, c-format
+msgid ""
+"\n"
+"BSD label for device: %s\n"
+msgstr ""
+"\n"
+"»BSD label« von %s\n"
+
+#: fdisk/fdiskbsdlabel.c:106
+msgid "   d   delete a BSD partition"
+msgstr "   d   Eine BSD-Partition löschen"
+
+#: fdisk/fdiskbsdlabel.c:107
+msgid "   e   edit drive data"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:108
+msgid "   i   install bootstrap"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:109
+msgid "   l   list known filesystem types"
+msgstr "   l   Die bekannten Dateisystemtypen anzeigen"
+
+#: fdisk/fdiskbsdlabel.c:111
+msgid "   n   add a new BSD partition"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:112
+msgid "   p   print BSD partition table"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:117
+msgid "   s   show complete disklabel"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:118
+msgid "   t   change a partition's filesystem id"
+msgstr "   t   Den Dateisystemtyp einer Partition ändern"
+
+#: fdisk/fdiskbsdlabel.c:119
+msgid "   w   write disklabel to disk"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:121
+msgid "   x   link BSD partition to non-BSD partition"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:146
+#, c-format
+msgid "Partition %s%d has invalid starting sector 0.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:150
+#, c-format
+msgid "Reading disklabel of %s%d at sector %d.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:159
+#, c-format
+msgid "There is no *BSD partition on %s.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:174
+msgid "BSD disklabel command (m for help): "
+msgstr "»BSD disklabel« Kommando (m für Hilfe): "
+
+#: fdisk/fdiskbsdlabel.c:286
+#, c-format
+msgid "type: %s\n"
+msgstr "Typ: %s\n"
+
+#: fdisk/fdiskbsdlabel.c:288
+#, c-format
+msgid "type: %d\n"
+msgstr "Typ: %d\n"
+
+#: fdisk/fdiskbsdlabel.c:289
+#, c-format
+msgid "disk: %.*s\n"
+msgstr "Festplatte: %.*s\n"
+
+#: fdisk/fdiskbsdlabel.c:290
+#, c-format
+msgid "label: %.*s\n"
+msgstr ""
+
+# I currently don't know a better translation
+#: fdisk/fdiskbsdlabel.c:291
+msgid "flags:"
+msgstr "Flags:"
+
+#: fdisk/fdiskbsdlabel.c:293
+msgid " removable"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:295
+msgid " ecc"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:297
+msgid " badsect"
+msgstr ""
+
+#. On various machines the fields of *lp are short/int/long
+#. In order to avoid problems, we cast them all to long.
+#: fdisk/fdiskbsdlabel.c:301
+#, c-format
+msgid "bytes/sector: %ld\n"
+msgstr "Bytes/Sektor: %ld\n"
+
+#: fdisk/fdiskbsdlabel.c:302
+#, c-format
+msgid "sectors/track: %ld\n"
+msgstr "Sektoren/Spur: %ld\n"
+
+#: fdisk/fdiskbsdlabel.c:303
+#, c-format
+msgid "tracks/cylinder: %ld\n"
+msgstr "Spuren/Zylinder: %ld\n"
+
+#: fdisk/fdiskbsdlabel.c:304
+#, c-format
+msgid "sectors/cylinder: %ld\n"
+msgstr "Sektoren/Zylinder: %ld\n"
+
+#: fdisk/fdiskbsdlabel.c:305
+#, c-format
+msgid "cylinders: %ld\n"
+msgstr "Zylinder: %ld\n"
+
+#: fdisk/fdiskbsdlabel.c:306
+#, c-format
+msgid "rpm: %d\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:307
+#, c-format
+msgid "interleave: %d\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:308
+#, c-format
+msgid "trackskew: %d\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:309
+#, c-format
+msgid "cylinderskew: %d\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:310
+#, c-format
+msgid "headswitch: %ld\t\t# milliseconds\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:311
+#, c-format
+msgid "track-to-track seek: %ld\t# milliseconds\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:312
+msgid "drivedata: "
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:321
+#, c-format
+msgid ""
+"\n"
+"%d partitions:\n"
+msgstr ""
+"\n"
+"%d Partitionen:\n"
+
+#: fdisk/fdiskbsdlabel.c:322
+msgid "#        size   offset    fstype   [fsize bsize   cpg]\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:378
+#, c-format
+msgid "Writing disklabel to %s%d.\n"
+msgstr "Schreibe »disklabel« auf %s%d.\n"
+
+#: fdisk/fdiskbsdlabel.c:381
+#, c-format
+msgid "Writing disklabel to %s.\n"
+msgstr "Schreibe »disklabel« auf %s.\n"
+
+#: fdisk/fdiskbsdlabel.c:392
+#, c-format
+msgid "%s%d contains no disklabel.\n"
+msgstr "%s%d enthält keinen »disklabel«.\n"
+
+#: fdisk/fdiskbsdlabel.c:395
+#, c-format
+msgid "%s contains no disklabel.\n"
+msgstr "%s enthält keinen »disklabel«.\n"
+
+#: fdisk/fdiskbsdlabel.c:399
+msgid "Do you want to create a disklabel? (y/n) "
+msgstr "Wollen Sie einen »disklabel« anlegen (y/n)? "
+
+#: fdisk/fdiskbsdlabel.c:438
+msgid "bytes/sector"
+msgstr "Bytes/Sektor"
+
+#: fdisk/fdiskbsdlabel.c:439
+msgid "sectors/track"
+msgstr "Sektoren/Spur"
+
+#: fdisk/fdiskbsdlabel.c:440
+msgid "tracks/cylinder"
+msgstr "Spuren/Zylinder"
+
+#: fdisk/fdiskbsdlabel.c:448
+msgid "sectors/cylinder"
+msgstr "Sektoren/Zylinder"
+
+#: fdisk/fdiskbsdlabel.c:452
+msgid "Must be <= sectors/track * tracks/cylinder (default).\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:454
+msgid "rpm"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:455
+msgid "interleave"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:456
+msgid "trackskew"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:457
+msgid "cylinderskew"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:458
+msgid "headswitch"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:459
+msgid "track-to-track seek"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:500
+#, c-format
+msgid "Bootstrap: %sboot -> boot%s (%s): "
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:526
+msgid "Bootstrap overlaps with disk label!\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:547
+#, c-format
+msgid "Bootstrap installed on %s%d.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:549
+#, c-format
+msgid "Bootstrap installed on %s.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:570
+#, c-format
+msgid "Partition (a-%c): "
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:601
+msgid "This partition already exists.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:723
+#, c-format
+msgid "Warning: too many partitions (%d, maximum is %d).\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:769
+msgid ""
+"\n"
+"Syncing disks.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:56
+msgid "SGI volhdr"
+msgstr "SGI volhdr"
+
+#: fdisk/fdisksgilabel.c:57
+msgid "SGI trkrepl"
+msgstr "SGI trkrepl"
+
+#: fdisk/fdisksgilabel.c:58
+msgid "SGI secrepl"
+msgstr "SGI secrepl"
+
+#: fdisk/fdisksgilabel.c:59
+msgid "SGI raw"
+msgstr "SGI raw"
+
+#: fdisk/fdisksgilabel.c:60
+msgid "SGI bsd"
+msgstr "SGI bsd"
+
+#: fdisk/fdisksgilabel.c:61
+msgid "SGI sysv"
+msgstr "SGI sysv"
+
+#: fdisk/fdisksgilabel.c:62
+msgid "SGI volume"
+msgstr "SGI volume"
+
+#: fdisk/fdisksgilabel.c:63
+msgid "SGI efs"
+msgstr "SGI efs"
+
+#: fdisk/fdisksgilabel.c:64
+msgid "SGI lvol"
+msgstr "SGI lvol"
+
+#: fdisk/fdisksgilabel.c:65
+msgid "SGI rlvol"
+msgstr "SGI rlvol"
+
+#: fdisk/fdisksgilabel.c:66
+msgid "SGI xfs"
+msgstr "SGI xfs"
+
+#: fdisk/fdisksgilabel.c:67
+msgid "SGI xlvol"
+msgstr "SGI xlvol"
+
+#: fdisk/fdisksgilabel.c:68
+msgid "SGI rxlvol"
+msgstr "SGI rxlvol"
+
+#. Minix 1.4b and later
+#: fdisk/fdisksgilabel.c:69 fdisk/fdisksunlabel.c:52 fdisk/i386_sys_types.c:52
+msgid "Linux swap"
+msgstr "Linux Swap"
+
+#: fdisk/fdisksgilabel.c:70 fdisk/fdisksunlabel.c:53
+msgid "Linux native"
+msgstr "Linux native"
+
+#: fdisk/fdisksgilabel.c:143
+msgid ""
+"According to MIPS Computer Systems, Inc the Label must not contain more than "
+"512 bytes\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:162
+msgid "Detected sgi disklabel with wrong checksum.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:186
+#, c-format
+msgid ""
+"\n"
+"Disk %s (SGI disk label): %d heads, %d sectors\n"
+"%d cylinders, %d physical cylinders\n"
+"%d extra sects/cyl, interleave %d:1\n"
+"%s\n"
+"Units = %s of %d * 512 bytes\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:199
+#, c-format
+msgid ""
+"\n"
+"Disk %s (SGI disk label): %d heads, %d sectors, %d cylinders\n"
+"Units = %s of %d * 512 bytes\n"
+"\n"
+msgstr ""
+"\n"
+"Festplatte %s (»SGI disklabel«): %d Köpfe, %d Sektoren, %d Zylinder\n"
+"Einheiten: %s mit %d * 512 Bytes\n"
+"\n"
+
+#: fdisk/fdisksgilabel.c:205
+#, c-format
+msgid ""
+"----- partitions -----\n"
+"%*s  Info      Start       End   Sectors  Id  System\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:227
+#, c-format
+msgid ""
+"----- bootinfo -----\n"
+"Bootfile: %s\n"
+"----- directory entries -----\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:237
+#, c-format
+msgid "%2d: %-10s sector%5u size%8u\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:298
+msgid ""
+"\n"
+"Invalid Bootfile!\n"
+"\tThe bootfile must be an absolute non-zero pathname,\n"
+"\te.g. \"/unix\" or \"/unix.save\".\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:305
+msgid ""
+"\n"
+"\tName of Bootfile too long:  16 bytes maximum.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:310
+msgid ""
+"\n"
+"\tBootfile must have a fully qualified pathname.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:315
+msgid ""
+"\n"
+"\tBe aware, that the bootfile is not checked for existence.\n"
+"\tSGI's default is \"/unix\" and for backup \"/unix.save\".\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:343
+#, c-format
+msgid ""
+"\n"
+"\tBootfile is changed to \"%s\".\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:448
+msgid "More than one entire disk entry present.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:456 fdisk/fdisksunlabel.c:455
+msgid "No partitions defined\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:463
+msgid "IRIX likes when Partition 11 covers the entire disk.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:465
+#, c-format
+msgid ""
+"The entire disk partition should start at block 0,\n"
+"not at diskblock %d.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:469
+#, c-format
+msgid ""
+"The entire disk partition is only %d diskblock large,\n"
+"but the disk is %d diskblocks long.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:476
+msgid "One Partition (#11) should cover the entire disk.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:488
+#, c-format
+msgid "Partition %d does not start on cylinder boundary.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:495
+#, c-format
+msgid "Partition %d does not end on cylinder boundary.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:503
+#, c-format
+msgid "The Partition %d and %d overlap by %d sectors.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:512 fdisk/fdisksgilabel.c:532
+#, c-format
+msgid "Unused gap of %8d sectors - sectors %8d-%d\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:545
+msgid ""
+"\n"
+"The boot partition does not exist.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:549
+msgid ""
+"\n"
+"The swap partition does not exist.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:554
+msgid ""
+"\n"
+"The swap partition has no swap type.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:558
+msgid "\tYou have chosen an unusual boot file name.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:569
+msgid "Sorry You may change the Tag of non-empty partitions.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:576
+msgid ""
+"It is highly recommended that the partition at offset 0\n"
+"is of type \"SGI volhdr\", the IRIX system will rely on it to\n"
+"retrieve from its directory standalone tools like sash and fx.\n"
+"Only the \"SGI volume\" entire disk section may violate this.\n"
+"Type YES if you are sure about tagging this partition differently.\n"
+msgstr ""
+
+#. rebuild freelist
+#: fdisk/fdisksgilabel.c:621
+msgid "Do You know, You got a partition overlap on the disk?\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:691
+msgid "Attempting to generate entire disk entry automatically.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:698
+msgid "The entire disk is already covered with partitions.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:703
+msgid "You got a partition overlap on the disk. Fix it first!\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:712 fdisk/fdisksgilabel.c:741
+msgid ""
+"It is highly recommended that eleventh partition\n"
+"covers the entire disk and is of type `SGI volume'\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:728
+msgid "You will get a partition overlap on the disk. Fix it first!\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:733
+#, c-format
+msgid " Last %s"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:756
+msgid ""
+"Building a new SGI disklabel. Changes will remain in memory only,\n"
+"until you decide to write them. After that, of course, the previous\n"
+"content will be unrecoverable lost.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:784
+#, c-format
+msgid "Trying to keep parameters of partition %d.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:786
+#, c-format
+msgid "ID=%02x\tSTART=%d\tLENGTH=%d\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:43 fdisk/i386_sys_types.c:6
+msgid "Empty"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:45
+msgid "SunOS root"
+msgstr "SunOS root"
+
+#: fdisk/fdisksunlabel.c:46
+msgid "SunOS swap"
+msgstr "SunOS Swap"
+
+#: fdisk/fdisksunlabel.c:47
+msgid "SunOS usr"
+msgstr "SunOS usr"
+
+#: fdisk/fdisksunlabel.c:48
+msgid "Whole disk"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:49
+msgid "SunOS stand"
+msgstr "SunOS stand"
+
+#: fdisk/fdisksunlabel.c:50
+msgid "SunOS var"
+msgstr "SunOS var"
+
+#: fdisk/fdisksunlabel.c:51
+msgid "SunOS home"
+msgstr "SunOS home"
+
+#: fdisk/fdisksunlabel.c:122
+msgid ""
+"Detected sun disklabel with wrong checksum.\n"
+"Probably you'll have to set all the values,\n"
+"e.g. heads, sectors, cylinders and partitions\n"
+"or force a fresh label (s command in main menu)\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:215
+#, c-format
+msgid "Autoconfigure found a %s%s%s\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:242
+msgid ""
+"Building a new sun disklabel. Changes will remain in memory only,\n"
+"until you decide to write them. After that, of course, the previous\n"
+"content won't be recoverable.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:253
+msgid ""
+"Drive type\n"
+"   ?   auto configure\n"
+"   0   custom (with hardware detected defaults)"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:263
+msgid "Select type (? for auto, 0 for custom): "
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:275
+msgid "Autoconfigure failed.\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:303
+msgid "Sectors/track"
+msgstr "Sektoren/Spur"
+
+#: fdisk/fdisksunlabel.c:310
+msgid "Alternate cylinders"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:313
+msgid "Physical cylinders"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:316 fdisk/fdisksunlabel.c:681
+msgid "Rotation speed (rpm)"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:318 fdisk/fdisksunlabel.c:674
+msgid "Interleave factor"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:321 fdisk/fdisksunlabel.c:667
+msgid "Extra sectors per cylinder"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:334
+msgid "You may change all the disk params from the x menu"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:337
+msgid "3,5\" floppy"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:337
+msgid "Linux custom"
+msgstr "Linux custom"
+
+#: fdisk/fdisksunlabel.c:418
+#, c-format
+msgid "Partition %d doesn't end on cylinder boundary\n"
+msgstr "Partition %d endet nicht an einer Zylindergrenze\n"
+
+#: fdisk/fdisksunlabel.c:438
+#, c-format
+msgid "Partition %d overlaps with others in sectors %d-%d\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:460
+#, c-format
+msgid "Unused gap - sectors 0-%d\n"
+msgstr "Unbenutzter Bereich - Sektor 0-%d\n"
+
+#: fdisk/fdisksunlabel.c:462 fdisk/fdisksunlabel.c:466
+#, c-format
+msgid "Unused gap - sectors %d-%d\n"
+msgstr "Unbenutzter Bereich - Sektor %d-%d\n"
+
+#: fdisk/fdisksunlabel.c:489
+msgid ""
+"Other partitions already cover the whole disk.\n"
+"Delete some/shrink them before retry.\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:547
+#, c-format
+msgid ""
+"You haven't covered the whole disk with the 3rd partition, but your value\n"
+"%d %s covers some other partition. Your entry has been changed\n"
+"to %d %s\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:567
+#, c-format
+msgid ""
+"If you want to maintain SunOS/Solaris compatibility, consider leaving this\n"
+"partition as Whole disk (5), starting at 0, with %u sectors\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:580
+msgid ""
+"It is highly recommended that the partition at offset 0\n"
+"is UFS, EXT2FS filesystem or SunOS swap. Putting Linux swap\n"
+"there may destroy your partition table and bootblock.\n"
+"Type YES if you're very sure you would like that partition\n"
+"tagged with 82 (Linux swap): "
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:611
+#, c-format
+msgid ""
+"\n"
+"Disk %s (Sun disk label): %d heads, %d sectors, %d rpm\n"
+"%d cylinders, %d alternate cylinders, %d physical cylinders\n"
+"%d extra sects/cyl, interleave %d:1\n"
+"%s\n"
+"Units = %s of %d * 512 bytes\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:625
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Disk %s (Sun disk label): %d heads, %d sectors, %d cylinders\n"
+"Units = %s of %d * 512 bytes\n"
+"\n"
+msgstr ""
+"\n"
+"Festplatte %s (»Sun disklabel«): %d Köpfe, %d Sektoren, %d Zylinder\n"
+"Einheiten: %s mit %d * 512 Bytes\n"
+"\n"
+
+#: fdisk/fdisksunlabel.c:630
+#, c-format
+msgid "%*s Flag    Start       End    Blocks   Id  System\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:655
+msgid "Number of alternate cylinders"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:688
+msgid "Number of physical cylinders"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:7
+msgid "FAT12"
+msgstr "FAT12"
+
+#: fdisk/i386_sys_types.c:8
+msgid "XENIX root"
+msgstr "XENIX root"
+
+#: fdisk/i386_sys_types.c:9
+msgid "XENIX usr"
+msgstr "XENIX usr"
+
+#: fdisk/i386_sys_types.c:10
+msgid "FAT16 <32M"
+msgstr "FAT16 <32M"
+
+#: fdisk/i386_sys_types.c:11
+msgid "Extended"
+msgstr "Erweiterte"
+
+#. DOS 3.3+ extended partition
+#: fdisk/i386_sys_types.c:12
+msgid "FAT16"
+msgstr "FAT16"
+
+#. DOS 16-bit >=32M
+#: fdisk/i386_sys_types.c:13
+msgid "HPFS/NTFS"
+msgstr "HPFS/NTFS"
+
+#. OS/2 IFS, eg, HPFS or NTFS or QNX
+#: fdisk/i386_sys_types.c:14
+msgid "AIX"
+msgstr "AIX"
+
+# "bootfähig"
+#. AIX boot (AIX -- PS/2 port) or SplitDrive
+#: fdisk/i386_sys_types.c:15
+msgid "AIX bootable"
+msgstr "AIX bootfähig"
+
+#. AIX data or Coherent
+#: fdisk/i386_sys_types.c:16
+msgid "OS/2 Boot Manager"
+msgstr "OS/2 Bootmanager"
+
+#. OS/2 Boot Manager
+#: fdisk/i386_sys_types.c:17
+msgid "Win95 FAT32"
+msgstr "Win95 FAT32"
+
+#: fdisk/i386_sys_types.c:18
+msgid "Win95 FAT32 (LBA)"
+msgstr "Win95 FAT32 (LBA)"
+
+#. LBA really is `Extended Int 13h'
+#: fdisk/i386_sys_types.c:19
+msgid "Win95 FAT16 (LBA)"
+msgstr "Win95 FAT16 (LBA)"
+
+#: fdisk/i386_sys_types.c:20
+msgid "Win95 Ext'd (LBA)"
+msgstr "Win95 Erw. (LBA)"
+
+#: fdisk/i386_sys_types.c:21
+msgid "OPUS"
+msgstr "OPUS"
+
+#: fdisk/i386_sys_types.c:22
+msgid "Hidden FAT12"
+msgstr "Verst. FAT12"
+
+#: fdisk/i386_sys_types.c:23
+msgid "Compaq diagnostics"
+msgstr "Compaq Diagnostics"
+
+#: fdisk/i386_sys_types.c:24
+msgid "Hidden FAT16 <32M"
+msgstr "Verst. FAT16 <32M"
+
+#: fdisk/i386_sys_types.c:25
+msgid "Hidden FAT16"
+msgstr "Verst. FAT16"
+
+#: fdisk/i386_sys_types.c:26
+msgid "Hidden HPFS/NTFS"
+msgstr "Verst. HPFS/NTFS"
+
+#: fdisk/i386_sys_types.c:27
+msgid "AST Windows swapfile"
+msgstr "AST Windows swapfile"
+
+#: fdisk/i386_sys_types.c:28
+msgid "NEC DOS"
+msgstr "NEC DOS"
+
+#: fdisk/i386_sys_types.c:29
+msgid "PartitionMagic recovery"
+msgstr "PartitionMagic recovery"
+
+#: fdisk/i386_sys_types.c:30
+msgid "Venix 80286"
+msgstr "Venix 80286"
+
+#: fdisk/i386_sys_types.c:31
+msgid "PPC PReP Boot"
+msgstr "PPC PReP Boot"
+
+#: fdisk/i386_sys_types.c:32
+msgid "SFS"
+msgstr "SFS"
+
+#: fdisk/i386_sys_types.c:33
+msgid "QNX4.x"
+msgstr "QNX4.x"
+
+#: fdisk/i386_sys_types.c:34
+msgid "QNX4.x 2nd part"
+msgstr "QNX4.x 2nd part"
+
+#: fdisk/i386_sys_types.c:35
+msgid "QNX4.x 3rd part"
+msgstr "QNX4.x 3rd part"
+
+#: fdisk/i386_sys_types.c:36
+msgid "OnTrack DM"
+msgstr "OnTrack DM"
+
+#: fdisk/i386_sys_types.c:37
+msgid "OnTrack DM6 Aux1"
+msgstr "OnTrack DM6 Aux1"
+
+#. (or Novell)
+#: fdisk/i386_sys_types.c:38
+msgid "CP/M"
+msgstr "CP/M"
+
+#. CP/M or Microport SysV/AT
+#: fdisk/i386_sys_types.c:39
+msgid "OnTrack DM6 Aux3"
+msgstr "OnTrack DM6 Aux3"
+
+#: fdisk/i386_sys_types.c:40
+msgid "OnTrackDM6"
+msgstr "OnTrackDM6"
+
+#: fdisk/i386_sys_types.c:41
+msgid "EZ-Drive"
+msgstr "EZ-Drive"
+
+#: fdisk/i386_sys_types.c:42
+msgid "Golden Bow"
+msgstr "Golden Bow"
+
+#: fdisk/i386_sys_types.c:43
+msgid "Priam Edisk"
+msgstr "Priam Edisk"
+
+#. DOS R/O or SpeedStor
+#: fdisk/i386_sys_types.c:44 fdisk/i386_sys_types.c:73
+#: fdisk/i386_sys_types.c:75 fdisk/i386_sys_types.c:76
+msgid "SpeedStor"
+msgstr "SpeedStor"
+
+#: fdisk/i386_sys_types.c:45
+msgid "GNU HURD or SysV"
+msgstr "GNU HURD / SysV"
+
+#. GNU HURD or Mach or Sys V/386 (such as ISC UNIX)
+#: fdisk/i386_sys_types.c:46
+msgid "Novell Netware 286"
+msgstr "Novell Netware 286"
+
+#: fdisk/i386_sys_types.c:47
+msgid "Novell Netware 386"
+msgstr "Novell Netware 386"
+
+#: fdisk/i386_sys_types.c:48
+msgid "DiskSecure Multi-Boot"
+msgstr "DiskSecure Multi-Boot"
+
+#: fdisk/i386_sys_types.c:49
+msgid "PC/IX"
+msgstr "PC/IX"
+
+#: fdisk/i386_sys_types.c:50
+msgid "Old Minix"
+msgstr "Old Minix"
+
+#. Minix 1.4a and earlier
+#: fdisk/i386_sys_types.c:51
+msgid "Minix / old Linux"
+msgstr "Minix / old Linux"
+
+#: fdisk/i386_sys_types.c:54
+msgid "OS/2 hidden C: drive"
+msgstr "OS/2 verst. C:-Lw."
+
+#: fdisk/i386_sys_types.c:55
+msgid "Linux extended"
+msgstr "Linux erweitert"
+
+#: fdisk/i386_sys_types.c:56 fdisk/i386_sys_types.c:57
+msgid "NTFS volume set"
+msgstr "NTFS volume set"
+
+#: fdisk/i386_sys_types.c:58
+msgid "Amoeba"
+msgstr "Amoeba"
+
+#: fdisk/i386_sys_types.c:59
+msgid "Amoeba BBT"
+msgstr "Amoeba BBT"
+
+#. (bad block table)
+#: fdisk/i386_sys_types.c:60
+msgid "IBM Thinkpad hibernation"
+msgstr "IBM Thinkpad hibernation"
+
+#: fdisk/i386_sys_types.c:61
+msgid "BSD/386"
+msgstr "BSD/386"
+
+#: fdisk/i386_sys_types.c:62
+msgid "OpenBSD"
+msgstr "OpenBSD"
+
+#: fdisk/i386_sys_types.c:63
+msgid "NeXTSTEP"
+msgstr "NeXTSTEP"
+
+#: fdisk/i386_sys_types.c:64
+msgid "BSDI fs"
+msgstr "BSDI fs"
+
+#: fdisk/i386_sys_types.c:65
+msgid "BSDI swap"
+msgstr "BSDI swap"
+
+#: fdisk/i386_sys_types.c:66
+msgid "DRDOS/sec (FAT-12)"
+msgstr "DRDOS/sec (FAT-12)"
+
+#: fdisk/i386_sys_types.c:67
+msgid "DRDOS/sec (FAT-16 < 32M)"
+msgstr "DRDOS/sec (FAT-16 < 32M)"
+
+#: fdisk/i386_sys_types.c:68
+msgid "DRDOS/sec (FAT-16)"
+msgstr "DRDOS/sec (FAT-16)"
+
+#: fdisk/i386_sys_types.c:69
+msgid "Syrinx"
+msgstr "Syrinx"
+
+#: fdisk/i386_sys_types.c:70
+msgid "CP/M / CTOS / ..."
+msgstr "CP/M / CTOS / ..."
+
+#. CP/M or Concurrent CP/M or Concurrent DOS or CTOS
+#: fdisk/i386_sys_types.c:71
+msgid "DOS access"
+msgstr "DOS access"
+
+#. DOS access or SpeedStor 12-bit FAT extended partition
+#: fdisk/i386_sys_types.c:72
+msgid "DOS R/O"
+msgstr "DOS R/O"
+
+#. SpeedStor 16-bit FAT extended partition < 1024 cyl.
+#: fdisk/i386_sys_types.c:74
+msgid "BeOS fs"
+msgstr "BeOS fs"
+
+#. SpeedStor large partition
+#: fdisk/i386_sys_types.c:77
+msgid "DOS secondary"
+msgstr "DOS secondary"
+
+#. DOS 3.3+ secondary
+#: fdisk/i386_sys_types.c:78
+msgid "LANstep"
+msgstr "LANstep"
+
+#. SpeedStor >1024 cyl. or LANstep
+#: fdisk/i386_sys_types.c:79
+msgid "BBT"
+msgstr "BBT"
+
+#: fdisk/sfdisk.c:148
+#, c-format
+msgid "seek error on %s - cannot seek to %lu\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:153
+#, c-format
+msgid "seek error: wanted 0x%08x%08x, got 0x%08x%08x\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:199
+msgid "out of memory - giving up\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:203 fdisk/sfdisk.c:286
+#, c-format
+msgid "read error on %s - cannot read sector %lu\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:219
+#, c-format
+msgid "ERROR: sector %lu does not have an msdos signature\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:236
+#, c-format
+msgid "write error on %s - cannot write sector %lu\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:274
+#, c-format
+msgid "cannot open partition sector save file (%s)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:292
+#, c-format
+msgid "write error on %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:310
+#, c-format
+msgid "cannot stat partition restore file (%s)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:315
+msgid "partition restore file has wrong size - not restoring\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:319
+#, fuzzy
+msgid "out of memory?\n"
+msgstr "Speicher ist alle\n"
+
+#: fdisk/sfdisk.c:325
+#, c-format
+msgid "cannot open partition restore file (%s)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:331
+#, fuzzy, c-format
+msgid "error reading %s\n"
+msgstr "Fehler beim Lesen von %s\n"
+
+#: fdisk/sfdisk.c:338
+#, c-format
+msgid "cannot open device %s for writing\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:350
+#, c-format
+msgid "error writing sector %lu on %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:416
+#, c-format
+msgid ""
+"Warning: start=%d - this looks like a partition rather than\n"
+"the entire disk. Using fdisk on it is probably meaningless.\n"
+"[Use the --force option if you really want this]\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:422
+#, c-format
+msgid "Warning: HDIO_GETGEO says that there are %d heads\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:425
+#, c-format
+msgid "Warning: HDIO_GETGEO says that there are %d sectors\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:428
+#, c-format
+msgid "Warning: HDIO_GETGEO says that there are %d cylinders\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:432
+#, c-format
+msgid "Disk %s: cannot get geometry\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:434
+#, c-format
+msgid ""
+"Warning: unlikely number of sectors (%d) - usually at most 63\n"
+"This will give problems with all software that uses C/H/S addressing.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:438
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Disk %s: %lu cylinders, %lu heads, %lu sectors/track\n"
+msgstr ""
+"\n"
+"Festplatte %s: %lu Zylinder, %lu Köpfe, %lu Sektoren/Spur\n"
+"\n"
+
+#: fdisk/sfdisk.c:518
+#, c-format
+msgid ""
+"%s of partition %s has impossible value for head: %d (should be in 0-%d)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:523
+#, c-format
+msgid ""
+"%s of partition %s has impossible value for sector: %d (should be in 1-%d)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:528
+#, c-format
+msgid ""
+"%s of partition %s has impossible value for cylinders: %d (should be in "
+"0-%d)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:567
+msgid ""
+"Id  Name\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:712
+msgid "Re-reading the partition table ...\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:718
+msgid ""
+"The command to re-read the partition table failed\n"
+"Reboot your system now, before using mkfs\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:723
+#, fuzzy, c-format
+msgid "Error closing %s\n"
+msgstr "Fehler beim Schließen von %s\n"
+
+#: fdisk/sfdisk.c:761
+#, c-format
+msgid "%s: no such partition\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:784
+msgid "unrecognized format - using sectors\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:823
+#, fuzzy, c-format
+msgid "# partition table of %s\n"
+msgstr "# Partitionstabelle von %s\n"
+
+#: fdisk/sfdisk.c:824
+#, fuzzy
+msgid ""
+"unit: sectors\n"
+"\n"
+msgstr ""
+"Einheit: Sektoren\n"
+"\n"
+
+#: fdisk/sfdisk.c:834
+#, c-format
+msgid "unimplemented format - using %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:838
+#, c-format
+msgid ""
+"Units = cylinders of %lu bytes, blocks of 1024 bytes, counting from %d\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:841
+msgid "   Device Boot Start     End   #cyls   #blocks   Id  System\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:846
+#, c-format
+msgid ""
+"Units = sectors of 512 bytes, counting from %d\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:848
+msgid "   Device Boot    Start       End  #sectors  Id  System\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:851
+#, c-format
+msgid ""
+"Units = blocks of 1024 bytes, counting from %d\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:853
+msgid "   Device Boot   Start       End   #blocks   Id  System\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:856
+#, c-format
+msgid ""
+"Units = megabytes of 1048576 bytes, blocks of 1024 bytes, counting from %d\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:858
+msgid "   Device Boot Start   End     MB   #blocks   Id  System\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:924
+#, c-format
+msgid " start=%9lu"
+msgstr ""
+
+#: fdisk/sfdisk.c:925
+#, c-format
+msgid ", size=%8lu"
+msgstr ""
+
+#: fdisk/sfdisk.c:927
+#, c-format
+msgid ", Id=%2x"
+msgstr ""
+
+#: fdisk/sfdisk.c:929
+#, fuzzy
+msgid ", bootable"
+msgstr ", bootbar"
+
+#: fdisk/sfdisk.c:990
+#, c-format
+msgid "\t\tstart: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:997
+#, c-format
+msgid "\t\tend: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1000
+#, c-format
+msgid "partition ends on cylinder %ld, beyond the end of the disk\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1010
+#, fuzzy
+msgid "No partitions found\n"
+msgstr "Keine Partitionen gefunden\n"
+
+#: fdisk/sfdisk.c:1013
+#, c-format
+msgid ""
+"Warning: The first partition looks like it was made\n"
+"  for C/H/S=*/%ld/%ld (instead of %ld/%ld/%ld).\n"
+"For this listing I'll assume that geometry.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1060
+msgid "no partition table present.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1062
+#, c-format
+msgid "strange, only %d partitions defined.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1071
+#, c-format
+msgid "Warning: partition %s has size 0 but is not marked Empty\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1074
+#, c-format
+msgid "Warning: partition %s has size 0 and is bootable\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1077
+#, c-format
+msgid "Warning: partition %s has size 0 and nonzero start\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1088
+#, c-format
+msgid "Warning: partition %s "
+msgstr ""
+
+#: fdisk/sfdisk.c:1089
+#, c-format
+msgid "is not contained in partition %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1100
+#, c-format
+msgid "Warning: partitions %s "
+msgstr ""
+
+#: fdisk/sfdisk.c:1101
+#, c-format
+msgid "and %s overlap\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1112
+#, c-format
+msgid "Warning: partition %s contains part of "
+msgstr ""
+
+#: fdisk/sfdisk.c:1113
+#, c-format
+msgid "the partition table (sector %lu),\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1114
+msgid "and will destroy it when filled\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1123
+#, c-format
+msgid "Warning: partition %s starts at sector 0\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1127
+#, c-format
+msgid "Warning: partition %s extends past end of disk\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1141
+msgid "Among the primary partitions, at most one can be extended\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1142
+msgid " (although this is not a problem under Linux)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1159
+#, fuzzy, c-format
+msgid "Warning: partition %s does not start at a cylinder boundary\n"
+msgstr "Warnung: Partition %s beginnt nicht an einer Zylindergrenze\n"
+
+#: fdisk/sfdisk.c:1165
+#, fuzzy, c-format
+msgid "Warning: partition %s does not end at a cylinder boundary\n"
+msgstr "Warnung: Partition %s endet nicht an einer Zylindergrenze\n"
+
+#: fdisk/sfdisk.c:1183
+msgid ""
+"Warning: more than one primary partition is marked bootable (active)\n"
+"This does not matter for LILO, but the DOS MBR will not boot this disk.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1190
+msgid ""
+"Warning: usually one can boot from primary partitions only\n"
+"LILO disregards the `bootable' flag.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1196
+msgid ""
+"Warning: no primary partition is marked bootable (active)\n"
+"This does not matter for LILO, but the DOS MBR will not boot this disk.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1213
+#, c-format
+msgid ""
+"partition %s: start: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1222
+#, c-format
+msgid "partition %s: end: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1225
+#, c-format
+msgid "partition %s ends on cylinder %ld, beyond the end of the disk\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1258 fdisk/sfdisk.c:1335
+#, c-format
+msgid "too many partitions - ignoring those past nr (%d)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1273
+msgid "tree of partitions?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1377
+msgid "detected Disk Manager - unable to handle that\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1384
+msgid "DM6 signature found - giving up\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1404
+msgid "strange..., an extended partition of size 0?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1411
+msgid "strange..., a BSD partition of size 0?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1443
+#, c-format
+msgid " %s: unrecognized partition\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1455
+msgid "-n flag was given: Nothing changed\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1468
+msgid "Failed saving the old sectors - aborting\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1473
+#, c-format
+msgid "Failed writing the partition on %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1550
+msgid "long or incomplete input line - quitting\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1586
+#, c-format
+msgid "input error: `=' expected after %s field\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1593
+#, c-format
+msgid "input error: unexpected character %c after %s field\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1599
+#, c-format
+msgid "unrecognized input: %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1631
+msgid "number too big\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1635
+msgid "trailing junk after number\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1751
+msgid "no room for partition descriptor\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1784
+msgid "cannot build surrounding extended partition\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1835
+msgid "too many input fields\n"
+msgstr ""
+
+#. no free blocks left - don't read any further
+#: fdisk/sfdisk.c:1869
+msgid "No room for more\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1888
+msgid "Illegal type\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1920
+#, c-format
+msgid "Warning: exceeds max allowable size (%lu)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1925
+msgid "Warning: empty partition\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1939
+#, c-format
+msgid "Warning: bad partition start (earliest %lu)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1952
+msgid "unrecognized bootable flag - choose - or *\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1969 fdisk/sfdisk.c:1982
+msgid "partial c,h,s specification?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1993
+msgid "Extended partition not where expected\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2025
+msgid "bad input\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2047
+#, fuzzy
+msgid "too many partitions\n"
+msgstr "Zu viele Partitionen\n"
+
+#: fdisk/sfdisk.c:2080
+msgid ""
+"Input in the following format; absent fields get a default value.\n"
+"<start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s>\n"
+"Usually you only need to specify <start> and <size> (and perhaps <type>).\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2100
+msgid "version"
+msgstr ""
+
+#: fdisk/sfdisk.c:2106
+#, c-format
+msgid "Usage: %s [options] device ...\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2107
+msgid "device: something like /dev/hda or /dev/sda"
+msgstr ""
+
+#: fdisk/sfdisk.c:2108
+msgid "useful options:"
+msgstr ""
+
+#: fdisk/sfdisk.c:2109
+msgid "    -s [or --show-size]: list size of a partition"
+msgstr ""
+
+#: fdisk/sfdisk.c:2110
+msgid "    -c [or --id]:        print or change partition Id"
+msgstr ""
+
+#: fdisk/sfdisk.c:2111
+msgid "    -l [or --list]:      list partitions of each device"
+msgstr ""
+
+#: fdisk/sfdisk.c:2112
+msgid "    -d [or --dump]:      idem, but in a format suitable for later input"
+msgstr ""
+
+#: fdisk/sfdisk.c:2113
+msgid "    -i [or --increment]: number cylinders etc. from 1 instead of from 0"
+msgstr ""
+
+#: fdisk/sfdisk.c:2114
+msgid ""
+"    -uS, -uB, -uC, -uM:  accept/report in units of "
+"sectors/blocks/cylinders/MB"
+msgstr ""
+
+#: fdisk/sfdisk.c:2115
+msgid "    -T [or --list-types]:list the known partition types"
+msgstr ""
+
+#: fdisk/sfdisk.c:2116
+msgid "    -D [or --DOS]:       for DOS-compatibility: waste a little space"
+msgstr ""
+
+#: fdisk/sfdisk.c:2117
+msgid "    -R [or --re-read]:   make kernel reread partition table"
+msgstr ""
+
+#: fdisk/sfdisk.c:2118
+msgid "    -N# :                change only the partition with number #"
+msgstr ""
+
+#: fdisk/sfdisk.c:2119
+msgid "    -n :                 do not actually write to disk"
+msgstr ""
+
+#: fdisk/sfdisk.c:2120
+msgid ""
+"    -O file :            save the sectors that will be overwritten to file"
+msgstr ""
+
+#: fdisk/sfdisk.c:2121
+msgid "    -I file :            restore these sectors again"
+msgstr ""
+
+#: fdisk/sfdisk.c:2122
+msgid "    -v [or --version]:   print version"
+msgstr ""
+
+#: fdisk/sfdisk.c:2123
+msgid "    -? [or --help]:      print this message"
+msgstr ""
+
+#: fdisk/sfdisk.c:2124
+msgid "dangerous options:"
+msgstr ""
+
+#: fdisk/sfdisk.c:2125
+msgid "    -g [or --show-geometry]: print the kernel's idea of the geometry"
+msgstr ""
+
+#: fdisk/sfdisk.c:2126
+msgid ""
+"    -x [or --show-extended]: also list extended partitions on output\n"
+"                             or expect descriptors for them on input"
+msgstr ""
+
+#: fdisk/sfdisk.c:2128
+msgid ""
+"    -L  [or --Linux]:      do not complain about things irrelevant for Linux"
+msgstr ""
+
+#: fdisk/sfdisk.c:2129
+msgid "    -q  [or --quiet]:      suppress warning messages"
+msgstr ""
+
+#: fdisk/sfdisk.c:2130
+msgid "    You can override the detected geometry using:"
+msgstr ""
+
+#: fdisk/sfdisk.c:2131
+msgid "    -C# [or --cylinders #]:set the number of cylinders to use"
+msgstr ""
+
+#: fdisk/sfdisk.c:2132
+msgid "    -H# [or --heads #]:    set the number of heads to use"
+msgstr ""
+
+#: fdisk/sfdisk.c:2133
+msgid "    -S# [or --sectors #]:  set the number of sectors to use"
+msgstr ""
+
+#: fdisk/sfdisk.c:2134
+msgid "You can disable all consistency checking with:"
+msgstr ""
+
+#: fdisk/sfdisk.c:2135
+msgid "    -f  [or --force]:      do what I say, even if it is stupid"
+msgstr ""
+
+#: fdisk/sfdisk.c:2141
+#, fuzzy
+msgid "Usage:"
+msgstr "Aufruf:"
+
+#: fdisk/sfdisk.c:2142
+#, c-format
+msgid "%s device\t\t list active partitions on device\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2143
+#, c-format
+msgid "%s device n1 n2 ... activate partitions n1 ..., inactivate the rest\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2144
+#, c-format
+msgid "%s -An device\t activate partition n, inactivate the other ones\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2263
+msgid "no command?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2386
+#, c-format
+msgid "total: %d blocks\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2423
+msgid "usage: sfdisk --print-id device partition-number\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2425
+msgid "usage: sfdisk --change-id device partition-number Id\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2427
+msgid "usage: sfdisk --id device partition-number [Id]\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2434
+msgid "can specify only one device (except with -l or -s)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2459
+#, c-format
+msgid "cannot open %s %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2459
+msgid "read-write"
+msgstr ""
+
+#: fdisk/sfdisk.c:2459
+msgid "for reading"
+msgstr ""
+
+#: fdisk/sfdisk.c:2484
+#, c-format
+msgid "%s: OK\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2501
+#, c-format
+msgid "%s: %d cylinders, %d heads, %d sectors/track\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2504
+#, c-format
+msgid "%s: unknown geometry\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2520
+#, c-format
+msgid "BLKGETSIZE ioctl failed for %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2597
+#, c-format
+msgid "bad active byte: 0x%x instead of 0x80\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2614 fdisk/sfdisk.c:2667 fdisk/sfdisk.c:2697
+#, fuzzy
+msgid ""
+"Done\n"
+"\n"
+msgstr ""
+"Fertig\n"
+"\n"
+
+#: fdisk/sfdisk.c:2623
+#, c-format
+msgid ""
+"You have %d active primary partitions. This does not matter for LILO,\n"
+"but the DOS MBR will only boot a disk with 1 active partition.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2637
+#, c-format
+msgid "partition %s has id %x and is not hidden\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2693
+#, c-format
+msgid "Bad Id %x\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2708
+msgid "This disk is currently in use.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2725
+#, c-format
+msgid "Fatal error: cannot find %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2728
+#, c-format
+msgid "Warning: %s is not a block device\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2734
+msgid "Checking that no-one is using this disk right now ...\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2736
+msgid ""
+"\n"
+"This disk is currently in use - repartitioning is probably a bad idea.Umount "
+"all file systems, and swapoff all swap partitions on this disk.Use the "
+"--no-reread flag to suppress this check.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2740
+msgid "Use the --force flag to overrule all checks.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2744
+msgid "OK"
+msgstr ""
+
+#: fdisk/sfdisk.c:2753
+msgid "Old situation:\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2757
+#, c-format
+msgid "Partition %d does not exist, cannot change it\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2765
+msgid "New situation:\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2770
+msgid ""
+"I don't like these partitions - nothing changed.\n"
+"(If you really want this, use the --force option.)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2773
+msgid "I don't like this - probably you should answer No\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2778
+msgid "Are you satisfied with this? [ynq] "
+msgstr ""
+
+#: fdisk/sfdisk.c:2780
+msgid "Do you want to write this to disk? [ynq] "
+msgstr ""
+
+#: fdisk/sfdisk.c:2785
+msgid ""
+"\n"
+"sfdisk: premature end of input\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2787
+msgid "Quitting - nothing changed\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2793
+msgid "Please answer one of y,n,q\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2801
+msgid ""
+"Successfully wrote the new partition table\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2807
+msgid ""
+"If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)\n"
+"to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1\n"
+"(See fdisk(8).)\n"
+msgstr ""
+
+#: games/banner.c:1048
+#, fuzzy
+msgid "usage: banner [-w width]\n"
+msgstr "Aufruf: banner [-w Breite]\n"
+
+#: games/banner.c:1068
+#, fuzzy
+msgid "Message: "
+msgstr "Meldung: "
+
+#: games/banner.c:1102
+#, fuzzy, c-format
+msgid "The character '%c' is not in my character set"
+msgstr "Das Zeichen »%c« ist nicht im Zeichensatz vorhanden"
+
+#: games/banner.c:1110
+#, c-format
+msgid "Message '%s' is OK\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:229
+#, fuzzy
+msgid "Try `getopt --help' for more information.\n"
+msgstr "»getopt --help« gibt weitere Informationen.\n"
+
+#: getopt-1.0.3b/getopt.c:295
+msgid "empty long option after -l or --long argument"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:315
+#, fuzzy
+msgid "unknown shell after -s or --shell argument"
+msgstr "Unbekannte Shell als Argument von -s oder --shell"
+
+#: getopt-1.0.3b/getopt.c:320
+msgid "Usage: getopt optstring parameters\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:321
+msgid "       getopt [options] [--] optstring parameters\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:322
+msgid "       getopt [options] -o|--options optstring [options] [--]\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:323
+msgid "              parameters\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:324
+msgid ""
+"  -a, --alternative            Allow long options starting with single -\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:325
+msgid "  -h, --help                   This small usage guide\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:326
+msgid "  -l, --longoptions=longopts   Long options to be recognized\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:327
+msgid ""
+"  -n, --name=progname          The name under which errors are reported\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:328
+msgid "  -o, --options=optstring      Short options to be recognized\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:329
+msgid "  -q, --quiet                  Disable error reporting by getopt(3)\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:330
+msgid "  -Q, --quiet-output           No normal output\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:331
+msgid "  -s, --shell=shell            Set shell quoting conventions\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:332
+msgid "  -T, --test                   Test for getopt(1) version\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:333
+msgid "  -V, --version                Output version information\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:387 getopt-1.0.3b/getopt.c:445
+msgid "missing optstring argument"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:433
+#, fuzzy
+msgid "getopt (enhanced) 1.0.3\n"
+msgstr "getopt (enhanced) 1.0.3\n"
+
+#: getopt-1.0.3b/getopt.c:439
+#, fuzzy
+msgid "internal error, contact the author."
+msgstr "Interner Fehler, kontaktieren Sie den Autor."
+
+#: login-utils/agetty.c:300
+msgid "calling open_tty\n"
+msgstr ""
+
+#. Initialize the termio settings (raw mode, eight-bit, blocking i/o).
+#: login-utils/agetty.c:313
+msgid "calling termio_init\n"
+msgstr ""
+
+#: login-utils/agetty.c:318
+msgid "writing init string\n"
+msgstr ""
+
+#. Optionally detect the baud rate from the modem status message.
+#: login-utils/agetty.c:328
+msgid "before autobaud\n"
+msgstr ""
+
+#: login-utils/agetty.c:340
+msgid "waiting for cr-lf\n"
+msgstr ""
+
+#: login-utils/agetty.c:344
+#, c-format
+msgid "read %c\n"
+msgstr ""
+
+#. Read the login name.
+#: login-utils/agetty.c:353
+msgid "reading login name\n"
+msgstr ""
+
+#: login-utils/agetty.c:374
+#, c-format
+msgid "%s: can't exec %s: %m"
+msgstr "%s: Fehler beim Ausführen von %s: %m"
+
+#: login-utils/agetty.c:394
+msgid "can't malloc initstring"
+msgstr "Konnte keinen Speicher für den »initstring« reservieren"
+
+#: login-utils/agetty.c:456
+#, c-format
+msgid "bad timeout value: %s"
+msgstr ""
+
+#: login-utils/agetty.c:465
+msgid "after getopt loop\n"
+msgstr ""
+
+#: login-utils/agetty.c:483
+msgid "exiting parseargs\n"
+msgstr ""
+
+#: login-utils/agetty.c:496
+msgid "entered parse_speeds\n"
+msgstr ""
+
+#: login-utils/agetty.c:499
+#, c-format
+msgid "bad speed: %s"
+msgstr ""
+
+#: login-utils/agetty.c:501
+msgid "too many alternate speeds"
+msgstr ""
+
+#: login-utils/agetty.c:503
+msgid "exiting parsespeeds\n"
+msgstr ""
+
+#: login-utils/agetty.c:576
+#, c-format
+msgid "%s: open for update: %m"
+msgstr ""
+
+#: login-utils/agetty.c:592
+#, c-format
+msgid "%s: no utmp entry"
+msgstr ""
+
+#: login-utils/agetty.c:621
+#, c-format
+msgid "/dev: chdir() failed: %m"
+msgstr ""
+
+#: login-utils/agetty.c:625
+#, c-format
+msgid "/dev/%s: not a character device"
+msgstr ""
+
+#. ignore close(2) errors
+#: login-utils/agetty.c:632
+msgid "open(2)\n"
+msgstr ""
+
+#: login-utils/agetty.c:634
+#, c-format
+msgid "/dev/%s: cannot open as standard input: %m"
+msgstr ""
+
+#: login-utils/agetty.c:644
+#, c-format
+msgid "%s: not open for read/write"
+msgstr ""
+
+#. Set up standard output and standard error file descriptors.
+#: login-utils/agetty.c:648
+msgid "duping\n"
+msgstr ""
+
+#. set up stdout and stderr
+#: login-utils/agetty.c:650
+#, c-format
+msgid "%s: dup problem: %m"
+msgstr ""
+
+#: login-utils/agetty.c:712
+msgid "term_io 2\n"
+msgstr ""
+
+#: login-utils/agetty.c:894
+msgid "user"
+msgstr ""
+
+#: login-utils/agetty.c:894
+msgid "users"
+msgstr ""
+
+#: login-utils/agetty.c:982
+#, c-format
+msgid "%s: read: %m"
+msgstr ""
+
+#: login-utils/agetty.c:1028
+#, c-format
+msgid "%s: input overrun"
+msgstr ""
+
+#: login-utils/agetty.c:1152
+#, c-format
+msgid ""
+"Usage: %s [-hiLmw] [-l login_program] [-t timeout] [-I initstring] "
+"baud_rate,... line [termtype]\n"
+"or\t[-hiLmw] [-l login_program] [-t timeout] [-I initstring] line "
+"baud_rate,... [termtype]\n"
+msgstr ""
+
+#: login-utils/checktty.c:46
+#, c-format
+msgid "badlogin: %s\n"
+msgstr ""
+
+#: login-utils/checktty.c:52
+#, c-format
+msgid "sleepexit %d\n"
+msgstr ""
+
+#: login-utils/checktty.c:108 login-utils/checktty.c:130
+msgid "login: memory low, login may fail\n"
+msgstr ""
+
+# This ends up in syslog.
+#: login-utils/checktty.c:109
+msgid "can't malloc for ttyclass"
+msgstr ""
+
+# This ends up in syslog.
+#: login-utils/checktty.c:131
+msgid "can't malloc for grplist"
+msgstr ""
+
+#. there was a default rule, but user didn't match, reject!
+#: login-utils/checktty.c:431
+#, c-format
+msgid "Login on %s from %s denied by default.\n"
+msgstr ""
+
+#. if we get here, /etc/usertty exists, there's a line
+#. matching our username, but it doesn't contain the
+#. name of the tty where the user is trying to log in.
+#. So deny access!
+#: login-utils/checktty.c:442
+#, c-format
+msgid "Login on %s from %s denied.\n"
+msgstr ""
+
+#: login-utils/chfn.c:139 login-utils/chsh.c:118
+#, c-format
+msgid "%s: you (user %d) don't exist.\n"
+msgstr ""
+
+#: login-utils/chfn.c:146 login-utils/chsh.c:125
+#, c-format
+msgid "%s: user \"%s\" does not exist.\n"
+msgstr ""
+
+#: login-utils/chfn.c:151 login-utils/chsh.c:130
+#, c-format
+msgid "%s: can only change local entries; use yp%s instead.\n"
+msgstr ""
+
+#: login-utils/chfn.c:163
+#, c-format
+msgid "Changing finger information for %s.\n"
+msgstr ""
+
+#: login-utils/chfn.c:169 login-utils/chfn.c:173 login-utils/chfn.c:180
+#: login-utils/chfn.c:184 login-utils/chsh.c:154 login-utils/chsh.c:158
+#: login-utils/chsh.c:165 login-utils/chsh.c:169
+msgid "Password error."
+msgstr ""
+
+#: login-utils/chfn.c:193 login-utils/chsh.c:178 login-utils/login.c:650
+#: login-utils/newgrp.c:47 login-utils/simpleinit.c:219 mount/lomount.c:200
+#: mount/lomount.c:206 mount/losetup.c:115 mount/losetup.c:121
+msgid "Password: "
+msgstr "Passwort: "
+
+#: login-utils/chfn.c:196 login-utils/chsh.c:181
+msgid "Incorrect password."
+msgstr ""
+
+#: login-utils/chfn.c:207
+msgid "Finger information not changed.\n"
+msgstr ""
+
+#: login-utils/chfn.c:310
+#, c-format
+msgid "Usage: %s [ -f full-name ] [ -o office ] "
+msgstr ""
+
+#: login-utils/chfn.c:311
+msgid ""
+"[ -p office-phone ]\n"
+"\t[ -h home-phone ] "
+msgstr ""
+
+#: login-utils/chfn.c:312
+msgid "[ --help ] [ --version ]\n"
+msgstr ""
+
+#: login-utils/chfn.c:381 login-utils/chsh.c:294
+msgid ""
+"\n"
+"Aborted.\n"
+msgstr ""
+
+#: login-utils/chfn.c:414
+msgid "field is too long.\n"
+msgstr ""
+
+#: login-utils/chfn.c:422
+#, c-format
+msgid "'%c' is not allowed.\n"
+msgstr ""
+
+#: login-utils/chfn.c:427
+msgid "Control characters are not allowed.\n"
+msgstr ""
+
+#: login-utils/chfn.c:492
+msgid "Finger information *NOT* changed.  Try again later.\n"
+msgstr ""
+
+#: login-utils/chfn.c:495
+msgid "Finger information changed.\n"
+msgstr ""
+
+#: login-utils/chfn.c:509 login-utils/chsh.c:412 sys-utils/cytune.c:324
+#, fuzzy
+msgid "malloc failed"
+msgstr "»malloc« schlug fehl"
+
+#: login-utils/chsh.c:141
+#, c-format
+msgid "%s: Your shell is not in /etc/shells, shell change denied\n"
+msgstr ""
+
+#: login-utils/chsh.c:148
+#, c-format
+msgid "Changing shell for %s.\n"
+msgstr ""
+
+#: login-utils/chsh.c:189
+msgid "New shell"
+msgstr ""
+
+#: login-utils/chsh.c:196
+msgid "Shell not changed.\n"
+msgstr ""
+
+#: login-utils/chsh.c:203
+msgid "Shell *NOT* changed.  Try again later.\n"
+msgstr ""
+
+#: login-utils/chsh.c:206
+msgid "Shell changed.\n"
+msgstr ""
+
+#: login-utils/chsh.c:274
+#, c-format
+msgid "Usage: %s [ -s shell ] "
+msgstr ""
+
+#: login-utils/chsh.c:275
+msgid "[ --list-shells ] [ --help ] [ --version ]\n"
+msgstr ""
+
+#: login-utils/chsh.c:276
+msgid "       [ username ]\n"
+msgstr ""
+
+#: login-utils/chsh.c:320
+#, c-format
+msgid "%s: shell must be a full path name.\n"
+msgstr ""
+
+#: login-utils/chsh.c:324
+#, c-format
+msgid "%s: \"%s\" does not exist.\n"
+msgstr ""
+
+#: login-utils/chsh.c:328
+#, c-format
+msgid "%s: \"%s\" is not executable.\n"
+msgstr ""
+
+#: login-utils/chsh.c:335
+#, c-format
+msgid "%s: '%c' is not allowed.\n"
+msgstr ""
+
+#: login-utils/chsh.c:339
+#, c-format
+msgid "%s: Control characters are not allowed.\n"
+msgstr ""
+
+#: login-utils/chsh.c:346
+#, c-format
+msgid "Warning: \"%s\" is not listed in /etc/shells\n"
+msgstr ""
+
+#: login-utils/chsh.c:348
+#, c-format
+msgid "%s: \"%s\" is not listed in /etc/shells.\n"
+msgstr ""
+
+#: login-utils/chsh.c:350
+#, c-format
+msgid "%s: use -l option to see list\n"
+msgstr ""
+
+#: login-utils/chsh.c:356
+#, c-format
+msgid "Warning: \"%s\" is not listed in /etc/shells.\n"
+msgstr ""
+
+#: login-utils/chsh.c:357
+#, c-format
+msgid "Use %s -l to see list.\n"
+msgstr ""
+
+#: login-utils/chsh.c:378
+msgid "No known shells.\n"
+msgstr ""
+
+#: login-utils/cryptocard.c:70
+msgid "couldn't open /dev/urandom"
+msgstr ""
+
+#: login-utils/cryptocard.c:75
+msgid "couldn't read random data from /dev/urandom"
+msgstr ""
+
+#: login-utils/cryptocard.c:98
+#, c-format
+msgid "can't open %s for reading"
+msgstr ""
+
+#: login-utils/cryptocard.c:102
+#, c-format
+msgid "can't stat(%s)"
+msgstr ""
+
+#: login-utils/cryptocard.c:108
+#, c-format
+msgid "%s doesn't have the correct filemodes"
+msgstr ""
+
+#: login-utils/cryptocard.c:113
+#, c-format
+msgid "can't read data from %s"
+msgstr ""
+
+#: login-utils/islocal.c:36
+#, c-format
+msgid "Can't read %s, exiting."
+msgstr ""
+
+#: login-utils/last.c:138
+msgid "usage: last [-#] [-f file] [-t tty] [-h hostname] [user ...]\n"
+msgstr ""
+
+#: login-utils/last.c:215
+#, c-format
+msgid "last: %s: "
+msgstr ""
+
+#: login-utils/last.c:270
+msgid "  still logged in"
+msgstr ""
+
+#: login-utils/last.c:291
+#, c-format
+msgid ""
+"\n"
+"wtmp begins %10.10s %5.5s \n"
+msgstr ""
+
+#: login-utils/last.c:352 login-utils/last.c:372 login-utils/last.c:427
+msgid "last: malloc failure.\n"
+msgstr ""
+
+#: login-utils/last.c:401
+msgid "last: gethostname"
+msgstr ""
+
+#: login-utils/last.c:454
+#, c-format
+msgid ""
+"\n"
+"interrupted %10.10s %5.5s \n"
+msgstr ""
+
+#: login-utils/login.c:349
+msgid "login: -h for super-user only.\n"
+msgstr ""
+
+#: login-utils/login.c:374
+msgid "usage: login [-fp] [username]\n"
+msgstr ""
+
+#: login-utils/login.c:476
+#, c-format
+msgid "login: PAM Failure, aborting: %s\n"
+msgstr ""
+
+#: login-utils/login.c:478
+#, c-format
+msgid "Couldn't initialize PAM: %s"
+msgstr ""
+
+#: login-utils/login.c:518
+#, c-format
+msgid "FAILED LOGIN %d FROM %s FOR %s, %s"
+msgstr ""
+
+#: login-utils/login.c:520
+msgid ""
+"Login incorrect\n"
+"\n"
+msgstr ""
+
+#: login-utils/login.c:529
+#, c-format
+msgid "TOO MANY LOGIN TRIES (%d) FROM %s FOR %s, %s"
+msgstr ""
+
+#: login-utils/login.c:533
+#, c-format
+msgid "FAILED LOGIN SESSION FROM %s FOR %s, %s"
+msgstr ""
+
+#: login-utils/login.c:536
+msgid ""
+"\n"
+"Login incorrect\n"
+msgstr ""
+
+#: login-utils/login.c:585
+msgid "Illegal username"
+msgstr ""
+
+#: login-utils/login.c:628
+#, c-format
+msgid "%s login refused on this terminal.\n"
+msgstr ""
+
+#: login-utils/login.c:633
+#, c-format
+msgid "LOGIN %s REFUSED FROM %s ON TTY %s"
+msgstr ""
+
+#: login-utils/login.c:637
+#, c-format
+msgid "LOGIN %s REFUSED ON TTY %s"
+msgstr ""
+
+#: login-utils/login.c:689
+msgid "Login incorrect\n"
+msgstr ""
+
+#: login-utils/login.c:711
+msgid ""
+"Too many users logged on already.\n"
+"Try again later.\n"
+msgstr ""
+
+#: login-utils/login.c:715
+msgid "You have too many processes running.\n"
+msgstr ""
+
+#: login-utils/login.c:761
+msgid "Warning: no Kerberos tickets issued\n"
+msgstr ""
+
+#: login-utils/login.c:773
+msgid "Sorry -- your password has expired.\n"
+msgstr ""
+
+#: login-utils/login.c:779
+#, c-format
+msgid "Warning: your password expires on %s %d, %d\n"
+msgstr ""
+
+#: login-utils/login.c:787
+msgid "Sorry -- your account has expired.\n"
+msgstr ""
+
+#: login-utils/login.c:793
+#, c-format
+msgid "Warning: your account expires on %s %d, %d\n"
+msgstr ""
+
+#: login-utils/login.c:1025
+#, c-format
+msgid "DIALUP AT %s BY %s"
+msgstr ""
+
+#: login-utils/login.c:1032
+#, c-format
+msgid "ROOT LOGIN ON %s FROM %s"
+msgstr ""
+
+#: login-utils/login.c:1035
+#, c-format
+msgid "ROOT LOGIN ON %s"
+msgstr ""
+
+#: login-utils/login.c:1038
+#, c-format
+msgid "LOGIN ON %s BY %s FROM %s"
+msgstr ""
+
+#: login-utils/login.c:1041
+#, c-format
+msgid "LOGIN ON %s BY %s"
+msgstr ""
+
+#: login-utils/login.c:1052
+#, c-format
+msgid "You have %smail.\n"
+msgstr ""
+
+#: login-utils/login.c:1053
+msgid "new "
+msgstr ""
+
+#. error in fork()
+#: login-utils/login.c:1071
+#, c-format
+msgid "login: failure forking: %s"
+msgstr ""
+
+#: login-utils/login.c:1086
+msgid "setuid() failed"
+msgstr ""
+
+#: login-utils/login.c:1092
+#, c-format
+msgid "No directory %s!\n"
+msgstr ""
+
+#: login-utils/login.c:1096
+msgid "Logging in with home = \"/\".\n"
+msgstr ""
+
+#: login-utils/login.c:1104
+msgid "login: no memory for shell script.\n"
+msgstr ""
+
+#: login-utils/login.c:1132
+#, c-format
+msgid "login: couldn't exec shell script: %s.\n"
+msgstr ""
+
+#: login-utils/login.c:1135
+#, c-format
+msgid "login: no shell: %s.\n"
+msgstr ""
+
+#: login-utils/login.c:1151
+#, c-format
+msgid ""
+"\n"
+"%s login: "
+msgstr ""
+
+#: login-utils/login.c:1162
+msgid "login name much too long.\n"
+msgstr ""
+
+#: login-utils/login.c:1163
+msgid "NAME too long"
+msgstr ""
+
+#: login-utils/login.c:1170
+msgid "login names may not start with '-'.\n"
+msgstr ""
+
+#: login-utils/login.c:1180
+msgid "too many bare linefeeds.\n"
+msgstr ""
+
+#: login-utils/login.c:1181
+msgid "EXCESSIVE linefeeds"
+msgstr ""
+
+#: login-utils/login.c:1192
+#, c-format
+msgid "Login timed out after %d seconds\n"
+msgstr ""
+
+#: login-utils/login.c:1292
+#, c-format
+msgid "Last login: %.*s "
+msgstr ""
+
+#: login-utils/login.c:1296
+#, c-format
+msgid "from %.*s\n"
+msgstr ""
+
+#: login-utils/login.c:1299
+#, c-format
+msgid "on %.*s\n"
+msgstr ""
+
+#: login-utils/login.c:1322
+#, c-format
+msgid "LOGIN FAILURE FROM %s, %s"
+msgstr ""
+
+#: login-utils/login.c:1325
+#, c-format
+msgid "LOGIN FAILURE ON %s, %s"
+msgstr ""
+
+#: login-utils/login.c:1329
+#, c-format
+msgid "%d LOGIN FAILURES FROM %s, %s"
+msgstr ""
+
+#: login-utils/login.c:1332
+#, c-format
+msgid "%d LOGIN FAILURES ON %s, %s"
+msgstr ""
+
+#: login-utils/mesg.c:89
+msgid "is y\n"
+msgstr ""
+
+#: login-utils/mesg.c:92
+msgid "is n\n"
+msgstr ""
+
+#: login-utils/mesg.c:112
+msgid "usage: mesg [y | n]\n"
+msgstr ""
+
+#: login-utils/newgrp.c:67
+msgid "newgrp: Who are you?"
+msgstr ""
+
+#: login-utils/newgrp.c:75 login-utils/newgrp.c:85
+msgid "newgrp: setgid"
+msgstr ""
+
+#: login-utils/newgrp.c:80
+msgid "newgrp: No such group."
+msgstr ""
+
+#: login-utils/newgrp.c:89
+msgid "newgrp: Permission denied"
+msgstr ""
+
+#: login-utils/newgrp.c:96
+msgid "newgrp: setuid"
+msgstr ""
+
+#: login-utils/newgrp.c:102
+msgid "No shell"
+msgstr ""
+
+#: login-utils/passwd.c:163
+msgid "The password must have at least 6 characters, try again.\n"
+msgstr ""
+
+#: login-utils/passwd.c:176
+msgid "The password must contain characters out of two of the following\n"
+msgstr ""
+
+#: login-utils/passwd.c:177
+msgid "classes:  upper and lower case letters, digits and non alphanumeric\n"
+msgstr ""
+
+#: login-utils/passwd.c:178
+msgid "characters. See passwd(1) for more information.\n"
+msgstr ""
+
+#: login-utils/passwd.c:183
+msgid "You cannot reuse the old password.\n"
+msgstr ""
+
+#: login-utils/passwd.c:188
+msgid "Please don't use something like your username as password!\n"
+msgstr ""
+
+#: login-utils/passwd.c:199 login-utils/passwd.c:206
+msgid "Please don't use something like your realname as password!\n"
+msgstr ""
+
+#: login-utils/passwd.c:223
+msgid "Usage: passwd [username [password]]\n"
+msgstr ""
+
+#: login-utils/passwd.c:224
+msgid "Only root may use the one and two argument forms.\n"
+msgstr ""
+
+#: login-utils/passwd.c:280
+msgid "Usage: passwd [-foqsvV] [user [password]]\n"
+msgstr ""
+
+#: login-utils/passwd.c:301
+#, c-format
+msgid "Can't exec %s: %s\n"
+msgstr ""
+
+#: login-utils/passwd.c:312
+msgid "Cannot find login name"
+msgstr ""
+
+#: login-utils/passwd.c:319 login-utils/passwd.c:326
+msgid "Only root can change the password for others.\n"
+msgstr ""
+
+#: login-utils/passwd.c:334
+msgid "Too many arguments.\n"
+msgstr ""
+
+#: login-utils/passwd.c:339
+#, c-format
+msgid "Can't find username anywhere. Is `%s' really a user?"
+msgstr ""
+
+#: login-utils/passwd.c:343
+msgid "Sorry, I can only change local passwords. Use yppasswd instead."
+msgstr ""
+
+#: login-utils/passwd.c:349
+msgid "UID and username does not match, imposter!"
+msgstr ""
+
+#: login-utils/passwd.c:354
+#, c-format
+msgid "Changing password for %s\n"
+msgstr ""
+
+#: login-utils/passwd.c:358
+msgid "Enter old password: "
+msgstr ""
+
+#: login-utils/passwd.c:360
+msgid "Illegal password, imposter."
+msgstr ""
+
+#: login-utils/passwd.c:372
+msgid "Enter new password: "
+msgstr ""
+
+#: login-utils/passwd.c:374
+msgid "Password not changed."
+msgstr ""
+
+#: login-utils/passwd.c:384
+msgid "Re-type new password: "
+msgstr ""
+
+#: login-utils/passwd.c:387
+msgid "You misspelled it. Password not changed."
+msgstr ""
+
+#: login-utils/passwd.c:402
+#, c-format
+msgid "password changed, user %s"
+msgstr ""
+
+#: login-utils/passwd.c:405
+msgid "ROOT PASSWORD CHANGED"
+msgstr ""
+
+#: login-utils/passwd.c:407
+#, c-format
+msgid "password changed by root, user %s"
+msgstr ""
+
+#: login-utils/passwd.c:414
+msgid "calling setpwnam to set password.\n"
+msgstr ""
+
+#: login-utils/passwd.c:418
+msgid "Password *NOT* changed.  Try again later.\n"
+msgstr ""
+
+#: login-utils/passwd.c:424
+msgid "Password changed.\n"
+msgstr ""
+
+#: login-utils/shutdown.c:85
+msgid "Usage: shutdown [-h|-r] [-fqs] [now|hh:ss|+mins]\n"
+msgstr ""
+
+#: login-utils/shutdown.c:103
+msgid "Shutdown process aborted"
+msgstr ""
+
+#: login-utils/shutdown.c:125
+#, c-format
+msgid "%s: Only root can shut a system down.\n"
+msgstr ""
+
+#: login-utils/shutdown.c:219
+msgid "That must be tomorrow, can't you wait till then?\n"
+msgstr ""
+
+#: login-utils/shutdown.c:271
+msgid "for maintenance; bounce, bounce"
+msgstr ""
+
+#: login-utils/shutdown.c:275
+#, c-format
+msgid "timeout = %d, quiet = %d, reboot = %d\n"
+msgstr ""
+
+#: login-utils/shutdown.c:300
+msgid "The system is being shut down within 5 minutes"
+msgstr ""
+
+#: login-utils/shutdown.c:304
+msgid "Login is therefore prohibited."
+msgstr ""
+
+# This ends up in the syslog. Translate it?
+#: login-utils/shutdown.c:325
+#, c-format
+msgid "%s by %s: %s"
+msgstr ""
+
+# This ends up in the syslog. Translate it?
+#: login-utils/shutdown.c:326
+msgid "rebooted"
+msgstr ""
+
+# This ends up in the syslog. Translate it?
+#: login-utils/shutdown.c:326
+msgid "halted"
+msgstr ""
+
+#. RB_AUTOBOOT
+#: login-utils/shutdown.c:377
+msgid ""
+"\n"
+"Why am I still alive after reboot?"
+msgstr ""
+
+#: login-utils/shutdown.c:379
+msgid ""
+"\n"
+"Now you can turn off the power..."
+msgstr ""
+
+#: login-utils/shutdown.c:394
+msgid "Calling kernel power-off facility...\n"
+msgstr ""
+
+#: login-utils/shutdown.c:397
+#, c-format
+msgid "Error powering off\t%s\n"
+msgstr ""
+
+#: login-utils/shutdown.c:405
+#, c-format
+msgid "Executing the program \"%s\" ...\n"
+msgstr ""
+
+#: login-utils/shutdown.c:408
+#, c-format
+msgid "Error executing\t%s\n"
+msgstr ""
+
+#: login-utils/shutdown.c:431
+#, c-format
+msgid "\aURGENT: broadcast message from %s:"
+msgstr ""
+
+#: login-utils/shutdown.c:437
+msgid "System going down IMMEDIATELY!\n"
+msgstr ""
+
+#: login-utils/shutdown.c:440
+#, c-format
+msgid "System going down in %d hour%s %d minutes"
+msgstr ""
+
+# This seems to be a plural s, which isn't good 
+# for something, that should be translated.
+#: login-utils/shutdown.c:441 login-utils/shutdown.c:444
+msgid "s"
+msgstr ""
+
+#: login-utils/shutdown.c:443
+#, c-format
+msgid "System going down in %d minute%s\n"
+msgstr ""
+
+#: login-utils/shutdown.c:449
+#, c-format
+msgid "\t... %s ...\n"
+msgstr ""
+
+#: login-utils/shutdown.c:506
+msgid "Cannot fork for swapoff. Shrug!"
+msgstr ""
+
+#: login-utils/shutdown.c:514
+msgid "Cannot exec swapoff, hoping umount will do the trick."
+msgstr ""
+
+#: login-utils/shutdown.c:533
+msgid "Cannot fork for umount, trying manually."
+msgstr ""
+
+#: login-utils/shutdown.c:539
+#, c-format
+msgid "Cannot exec %s, trying umount."
+msgstr ""
+
+#: login-utils/shutdown.c:541
+msgid "Cannot exec umount, giving up on umount."
+msgstr ""
+
+#: login-utils/shutdown.c:546
+msgid "Unmounting any remaining filesystems..."
+msgstr ""
+
+#: login-utils/shutdown.c:582
+#, c-format
+msgid "shutdown: Couldn't umount %s\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:79
+msgid "Booting to single user mode.\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:83
+msgid "exec of single user shell failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:87
+msgid "fork of single user shell failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:226
+msgid ""
+"\n"
+"Wrong password.\n"
+msgstr ""
+"\n"
+"Falsches Passwort.\n"
+
+#: login-utils/simpleinit.c:252
+msgid "exec rc failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:255
+msgid "open of rc file failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:261
+msgid "fork of rc shell failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:273
+msgid "fork failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:302 text-utils/more.c:1550
+msgid "exec failed\n"
+msgstr "»exec()« schlug fehl\n"
+
+#: login-utils/simpleinit.c:324
+msgid "cannot open inittab\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:362
+msgid "no TERM or cannot stat tty\n"
+msgstr ""
+
+#: login-utils/ttymsg.c:81
+msgid "too many iov's (change code in wall/ttymsg.c)"
+msgstr ""
+
+#. A slash is an attempt to break security...
+#: login-utils/ttymsg.c:85
+#, c-format
+msgid "'/' in \"%s\""
+msgstr "»%s« enthält einen »/«"
+
+#: login-utils/ttymsg.c:90
+msgid "excessively long line arg"
+msgstr ""
+
+#: login-utils/ttymsg.c:144
+#, fuzzy
+msgid "cannot fork"
+msgstr "Konnte »fork()« nicht ausführen"
+
+#: login-utils/ttymsg.c:148
+#, c-format
+msgid "fork: %s"
+msgstr "»fork«: %s"
+
+#: login-utils/ttymsg.c:176
+#, c-format
+msgid "%s: BAD ERROR"
+msgstr ""
+
+#: login-utils/vipw.c:149
+#, c-format
+msgid "%s: the %s file is busy.\n"
+msgstr ""
+
+#: login-utils/vipw.c:165
+#, c-format
+msgid "%s: the %s file is busy (%s present)\n"
+msgstr ""
+
+#: login-utils/vipw.c:171
+#, c-format
+msgid "%s: can't link %s: %s\n"
+msgstr ""
+
+#: login-utils/vipw.c:193
+#, c-format
+msgid "%s: can't unlock %s: %s (your changes are still in %s)\n"
+msgstr ""
+
+#: login-utils/vipw.c:217
+#, c-format
+msgid "%s: Cannot fork\n"
+msgstr ""
+
+#: login-utils/vipw.c:257
+#, c-format
+msgid "%s: %s unchanged\n"
+msgstr ""
+
+#: login-utils/vipw.c:300
+#, c-format
+msgid "%s: no changes made\n"
+msgstr ""
+
+#: login-utils/wall.c:100
+msgid "usage: wall [file]\n"
+msgstr "Aufruf: wall [Datei]\n"
+
+#: login-utils/wall.c:111
+#, c-format
+msgid "wall: cannot read %s.\n"
+msgstr "wall: Konnte %s nicht lesen.\n"
+
+#: login-utils/wall.c:150
+msgid "wall: can't open temporary file.\n"
+msgstr "wall: Konnte eine temporäre Datei nicht öffnen.\n"
+
+# XXX - Have to look at other OSs translation for Broadcast
+# Message
+#: login-utils/wall.c:177
+#, c-format
+msgid "Broadcast Message from %s@%s"
+msgstr "Rundsendenachricht von %s@%s"
+
+#: login-utils/wall.c:187
+#, c-format
+msgid "wall: can't read %s.\n"
+msgstr "wall: Konnte %s nicht lesen.\n"
+
+#: login-utils/wall.c:212
+msgid "wall: can't stat temporary file.\n"
+msgstr "wall: Konnte »stat« nicht auf eine temporäre Datei anwenden.\n"
+
+#: login-utils/wall.c:221
+msgid "wall: can't read temporary file.\n"
+msgstr "wall: Konnte eine temporäre Datei nicht lesen.\n"
+
+#: misc-utils/cal.c:184
+msgid "illegal month value: use 1-12"
+msgstr ""
+
+#: misc-utils/cal.c:188
+msgid "illegal year value: use 1-9999"
+msgstr ""
+
+#: misc-utils/cal.c:484
+msgid "usage: cal [-mjy] [[month] year]\n"
+msgstr ""
+
+#: misc-utils/ddate.c:184
+#, c-format
+msgid "usage: %s [+format] [day month year]\n"
+msgstr ""
+
+#. handle St. Tib's Day
+#: misc-utils/ddate.c:230
+msgid "St. Tib's Day"
+msgstr ""
+
+#: misc-utils/kill.c:199
+#, c-format
+msgid "%s: unknown signal %s\n"
+msgstr "%s: Unbekanntes Signal %s\n"
+
+#: misc-utils/kill.c:261
+#, c-format
+msgid "%s: can't find process \"%s\"\n"
+msgstr "%s: Konnte den Prozeß »%s« nicht finden.\n"
+
+#: misc-utils/kill.c:303
+#, c-format
+msgid "%s: unknown signal %s; valid signals:\n"
+msgstr "%s: Unbekanntes Signal %s; gültige Signale:\n"
+
+#: misc-utils/kill.c:343
+#, c-format
+msgid "usage: %s [ -s signal | -p ] [ -a ] pid ...\n"
+msgstr "Aufruf: %s [ -s Signal | -p ] [ -a ] PID ...\n"
+
+#: misc-utils/kill.c:344
+#, c-format
+msgid "       %s -l [ signal ]\n"
+msgstr "        %s -l [ Signal ]\n"
+
+#: misc-utils/logger.c:144
+#, c-format
+msgid "logger: %s: %s.\n"
+msgstr "logger: Konnte %s nicht öffnen: %s.\n"
+
+#: misc-utils/logger.c:241
+#, c-format
+msgid "logger: unknown facility name: %s.\n"
+msgstr "logger: Unbekannter »Facility«-Name: %s.\n"
+
+#: misc-utils/logger.c:253
+#, c-format
+msgid "logger: unknown priority name: %s.\n"
+msgstr "logger: Unbekannter Prioritätsname: %s.\n"
+
+#: misc-utils/logger.c:280
+msgid "logger: [-is] [-f file] [-p pri] [-t tag] [-u socket] [ message ... ]\n"
+msgstr ""
+"Aufruf: logger [-is] [-f Datei] [-p Pri] [-t Tag] [-u Socket] [ Meldung ... "
+"]\n"
+
+#: misc-utils/logger.c:280
+msgid ""
+"usage: logger [-is] [-f file] [-p pri] [-t tag] [-u socket] [ message ... ]\n"
+msgstr ""
+"Aufruf: logger [-is] [-f Datei] [-p Pri] [-t Tag] [-u Socket] [ Meldung ... "
+"]\n"
+
+#: misc-utils/look.c:170 misc-utils/setterm.c:1153 text-utils/more.c:1864
+#: text-utils/more.c:1875
+msgid "Out of memory"
+msgstr "Speicher ist alle"
+
+#: misc-utils/look.c:340
+msgid "usage: look [-dfa] [-t char] string [file]\n"
+msgstr "Aufruf: look [-dfa] [-t Endzeichen] Zeichenkette [Datei]\n"
+
+#: misc-utils/mcookie.c:122 misc-utils/mcookie.c:149
+#, c-format
+msgid "Could not open %s\n"
+msgstr "Konnte %s nicht öffnen\n"
+
+#: misc-utils/mcookie.c:126 misc-utils/mcookie.c:145
+#, c-format
+msgid "Got %d bytes from %s\n"
+msgstr "%d Bytes aus %s gelesen\n"
+
+#: misc-utils/namei.c:107
+#, c-format
+msgid "namei: unable to get current directory - %s\n"
+msgstr "namei: Konnte das aktuelle Verzeichnis nicht feststellen: %s\n"
+
+#: misc-utils/namei.c:118
+#, c-format
+msgid "namei: unable to chdir to %s - %s (%d)\n"
+msgstr "namei: Konnte nicht nach %s wechseln - %s (%d)\n"
+
+#: misc-utils/namei.c:128
+msgid "usage: namei [-mx] pathname [pathname ...]\n"
+msgstr "Aufruf: namei [-mx] Dateiname [Dateiname ...]\n"
+
+#: misc-utils/namei.c:157
+msgid "namei: could not chdir to root!\n"
+msgstr "namei: Konnte nicht in das root-Verzeichnis wechseln!\n"
+
+# XXX
+#: misc-utils/namei.c:164
+msgid "namei: could not stat root!\n"
+msgstr ""
+
+#: misc-utils/namei.c:219
+#, c-format
+msgid " ? could not chdir into %s - %s (%d)\n"
+msgstr " ? Konnte nicht nach %s wechseln - %s (%d)\n"
+
+#: misc-utils/namei.c:248
+#, c-format
+msgid " ? problems reading symlink %s - %s (%d)\n"
+msgstr " ? Probleme beim Lesen der symbolischen Verknüpfung %s - %s (%d)\n"
+
+#: misc-utils/namei.c:258
+msgid "  *** EXCEEDED UNIX LIMIT OF SYMLINKS ***"
+msgstr ""
+"  *** Die maximale Zahl der symbolischen Verknüpfungen wurde überschritten "
+"***"
+
+#: misc-utils/namei.c:294
+#, c-format
+msgid "namei: unknown file type 0%06o on file %s\n"
+msgstr "namei: Unbekannter Dateityp 0%06o der Datei %s\n"
+
+#: misc-utils/script.c:108
+msgid "usage: script [-a] [file]\n"
+msgstr "Aufruf: script [-a] [Datei]\n"
+
+# Not realy nice...
+#: misc-utils/script.c:128
+#, c-format
+msgid "Script started, file is %s\n"
+msgstr "»Script« wurde gestartet, die Datei ist %s\n"
+
+# The %s must be at the end, cause it contains the \n
+#: misc-utils/script.c:197
+#, c-format
+msgid "Script started on %s"
+msgstr "»Script« wurde gestartet: %s"
+
+# The %s must be at the end, cause it contains the \n
+#: misc-utils/script.c:263
+#, c-format
+msgid ""
+"\n"
+"Script done on %s"
+msgstr ""
+"\n"
+"»Script« beendet: %s"
+
+#: misc-utils/script.c:268
+#, c-format
+msgid "Script done, file is %s\n"
+msgstr "»Script« wurde beendet, die Datei ist %s\n"
+
+#: misc-utils/script.c:280
+msgid "openpty failed\n"
+msgstr "»openpty« ist fehlgeschlagen\n"
+
+#: misc-utils/script.c:314
+msgid "Out of pty's\n"
+msgstr "Keine ptys mehr.\n"
+
+#. Print error message about arguments, and the command's syntax.
+#: misc-utils/setterm.c:745
+#, c-format
+msgid "%s: Argument error, usage\n"
+msgstr "%s: Fehler bei den Argumenten; Aufruf:\n"
+
+#: misc-utils/setterm.c:748
+msgid "  [ -term terminal_name ]\n"
+msgstr "  [ -term Terminalname ]\n"
+
+#: misc-utils/setterm.c:749
+msgid "  [ -reset ]\n"
+msgstr "  [ -reset ]\n"
+
+#: misc-utils/setterm.c:750
+msgid "  [ -initialize ]\n"
+msgstr "  [ -initialize ]\n"
+
+#: misc-utils/setterm.c:751
+msgid "  [ -cursor [on|off] ]\n"
+msgstr "  [ -cursor [on|off] ]\n"
+
+#: misc-utils/setterm.c:753
+msgid "  [ -snow [on|off] ]\n"
+msgstr "  [ -snow [on|off] ]\n"
+
+#: misc-utils/setterm.c:754
+msgid "  [ -softscroll [on|off] ]\n"
+msgstr "  [ -softscroll [on|off] ]\n"
+
+#: misc-utils/setterm.c:755
+msgid "  [ -keyboard pc|olivetti|dutch|extended ]\n"
+msgstr "  [ -keyboard pc|olivetti|dutch|extended ]\n"
+
+#: misc-utils/setterm.c:757
+msgid "  [ -repeat [on|off] ]\n"
+msgstr "  [ -repeat [on|off] ]\n"
+
+#: misc-utils/setterm.c:758
+msgid "  [ -appcursorkeys [on|off] ]\n"
+msgstr "  [ -appcursorkeys [on|off] ]\n"
+
+#: misc-utils/setterm.c:759
+msgid "  [ -linewrap [on|off] ]\n"
+msgstr "  [ -linewrap [on|off] ]\n"
+
+#: misc-utils/setterm.c:760
+msgid "  [ -default ]\n"
+msgstr "  [ -default ]\n"
+
+#: misc-utils/setterm.c:761
+msgid "  [ -foreground black|blue|green|cyan"
+msgstr "  [ -foreground black|blue|green|cyan"
+
+#: misc-utils/setterm.c:762 misc-utils/setterm.c:764
+msgid "|red|magenta|yellow|white|default ]\n"
+msgstr "|red|magenta|yellow|white|default ]\n"
+
+#: misc-utils/setterm.c:763
+msgid "  [ -background black|blue|green|cyan"
+msgstr "  [ -background black|blue|green|cyan"
+
+#: misc-utils/setterm.c:765
+msgid "  [ -ulcolor black|grey|blue|green|cyan"
+msgstr "  [ -ulcolor black|grey|blue|green|cyan"
+
+#: misc-utils/setterm.c:766 misc-utils/setterm.c:768 misc-utils/setterm.c:770
+#: misc-utils/setterm.c:772
+msgid "|red|magenta|yellow|white ]\n"
+msgstr "|red|magenta|yellow|white ]\n"
+
+#: misc-utils/setterm.c:767
+msgid "  [ -ulcolor bright blue|green|cyan"
+msgstr "  [ -ulcolor bright blue|green|cyan"
+
+#: misc-utils/setterm.c:769
+msgid "  [ -hbcolor black|grey|blue|green|cyan"
+msgstr "  [ -hbcolor black|grey|blue|green|cyan"
+
+#: misc-utils/setterm.c:771
+msgid "  [ -hbcolor bright blue|green|cyan"
+msgstr "  [ -hbcolor bright blue|green|cyan"
+
+#: misc-utils/setterm.c:774
+msgid "  [ -standout [ attr ] ]\n"
+msgstr "  [ -standout [ Attribut ] ]\n"
+
+#: misc-utils/setterm.c:776
+msgid "  [ -inversescreen [on|off] ]\n"
+msgstr "  [ -inversescreen [on|off] ]\n"
+
+#: misc-utils/setterm.c:777
+msgid "  [ -bold [on|off] ]\n"
+msgstr "  [ -bold [on|off] ]\n"
+
+#: misc-utils/setterm.c:778
+msgid "  [ -half-bright [on|off] ]\n"
+msgstr "  [ -half-bright [on|off] ]\n"
+
+#: misc-utils/setterm.c:779
+msgid "  [ -blink [on|off] ]\n"
+msgstr "  [ -blink [on|off] ]\n"
+
+#: misc-utils/setterm.c:780
+msgid "  [ -reverse [on|off] ]\n"
+msgstr "  [ -reverse [on|off] ]\n"
+
+#: misc-utils/setterm.c:781
+msgid "  [ -underline [on|off] ]\n"
+msgstr "  [ -underline [on|off] ]\n"
+
+#: misc-utils/setterm.c:782
+msgid "  [ -store ]\n"
+msgstr "  [ -store ]\n"
+
+#: misc-utils/setterm.c:783
+msgid "  [ -clear [all|rest] ]\n"
+msgstr "  [ -clear [all|rest] ]\n"
+
+#: misc-utils/setterm.c:784
+msgid "  [ -tabs [ tab1 tab2 tab3 ... ] ]      (tabn = 1-160)\n"
+msgstr "  [ -tabs [ tab1 tab2 tab3 ... ] ]      (tabN = 1-160)\n"
+
+#: misc-utils/setterm.c:785
+msgid "  [ -clrtabs [ tab1 tab2 tab3 ... ] ]   (tabn = 1-160)\n"
+msgstr "  [ -clrtabs [ tab1 tab2 tab3 ... ] ]   (tabN = 1-160)\n"
+
+#: misc-utils/setterm.c:786
+msgid "  [ -regtabs [1-160] ]\n"
+msgstr "  [ -regtabs [1-160] ]\n"
+
+#: misc-utils/setterm.c:787
+msgid "  [ -blank [0-60] ]\n"
+msgstr "  [ -blank [0-60] ]\n"
+
+#: misc-utils/setterm.c:788
+msgid "  [ -dump   [1-NR_CONSOLES] ]\n"
+msgstr "  [ -dump   [1-Anzahl_Konsolen] ]\n"
+
+#: misc-utils/setterm.c:789
+msgid "  [ -append [1-NR_CONSOLES] ]\n"
+msgstr "  [ -append [1-Anzahl_Konsolen] ]\n"
+
+#: misc-utils/setterm.c:790
+msgid "  [ -file dumpfilename ]\n"
+msgstr "  [ -file Dumpdateiname ]\n"
+
+#: misc-utils/setterm.c:791
+msgid "  [ -msg [on|off] ]\n"
+msgstr "  [ -msg [on|off] ]\n"
+
+#: misc-utils/setterm.c:792
+msgid "  [ -msglevel [0-8] ]\n"
+msgstr "  [ -msglevel [0-8] ]\n"
+
+#: misc-utils/setterm.c:793
+msgid "  [ -powersave [on|vsync|hsync|powerdown|off] ]\n"
+msgstr "  [ -powersave [on|vsync|hsync|powerdown|off] ]\n"
+
+#: misc-utils/setterm.c:794
+msgid "  [ -powerdown [0-60] ]\n"
+msgstr "  [ -powerdown [0-60] ]\n"
+
+#: misc-utils/setterm.c:795
+msgid "  [ -blength [0-2000] ]\n"
+msgstr "  [ -blength [0-2000] ]\n"
+
+#: misc-utils/setterm.c:796
+#, fuzzy
+msgid "  [ -bfreq freqnumber ]\n"
+msgstr "  [ -bfreq Freqnummer ]\n"
+
+#: misc-utils/setterm.c:841
+msgid "keyboard.pc"
+msgstr ""
+
+#: misc-utils/setterm.c:844
+msgid "keyboard.olivetti"
+msgstr ""
+
+#: misc-utils/setterm.c:847
+msgid "keyboard.dutch"
+msgstr ""
+
+#: misc-utils/setterm.c:850
+msgid "keyboard.extended"
+msgstr ""
+
+#: misc-utils/setterm.c:884
+msgid "snow.on"
+msgstr ""
+
+#: misc-utils/setterm.c:886
+msgid "snow.off"
+msgstr ""
+
+#: misc-utils/setterm.c:892
+msgid "softscroll.on"
+msgstr ""
+
+#: misc-utils/setterm.c:894
+msgid "softscroll.off"
+msgstr ""
+
+#: misc-utils/setterm.c:1069
+msgid "cannot (un)set powersave mode\n"
+msgstr ""
+
+#: misc-utils/setterm.c:1108 misc-utils/setterm.c:1116
+#, c-format
+msgid "klogctl error: %s\n"
+msgstr "»klogctl« Fehler: %s\n"
+
+#: misc-utils/setterm.c:1157
+#, c-format
+msgid "Error reading %s\n"
+msgstr "Fehler beim Lesen von %s\n"
+
+#: misc-utils/setterm.c:1172
+msgid "Error writing screendump\n"
+msgstr "Fehler beim Schreiben des Bildschirmdumps\n"
+
+#: misc-utils/setterm.c:1186
+#, c-format
+msgid "couldn't read %s, and cannot ioctl dump\n"
+msgstr ""
+
+#: misc-utils/setterm.c:1251
+#, c-format
+msgid "%s: $TERM is not defined.\n"
+msgstr "%s: Die Umgebungsvariable TERM ist nicht gesetzt.\n"
+
+#: misc-utils/tsort.c:119
+msgid "usage: tsort [ inputfile ]\n"
+msgstr "Aufruf: tsort [ Eingabedatei ]\n"
+
+#: misc-utils/tsort.c:156
+msgid "tsort: odd data count.\n"
+msgstr ""
+
+#: misc-utils/tsort.c:321
+msgid "tsort: cycle in data.\n"
+msgstr "tsort: Zyklus in den Daten.\n"
+
+#: misc-utils/tsort.c:334
+msgid "tsort: internal error -- could not find cycle.\n"
+msgstr "tsort: Interner Fehler -- konnte den Zyklus nicht finden.\n"
+
+#: misc-utils/whereis.c:158
+msgid "whereis [ -sbmu ] [ -SBM dir ... -f ] name...\n"
+msgstr "whereis [ -sbmu ] [ -SBM Verzeichnis ... -f ] Name...\n"
+
+#: misc-utils/write.c:99
+msgid "write: can't find your tty's name\n"
+msgstr ""
+
+#: misc-utils/write.c:110
+msgid "write: you have write permission turned off.\n"
+msgstr ""
+
+#: misc-utils/write.c:131
+#, c-format
+msgid "write: %s is not logged in on %s.\n"
+msgstr ""
+
+#: misc-utils/write.c:139
+#, c-format
+msgid "write: %s has messages disabled on %s\n"
+msgstr ""
+
+#: misc-utils/write.c:146
+msgid "usage: write user [tty]\n"
+msgstr ""
+
+#: misc-utils/write.c:245
+#, c-format
+msgid "write: %s is not logged in\n"
+msgstr ""
+
+#: misc-utils/write.c:254
+#, c-format
+msgid "write: %s has messages disabled\n"
+msgstr ""
+
+#: misc-utils/write.c:258
+#, c-format
+msgid "write: %s is logged in more than once; writing to %s\n"
+msgstr ""
+
+#: misc-utils/write.c:325
+#, c-format
+msgid "Message from %s@%s on %s at %s ..."
+msgstr ""
+
+#: mount/fstab.c:116
+#, c-format
+msgid "warning: error reading %s: %s"
+msgstr "Warnung: Fehler beim Lesen von %s: %s"
+
+#: mount/fstab.c:143 mount/fstab.c:166
+#, c-format
+msgid "warning: can't open %s: %s"
+msgstr "Warnung: Konnte %s nicht öffnen: %s"
+
+#: mount/fstab.c:147
+#, c-format
+msgid "mount: could not open %s - using %s instead\n"
+msgstr "mount: Konnte %s nicht öffnen - benutze %s stattdessen\n"
+
+#. linktargetfile does not exist (as a file)
+#. and we cannot create it. Read-only filesystem?
+#. Too many files open in the system? Filesystem full?
+#: mount/fstab.c:358
+#, c-format
+msgid "can't create lock file %s: %s (use -n flag to override)"
+msgstr ""
+"Konnte die Lock-Datei %s nicht anlegen: %s (benutzen Sie die -n Option, um "
+"dies zu umgehen)"
+
+#: mount/fstab.c:370
+#, c-format
+msgid "can't link lock file %s: %s (use -n flag to override)"
+msgstr ""
+"Konnte keinen Link für die Lock-Datei %s anlegen: %s (benutzen Sie die -n "
+"Option, um dies zu umgehen)"
+
+#: mount/fstab.c:382
+#, c-format
+msgid "can't open lock file %s: %s (use -n flag to override)"
+msgstr ""
+"Konnte die Lock-Datei %s nicht öffnen: %s (benutzen Sie die -n Option, um "
+"dies zu umgehen)"
+
+#: mount/fstab.c:397
+#, c-format
+msgid "Can't lock lock file %s: %s\n"
+msgstr "Konnte die Lock-Datei %s nicht »locken«: %s\n"
+
+#: mount/fstab.c:408
+#, c-format
+msgid "can't lock lock file %s: %s"
+msgstr "Konnte die Lock-Datei %s nicht »locken«: %s"
+
+#: mount/fstab.c:410
+msgid "timed out"
+msgstr "Zeitüberschreitung"
+
+#: mount/fstab.c:455 mount/fstab.c:463
+#, c-format
+msgid "cannot open %s (%s) - mtab not updated"
+msgstr "Konnte %s nicht öffnen (%s) - mtab nicht aktualisiert"
+
+#: mount/fstab.c:488
+msgid "mount: warning: cannot change mounted device with a remount\n"
+msgstr ""
+"mount: Warnung: Das Gerät kann nicht mit einem »remount« geändert werden\n"
+
+#: mount/fstab.c:493
+msgid "mount: warning: cannot change filesystem type with a remount\n"
+msgstr ""
+"mount: Der Dateisystemtyp kann nicht mit einem »remount« geändert werden\n"
+
+#: mount/fstab.c:501 mount/fstab.c:507
+#, c-format
+msgid "error writing %s: %s"
+msgstr "Fehler beim Schreiben von %s: %s"
+
+# "Modus" is the translation, that fileutils.po uses.
+# I don't like it, but I haven't got a better one.
+# Someone suggested "Zugriffsrechte", which I currently like
+# better
+# XXX - search for "Modus" and you'll find a similiar message
+#: mount/fstab.c:514
+#, c-format
+msgid "error changing mode of %s: %s\n"
+msgstr "Fehler beim Ändern der Zugriffsrechte von %s: %s\n"
+
+#: mount/fstab.c:521
+#, c-format
+msgid "can't rename %s to %s: %s\n"
+msgstr "Konnte %s nicht in %s umbenennen: %s\n"
+
+#: mount/lomount.c:78
+#, c-format
+msgid "loop: can't open device %s: %s\n"
+msgstr "loop: Konnte das Gerät %s nicht öffnen: %s\n"
+
+#: mount/lomount.c:84
+#, c-format
+msgid "loop: can't get info on device %s: %s\n"
+msgstr "loop: Konnte keine Informationen über Gerät %s erhalten: %s\n"
+
+#: mount/lomount.c:89 mount/losetup.c:74
+#, c-format
+msgid "%s: [%04x]:%ld (%s) offset %d, %s encryption\n"
+msgstr ""
+
+# XXX - pretty dumb
+#: mount/lomount.c:143
+msgid "mount: could not find any device /dev/loop#"
+msgstr "mount: Konnte kein Gerät /dev/loop# finden"
+
+#: mount/lomount.c:147
+msgid ""
+"mount: Could not find any loop device.\n"
+"       Maybe /dev/loop# has a wrong major number?"
+msgstr ""
+"mount: Konnte kein »loop« Gerät finden.\n"
+"       Vielleicht hat /dev/loop# eine falsche Major Nummer?"
+
+#: mount/lomount.c:151
+#, c-format
+msgid ""
+"mount: Could not find any loop device, and, according to %s,\n"
+"       this kernel does not know about the loop device.\n"
+"       (If so, then recompile or `insmod loop.o'.)"
+msgstr ""
+"mount: Konnte kein »loop«-Gerät finden. Laut %s unterstützt\n"
+"       dieses Kernel keine »loop«-Geräte. (wenn dies der Fall\n"
+"       ist, dann sollten Sie das Kernel neu kompilieren oder\n"
+"       »insmod loop.o« ausführen.)"
+
+#: mount/lomount.c:156
+msgid ""
+"mount: Could not find any loop device. Maybe this kernel does not know\n"
+"       about the loop device (then recompile or `insmod loop.o'), or\n"
+"       maybe /dev/loop# has the wrong major number?"
+msgstr ""
+
+#: mount/lomount.c:160
+msgid "mount: could not find any free loop device"
+msgstr "mount: Konnte kein freies »loop«-Gerät finden"
+
+#: mount/lomount.c:191 mount/losetup.c:106
+#, c-format
+msgid "Unsupported encryption type %s\n"
+msgstr "Der Verschlüsselungstyp %s wird nicht unterstützt\n"
+
+#: mount/lomount.c:210 mount/losetup.c:125
+msgid "Init (up to 16 hex digits): "
+msgstr ""
+
+#: mount/lomount.c:217 mount/losetup.c:132
+#, c-format
+msgid "Non-hex digit '%c'.\n"
+msgstr ""
+
+#: mount/lomount.c:223 mount/losetup.c:138
+#, c-format
+msgid "Don't know how to get key for encryption system %d\n"
+msgstr ""
+
+#: mount/lomount.c:239
+#, c-format
+msgid "set_loop(%s,%s,%d): success\n"
+msgstr ""
+
+#: mount/lomount.c:250
+#, c-format
+msgid "loop: can't delete device %s: %s\n"
+msgstr ""
+
+#: mount/lomount.c:260
+#, c-format
+msgid "del_loop(%s): success\n"
+msgstr ""
+
+#: mount/lomount.c:268
+msgid "This mount was compiled without loop support. Please recompile.\n"
+msgstr ""
+
+#: mount/losetup.c:70
+msgid "Cannot get loop info"
+msgstr ""
+
+#: mount/losetup.c:174
+#, c-format
+msgid ""
+"usage:\n"
+"  %s loop_device                                      # give info\n"
+"  %s -d loop_device                                   # delete\n"
+"  %s [ -e encryption ] [ -o offset ] loop_device file # setup\n"
+msgstr ""
+
+#: mount/losetup.c:231
+msgid "No loop support was available at compile time. Please recompile.\n"
+msgstr ""
+
+#: mount/mntent.c:165
+#, c-format
+msgid "[mntent]: warning: no final newline at the end of %s\n"
+msgstr ""
+
+#: mount/mntent.c:216
+#, c-format
+msgid "[mntent]: line %d in %s is bad%s\n"
+msgstr "[mntent]: Zeile %d in %s ist fehlerhaft%s\n"
+
+#: mount/mntent.c:219
+msgid "; rest of file ignored"
+msgstr "; der Rest der Datei wurde ignoriert"
+
+#: mount/mount.c:320
+#, c-format
+msgid "mount: according to mtab, %s is already mounted on %s"
+msgstr "mount: Laut mtab ist %s schon auf %s gemountet"
+
+#: mount/mount.c:323
+#, c-format
+msgid "mount: according to mtab, %s is mounted on %s"
+msgstr "mount: Laut mtab ist %s auf %s gemountet"
+
+#: mount/mount.c:344
+#, c-format
+msgid "mount: can't open %s for writing: %s"
+msgstr "mount: Konnte %s nicht zum Schreiben öffnen: %s"
+
+#: mount/mount.c:359 mount/mount.c:608
+#, c-format
+msgid "mount: error writing %s: %s"
+msgstr "mount: Fehler beim Schreiben von %s: %s"
+
+# "Modus"
+#: mount/mount.c:366
+#, c-format
+msgid "mount: error changing mode of %s: %s"
+msgstr "mount: Fehler beim Ändern der Zugriffsrechte von %s: %s"
+
+#: mount/mount.c:440
+msgid "mount failed"
+msgstr "mount ist fehlgeschlagen"
+
+#: mount/mount.c:442
+#, c-format
+msgid "mount: only root can mount %s on %s"
+msgstr "mount: Nur »root« kann %s auf %s mounten"
+
+#: mount/mount.c:467
+msgid "mount: loop device specified twice"
+msgstr ""
+
+#: mount/mount.c:473
+msgid "mount: type specified twice"
+msgstr ""
+
+#: mount/mount.c:485
+msgid "mount: skipping the setup of a loop device\n"
+msgstr ""
+
+#: mount/mount.c:494
+#, c-format
+msgid "mount: going to use the loop device %s\n"
+msgstr ""
+
+#: mount/mount.c:498
+msgid "mount: failed setting up loop device\n"
+msgstr ""
+
+#: mount/mount.c:502
+msgid "mount: setup loop device successfully\n"
+msgstr ""
+
+#: mount/mount.c:515
+msgid "mount: this version was compiled without support for the type `nfs'"
+msgstr ""
+
+#: mount/mount.c:565 mount/mount.c:990
+#, c-format
+msgid "mount: cannot fork: %s"
+msgstr "mount: Konnte »fork()« nicht ausführen: %s"
+
+#: mount/mount.c:603
+#, c-format
+msgid "mount: can't open %s: %s"
+msgstr "mount: Konnte %s nicht öffnen: %s"
+
+#: mount/mount.c:631
+msgid "mount: you must specify the filesystem type"
+msgstr "mount: Sie müssen den Dateisystemtyp angeben"
+
+#: mount/mount.c:638 mount/mount.c:673
+#, c-format
+msgid "mount: mount point %s is not a directory"
+msgstr "mount: Mountpunkt %s ist kein Verzeichnis"
+
+#: mount/mount.c:640
+msgid "mount: permission denied"
+msgstr ""
+
+#: mount/mount.c:642
+msgid "mount: must be superuser to use mount"
+msgstr ""
+
+#. heuristic: if /proc/version exists, then probably proc is mounted
+#. proc mounted?
+#: mount/mount.c:646 mount/mount.c:650
+#, c-format
+msgid "mount: %s is busy"
+msgstr "mount: %s wird gerade benutzt"
+
+#. no
+#. yes, don't mention it
+#: mount/mount.c:652
+msgid "mount: proc already mounted"
+msgstr "mount: proc ist bereits gemountet"
+
+#: mount/mount.c:654
+#, c-format
+msgid "mount: %s already mounted or %s busy"
+msgstr "mount: %s ist bereits gemountet oder %s wird gerade benutzt"
+
+#: mount/mount.c:660
+#, c-format
+msgid "mount: mount point %s does not exist"
+msgstr "mount: Mountpunkt %s existiert nicht"
+
+#: mount/mount.c:662
+#, c-format
+msgid "mount: mount point %s is a symbolic link to nowhere"
+msgstr ""
+"mount: Mountpunkt %s ist eine symbolische Verknüpfung,\n"
+"       deren Ziel nicht existiert"
+
+#: mount/mount.c:665
+#, c-format
+msgid "mount: special device %s does not exist"
+msgstr "mount: Gerätedatei %s existiert nicht"
+
+#: mount/mount.c:675
+#, c-format
+msgid ""
+"mount: special device %s does not exist\n"
+"       (a path prefix is not a directory)\n"
+msgstr ""
+
+#: mount/mount.c:687
+#, c-format
+msgid "mount: %s not mounted already, or bad option"
+msgstr ""
+"mount: %s ist noch nicht gemountet oder es wurden\n"
+"       ungültige Optionen angegeben"
+
+#: mount/mount.c:689
+#, c-format
+msgid ""
+"mount: wrong fs type, bad option, bad superblock on %s,\n"
+"       or too many mounted file systems"
+msgstr ""
+"mount: Falscher Dateisystemtyp, ungültige Optionen, der\n"
+"       »Superblock« von %s ist beschädigt oder es sind\n"
+"       zu viele Dateisysteme gemountet"
+
+#: mount/mount.c:704
+msgid "mount table full"
+msgstr "Mounttabelle ist voll"
+
+#: mount/mount.c:706
+#, c-format
+msgid "mount: %s: can't read superblock"
+msgstr "mount: %s: Konnte den Superblock nicht lesen"
+
+#: mount/mount.c:709
+#, c-format
+msgid "mount: %s has wrong major or minor number"
+msgstr "mount: %s hat eine falsche Major oder Minor Geräte-Nummer"
+
+#: mount/mount.c:714
+#, c-format
+msgid "mount: fs type %s not supported by kernel"
+msgstr "mount: Der Dateisystemtyp %s wird nicht vom Kernel unterstützt"
+
+#: mount/mount.c:726
+#, c-format
+msgid "mount: probably you meant %s"
+msgstr "mount: Vielleicht meinten sie »%s«"
+
+#: mount/mount.c:728
+msgid "mount: maybe you meant iso9660 ?"
+msgstr "mount: Vielleicht meinten Sie »iso9660«?"
+
+#: mount/mount.c:731
+#, c-format
+msgid "mount: %s has wrong device number or fs type %s not supported"
+msgstr ""
+"mount: %s hat eine falsche Geräte-Nummer oder der\n"
+"       Dateisystemtyp %s wird nicht unterstützt"
+
+#. strange ...
+#: mount/mount.c:736
+#, c-format
+msgid "mount: %s is not a block device, and stat fails?"
+msgstr ""
+"mount: %s ist kein blockorientiertes Gerät und »stat«\n"
+"       schlug fehl?"
+
+#: mount/mount.c:738
+#, c-format
+msgid ""
+"mount: the kernel does not recognize %s as a block device\n"
+"       (maybe `insmod driver'?)"
+msgstr ""
+"mount: Das Kernel erkennt %s nicht als blockorientiertes\n"
+"       Gerät (Vielleicht hilft »insmod Treiber«?)"
+
+#: mount/mount.c:741
+#, c-format
+msgid "mount: %s is not a block device (maybe try `-o loop'?)"
+msgstr ""
+"mount: %s ist kein blockorientiertes Gerät\n"
+"       (Vielleicht probieren Sie »-o loop«?)"
+
+#: mount/mount.c:744
+#, c-format
+msgid "mount: %s is not a block device"
+msgstr "mount: %s ist kein blockorientiertes Gerät"
+
+#: mount/mount.c:747
+#, c-format
+msgid "mount: %s is not a valid block device"
+msgstr "mount: %s ist kein gültiges blockorientiertes Gerät"
+
+#: mount/mount.c:751
+#, c-format
+msgid "mount: block device %s is not permitted on its filesystem"
+msgstr ""
+
+#: mount/mount.c:767
+#, c-format
+msgid "mount: %s%s is write-protected, mounting read-only"
+msgstr ""
+"mount: %s%s ist schreibgeschützt, es wird im\n"
+"       Nur-Lese-Modus gemountet"
+
+#: mount/mount.c:768
+msgid "block device "
+msgstr "blockorientiertes Gerät "
+
+#: mount/mount.c:854
+#, c-format
+msgid "mount: consider mounting %s by %s\n"
+msgstr "mount: Ziehen Sie in Betracht %s mit Hilfe von %s zu mounten\n"
+
+#: mount/mount.c:855
+msgid "UUID"
+msgstr "UUID"
+
+#: mount/mount.c:855
+#, fuzzy
+msgid "label"
+msgstr "Bezeichner"
+
+#: mount/mount.c:857 mount/mount.c:1173
+msgid "mount: no such partition found"
+msgstr "mount: Keine passende Partition gefunden"
+
+#: mount/mount.c:865
+msgid "mount: no type was given - I'll assume nfs because of the colon\n"
+msgstr ""
+"mount: Es wurde kein Typ angegeben - Auf Grund des\n"
+"       Doppelpunktes wird nfs angenommen\n"
+
+#.
+#. * Retry in the background.
+#.
+#: mount/mount.c:881
+#, c-format
+msgid "mount: backgrounding \"%s\"\n"
+msgstr "mount: »%s« wird im Hintergrund fortgesetzt\n"
+
+# Not realy nice
+#: mount/mount.c:892
+#, c-format
+msgid "mount: giving up \"%s\"\n"
+msgstr "mount: »%s« schlug fehl\n"
+
+#: mount/mount.c:941
+#, c-format
+msgid "mount: %s already mounted on %s\n"
+msgstr "mount: %s ist bereits auf %s gemountet\n"
+
+#: mount/mount.c:1052
+msgid ""
+"Usage: mount [-hV]\n"
+"       mount -a [-nfFrsvw] [-t vfstypes]\n"
+"       mount [-nfrsvw] [-o options] special | node\n"
+"       mount [-nfrsvw] [-t vfstype] [-o options] special node\n"
+"       A special device can be indicated by  -L label  or  -U uuid .\n"
+msgstr ""
+"Aufruf: mount [-hV]\n"
+"        mount -a [-nfFrsvw] [-t VFS-Typen]\n"
+"        mount [-nfrsvw] [-o Optionen] Spezialdatei | Verzeichnis\n"
+"        mount [-nfrsvw] [-t VFS-Typ] [-o Optionen] Gerät Verzeichnis\n"
+"        Das Gerät kann auch durch -L Label oder -U UUID angegeben werden.\n"
+
+#: mount/mount.c:1158
+msgid "mount: only root can do that"
+msgstr "mount: Nur »root« kann dies tun"
+
+#: mount/mount.c:1163
+#, c-format
+msgid "mount: no %s found - creating it..\n"
+msgstr "mount: %s nicht gefunden - Erzeuge sie...\n"
+
+#: mount/mount.c:1175
+#, c-format
+msgid "mount: mounting %s\n"
+msgstr "mount: Mounte %s\n"
+
+#: mount/mount.c:1184
+msgid "not mounted anything"
+msgstr "Es wurde nichts gemountet"
+
+#: mount/mount.c:1197
+#, c-format
+msgid "mount: cannot find %s in %s"
+msgstr "mount: Konnte %s nicht in %s finden"
+
+#: mount/mount.c:1211
+#, c-format
+msgid "mount: can't find %s in %s or %s"
+msgstr "mount: Konnte %s nicht in %s oder %s finden"
+
+#: mount/mount_by_label.c:141
+msgid "mount: bad UUID"
+msgstr "mount: ungültige UUID"
+
+#: mount/mount_guess_fstype.c:187
+#, c-format
+msgid "mount: you didn't specify a filesystem type for %s\n"
+msgstr "mount: Es wurde kein Dateisystemtyp für %s angegeben\n"
+
+#: mount/mount_guess_fstype.c:190
+#, c-format
+msgid "       I will try type %s\n"
+msgstr "       Werde den Typ %s probieren\n"
+
+#: mount/mount_guess_fstype.c:192
+#, c-format
+msgid "       I will try all types mentioned in %s or %s\n"
+msgstr ""
+"       Werde alle Dateisystemtypen probieren, die in %s oder %s\n"
+"       aufgelistet sind\n"
+
+#: mount/nfsmount.c:157
+msgid "mount: excessively long host:dir argument\n"
+msgstr ""
+
+#: mount/nfsmount.c:170
+msgid "mount: warning: multiple hostnames not supported\n"
+msgstr "mount: Mehrere Rechnernamen werden nicht unterstützt\n"
+
+#: mount/nfsmount.c:174
+msgid "mount: directory to mount not in host:dir format\n"
+msgstr ""
+
+#: mount/nfsmount.c:185 mount/nfsmount.c:420
+#, c-format
+msgid "mount: can't get address for %s\n"
+msgstr "mount: Konnte die Adresse von %s nicht herausfinden\n"
+
+#: mount/nfsmount.c:191
+msgid "mount: got bad hp->h_length\n"
+msgstr ""
+
+#: mount/nfsmount.c:208
+msgid "mount: excessively long option argument\n"
+msgstr ""
+
+#: mount/nfsmount.c:299
+msgid "Warning: Unrecognized proto= option.\n"
+msgstr "Warnung: unbekannte »proto=« Option.\n"
+
+#: mount/nfsmount.c:306
+msgid "Warning: Option namlen is not supported.\n"
+msgstr "Warnung: Die Option »namlen« wird nicht unterstützt.\n"
+
+#: mount/nfsmount.c:310
+#, c-format
+msgid "unknown nfs mount parameter: %s=%d\n"
+msgstr "Unbekannter nfs-Mount-Parameter: %s=%d\n"
+
+#: mount/nfsmount.c:345
+msgid "Warning: option nolock is not supported.\n"
+msgstr "Warnung: Die Option »nolock« wird nicht unterstützt.\n"
+
+#: mount/nfsmount.c:348
+#, c-format
+msgid "unknown nfs mount option: %s%s\n"
+msgstr "unbekannte nfs-Mount-Option: %s%s\n"
+
+#: mount/nfsmount.c:426
+msgid "mount: got bad hp->h_length?\n"
+msgstr ""
+
+#: mount/nfsmount.c:528
+#, c-format
+msgid "mount: %s:%s failed, reason given by server: %s\n"
+msgstr ""
+"mount: %s:%s schlug fehl, Der folgende Grund wurde vom Server angegeben:\n"
+"       %s\n"
+
+#: mount/nfsmount.c:539
+msgid "NFS over TCP is not supported.\n"
+msgstr "NFS über TCP wird nicht unterstützt.\n"
+
+#: mount/nfsmount.c:546
+msgid "nfs socket"
+msgstr ""
+
+#: mount/nfsmount.c:550
+msgid "nfs bindresvport"
+msgstr ""
+
+#: mount/nfsmount.c:561
+msgid "used portmapper to find NFS port\n"
+msgstr ""
+
+#: mount/nfsmount.c:565
+#, c-format
+msgid "using port %d for nfs deamon\n"
+msgstr ""
+
+#: mount/nfsmount.c:576
+msgid "nfs connect"
+msgstr ""
+
+#: mount/nfsmount.c:665
+#, c-format
+msgid "unknown nfs status return value: %d"
+msgstr ""
+
+#: mount/sundries.c:40 mount/sundries.c:55
+msgid "not enough memory"
+msgstr "Nicht genügend Speicher"
+
+#: mount/sundries.c:65
+msgid "bug in xstrndup call"
+msgstr ""
+
+#: mount/swapon.c:51
+#, c-format
+msgid ""
+"usage: %s [-hV]\n"
+"       %s -a [-v]\n"
+"       %s [-v] [-p priority] special ...\n"
+"       %s [-s]\n"
+msgstr ""
+"Aufruf: %s [-hV]\n"
+"        %s -a [-v]\n"
+"        %s [-v] [-p Priorität] Spezialdatei ...\n"
+"        %s [-s]\n"
+
+# The first %s is swapon/swapoff
+#: mount/swapon.c:88
+#, c-format
+msgid "%s on %s\n"
+msgstr "%s für %s\n"
+
+#: mount/swapon.c:93
+#, c-format
+msgid "swapon: cannot stat %s: %s\n"
+msgstr "swapon: Konnte »stat« nicht auf %s anwenden: %s\n"
+
+# "Modus"
+#: mount/swapon.c:99
+#, c-format
+msgid "swapon: warning: %s has insecure permissions %04o, 0600 suggested\n"
+msgstr ""
+"swapon: Warnung: Die Zugriffsrechte (%2$04o) von %1$s sind unsicher,\n"
+"        0600 wird empfohlen\n"
+
+#: mount/swapon.c:108
+#, c-format
+msgid "swapon: Skipping file %s - it appears to have holes.\n"
+msgstr "swapon: Überspringe die Datei %s - Sie scheint »holes« zu enthalten.\n"
+
+#: mount/swapon.c:213
+#, c-format
+msgid "%s: cannot open %s: %s\n"
+msgstr "%s: Konnte %s nicht öffnen: %s\n"
+
+#: mount/umount.c:65
+msgid "umount: compiled without support for -f\n"
+msgstr "umount: Die Unterstützung für -f wurde nicht einkompiliert\n"
+
+#: mount/umount.c:115
+#, c-format
+msgid "host: %s, directory: %s\n"
+msgstr "Rechner: %s, Verzeichnis: %s\n"
+
+#: mount/umount.c:132
+#, c-format
+msgid "umount: can't get address for %s\n"
+msgstr "umount: Konnte die Adresse von %s nicht herausfinden\n"
+
+#: mount/umount.c:137
+msgid "umount: got bad hostp->h_length\n"
+msgstr ""
+
+#: mount/umount.c:175
+#, c-format
+msgid "umount: %s: invalid block device"
+msgstr ""
+
+#: mount/umount.c:177
+#, c-format
+msgid "umount: %s: not mounted"
+msgstr "umount: %s ist nicht gemountet"
+
+#: mount/umount.c:179
+#, c-format
+msgid "umount: %s: can't write superblock"
+msgstr "umount: %s: Konnte den »Superblock« nicht schreiben"
+
+# XXX - I did have a better one for busy
+#. Let us hope fstab has a line "proc /proc ..."
+#. and not "none /proc ..."
+#: mount/umount.c:183
+#, c-format
+msgid "umount: %s: device is busy"
+msgstr "umount: %s: Das Gerät wird momenten noch benutzt"
+
+#: mount/umount.c:185
+#, c-format
+msgid "umount: %s: not found"
+msgstr "umount: %s: Nicht gefunden"
+
+#: mount/umount.c:187
+#, c-format
+msgid "umount: %s: must be superuser to umount"
+msgstr ""
+
+#: mount/umount.c:189
+#, c-format
+msgid "umount: %s: block devices not permitted on fs"
+msgstr ""
+
+#: mount/umount.c:191
+#, c-format
+msgid "umount: %s: %s"
+msgstr "umount: %s: %s"
+
+#: mount/umount.c:235
+msgid "no umount2, trying umount...\n"
+msgstr ""
+
+#: mount/umount.c:248
+#, c-format
+msgid "could not umount %s - trying %s instead\n"
+msgstr ""
+
+#: mount/umount.c:264
+#, c-format
+msgid "umount: %s busy - remounted read-only\n"
+msgstr ""
+
+#: mount/umount.c:272
+#, c-format
+msgid "umount: could not remount %s read-only\n"
+msgstr ""
+
+#: mount/umount.c:280
+#, c-format
+msgid "%s umounted\n"
+msgstr ""
+
+#: mount/umount.c:363
+msgid "umount: cannot find list of filesystems to unmount"
+msgstr ""
+
+#: mount/umount.c:392
+msgid ""
+"Usage: umount [-hV]\n"
+"       umount -a [-f] [-r] [-n] [-v] [-t vfstypes]\n"
+"       umount [-f] [-r] [-n] [-v] special | node...\n"
+msgstr ""
+"Aufruf: umount [-hV]\n"
+"        umoumt -a [-f] [-r] [-n] [-v] [-t VFS-Typen]\n"
+"        umount [-f] [-r] [-n] [-v] Spezialdatei | Verzeichnis ...\n"
+
+#: mount/umount.c:453
+msgid "umount: only root can do that"
+msgstr "umount: Nur »root« kann dies tun"
+
+#: mount/umount.c:468
+#, c-format
+msgid "Trying to umount %s\n"
+msgstr "Versuche %s zu umounten\n"
+
+#: mount/umount.c:472
+#, c-format
+msgid "Could not find %s in mtab\n"
+msgstr "Konnte %s nicht in mtab finden\n"
+
+#: mount/umount.c:476
+#, c-format
+msgid "umount: %s is not mounted (according to mtab)"
+msgstr "umount: %s ist laut »mtab« nicht gemountet"
+
+#: mount/umount.c:478
+#, c-format
+msgid "umount: it seems %s is mounted multiple times"
+msgstr "umount: %s scheint mehrfach gemountet zu sein"
+
+#: mount/umount.c:480
+#, c-format
+msgid "umount: %s is not in the fstab (and you are not root)"
+msgstr "umount: fstab enthält %s nicht (Nur root kann es unmounten)"
+
+#: mount/umount.c:486
+#, c-format
+msgid "umount: %s mount disagrees with the fstab"
+msgstr ""
+
+#: mount/umount.c:505
+#, c-format
+msgid "umount: only root can unmount %s from %s"
+msgstr "umount: Nur »root« kann %s von %s unmounten"
+
+#: mount/umount.c:515
+#, c-format
+msgid "umount: only %s can unmount %s from %s"
+msgstr "umount: Nur %s kann %s von %s unmounten"
+
+#: sys-utils/ctrlaltdel.c:26
+#, fuzzy
+msgid "You must be root to set the Ctrl-Alt-Del behaviour.\n"
+msgstr "Nur root kann das Verhalten bei Strg-Alt-Entf ändern.\n"
+
+#: sys-utils/ctrlaltdel.c:41
+#, fuzzy
+msgid "Usage: ctrlaltdel hard|soft\n"
+msgstr "Aufruf: ctrlaltdef hard|soft\n"
+
+#: sys-utils/cytune.c:118
+#, c-format
+msgid ""
+"File %s, For threshold value %lu, Maximum characters in fifo were %d,\n"
+"and the maximum transfer rate in characters/second was %f\n"
+msgstr ""
+
+#: sys-utils/cytune.c:129
+#, c-format
+msgid ""
+"File %s, For threshold value %lu and timrout value %lu, Maximum characters "
+"in fifo were %d,\n"
+"and the maximum transfer rate in characters/second was %f\n"
+msgstr ""
+
+#: sys-utils/cytune.c:196
+#, c-format
+msgid "Invalid interval value: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:204
+#, c-format
+msgid "Invalid set value: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:212
+#, c-format
+msgid "Invalid default value: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:220
+#, c-format
+msgid "Invalid set time value: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:228
+#, c-format
+msgid "Invalid default time value: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:245
+#, c-format
+msgid ""
+"Usage: %s [-q [-i interval]] ([-s value]|[-S value]) ([-t value]|[-T value]) "
+"[-g|-G] file [file...]\n"
+msgstr ""
+
+#: sys-utils/cytune.c:257 sys-utils/cytune.c:275 sys-utils/cytune.c:294
+#: sys-utils/cytune.c:342
+#, c-format
+msgid "Can't open %s: %s\n"
+msgstr "Konnte %s nicht öffnen: %s\n"
+
+#: sys-utils/cytune.c:264
+#, c-format
+msgid "Can't set %s to threshold %d: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:282
+#, c-format
+msgid "Can't set %s to time threshold %d: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:299 sys-utils/cytune.c:354 sys-utils/cytune.c:385
+#, c-format
+msgid "Can't get threshold for %s: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:305 sys-utils/cytune.c:360 sys-utils/cytune.c:391
+#, c-format
+msgid "Can't get timeout for %s: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:309
+#, c-format
+msgid "%s: %ld %s threshold and %ld %s timeout\n"
+msgstr ""
+
+#: sys-utils/cytune.c:311 sys-utils/cytune.c:313
+msgid "current"
+msgstr ""
+
+#: sys-utils/cytune.c:311 sys-utils/cytune.c:313
+msgid "default"
+msgstr ""
+
+#: sys-utils/cytune.c:330
+msgid "Can't set signal handler"
+msgstr ""
+
+#: sys-utils/cytune.c:334 sys-utils/cytune.c:369
+msgid "gettimeofday failed"
+msgstr ""
+
+#: sys-utils/cytune.c:347 sys-utils/cytune.c:379
+#, c-format
+msgid "Can't issue CYGETMON on %s: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:421
+#, c-format
+msgid "%s: %lu ints, %lu/%lu chars; "
+msgstr ""
+
+#: sys-utils/cytune.c:422
+#, c-format
+msgid "fifo: %lu thresh, %lu tmout, "
+msgstr ""
+
+#: sys-utils/cytune.c:423
+#, c-format
+msgid "%lu max, %lu now\n"
+msgstr ""
+
+#: sys-utils/cytune.c:428
+#, c-format
+msgid "   %f int/sec; %f rec, %f send (char/sec)\n"
+msgstr ""
+
+#: sys-utils/cytune.c:433
+#, c-format
+msgid ""
+"%s: %lu ints, %lu chars; fifo: %lu thresh, %lu tmout, %lu max, %lu now\n"
+msgstr ""
+
+#: sys-utils/cytune.c:438
+#, c-format
+msgid "   %f int/sec; %f rec (char/sec)\n"
+msgstr ""
+
+#: sys-utils/dmesg.c:38
+#, c-format
+msgid "Usage: %s [-c] [-n level] [-s bufsize]\n"
+msgstr ""
+
+#: sys-utils/ipcrm.c:46
+#, c-format
+msgid "usage: %s [shm | msg | sem] id\n"
+msgstr ""
+
+#: sys-utils/ipcrm.c:70
+#, c-format
+msgid "usage: %s [-shm | -msg | -sem] id\n"
+msgstr ""
+
+#: sys-utils/ipcrm.c:73
+msgid "resource deleted\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:91
+#, c-format
+msgid "usage : %s -asmq -tclup \n"
+msgstr ""
+
+#: sys-utils/ipcs.c:92
+#, c-format
+msgid "\t%s [-s -m -q] -i id\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:93
+#, c-format
+msgid "\t%s -h for help.\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:99
+#, c-format
+msgid "%s provides information on ipc facilities for"
+msgstr ""
+
+#: sys-utils/ipcs.c:100
+msgid " which you have read access.\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:101
+msgid ""
+"Resource Specification:\n"
+"\t-m : shared_mem\n"
+"\t-q : messages\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:102
+msgid ""
+"\t-s : semaphores\n"
+"\t-a : all (default)\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:103
+msgid ""
+"Output Format:\n"
+"\t-t : time\n"
+"\t-p : pid\n"
+"\t-c : creator\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:104
+msgid ""
+"\t-l : limits\n"
+"\t-u : summary\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:105
+msgid "-i id [-s -q -m] : details on resource identified by id\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:237 sys-utils/ipcs.c:439
+msgid "kernel not configured for shared memory\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:243
+msgid "------ Shared Memory Limits --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:246
+#, c-format
+msgid "max number of segments = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:247
+#, c-format
+msgid "max seg size (kbytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:248
+#, c-format
+msgid "max total shared memory (kbytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:249
+#, c-format
+msgid "min seg size (bytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:253
+msgid "------ Shared Memory Status --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:254
+#, c-format
+msgid "segments allocated %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:255
+#, c-format
+msgid "pages allocated %ld\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:256
+#, c-format
+msgid "pages resident  %ld\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:257
+#, c-format
+msgid "pages swapped   %ld\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:258
+#, c-format
+msgid "Swap performance: %ld attempts\t %ld successes\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:263
+msgid "------ Shared Memory Segment Creators/Owners --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:264 sys-utils/ipcs.c:370 sys-utils/ipcs.c:462
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s%-10s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:271 sys-utils/ipcs.c:276
+#: sys-utils/ipcs.c:281 sys-utils/ipcs.c:377
+msgid "shmid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:282 sys-utils/ipcs.c:371
+#: sys-utils/ipcs.c:386 sys-utils/ipcs.c:463 sys-utils/ipcs.c:480
+msgid "perms"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:371 sys-utils/ipcs.c:463
+msgid "cuid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:371 sys-utils/ipcs.c:463
+msgid "cgid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:371 sys-utils/ipcs.c:463
+msgid "uid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:463
+msgid "gid"
+msgstr ""
+
+#: sys-utils/ipcs.c:269
+msgid "------ Shared Memory Attach/Detach/Change Times --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:270
+#, c-format
+msgid "%-10s%-10s  %-20s%-20s%-20s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:271 sys-utils/ipcs.c:276 sys-utils/ipcs.c:282
+#: sys-utils/ipcs.c:377 sys-utils/ipcs.c:386 sys-utils/ipcs.c:469
+#: sys-utils/ipcs.c:474 sys-utils/ipcs.c:480
+msgid "owner"
+msgstr ""
+
+#: sys-utils/ipcs.c:271
+msgid "attached"
+msgstr ""
+
+#: sys-utils/ipcs.c:271
+msgid "detached"
+msgstr ""
+
+#: sys-utils/ipcs.c:271
+msgid "changed"
+msgstr ""
+
+#: sys-utils/ipcs.c:275
+msgid "------ Shared Memory Creator/Last-op --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:276 sys-utils/ipcs.c:474
+#, c-format
+msgid "%-10s%-10s%-10s%-10s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:276
+msgid "cpid"
+msgstr ""
+
+#: sys-utils/ipcs.c:276
+msgid "lpid"
+msgstr ""
+
+#: sys-utils/ipcs.c:280
+msgid "------ Shared Memory Segments --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:281
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s%-10s%-12s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:281 sys-utils/ipcs.c:386 sys-utils/ipcs.c:479
+msgid "key"
+msgstr ""
+
+#: sys-utils/ipcs.c:282
+msgid "bytes"
+msgstr ""
+
+#: sys-utils/ipcs.c:282
+msgid "nattch"
+msgstr ""
+
+#: sys-utils/ipcs.c:282 sys-utils/ipcs.c:386
+msgid "status"
+msgstr ""
+
+#: sys-utils/ipcs.c:302 sys-utils/ipcs.c:303 sys-utils/ipcs.c:304
+#: sys-utils/ipcs.c:407 sys-utils/ipcs.c:408 sys-utils/ipcs.c:500
+#: sys-utils/ipcs.c:501 sys-utils/ipcs.c:502
+msgid "Not set"
+msgstr ""
+
+#: sys-utils/ipcs.c:324
+msgid "dest"
+msgstr ""
+
+#: sys-utils/ipcs.c:325
+msgid "locked"
+msgstr ""
+
+#: sys-utils/ipcs.c:345
+msgid "kernel not configured for semaphores\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:351
+msgid "------ Semaphore Limits --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:355
+#, c-format
+msgid "max number of arrays = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:356
+#, c-format
+msgid "max semaphores per array = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:357
+#, c-format
+msgid "max semaphores system wide = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:358
+#, c-format
+msgid "max ops per semop call = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:359
+#, c-format
+msgid "semaphore max value = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:363
+msgid "------ Semaphore Status --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:364
+#, c-format
+msgid "used arrays = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:365
+#, c-format
+msgid "allocated semaphores = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:369
+msgid "------ Semaphore Arrays Creators/Owners --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:371 sys-utils/ipcs.c:386
+msgid "semid"
+msgstr ""
+
+#: sys-utils/ipcs.c:375
+msgid "------ Shared Memory Operation/Change Times --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:376
+#, c-format
+msgid "%-8s%-10s  %-26.24s %-26.24s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:377
+msgid "last-op"
+msgstr ""
+
+#: sys-utils/ipcs.c:377
+msgid "last-changed"
+msgstr ""
+
+#: sys-utils/ipcs.c:384
+msgid "------ Semaphore Arrays --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:385
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s%-12s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:386
+msgid "nsems"
+msgstr ""
+
+#: sys-utils/ipcs.c:447
+msgid "------ Messages: Limits --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:448
+#, c-format
+msgid "max queues system wide = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:449
+#, c-format
+msgid "max size of message (bytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:450
+#, c-format
+msgid "default max size of queue (bytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:454
+msgid "------ Messages: Status --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:455
+#, c-format
+msgid "allocated queues = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:456
+#, c-format
+msgid "used headers = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:457
+#, c-format
+msgid "used space = %d bytes\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:461
+msgid "------ Message Queues: Creators/Owners --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:463 sys-utils/ipcs.c:469 sys-utils/ipcs.c:474
+#: sys-utils/ipcs.c:479
+msgid "msqid"
+msgstr ""
+
+#: sys-utils/ipcs.c:467
+msgid "------ Message Queues Send/Recv/Change Times --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:468
+#, c-format
+msgid "%-8s%-10s  %-20s%-20s%-20s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:469
+msgid "send"
+msgstr ""
+
+#: sys-utils/ipcs.c:469
+msgid "recv"
+msgstr ""
+
+#: sys-utils/ipcs.c:469
+msgid "change"
+msgstr ""
+
+#: sys-utils/ipcs.c:473
+msgid "------ Message Queues PIDs --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:474
+msgid "lspid"
+msgstr ""
+
+#: sys-utils/ipcs.c:474
+msgid "lrpid"
+msgstr ""
+
+#: sys-utils/ipcs.c:478
+msgid "------ Message Queues --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:479
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-12s%-12s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:480
+msgid "used-bytes"
+msgstr ""
+
+#: sys-utils/ipcs.c:480
+msgid "messages"
+msgstr ""
+
+#: sys-utils/ipcs.c:539
+#, c-format
+msgid ""
+"\n"
+"Shared memory Segment shmid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:540
+#, c-format
+msgid "uid=%d\tgid=%d\tcuid=%d\tcgid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:542
+#, c-format
+msgid "mode=%#o\taccess_perms=%#o\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:543
+#, c-format
+msgid "bytes=%d\tlpid=%d\tcpid=%d\tnattch=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:546
+#, c-format
+msgid "att_time=%s"
+msgstr ""
+
+#: sys-utils/ipcs.c:547 sys-utils/ipcs.c:549 sys-utils/ipcs.c:598
+msgid "Not set\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:548
+#, c-format
+msgid "det_time=%s"
+msgstr ""
+
+#: sys-utils/ipcs.c:550
+#, c-format
+msgid "change_time=%s"
+msgstr ""
+
+#: sys-utils/ipcs.c:566
+#, c-format
+msgid ""
+"\n"
+"Message Queue msqid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:567
+#, c-format
+msgid "uid=%d\tgid=%d\tcuid=%d\tcgid=%d\tmode=%#o\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:569
+#, c-format
+msgid "cbytes=%d\tqbytes=%d\tqnum=%d\tlspid=%d\tlrpid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:572
+#, c-format
+msgid "send_time=%srcv_time=%schange_time=%s"
+msgstr ""
+
+#: sys-utils/ipcs.c:573 sys-utils/ipcs.c:574 sys-utils/ipcs.c:575
+msgid "Not Set\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:592
+#, c-format
+msgid ""
+"\n"
+"Semaphore Array semid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:593
+#, c-format
+msgid "uid=%d\t gid=%d\t cuid=%d\t cgid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:595
+#, c-format
+msgid "mode=%#o, access_perms=%#o\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:596
+#, c-format
+msgid "nsems = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:597
+#, c-format
+msgid "otime = %s"
+msgstr ""
+
+#: sys-utils/ipcs.c:599
+#, c-format
+msgid "ctime = %s"
+msgstr ""
+
+#: sys-utils/ipcs.c:601
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:601
+msgid "semnum"
+msgstr ""
+
+#: sys-utils/ipcs.c:601
+msgid "value"
+msgstr ""
+
+#: sys-utils/ipcs.c:601
+msgid "ncount"
+msgstr ""
+
+#: sys-utils/ipcs.c:602
+msgid "zcount"
+msgstr ""
+
+#: sys-utils/ipcs.c:602
+msgid "pid"
+msgstr ""
+
+#: sys-utils/kbdrate.c:139 sys-utils/kbdrate.c:271
+#, c-format
+msgid "Typematic Rate set to %.1f cps (delay = %d ms)\n"
+msgstr ""
+"Die Tastaturwiederholrate wurde auf %.1f cps gesetzt\n"
+"Die Verzögerungszeit wurde auf %dms gesetzt\n"
+
+#: sys-utils/kbdrate.c:247
+msgid "Cannot open /dev/port"
+msgstr "Konnte /dev/port nicht öffnen"
+
+#: sys-utils/rdev.c:68
+msgid "usage: rdev [ -rsv ] [ -o OFFSET ] [ IMAGE [ VALUE [ OFFSET ] ] ]"
+msgstr ""
+
+# Oh well, "ROOT-Gerät" sounds sooo stupid
+#: sys-utils/rdev.c:69
+#, fuzzy
+msgid ""
+"  rdev /dev/fd0  (or rdev /linux, etc.) displays the current ROOT device"
+msgstr ""
+"  rdev /dev/fd0  (oder rdev /linux, etc.) zeigt das aktuelle ROOT-Gerät an"
+
+#: sys-utils/rdev.c:70
+msgid "  rdev /dev/fd0 /dev/hda2         sets ROOT to /dev/hda2"
+msgstr ""
+
+#: sys-utils/rdev.c:71
+msgid "  rdev -R /dev/fd0 1              set the ROOTFLAGS (readonly status)"
+msgstr ""
+
+#: sys-utils/rdev.c:72
+msgid "  rdev -s /dev/fd0 /dev/hda2      set the SWAP device"
+msgstr ""
+
+#: sys-utils/rdev.c:73
+msgid "  rdev -r /dev/fd0 627            set the RAMDISK size"
+msgstr ""
+
+#: sys-utils/rdev.c:74
+msgid "  rdev -v /dev/fd0 1              set the bootup VIDEOMODE"
+msgstr ""
+
+#: sys-utils/rdev.c:75
+msgid "  rdev -o N ...                   use the byte offset N"
+msgstr ""
+
+#: sys-utils/rdev.c:76
+msgid "  rootflags ...                   same as rdev -R"
+msgstr ""
+
+#: sys-utils/rdev.c:77
+msgid "  swapdev ...                     same as rdev -s"
+msgstr ""
+
+#: sys-utils/rdev.c:78
+msgid "  ramsize ...                     same as rdev -r"
+msgstr ""
+
+#: sys-utils/rdev.c:79
+msgid "  vidmode ...                     same as rdev -v"
+msgstr ""
+
+#: sys-utils/rdev.c:80
+msgid ""
+"Note: video modes are: -3=Ask, -2=Extended, -1=NormalVga, 1=key1, 2=key2,..."
+msgstr ""
+
+#: sys-utils/rdev.c:81
+msgid "      use -R 1 to mount root readonly, -R 0 for read/write."
+msgstr ""
+
+#: sys-utils/readprofile.c:50
+#, c-format
+msgid ""
+"%s: Usage: \"%s [options]\n"
+"\t -m <mapfile>  (default = \"%s\")\n"
+"\t -p <pro-file> (default = \"%s\")\n"
+"\t -i            print only info about the sampling step\n"
+"\t -v            print verbose data\n"
+"\t -a            print all symbols, even if count is 0\n"
+"\t -r            reset all the counters (root only)\n"
+"\t -V            print version and exit\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:113
+#, c-format
+msgid "%s Version %s\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:125
+msgid "anything\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:154
+#, c-format
+msgid "Sampling_step: %i\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:167 sys-utils/readprofile.c:193
+#, c-format
+msgid "%s: %s(%i): wrong map line\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:180
+#, c-format
+msgid "%s: can't find \"_stext\" in %s\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:221
+msgid "total"
+msgstr ""
+
+# This string should be merged with the next one
+#: sys-utils/renice.c:67
+msgid "usage: renice priority [ [ -p ] pids ] "
+msgstr "Aufruf: renice Priorität [[-p] PIDs ] "
+
+#: sys-utils/renice.c:68
+msgid "[ [ -g ] pgrps ] [ [ -u ] users ]\n"
+msgstr "[[-g] PGRPs ] [[-u] Benutzernamen ]\n"
+
+#: sys-utils/renice.c:67
+msgid ""
+"usage: renice priority [ [ -p ] pids ] [ [ -g ] pgrps ] [ [ -u ] users ]\n"
+msgstr ""
+"Aufruf: renice Priorität [[-p] PIDs ] [[-g] PGRPs ] [[-u] Benutzernamen ]\n"
+
+#: sys-utils/renice.c:94
+#, c-format
+msgid "renice: %s: unknown user\n"
+msgstr "renice: Unbekannter Benutzer: %s\n"
+
+#: sys-utils/renice.c:102
+#, c-format
+msgid "renice: %s: bad value\n"
+msgstr "renice: Ungültiger Wert: %s\n"
+
+#: sys-utils/renice.c:121
+msgid "getpriority"
+msgstr "getpriority"
+
+#: sys-utils/renice.c:126
+msgid "setpriority"
+msgstr "setpriority"
+
+#: sys-utils/renice.c:129
+#, c-format
+msgid "%d: old priority %d, new priority %d\n"
+msgstr "%d: Alte Priorität: %d, neue Priorität: %d\n"
+
+#: sys-utils/setsid.c:23
+#, c-format
+msgid "usage: %s program [arg ...]\n"
+msgstr "Aufruf: %s Programm [Argument ...]\n"
+
+#: sys-utils/tunelp.c:76
+#, c-format
+msgid ""
+"Usage: %s <device> [ -i <IRQ> | -t <TIME> | -c <CHARS> | -w <WAIT> | \n"
+"          -a [on|off] | -o [on|off] | -C [on|off] | -q [on|off] | -s | \n"
+"          -T [on|off] ]\n"
+msgstr ""
+
+#: sys-utils/tunelp.c:92
+msgid "malloc error"
+msgstr ""
+
+#: sys-utils/tunelp.c:103
+msgid "sscanf error"
+msgstr ""
+
+#: sys-utils/tunelp.c:142
+#, c-format
+msgid "%s: %s not an lp device.\n"
+msgstr ""
+
+#: sys-utils/tunelp.c:254
+#, c-format
+msgid "%s status is %d"
+msgstr ""
+
+#: sys-utils/tunelp.c:255
+msgid ", busy"
+msgstr ""
+
+#: sys-utils/tunelp.c:256
+msgid ", ready"
+msgstr ""
+
+#: sys-utils/tunelp.c:257
+msgid ", out of paper"
+msgstr ""
+
+#: sys-utils/tunelp.c:258
+msgid ", on-line"
+msgstr ""
+
+#: sys-utils/tunelp.c:259
+msgid ", error"
+msgstr ""
+
+#: sys-utils/tunelp.c:276
+msgid "LPGETIRQ error"
+msgstr ""
+
+#: sys-utils/tunelp.c:282
+#, c-format
+msgid "%s using IRQ %d\n"
+msgstr ""
+
+#: sys-utils/tunelp.c:284
+#, c-format
+msgid "%s using polling\n"
+msgstr ""
+
+#: text-utils/col.c:150
+#, c-format
+msgid "col: bad -l argument %s.\n"
+msgstr ""
+
+#: text-utils/col.c:511
+msgid "usage: col [-bfx] [-l nline]\n"
+msgstr ""
+
+#: text-utils/col.c:517
+msgid "col: write error.\n"
+msgstr ""
+
+#: text-utils/col.c:524
+#, c-format
+msgid "col: warning: can't back up %s.\n"
+msgstr ""
+
+#: text-utils/col.c:525
+msgid "past first line"
+msgstr ""
+
+#: text-utils/col.c:525
+msgid "-- line already flushed"
+msgstr ""
+
+#: text-utils/colcrt.c:93
+#, c-format
+msgid "usage: %s [ - ] [ -2 ] [ file ... ]\n"
+msgstr "Aufruf: %s [ - ] [ -2 ] [ Datei ... ]\n"
+
+#: text-utils/column.c:276
+msgid "line too long"
+msgstr "Zeile ist zu lang"
+
+#: text-utils/column.c:311
+msgid "usage: column [-tx] [-c columns] [file ...]\n"
+msgstr "Aufruf: column [-tx] [-c Spalten] [Datei ...]\n"
+
+#: text-utils/hexsyntax.c:80
+msgid "hexdump: bad length value.\n"
+msgstr ""
+
+#: text-utils/hexsyntax.c:91
+msgid "hexdump: bad skip value.\n"
+msgstr ""
+
+#: text-utils/hexsyntax.c:129
+msgid ""
+"hexdump: [-bcdovx] [-e fmt] [-f fmt_file] [-n length] [-s skip] [file ...]\n"
+msgstr ""
+
+#: text-utils/more.c:329
+msgid "usage: "
+msgstr "Aufruf: "
+
+#: text-utils/more.c:331
+msgid " [-dfln] [+linenum | +/pattern] name1 name2 ...\n"
+msgstr " [-dfln] [+Zeilennummer | +/Muster] Dateiname1 Dateiname2 ...\n"
+
+#: text-utils/more.c:328
+#, c-format
+msgid "usage: %s [-dfln] [+linenum | +/pattern] name1 name2 ...\n"
+msgstr ""
+"Aufruf: %s [-dfln] [+Zeilennummer | +/Muster] Dateiname1 Dateiname2 ...\n"
+
+#: text-utils/more.c:505
+#, c-format
+msgid ""
+"\n"
+"*** %s: directory ***\n"
+"\n"
+msgstr ""
+"\n"
+"*** %s: Verzeichnis ***\n"
+"\n"
+
+#. simple ELF detection
+#: text-utils/more.c:544
+#, c-format
+msgid ""
+"\n"
+"******** %s: Not a text file ********\n"
+"\n"
+msgstr ""
+"\n"
+"******** %s: Keine Textdatei ********\n"
+"\n"
+
+#: text-utils/more.c:648
+msgid "[Use q or Q to quit]"
+msgstr "[Benutzen Sie q oder Q zum Beenden]"
+
+#: text-utils/more.c:834
+msgid "--More--"
+msgstr "--Mehr--"
+
+#: text-utils/more.c:836
+#, c-format
+msgid "(Next file: %s)"
+msgstr "(Nächste Datei: %s)"
+
+#: text-utils/more.c:842
+msgid "[Press space to continue, 'q' to quit.]"
+msgstr "[Leertaste zum Fortfahren, »q« zum Beenden.]"
+
+#: text-utils/more.c:1140
+#, c-format
+msgid "...back %d page"
+msgstr "... %d Seiten zurück"
+
+#: text-utils/more.c:1186
+#, c-format
+msgid "...skipping %d line"
+msgstr "...überspringe %d Zeilen"
+
+#: text-utils/more.c:1227
+msgid ""
+"\n"
+"***Back***\n"
+"\n"
+msgstr ""
+"\n"
+"***Zurück***\n"
+"\n"
+
+#: text-utils/more.c:1265
+msgid "Can't open help file"
+msgstr "Konnte die Hilfedatei nicht öffnen"
+
+#: text-utils/more.c:1286 text-utils/more.c:1290
+msgid "[Press 'h' for instructions.]"
+msgstr "[Drücken Sie »h« für Hilfe.]"
+
+#: text-utils/more.c:1325
+#, c-format
+msgid "\"%s\" line %d"
+msgstr "\"%s\" Zeile %d"
+
+#: text-utils/more.c:1327
+#, c-format
+msgid "[Not a file] line %d"
+msgstr "[Keine normale Datei] Zeile %d"
+
+#: text-utils/more.c:1411
+msgid "  Overflow\n"
+msgstr "  Überlauf\n"
+
+#: text-utils/more.c:1458
+msgid "...skipping\n"
+msgstr "...Überspringe\n"
+
+#: text-utils/more.c:1488
+msgid "Regular expression botch"
+msgstr "Fehler beim Ausführen von »re_exec()«"
+
+#: text-utils/more.c:1500
+msgid ""
+"\n"
+"Pattern not found\n"
+msgstr ""
+"\n"
+"Muster wurde nicht gefunden\n"
+
+#: text-utils/more.c:1503
+msgid "Pattern not found"
+msgstr "Muster wurde nicht gefunden"
+
+#: text-utils/more.c:1564
+msgid "can't fork\n"
+msgstr "Konnte »fork()« nicht ausführen\n"
+
+#: text-utils/more.c:1603
+msgid ""
+"\n"
+"...Skipping "
+msgstr ""
+"\n"
+"...Springe "
+
+#: text-utils/more.c:1607
+msgid "...Skipping "
+msgstr "...Springe "
+
+#: text-utils/more.c:1608
+msgid "to file "
+msgstr "zur Datei "
+
+#: text-utils/more.c:1608
+msgid "back to file "
+msgstr "zurück zur Datei "
+
+#: text-utils/more.c:1847
+msgid "Line too long"
+msgstr "Zeile ist zu lang"
+
+#: text-utils/more.c:1891
+msgid "No previous command to substitute for"
+msgstr "Kein vorheriges Kommando, das eingefügt werden könnte"
+
+#: text-utils/odsyntax.c:133
+msgid "od: od(1) has been deprecated for hexdump(1).\n"
+msgstr ""
+
+#: text-utils/odsyntax.c:136
+#, c-format
+msgid "od: hexdump(1) compatibility doesn't support the -%c option%s\n"
+msgstr ""
+
+#: text-utils/odsyntax.c:137
+msgid "; see strings(1)."
+msgstr ""
+
+#: text-utils/parse.c:63
+#, c-format
+msgid "hexdump: can't read %s.\n"
+msgstr "hexdump: Konnte %s nicht lesen.\n"
+
+#: text-utils/parse.c:68
+#, fuzzy
+msgid "hexdump: line too long.\n"
+msgstr "hexdump: Zeile ist zu lang.\n"
+
+#: text-utils/parse.c:406
+msgid "hexdump: byte count with multiple conversion characters.\n"
+msgstr ""
+
+#: text-utils/parse.c:490
+#, c-format
+msgid "hexdump: bad byte count for conversion character %s.\n"
+msgstr ""
+
+#: text-utils/parse.c:497
+msgid "hexdump: %%s requires a precision or a byte count.\n"
+msgstr ""
+
+#: text-utils/parse.c:503
+#, c-format
+msgid "hexdump: bad format {%s}\n"
+msgstr ""
+
+#: text-utils/parse.c:509
+msgid "hexdump: bad conversion character %%%s.\n"
+msgstr ""
+
+#: text-utils/rev.c:109
+msgid "Unable to allocate bufferspace\n"
+msgstr "Konnte keinen Speicher für einen Puffer reservieren.\n"
+
+#: text-utils/rev.c:167
+msgid "usage: rev [file ...]\n"
+msgstr "Aufruf: rev [Datei ...]\n"
+
+#: text-utils/ul.c:125
+#, c-format
+msgid "usage: %s [ -i ] [ -tTerm ] file...\n"
+msgstr "Aufruf: %s [ -i ] [ -t Terminalname ] Datei ...\n"
+
+#: text-utils/ul.c:136
+msgid "trouble reading terminfo"
+msgstr "Probleme beim Lesen der terminfo-Datenbank"
+
+#: text-utils/ul.c:223
+#, c-format
+msgid "Unknown escape sequence in input: %o, %o\n"
+msgstr "Unbekannte Escape-Sequenz in der Eingabe: %o, %o\n"
+
+#: text-utils/ul.c:372
+msgid "Unable to allocate buffer.\n"
+msgstr "Konnte keinen Speicher für einen Puffer reservieren.\n"
+
+#: text-utils/ul.c:529
+msgid "Input line too long.\n"
+msgstr "Eingabezeile ist zu lang.\n"
+
+#: text-utils/ul.c:542
+msgid "Out of memory when growing buffer.\n"
+msgstr "Speicher ist alle beim Vergrößern eines Puffers.\n"
diff --git a/po/fr.po b/po/fr.po
new file mode 100644 (file)
index 0000000..fe22e52
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,7649 @@
+# cfdisk.po 
+# Copyright (C) 1999 Les Logiciels du Soleil
+# Vincent Renardias <vincent@ldsol.com>, 1999.
+#
+# Permission is granted to copy and distribute this file and
+# modified versions of this file provided this header is not removed.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: util-linux VERSION\n"
+"POT-Creation-Date: 1999-03-20 12:27-0300\n"
+"PO-Revision-Date: 1999-01-23 19:17+0100\n"
+"Last-Translator: Vincent Renardias <vincent@ldsol.com>\n"
+"Language-Team: Vincent Renardias <vincent@ldsol.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: disk-utils/fdformat.c:33
+#, fuzzy
+msgid "Formatting ... "
+msgstr "Vérification en cours ... "
+
+#: disk-utils/fdformat.c:51 disk-utils/fdformat.c:86
+#, fuzzy
+msgid "done\n"
+msgstr "Terminé"
+
+#: disk-utils/fdformat.c:62
+msgid "Verifying ... "
+msgstr "Vérification en cours ... "
+
+#: disk-utils/fdformat.c:73
+msgid "Read: "
+msgstr "Lecture: "
+
+#: disk-utils/fdformat.c:75
+#, c-format
+msgid "Problem reading cylinder %d, expected %d, read %d\n"
+msgstr "Problème lors de la lecture du cylindre %d, %d attendu, %d lu\n"
+
+#: disk-utils/fdformat.c:81
+#, c-format
+msgid ""
+"bad data in cyl %d\n"
+"Continuing ... "
+msgstr ""
+"mauvaises données au cylindre %d\n"
+"Continuation..."
+
+#: disk-utils/fdformat.c:96
+#, c-format
+msgid "usage: %s [ -n ] device\n"
+msgstr "usage: %s [ -n ] périphérique\n"
+
+#: disk-utils/fdformat.c:122
+#, c-format
+msgid "%s: not a floppy device\n"
+msgstr "%s: n'est pas un lecteur de disquettes\n"
+
+#: disk-utils/fdformat.c:128
+msgid "Could not determine current format type"
+msgstr ""
+
+#: disk-utils/fdformat.c:129
+#, c-format
+msgid "%s-sided, %d tracks, %d sec/track. Total capacity %d kB.\n"
+msgstr ""
+
+#: disk-utils/fdformat.c:130
+#, fuzzy
+msgid "Double"
+msgstr "Terminé"
+
+#: disk-utils/fdformat.c:130
+msgid "Single"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:288
+#, c-format
+msgid "%s is mounted.\t "
+msgstr "%s est monté.\t "
+
+#: disk-utils/fsck.minix.c:290
+msgid "Do you really want to continue"
+msgstr "Voulez-vous vraiment continuer"
+
+#: disk-utils/fsck.minix.c:294
+msgid "check aborted.\n"
+msgstr "vérification intérompue.\n"
+
+#: disk-utils/fsck.minix.c:311 disk-utils/fsck.minix.c:331
+msgid "Zone nr < FIRSTZONE in file `"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:313 disk-utils/fsck.minix.c:333
+msgid "Zone nr >= ZONES in file `"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:318 disk-utils/fsck.minix.c:338
+msgid "Remove block"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:356
+msgid "Read error: unable to seek to block in file '"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:362
+msgid "Read error: bad block in file '"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:378
+msgid ""
+"Internal error: trying to write bad block\n"
+"Write request ignored\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:386
+msgid "Write error: bad block in file '"
+msgstr "Erreur d'écriture: mauvais block dans le fichier '"
+
+#: disk-utils/fsck.minix.c:607
+msgid "Warning: Firstzone != Norm_firstzone\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:612 disk-utils/mkfs.minix.c:528
+#, c-format
+msgid "%ld inodes\n"
+msgstr "%ld i-noeuds\n"
+
+#: disk-utils/fsck.minix.c:613 disk-utils/mkfs.minix.c:529
+#, c-format
+msgid "%ld blocks\n"
+msgstr "%ld blocs\n"
+
+#: disk-utils/fsck.minix.c:614 disk-utils/mkfs.minix.c:530
+#, c-format
+msgid "Firstdatazone=%ld (%ld)\n"
+msgstr "Premièrezonededonnées=%ld (%ld)\n"
+
+#: disk-utils/fsck.minix.c:615 disk-utils/mkfs.minix.c:531
+#, c-format
+msgid "Zonesize=%d\n"
+msgstr "Tailledelazone=%d\n"
+
+#: disk-utils/fsck.minix.c:616
+#, c-format
+msgid "Maxsize=%ld\n"
+msgstr "Taillemax=%ld\n"
+
+#: disk-utils/fsck.minix.c:617
+#, c-format
+msgid "Filesystem state=%d\n"
+msgstr "Etat du système de fichier=%d\n"
+
+#: disk-utils/fsck.minix.c:618
+#, c-format
+msgid ""
+"namelen=%d\n"
+"\n"
+msgstr "longueurnom=%d\n"
+
+#: disk-utils/fsck.minix.c:632 disk-utils/fsck.minix.c:684
+#, c-format
+msgid "Inode %d marked not used, but used for file '"
+msgstr "I-noeud %d marqué libre, mais utilisé pour le fichier '"
+
+#: disk-utils/fsck.minix.c:637 disk-utils/fsck.minix.c:688
+msgid "Mark in use"
+msgstr "Marqué utilisé"
+
+#: disk-utils/fsck.minix.c:659 disk-utils/fsck.minix.c:708
+#, c-format
+msgid " has mode %05o\n"
+msgstr " a pour mode %05o\n"
+
+#: disk-utils/fsck.minix.c:665 disk-utils/fsck.minix.c:713
+msgid "Warning: inode count too big.\n"
+msgstr "Avertissement: nombre de i-noeuds trop grand.\n"
+
+#: disk-utils/fsck.minix.c:749 disk-utils/fsck.minix.c:783
+msgid "Block has been used before. Now in file `"
+msgstr "Bloc déjà utilisé. Maintenant dans le fichier `"
+
+#: disk-utils/fsck.minix.c:752 disk-utils/fsck.minix.c:786
+#: disk-utils/fsck.minix.c:1114 disk-utils/fsck.minix.c:1123
+#: disk-utils/fsck.minix.c:1167 disk-utils/fsck.minix.c:1176
+msgid "Clear"
+msgstr "Effacer"
+
+#: disk-utils/fsck.minix.c:761 disk-utils/fsck.minix.c:795
+#, c-format
+msgid "Block %d in file `"
+msgstr "Bloc %d dans le fichier `"
+
+#: disk-utils/fsck.minix.c:763 disk-utils/fsck.minix.c:797
+msgid "' is marked not in use."
+msgstr "' est marqué inutilisé."
+
+#: disk-utils/fsck.minix.c:764 disk-utils/fsck.minix.c:798
+msgid "Correct"
+msgstr "Correct"
+
+#: disk-utils/fsck.minix.c:948 disk-utils/fsck.minix.c:1012
+msgid " contains a bad inode number for file '"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:950 disk-utils/fsck.minix.c:1014
+msgid " Remove"
+msgstr "Enlever"
+
+#: disk-utils/fsck.minix.c:964 disk-utils/fsck.minix.c:1028
+msgid ": bad directory: '.' isn't first\n"
+msgstr ": mauvais répertoire: '.' ne vient pas en premier\n"
+
+#: disk-utils/fsck.minix.c:971 disk-utils/fsck.minix.c:1036
+msgid ": bad directory: '..' isn't second\n"
+msgstr ": mauvais répertoire: '..' ne vient pas en second\n"
+
+#: disk-utils/fsck.minix.c:1071
+msgid ": bad directory: size<32"
+msgstr ": mauvais répertoire: taille<32"
+
+#: disk-utils/fsck.minix.c:1090
+msgid ": bad directory: size < 32"
+msgstr ": mauvais répertoire: taille < 32"
+
+#: disk-utils/fsck.minix.c:1113 disk-utils/fsck.minix.c:1166
+#, c-format
+msgid "Inode %d mode not cleared."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1122 disk-utils/fsck.minix.c:1175
+#, c-format
+msgid "Inode %d not used, marked used in the bitmap."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1128 disk-utils/fsck.minix.c:1181
+#, c-format
+msgid "Inode %d used, marked unused in the bitmap."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1134 disk-utils/fsck.minix.c:1186
+#, c-format
+msgid "Inode %d (mode = %07o), i_nlinks=%d, counted=%d."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1136 disk-utils/fsck.minix.c:1188
+msgid "Set i_nlinks to count"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1148 disk-utils/fsck.minix.c:1200
+#, c-format
+msgid "Zone %d: marked in use, no file uses it."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1149 disk-utils/fsck.minix.c:1201
+msgid "Unmark"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1153 disk-utils/fsck.minix.c:1205
+#, c-format
+msgid "Zone %d: %sin use, counted=%d\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1154 disk-utils/fsck.minix.c:1206
+msgid "not "
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1182
+#, fuzzy
+msgid "Set"
+msgstr "Secteurs"
+
+#: disk-utils/fsck.minix.c:1296
+#, c-format
+msgid "%s is clean, no check.\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1300
+#, c-format
+msgid "Forcing filesystem check on %s.\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1302
+#, c-format
+msgid "Filesystem on %s is dirty, needs checking.\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1331
+msgid ""
+"\n"
+"%6ld inodes used (%ld%%)\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1336
+msgid "%6ld zones used (%ld%%)\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1338
+#, c-format
+msgid ""
+"\n"
+"%6d regular files\n"
+"%6d directories\n"
+"%6d character device files\n"
+"%6d block device files\n"
+"%6d links\n"
+"%6d symbolic links\n"
+"------\n"
+"%6d files\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1351
+msgid ""
+"----------------------------\n"
+"FILE SYSTEM HAS BEEN CHANGED\n"
+"----------------------------\n"
+msgstr ""
+
+#: disk-utils/mkfs.c:66
+msgid "Usage: mkfs [-V] [-t fstype] [fs-options] device [size]\n"
+msgstr ""
+
+#: disk-utils/mkfs.c:80 fdisk/cfdisk.c:324 getopt-1.0.3b/getopt.c:85
+#: getopt-1.0.3b/getopt.c:95 login-utils/wall.c:221 mount/sundries.c:192
+#, c-format
+msgid "%s: Out of memory!\n"
+msgstr ""
+
+#: disk-utils/mkfs.c:89
+msgid "mkfs version "
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:186
+#, c-format
+msgid "Usage: %s [-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]\n"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:210
+#, c-format
+msgid "%s is mounted; will not make a filesystem here!"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:271
+msgid "seek to boot block failed in write_tables"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:273
+msgid "unable to clear boot sector"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:275
+msgid "seek failed in write_tables"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:277
+msgid "unable to write super-block"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:279
+msgid "unable to write inode map"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:281
+msgid "unable to write zone map"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:283
+msgid "unable to write inodes"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:290
+msgid "seek failed in write_block"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:292
+msgid "write failed in write_block"
+msgstr ""
+
+#. Could make triple indirect block here
+#: disk-utils/mkfs.minix.c:300 disk-utils/mkfs.minix.c:374
+#: disk-utils/mkfs.minix.c:425
+msgid "too many bad blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:308
+msgid "not enough good blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:517
+msgid "unable to allocate buffers for maps"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:526
+msgid "unable to allocate buffer for inodes"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:532
+#, fuzzy, c-format
+msgid ""
+"Maxsize=%ld\n"
+"\n"
+msgstr "Taillemax=%ld\n"
+
+#: disk-utils/mkfs.minix.c:546
+msgid "seek failed during testing of blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:554
+msgid "Weird values in do_check: probably bugs\n"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:585
+msgid "seek failed in check_blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:594
+msgid "bad blocks before data-area: cannot make fs"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:600 disk-utils/mkfs.minix.c:622
+#, fuzzy, c-format
+msgid "%d bad blocks\n"
+msgstr "%ld blocs\n"
+
+#: disk-utils/mkfs.minix.c:602 disk-utils/mkfs.minix.c:624
+#, fuzzy
+msgid "one bad block\n"
+msgstr "%ld blocs\n"
+
+#: disk-utils/mkfs.minix.c:614
+msgid "can't open file of bad blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:637 disk-utils/mkfs.minix.c:640
+#, fuzzy
+msgid "bad inode size"
+msgstr "%ld i-noeuds\n"
+
+#: disk-utils/mkfs.minix.c:669
+#, c-format
+msgid "%s: not compiled with minix v2 support\n"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:685
+#, fuzzy
+msgid "strtol error: number of blocks not specified"
+msgstr "Erreur d'écriture: mauvais block dans le fichier '"
+
+#: disk-utils/mkfs.minix.c:717
+#, c-format
+msgid "unable to open %s"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:719
+#, c-format
+msgid "unable to stat %s"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:723
+#, c-format
+msgid "will not try to make filesystem on '%s'"
+msgstr ""
+
+#: disk-utils/mkswap.c:99
+#, c-format
+msgid "Assuming pages of size %d\n"
+msgstr ""
+
+#: disk-utils/mkswap.c:191
+#, c-format
+msgid "%d bad page%s\n"
+msgstr ""
+
+#: disk-utils/mkswap.c:191 login-utils/shutdown.c:433
+#: login-utils/shutdown.c:436
+msgid "s"
+msgstr "s"
+
+#: disk-utils/mkswap.c:294
+#, c-format
+msgid "%s: error: Nowhere to set up swap on?\n"
+msgstr "%s: erreur: Aucun endroit défini pour swaper?\n"
+
+#: disk-utils/mkswap.c:313
+#, c-format
+msgid "%s: error: unknown version %d\n"
+msgstr "%s: erreur: version inconnue %d\n"
+
+#: disk-utils/mkswap.c:319
+#, c-format
+msgid "%s: error: swap area needs to be at least %ldkB\n"
+msgstr "%s: erreur: la taille du swap doit être d'au moins %ldkB\n"
+
+#: disk-utils/mkswap.c:326
+#, c-format
+msgid "%s: warning: truncating swap area to %ldkB\n"
+msgstr "%s: avertissement: troncature de l'aire de swap à %ldkB\n"
+
+#: disk-utils/mkswap.c:353
+#, c-format
+msgid ""
+"%s: Device '%s' contains a valid Sun disklabel.\n"
+"This probably means creating v0 swap would destroy your partition table\n"
+"No swap created. If you really want to create swap v0 on that device, use\n"
+"the -f option to force it.\n"
+msgstr ""
+
+#: disk-utils/mkswap.c:378
+#, c-format
+msgid "Setting up swapspace version %d, size = %ld bytes\n"
+msgstr "Configuration de l'espace de swap version %d, taille = %ld octets\n"
+
+#: disk-utils/setfdprm.c:30
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Nombre invalide: %s\n"
+
+#: disk-utils/setfdprm.c:80
+#, c-format
+msgid "Syntax error: '%s'\n"
+msgstr "Erreur de syntaxe: '%s'\n"
+
+#: disk-utils/setfdprm.c:90
+#, c-format
+msgid "No such parameter set: '%s'\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:100
+#, c-format
+msgid "usage: %s [ -p ] dev name\n"
+msgstr "usage: %s [ -p ] périph nom\n"
+
+#: disk-utils/setfdprm.c:101
+#, c-format
+msgid ""
+"       %s [ -p ] dev size sect heads tracks stretch gap rate spec1 fmt_gap\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:104
+#, c-format
+msgid "       %s [ -c | -y | -n | -d ] dev\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:106
+#, c-format
+msgid "       %s [ -c | -y | -n ] dev\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:349 fdisk/cfdisk.c:1764
+msgid "Unusable"
+msgstr "Inutilisable"
+
+#: fdisk/cfdisk.c:351 fdisk/cfdisk.c:1766
+msgid "Free Space"
+msgstr "Espace Libre"
+
+#: fdisk/cfdisk.c:354
+msgid "Linux ext2"
+msgstr "Linux ext2"
+
+#. also Solaris
+#: fdisk/cfdisk.c:356 fdisk/i386_sys_types.c:53
+msgid "Linux"
+msgstr "Linux"
+
+#: fdisk/cfdisk.c:359
+msgid "OS/2 HPFS"
+msgstr "OS/2 HPFS"
+
+#: fdisk/cfdisk.c:361
+msgid "OS/2 IFS"
+msgstr "OS/2 IFS"
+
+#: fdisk/cfdisk.c:365
+msgid "NTFS"
+msgstr "NTFS"
+
+#: fdisk/cfdisk.c:376
+msgid "Disk has been changed.\n"
+msgstr "Le disque a été changé.\n"
+
+#: fdisk/cfdisk.c:377
+msgid "Reboot the system to ensure the partition table is correctly updated.\n"
+msgstr ""
+"Rebootez le système pour être sur que la table des partitions a été "
+"correctement mise à jour.\n"
+
+#: fdisk/cfdisk.c:380
+msgid ""
+"\n"
+"WARNING: If you have created or modified any\n"
+"DOS 6.x partitions, please see the cfdisk manual\n"
+"page for additional information.\n"
+msgstr ""
+"\n"
+"AVERTISSEMENT: Si vous avez créé ou modifié\n"
+"une ou des partitions DOS 6.x, reportez-vous au manuel\n"
+"de cfdisk pour avoir plus d'informations.\n"
+
+#: fdisk/cfdisk.c:475
+msgid "FATAL ERROR"
+msgstr ""
+
+#: fdisk/cfdisk.c:484
+#, fuzzy
+msgid "Press any key to exit fdisk"
+msgstr "Appuyez sur une touche pour continuer"
+
+#: fdisk/cfdisk.c:520 fdisk/cfdisk.c:528
+msgid "Cannot seek on disk drive"
+msgstr "Erreur d'accès sur le disque dur"
+
+#: fdisk/cfdisk.c:522
+msgid "Cannot read disk drive"
+msgstr "Impossible de lire le disque dur"
+
+#: fdisk/cfdisk.c:530
+msgid "Cannot write disk drive"
+msgstr "Impossible d'écrire sur le disque dur"
+
+#: fdisk/cfdisk.c:767
+#, fuzzy
+msgid "Too many parts"
+msgstr "Trops d'arguments.\n"
+
+#: fdisk/cfdisk.c:772
+#, fuzzy
+msgid "Partition begins before sector 0"
+msgstr "Table de partitions pour %s\n"
+
+#: fdisk/cfdisk.c:777
+#, fuzzy
+msgid "Partition ends before sector 0"
+msgstr "Table de partitions pour %s\n"
+
+#: fdisk/cfdisk.c:782
+msgid "Partition begins after end-of-disk"
+msgstr ""
+
+#: fdisk/cfdisk.c:787
+msgid "Partition ends after end-of-disk"
+msgstr ""
+
+#: fdisk/cfdisk.c:835
+msgid ""
+"!!!! Internal error creating logical drive with no extended partition !!!!"
+msgstr ""
+"!!!! Erreur interne lors de la création d'un lecteur logique sans partition "
+"étendue !!!!"
+
+#: fdisk/cfdisk.c:846 fdisk/cfdisk.c:858
+msgid ""
+"Cannot create logical drive here -- would create two extended partitions"
+msgstr ""
+"Impossible de créér un lecteur logique ici -- cela créérait deux partitions "
+"étendues"
+
+#: fdisk/cfdisk.c:1002
+msgid "Menu item too long. Menu may look odd."
+msgstr "Elément de menu trop large. Le menu peut paraitre bizarre."
+
+#: fdisk/cfdisk.c:1051
+msgid "Menu without direction. Defaulting horizontal."
+msgstr "Menu sans direction. Horizontal par défaut."
+
+#: fdisk/cfdisk.c:1166
+msgid "Illegal key"
+msgstr "Touche non valide"
+
+#: fdisk/cfdisk.c:1189
+msgid "Press a key to continue"
+msgstr "Appuyez sur une touche pour continuer"
+
+#: fdisk/cfdisk.c:1236 fdisk/cfdisk.c:1735 fdisk/cfdisk.c:2261
+#: fdisk/cfdisk.c:2263
+msgid "Primary"
+msgstr "Primaire"
+
+#: fdisk/cfdisk.c:1236
+msgid "Create a new primary partition"
+msgstr "Créér une nouvelle partition primaire"
+
+#: fdisk/cfdisk.c:1237 fdisk/cfdisk.c:1735 fdisk/cfdisk.c:2260
+#: fdisk/cfdisk.c:2263
+msgid "Logical"
+msgstr "Logique"
+
+#: fdisk/cfdisk.c:1237
+msgid "Create a new logical partition"
+msgstr "Créér une nouvelle partition logique"
+
+#: fdisk/cfdisk.c:1238 fdisk/cfdisk.c:1291 fdisk/cfdisk.c:1947
+msgid "Cancel"
+msgstr "Annuler"
+
+#: fdisk/cfdisk.c:1238 fdisk/cfdisk.c:1291
+msgid "Don't create a partition"
+msgstr "Ne pas créér la partition"
+
+#: fdisk/cfdisk.c:1254
+msgid "!!! Internal error !!!"
+msgstr "!!! Erreur Interne !!!"
+
+#: fdisk/cfdisk.c:1257
+msgid "Size (in MB): "
+msgstr "Taille (en Mo): "
+
+#: fdisk/cfdisk.c:1289
+msgid "Beginning"
+msgstr "Début"
+
+#: fdisk/cfdisk.c:1289
+msgid "Add partition at beginning of free space"
+msgstr "Ajouter la partition au début de l'espace libre"
+
+#: fdisk/cfdisk.c:1290
+msgid "End"
+msgstr "Fin"
+
+#: fdisk/cfdisk.c:1290
+msgid "Add partition at end of free space"
+msgstr "Ajouter la partition à la fin de l'espace libre"
+
+#: fdisk/cfdisk.c:1308
+msgid "No room to create the extended partition"
+msgstr "Pas de place pour créér une partition étendue"
+
+#: fdisk/cfdisk.c:1354
+msgid "Cannot open disk drive"
+msgstr "Impossible d'ouvrir le disque dur"
+
+#: fdisk/cfdisk.c:1356 fdisk/cfdisk.c:1546
+msgid "Opened disk read-only - you have no permission to write"
+msgstr ""
+
+#: fdisk/cfdisk.c:1386
+msgid "Cannot read disk drive geometry"
+msgstr "Impossible de lire la géométrie du disque"
+
+#: fdisk/cfdisk.c:1408
+msgid "Bad primary partition"
+msgstr "Mauvaise partition primaire"
+
+#: fdisk/cfdisk.c:1438
+msgid "Bad logical partition"
+msgstr "Mauvaise partition logique"
+
+#: fdisk/cfdisk.c:1558
+msgid "Warning!!  This may destroy data on your disk!"
+msgstr ""
+
+#: fdisk/cfdisk.c:1562
+msgid "Are you sure you want write the partition table to disk? (yes or no): "
+msgstr ""
+"Etes vous sur de vouloir écrire la table de partition sur le disque? (yes ou "
+"no): "
+
+#: fdisk/cfdisk.c:1571
+msgid "Did not write partition table to disk"
+msgstr "Table de partition non écrite sur le disque"
+
+#: fdisk/cfdisk.c:1579
+msgid "Please enter `yes' or `no'"
+msgstr ""
+
+#: fdisk/cfdisk.c:1583
+msgid "Writing partition table to disk..."
+msgstr "Ecriture de la table de partition sur disque..."
+
+#: fdisk/cfdisk.c:1608 fdisk/cfdisk.c:1612
+msgid "Wrote partition table to disk"
+msgstr "Table de partition écrite sur disque"
+
+#: fdisk/cfdisk.c:1610
+msgid ""
+"Wrote partition table, but re-read table failed.  Reboot to update table."
+msgstr ""
+
+#: fdisk/cfdisk.c:1620
+msgid ""
+"Not precisely one primary partition is bootable. DOS MBR cannot boot this."
+msgstr ""
+
+#: fdisk/cfdisk.c:1678 fdisk/cfdisk.c:1796 fdisk/cfdisk.c:1888
+msgid "Enter filename or press RETURN to display on screen: "
+msgstr "Entrez un nom de fichier ou tapez ENTREE pour affichage sur l'écran: "
+
+#: fdisk/cfdisk.c:1686 fdisk/cfdisk.c:1804 fdisk/cfdisk.c:1896
+#, c-format
+msgid "Cannot open file '%s'"
+msgstr ""
+
+#: fdisk/cfdisk.c:1697
+#, c-format
+msgid "Disk Drive: %s\n"
+msgstr "Disque Dur: %s\n"
+
+#: fdisk/cfdisk.c:1699
+msgid "Sector 0:\n"
+msgstr "Secteur 0:\n"
+
+#: fdisk/cfdisk.c:1706
+#, c-format
+msgid "Sector %d:\n"
+msgstr "Secteur %d:\n"
+
+#: fdisk/cfdisk.c:1726
+msgid "   None   "
+msgstr "   Aucun  "
+
+#: fdisk/cfdisk.c:1728
+msgid "   Pri/Log"
+msgstr "   Pri/Log"
+
+#: fdisk/cfdisk.c:1730
+msgid "   Primary"
+msgstr "  Primaire"
+
+#: fdisk/cfdisk.c:1732
+msgid "   Logical"
+msgstr "   Logique"
+
+#. odd flag on end
+#. type id
+#. type name
+#: fdisk/cfdisk.c:1770 fdisk/fdisk.c:1045 fdisk/fdisk.c:1194
+#: fdisk/fdisksgilabel.c:224 fdisk/fdisksunlabel.c:644 fdisk/sfdisk.c:551
+msgid "Unknown"
+msgstr "Inconnue"
+
+#: fdisk/cfdisk.c:1776
+#, c-format
+msgid "Boot (%02X)"
+msgstr "Boot (%02X)"
+
+#: fdisk/cfdisk.c:1778 fdisk/cfdisk.c:2269
+#, c-format
+msgid "Unknown (%02X)"
+msgstr "Inconnu (%02X)"
+
+#: fdisk/cfdisk.c:1780
+#, c-format
+msgid "None (%02X)"
+msgstr "Aucun (%02X)"
+
+#: fdisk/cfdisk.c:1815 fdisk/cfdisk.c:1907
+#, c-format
+msgid "Partition Table for %s\n"
+msgstr "Table de partitions pour %s\n"
+
+#: fdisk/cfdisk.c:1817
+msgid "            First    Last\n"
+msgstr "            Premier  Dernier\n"
+
+#: fdisk/cfdisk.c:1818
+msgid ""
+" # Type     Sector   Sector   Offset  Length   Filesystem Type (ID)   Flags\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:1819
+msgid ""
+"-- ------- -------- --------- ------ --------- ---------------------- "
+"---------\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:1909
+msgid "         ---Starting---      ----Ending----    Start Number of\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:1910
+msgid " # Flags Head Sect Cyl   ID  Head Sect Cyl    Sector  Sectors\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:1911
+msgid "-- ----- ---- ---- ---- ---- ---- ---- ---- -------- ---------\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:1944
+msgid "Raw"
+msgstr ""
+
+#: fdisk/cfdisk.c:1944
+msgid "Print the table using raw data format"
+msgstr ""
+
+#: fdisk/cfdisk.c:1945 fdisk/cfdisk.c:2050
+msgid "Sectors"
+msgstr "Secteurs"
+
+#: fdisk/cfdisk.c:1945
+msgid "Print the table ordered by sectors"
+msgstr ""
+
+#: fdisk/cfdisk.c:1946
+msgid "Table"
+msgstr "Table"
+
+#: fdisk/cfdisk.c:1946
+msgid "Just print the partition table"
+msgstr "Seulement imprimer la table de partitions"
+
+#: fdisk/cfdisk.c:1947
+msgid "Don't print the table"
+msgstr "Ne pas imprimer la table"
+
+#: fdisk/cfdisk.c:1976
+msgid "Help Screen for cfdisk "
+msgstr "Ecran d'aide de cfdisk "
+
+#: fdisk/cfdisk.c:1978
+msgid "This is cfdisk, a curses based disk partitioning program, which"
+msgstr "Voici cfdisk, un programme de partitionnement de disque, qui"
+
+#: fdisk/cfdisk.c:1979
+msgid "allows you to create, delete and modify partitions on your hard"
+msgstr "permet de créér, effacer ou modifier des partitions sur votre disque"
+
+#: fdisk/cfdisk.c:1980
+msgid "disk drive."
+msgstr "dur."
+
+#: fdisk/cfdisk.c:1982
+msgid "Copyright (C) 1994-1998 Kevin E. Martin & aeb"
+msgstr "Copyright (C) 1994-1998 Kevin E. Martin & aeb"
+
+#: fdisk/cfdisk.c:1984
+msgid "Command      Meaning"
+msgstr "Commande     Signification"
+
+#: fdisk/cfdisk.c:1985
+msgid "-------      -------"
+msgstr "--------     -------------"
+
+#: fdisk/cfdisk.c:1986
+msgid "  b          Toggle bootable flag of the current partition"
+msgstr "  b          (Dés)active le drapeau Bootable de la partition courante"
+
+#: fdisk/cfdisk.c:1987
+msgid "  d          Delete the current partition"
+msgstr "  d          Effacer la partition courante"
+
+#: fdisk/cfdisk.c:1988
+msgid "  g          Change cylinders, heads, sectors-per-track parameters"
+msgstr ""
+"  g          Changer les paramétres cylindres, têtes et secteurs-par-piste"
+
+#: fdisk/cfdisk.c:1989
+msgid "             WARNING: This option should only be used by people who"
+msgstr "             AVERTISSEMENT: Cette option ne doit être utilisée que"
+
+#: fdisk/cfdisk.c:1990
+msgid "             know what they are doing."
+msgstr ""
+"             si vous savez réélement ce que vous étes en train de faire."
+
+#: fdisk/cfdisk.c:1991
+msgid "  h          Print this screen"
+msgstr "  h          Afficher cet écran"
+
+#: fdisk/cfdisk.c:1992
+msgid "  m          Maximize disk usage of the current partition"
+msgstr ""
+"  m          Maximizer l'utilisation du disque pour la partition courante"
+
+#: fdisk/cfdisk.c:1993
+msgid "             Note: This may make the partition incompatible with"
+msgstr "             Note: Cela peux rendre la partition incompatible avec"
+
+#: fdisk/cfdisk.c:1994
+msgid "             DOS, OS/2, ..."
+msgstr "             DOS, OS/2, ..."
+
+#: fdisk/cfdisk.c:1995
+msgid "  n          Create new partition from free space"
+msgstr "  n          Créér une nouvelle partition à partir de l'espace libre"
+
+#: fdisk/cfdisk.c:1996
+msgid "  p          Print partition table to the screen or to a file"
+msgstr ""
+"  p          Imprimer la table de partitions à l'écran ou dans un fichier"
+
+#: fdisk/cfdisk.c:1997
+msgid "             There are several different formats for the partition"
+msgstr "             Vous pouvez choisir entre différents formats pour"
+
+#: fdisk/cfdisk.c:1998
+msgid "             that you can choose from:"
+msgstr "             la table de partition:"
+
+#: fdisk/cfdisk.c:1999
+msgid "                r - Raw data (exactly what would be written to disk)"
+msgstr ""
+"                r - Données brutes (Exactement ce que cfdisk écrirait sur le "
+"disque)"
+
+#: fdisk/cfdisk.c:2000
+msgid "                s - Table ordered by sectors"
+msgstr "                s - Table triée par secteurs"
+
+#: fdisk/cfdisk.c:2001
+msgid "                t - Table in raw format"
+msgstr "                t - Table au format brut"
+
+#: fdisk/cfdisk.c:2002
+msgid "  q          Quit program without writing partition table"
+msgstr "  q          Quitter le programme sans écrire la table de partitions"
+
+#: fdisk/cfdisk.c:2003
+msgid "  t          Change the filesystem type"
+msgstr "  t          Changer le type de système de fichiers"
+
+#: fdisk/cfdisk.c:2004
+msgid "  u          Change units of the partition size display"
+msgstr ""
+"  u          Changement de l'unité utilisée pour la taille des partitions"
+
+#: fdisk/cfdisk.c:2005
+msgid "             Rotates through Mb, sectors and cylinders"
+msgstr "             Alternativement: Mo, secteurs et cylindres"
+
+#: fdisk/cfdisk.c:2006
+msgid "  W          Write partition table to disk (must enter upper case W)"
+msgstr "  W          Ecrire la table de partitions sur le disque (W doit être"
+
+#: fdisk/cfdisk.c:2007
+msgid "             Since this might destroy data on the disk, you must"
+msgstr ""
+"             en majuscule) Etant donné que cela peux détruire des données"
+
+#: fdisk/cfdisk.c:2008
+msgid "             either confirm or deny the write by entering `yes' or"
+msgstr "             sur votre disque, vous devrez confirmer en entrant `yes'"
+
+#: fdisk/cfdisk.c:2009
+msgid "             `no'"
+msgstr "             ou `no'"
+
+#: fdisk/cfdisk.c:2010
+msgid "Up Arrow     Move cursor to the previous partition"
+msgstr "Fléche Haut  Déplacer le curseur sur vers la partition précédente"
+
+#: fdisk/cfdisk.c:2011
+msgid "Down Arrow   Move cursor to the next partition"
+msgstr "Fléche Bas   Déplacer le curseur vers la partition suivante"
+
+#: fdisk/cfdisk.c:2012
+msgid "CTRL-L       Redraws the screen"
+msgstr "CTRL-L       Redessine l'écran"
+
+#: fdisk/cfdisk.c:2013
+msgid "  ?          Print this screen"
+msgstr "  ?          Affiche cet écran"
+
+#: fdisk/cfdisk.c:2015
+msgid "Note: All of the commands can be entered with either upper or lower"
+msgstr "Note: Toutes ces commandes peuvent être entrée en majuscules ou"
+
+#: fdisk/cfdisk.c:2016
+msgid "case letters (except for Writes)."
+msgstr "minuscules (à l'exception de Write)."
+
+#: fdisk/cfdisk.c:2048 fdisk/cfdisk.c:2350 fdisk/fdisksunlabel.c:305
+#: fdisk/fdisksunlabel.c:307
+msgid "Cylinders"
+msgstr "Cylindres"
+
+#: fdisk/cfdisk.c:2048
+msgid "Change cylinder geometry"
+msgstr "Changer la géométrie des cylindres"
+
+#: fdisk/cfdisk.c:2049 fdisk/fdisksunlabel.c:302
+msgid "Heads"
+msgstr "Têtes"
+
+#: fdisk/cfdisk.c:2049
+msgid "Change head geometry"
+msgstr "Changer la géométrie des têtes"
+
+#: fdisk/cfdisk.c:2050
+msgid "Change sector geometry"
+msgstr "Changer la géométrie des secteurs"
+
+#: fdisk/cfdisk.c:2051
+msgid "Done"
+msgstr "Terminé"
+
+#: fdisk/cfdisk.c:2051
+msgid "Done with changing geometry"
+msgstr "Changement de géométrie terminé"
+
+#: fdisk/cfdisk.c:2064
+msgid "Enter the number of cylinders: "
+msgstr "Entrez le nombre de cylindres: "
+
+#: fdisk/cfdisk.c:2071 fdisk/cfdisk.c:2614
+msgid "Illegal cylinders value"
+msgstr ""
+
+#: fdisk/cfdisk.c:2077
+msgid "Enter the number of heads: "
+msgstr "Entrez le nombre de têtes: "
+
+#: fdisk/cfdisk.c:2084 fdisk/cfdisk.c:2621
+#, fuzzy
+msgid "Illegal heads value"
+msgstr "Touche non valide"
+
+#: fdisk/cfdisk.c:2090
+msgid "Enter the number of sectors per track: "
+msgstr "Entrez le nombre de secteurs par piste: "
+
+#: fdisk/cfdisk.c:2097 fdisk/cfdisk.c:2628
+msgid "Illegal sectors value"
+msgstr ""
+
+#: fdisk/cfdisk.c:2196
+msgid "Enter filesystem type: "
+msgstr "Entrez le type de système de fichiers: "
+
+#: fdisk/cfdisk.c:2214
+msgid "Cannot change FS Type to empty"
+msgstr ""
+
+#: fdisk/cfdisk.c:2216
+msgid "Cannot change FS Type to extended"
+msgstr ""
+
+#: fdisk/cfdisk.c:2238 fdisk/fdisksunlabel.c:44
+msgid "Boot"
+msgstr "Boot"
+
+#: fdisk/cfdisk.c:2240
+#, c-format
+msgid "Unk(%02X)"
+msgstr "Inc(%02X)"
+
+#: fdisk/cfdisk.c:2243 fdisk/cfdisk.c:2246
+msgid ", NC"
+msgstr ", NC"
+
+#: fdisk/cfdisk.c:2251 fdisk/cfdisk.c:2254
+msgid "NC"
+msgstr "NC"
+
+#: fdisk/cfdisk.c:2262
+msgid "Pri/Log"
+msgstr "Pri/Log"
+
+#: fdisk/cfdisk.c:2336
+#, c-format
+msgid "Disk Drive: %s"
+msgstr "Disque Dur: %s"
+
+#: fdisk/cfdisk.c:2338
+#, c-format
+msgid "Heads: %d   Sectors per Track: %d   Cylinders: %d"
+msgstr "Têtes: %d   Secteurs par Piste: %d  Cylindres: %d"
+
+#: fdisk/cfdisk.c:2342
+msgid "Name"
+msgstr "Nom"
+
+#: fdisk/cfdisk.c:2343
+msgid "Flags"
+msgstr "Drapeaux"
+
+#: fdisk/cfdisk.c:2344
+msgid "Part Type"
+msgstr "Type de SF"
+
+#: fdisk/cfdisk.c:2345
+msgid "FS Type"
+msgstr "Type SF"
+
+#: fdisk/cfdisk.c:2346
+msgid "[Label]"
+msgstr "[Label]"
+
+#: fdisk/cfdisk.c:2348
+msgid "  Sectors"
+msgstr " Secteurs"
+
+#: fdisk/cfdisk.c:2352
+msgid "Size (MB)"
+msgstr "Taille(Mo)"
+
+#: fdisk/cfdisk.c:2407
+msgid "Bootable"
+msgstr "Bootable"
+
+#: fdisk/cfdisk.c:2407
+msgid "Toggle bootable flag of the current partition"
+msgstr "(Dés)activer le drapeau bootable pour la partition courante"
+
+#: fdisk/cfdisk.c:2408
+msgid "Delete"
+msgstr "Effacer"
+
+#: fdisk/cfdisk.c:2408
+msgid "Delete the current partition"
+msgstr "Effacer la partition courante"
+
+#: fdisk/cfdisk.c:2409
+msgid "Geometry"
+msgstr "Géométrie"
+
+#: fdisk/cfdisk.c:2409
+msgid "Change disk geometry (experts only)"
+msgstr "Changer la géométrie disque (experts seulement)"
+
+#: fdisk/cfdisk.c:2410
+msgid "Help"
+msgstr "Aide"
+
+#: fdisk/cfdisk.c:2410
+msgid "Print help screen"
+msgstr "Affiche l'écran d'aide"
+
+#: fdisk/cfdisk.c:2411
+msgid "Maximize"
+msgstr "Maximize"
+
+#: fdisk/cfdisk.c:2411
+msgid "Maximize disk usage of the current partition (experts only)"
+msgstr ""
+"Maximizer l'utilisation disque pour la partition courante (experts seulement)"
+
+#: fdisk/cfdisk.c:2412
+msgid "New"
+msgstr "Nouvelle"
+
+#: fdisk/cfdisk.c:2412
+msgid "Create new partition from free space"
+msgstr "Créér une nouvelle partition"
+
+#: fdisk/cfdisk.c:2413
+msgid "Print"
+msgstr "Imprimer"
+
+#: fdisk/cfdisk.c:2413
+msgid "Print partition table to the screen or to a file"
+msgstr "Imprimer la table des partition à l'écran ou dans un fichier"
+
+#: fdisk/cfdisk.c:2414
+msgid "Quit"
+msgstr "Quitter"
+
+#: fdisk/cfdisk.c:2414
+msgid "Quit program without writing partition table"
+msgstr "Quitter le programme sans écrire la table de partition"
+
+#: fdisk/cfdisk.c:2415
+msgid "Type"
+msgstr "Type"
+
+#: fdisk/cfdisk.c:2415
+msgid "Change the filesystem type (DOS, Linux, OS/2 and so on)"
+msgstr "Changer le type du système de fichiers (DOS, Linux, OS/2, etc)"
+
+#: fdisk/cfdisk.c:2416
+msgid "Units"
+msgstr "Unités"
+
+#: fdisk/cfdisk.c:2416
+msgid "Change units of the partition size display (MB, sect, cyl)"
+msgstr "Changer l'unité pour la taille des partitions (Mo, sect, cyl)"
+
+#: fdisk/cfdisk.c:2417
+msgid "Write"
+msgstr "Ecrire"
+
+#: fdisk/cfdisk.c:2417
+msgid "Write partition table to disk (this might destroy data)"
+msgstr "Ecrire la table de partition sur disque (peux détruire des données)"
+
+#: fdisk/cfdisk.c:2463
+#, fuzzy
+msgid "Cannot make this partition bootable"
+msgstr "Seulement imprimer la table de partitions"
+
+#: fdisk/cfdisk.c:2473
+#, fuzzy
+msgid "Cannot delete an empty partition"
+msgstr "Créér une nouvelle partition primaire"
+
+#: fdisk/cfdisk.c:2493 fdisk/cfdisk.c:2495
+#, fuzzy
+msgid "Cannot maximize this partition"
+msgstr "Créér une nouvelle partition primaire"
+
+#: fdisk/cfdisk.c:2503
+msgid "This partition is unusable"
+msgstr ""
+
+#: fdisk/cfdisk.c:2505
+msgid "This partition is already in use"
+msgstr ""
+
+#: fdisk/cfdisk.c:2522
+msgid "Cannot change the type of an empty partition"
+msgstr ""
+
+#: fdisk/cfdisk.c:2547 fdisk/cfdisk.c:2553
+#, fuzzy
+msgid "No more partitions"
+msgstr "Ne pas créér la partition"
+
+#: fdisk/cfdisk.c:2560
+#, fuzzy
+msgid "Illegal command"
+msgstr "Touche non valide"
+
+#: fdisk/cfdisk.c:2570
+#, fuzzy
+msgid "Copyright (C) 1994-1999 Kevin E. Martin & aeb\n"
+msgstr "Copyright (C) 1994-1997 Kevin E. Martin & aeb\n"
+
+#. Unfortunately, xgettext does not handle multi-line strings
+#. so, let's use explicit \n's instead
+#: fdisk/cfdisk.c:2577
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+"Print version:\n"
+"        %s -v\n"
+"Print partition table:\n"
+"        %s -P {r|s|t} [options] device\n"
+"Interactive use:\n"
+"        %s [options] device\n"
+"\n"
+"Options:\n"
+"-a: Use arrow instead of highlighting;\n"
+"-z: Start with a zero partition table, instead of reading the pt from disk;\n"
+"-c C -h H -s S: Override the kernel's idea of the number of cylinders,\n"
+"                the number of heads and the number of sectors/track.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisk.c:235
+msgid ""
+"Usage: fdisk [-b SSZ] [-u] [DISK]     Change partition table\n"
+"       fdisk -l [-b SSZ] [-u] [DISK]  List partition table(s)\n"
+"       fdisk -s PARTITION         Give partition size(s) in blocks\n"
+"       fdisk -v                   Give fdisk version\n"
+"Here DISK is something like /dev/hdb or /dev/sda\n"
+"and PARTITION is something like /dev/hda7\n"
+"-u: give Start and End in sector (instead of cylinder) units\n"
+"-b 2048: (for certain MO drives) use 2048-byte sectors\n"
+msgstr ""
+
+#: fdisk/fdisk.c:245
+msgid "A disk block device is needed.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:248
+msgid ""
+"Given name does not refer to a partition,\n"
+"or maybe not even to a block device.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:252
+#, fuzzy, c-format
+msgid "Unable to open %s\n"
+msgstr "Impossible d'ouvrir le disque dur"
+
+#: fdisk/fdisk.c:255
+#, c-format
+msgid "Unable to read %s\n"
+msgstr ""
+
+#: fdisk/fdisk.c:258
+#, c-format
+msgid "Unable to seek on %s\n"
+msgstr ""
+
+#: fdisk/fdisk.c:261
+#, c-format
+msgid "Unable to write %s\n"
+msgstr ""
+
+#: fdisk/fdisk.c:264
+msgid "Unable to allocate any more memory\n"
+msgstr ""
+
+#: fdisk/fdisk.c:266
+msgid "Fatal error\n"
+msgstr ""
+
+#: fdisk/fdisk.c:277 fdisk/fdisk.c:296 fdisk/fdisk.c:314 fdisk/fdisk.c:321
+#: fdisk/fdisk.c:344 fdisk/fdisk.c:362 fdisk/fdiskbsdlabel.c:105
+#, fuzzy
+msgid "Command action"
+msgstr "Commande     Signification"
+
+#: fdisk/fdisk.c:278
+msgid "   a   toggle a read only flag"
+msgstr ""
+
+#. sun
+#: fdisk/fdisk.c:279 fdisk/fdisk.c:323
+msgid "   b   edit bsd disklabel"
+msgstr ""
+
+#: fdisk/fdisk.c:280
+msgid "   c   toggle the mountable flag"
+msgstr ""
+
+#. sun
+#: fdisk/fdisk.c:281 fdisk/fdisk.c:300 fdisk/fdisk.c:325
+#, fuzzy
+msgid "   d   delete a partition"
+msgstr "  d          Effacer la partition courante"
+
+#: fdisk/fdisk.c:282 fdisk/fdisk.c:301 fdisk/fdisk.c:326
+#, fuzzy
+msgid "   l   list known partition types"
+msgstr "  t          Changer le type de système de fichiers"
+
+#. sun
+#: fdisk/fdisk.c:283 fdisk/fdisk.c:302 fdisk/fdisk.c:315 fdisk/fdisk.c:327
+#: fdisk/fdisk.c:352 fdisk/fdisk.c:369 fdisk/fdiskbsdlabel.c:110
+#, fuzzy
+msgid "   m   print this menu"
+msgstr "  h          Afficher cet écran"
+
+#: fdisk/fdisk.c:284 fdisk/fdisk.c:303 fdisk/fdisk.c:328
+#, fuzzy
+msgid "   n   add a new partition"
+msgstr "Créér une nouvelle partition primaire"
+
+#: fdisk/fdisk.c:285 fdisk/fdisk.c:304 fdisk/fdisk.c:316 fdisk/fdisk.c:329
+#, fuzzy
+msgid "   o   create a new empty DOS partition table"
+msgstr "Seulement imprimer la table de partitions"
+
+#: fdisk/fdisk.c:286 fdisk/fdisk.c:305 fdisk/fdisk.c:330 fdisk/fdisk.c:353
+#: fdisk/fdisk.c:370
+#, fuzzy
+msgid "   p   print the partition table"
+msgstr "Seulement imprimer la table de partitions"
+
+#: fdisk/fdisk.c:287 fdisk/fdisk.c:306 fdisk/fdisk.c:317 fdisk/fdisk.c:331
+#: fdisk/fdisk.c:354 fdisk/fdisk.c:371 fdisk/fdiskbsdlabel.c:113
+msgid "   q   quit without saving changes"
+msgstr ""
+
+#: fdisk/fdisk.c:288 fdisk/fdisk.c:307 fdisk/fdisk.c:318 fdisk/fdisk.c:332
+msgid "   s   create a new empty Sun disklabel"
+msgstr ""
+
+#. sun
+#: fdisk/fdisk.c:289 fdisk/fdisk.c:308 fdisk/fdisk.c:333
+#, fuzzy
+msgid "   t   change a partition's system id"
+msgstr "  t          Changer le type de système de fichiers"
+
+#: fdisk/fdisk.c:290 fdisk/fdisk.c:309 fdisk/fdisk.c:334
+msgid "   u   change display/entry units"
+msgstr ""
+
+#: fdisk/fdisk.c:291 fdisk/fdisk.c:310 fdisk/fdisk.c:335 fdisk/fdisk.c:357
+#: fdisk/fdisk.c:374
+#, fuzzy
+msgid "   v   verify the partition table"
+msgstr "Seulement imprimer la table de partitions"
+
+#: fdisk/fdisk.c:292 fdisk/fdisk.c:311 fdisk/fdisk.c:336 fdisk/fdisk.c:358
+#: fdisk/fdisk.c:375
+msgid "   w   write table to disk and exit"
+msgstr ""
+
+#: fdisk/fdisk.c:293 fdisk/fdisk.c:337
+msgid "   x   extra functionality (experts only)"
+msgstr ""
+
+#: fdisk/fdisk.c:297
+#, fuzzy
+msgid "   a   select bootable partition"
+msgstr "  d          Effacer la partition courante"
+
+#. sgi flavour
+#: fdisk/fdisk.c:298
+msgid "   b   edit bootfile entry"
+msgstr ""
+
+#. sgi
+#: fdisk/fdisk.c:299
+#, fuzzy
+msgid "   c   select sgi swap partition"
+msgstr "  d          Effacer la partition courante"
+
+#: fdisk/fdisk.c:322
+msgid "   a   toggle a bootable flag"
+msgstr ""
+
+#: fdisk/fdisk.c:324
+msgid "   c   toggle the dos compatibility flag"
+msgstr ""
+
+#: fdisk/fdisk.c:345
+#, fuzzy
+msgid "   a   change number of alternate cylinders"
+msgstr "Entrez le nombre de cylindres: "
+
+#. sun
+#: fdisk/fdisk.c:346 fdisk/fdisk.c:364
+#, fuzzy
+msgid "   c   change number of cylinders"
+msgstr "Entrez le nombre de cylindres: "
+
+#: fdisk/fdisk.c:347 fdisk/fdisk.c:365
+#, fuzzy
+msgid "   d   print the raw data in the partition table"
+msgstr "Seulement imprimer la table de partitions"
+
+#: fdisk/fdisk.c:348
+#, fuzzy
+msgid "   e   change number of extra sectors per cylinder"
+msgstr "Entrez le nombre de secteurs par piste: "
+
+#. sun
+#: fdisk/fdisk.c:349 fdisk/fdisk.c:368
+#, fuzzy
+msgid "   h   change number of heads"
+msgstr "Entrez le nombre de têtes: "
+
+#: fdisk/fdisk.c:350
+msgid "   i   change interleave factor"
+msgstr ""
+
+#. sun
+#: fdisk/fdisk.c:351
+#, fuzzy
+msgid "   o   change rotation speed (rpm)"
+msgstr "  t          Changer le type de système de fichiers"
+
+#: fdisk/fdisk.c:355 fdisk/fdisk.c:372 fdisk/fdiskbsdlabel.c:115
+msgid "   r   return to main menu"
+msgstr ""
+
+#: fdisk/fdisk.c:356 fdisk/fdisk.c:373
+#, fuzzy
+msgid "   s   change number of sectors"
+msgstr "Entrez le nombre de secteurs par piste: "
+
+#: fdisk/fdisk.c:359
+#, fuzzy
+msgid "   y   change number of physical cylinders"
+msgstr "Entrez le nombre de cylindres: "
+
+#: fdisk/fdisk.c:363
+msgid "   b   move beginning of data in a partition"
+msgstr ""
+
+#: fdisk/fdisk.c:366
+#, fuzzy
+msgid "   e   list extended partitions"
+msgstr "Pas de place pour créér une partition étendue"
+
+#. !sun
+#: fdisk/fdisk.c:367
+#, fuzzy
+msgid "   g   create an IRIX partition table"
+msgstr "Seulement imprimer la table de partitions"
+
+#: fdisk/fdisk.c:463
+msgid "You must set"
+msgstr ""
+
+#: fdisk/fdisk.c:477
+#, fuzzy
+msgid "heads"
+msgstr "Têtes"
+
+#: fdisk/fdisk.c:479 fdisk/sfdisk.c:825
+#, fuzzy
+msgid "sectors"
+msgstr "Secteurs"
+
+#: fdisk/fdisk.c:481 fdisk/fdiskbsdlabel.c:441 fdisk/sfdisk.c:825
+#, fuzzy
+msgid "cylinders"
+msgstr "Cylindres"
+
+#: fdisk/fdisk.c:485
+#, c-format
+msgid ""
+"%s%s.\n"
+"You can do this from the extra functions menu.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:486
+msgid " and "
+msgstr ""
+
+#: fdisk/fdisk.c:520
+#, fuzzy
+msgid "Bad offset in primary extended partition\n"
+msgstr "Mauvaise partition primaire"
+
+#: fdisk/fdisk.c:524
+#, fuzzy, c-format
+msgid "Warning: deleting partitions after %d\n"
+msgstr "Créér une nouvelle partition primaire"
+
+#: fdisk/fdisk.c:545
+#, fuzzy, c-format
+msgid "Warning: extra link pointer in partition table %d\n"
+msgstr "Créér une nouvelle partition primaire"
+
+#: fdisk/fdisk.c:553
+#, c-format
+msgid "Warning: ignoring extra data in partition table %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:579
+msgid ""
+"Building a new DOS disklabel. Changes will remain in memory only,\n"
+"until you decide to write them. After that, of course, the previous\n"
+"content won't be recoverable.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisk.c:615
+#, fuzzy
+msgid "You will not be able to write the partition table.\n"
+msgstr "Seulement imprimer la table de partitions"
+
+#: fdisk/fdisk.c:624
+#, c-format
+msgid "Note: sector size is %d (not %d)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:671
+msgid ""
+"Device contains neither a valid DOS partition table, nor Sun or SGI "
+"disklabel\n"
+msgstr ""
+
+#: fdisk/fdisk.c:687
+#, fuzzy
+msgid "Internal error\n"
+msgstr "!!! Erreur Interne !!!"
+
+#: fdisk/fdisk.c:697
+#, fuzzy, c-format
+msgid "Ignoring extra extended partition %d\n"
+msgstr "Pas de place pour créér une partition étendue"
+
+#: fdisk/fdisk.c:704
+#, c-format
+msgid ""
+"Warning: invalid flag 0x%04x of partition table %d will be corrected by "
+"w(rite)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:725
+msgid ""
+"\n"
+"got EOF thrice - exiting..\n"
+msgstr ""
+
+#: fdisk/fdisk.c:762
+msgid "Hex code (type L to list codes): "
+msgstr ""
+
+#: fdisk/fdisk.c:801
+#, c-format
+msgid "%s (%d-%d, default %d): "
+msgstr ""
+
+#: fdisk/fdisk.c:855
+#, c-format
+msgid "Using default value %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:859
+msgid "Value out of range.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:866
+#, fuzzy
+msgid "Partition number"
+msgstr "Table de partitions pour %s\n"
+
+#: fdisk/fdisk.c:874
+#, fuzzy, c-format
+msgid "Warning: partition %d has empty type\n"
+msgstr "Ecriture de la table de partition sur disque..."
+
+#: fdisk/fdisk.c:880
+#, fuzzy
+msgid "cylinder"
+msgstr "Cylindres"
+
+#: fdisk/fdisk.c:880
+#, fuzzy
+msgid "sector"
+msgstr "Secteurs"
+
+#: fdisk/fdisk.c:887
+#, c-format
+msgid "Changing display/entry units to %ss\n"
+msgstr ""
+
+#: fdisk/fdisk.c:897
+#, c-format
+msgid "WARNING: Partition %d is an extended partition\n"
+msgstr ""
+
+#: fdisk/fdisk.c:910
+msgid "DOS Compatibility flag is set\n"
+msgstr ""
+
+#: fdisk/fdisk.c:914
+msgid "DOS Compatibility flag is not set\n"
+msgstr ""
+
+#: fdisk/fdisk.c:999
+#, c-format
+msgid "Partition %d does not exist yet!\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1004
+msgid ""
+"Type 0 means free space to many systems\n"
+"(but not to Linux). Having partitions of\n"
+"type 0 is probably unwise. You can delete\n"
+"a partition using the `d' command.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1013
+msgid ""
+"You cannot change a partition into an extended one or vice versa\n"
+"Delete it first.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1022
+msgid ""
+"Consider leaving partition 3 as Whole disk (5),\n"
+"as SunOS/Solaris expects it and even Linux likes it.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1028
+msgid ""
+"Consider leaving partition 9 as volume header (0),\n"
+"and partition 11 as entire volume (6)as IRIX expects it.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1042
+#, c-format
+msgid "Changed system type of partition %d to %x (%s)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1095
+#, c-format
+msgid "Partition %d has different physical/logical beginnings (non-Linux?):\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1097 fdisk/fdisk.c:1105 fdisk/fdisk.c:1114 fdisk/fdisk.c:1123
+#, c-format
+msgid "     phys=(%d, %d, %d) "
+msgstr ""
+
+#: fdisk/fdisk.c:1098 fdisk/fdisk.c:1106
+#, c-format
+msgid "logical=(%d, %d, %d)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1103
+#, c-format
+msgid "Partition %d has different physical/logical endings:\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1112
+#, c-format
+msgid "Partition %i does not start on cylinder boundary:\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1115
+#, c-format
+msgid "should be (%d, %d, 1)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1121
+#, c-format
+msgid "Partition %i does not end on cylinder boundary:\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1124
+#, c-format
+msgid "should be (%d, %d, %d)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1131
+#, c-format
+msgid ""
+"\n"
+"Disk %s: %d heads, %d sectors, %d cylinders\n"
+"Units = %ss of %d * %d bytes\n"
+"\n"
+msgstr ""
+
+#. FIXME! let's see how this shows up with other languagues
+#. acme@conectiva.com.br
+#: fdisk/fdisk.c:1168
+#, c-format
+msgid "%*s Boot    Start       End    Blocks   Id  System\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1169 fdisk/fdisksgilabel.c:207 fdisk/fdisksunlabel.c:629
+msgid "Device"
+msgstr ""
+
+#: fdisk/fdisk.c:1209
+#, c-format
+msgid ""
+"\n"
+"Disk %s: %d heads, %d sectors, %d cylinders\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1211
+msgid "Nr AF  Hd Sec  Cyl  Hd Sec  Cyl   Start    Size ID\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1250
+#, fuzzy, c-format
+msgid "Warning: partition %d contains sector 0\n"
+msgstr "Ecriture de la table de partition sur disque..."
+
+#: fdisk/fdisk.c:1253
+#, c-format
+msgid "Partition %d: head %d greater than maximum %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1256
+#, c-format
+msgid "Partition %d: sector %d greater than maximum %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1259
+#, c-format
+msgid "Partitions %d: cylinder %d greater than maximum %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1263
+#, c-format
+msgid "Partition %d: previous sectors %d disagrees with total %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1293
+#, fuzzy, c-format
+msgid "Warning: bad start-of-data in partition %d\n"
+msgstr "Créér une nouvelle partition primaire"
+
+#: fdisk/fdisk.c:1301
+#, fuzzy, c-format
+msgid "Warning: partition %d overlaps partition %d.\n"
+msgstr "Ecriture de la table de partition sur disque..."
+
+#: fdisk/fdisk.c:1319
+#, fuzzy, c-format
+msgid "Warning: partition %d is empty\n"
+msgstr "Ecriture de la table de partition sur disque..."
+
+#: fdisk/fdisk.c:1324
+#, fuzzy, c-format
+msgid "Logical partition %d not entirely in partition %d\n"
+msgstr "Créér une nouvelle partition primaire"
+
+#: fdisk/fdisk.c:1330
+#, c-format
+msgid "Total allocated sectors %d greater than the maximum %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1333
+#, c-format
+msgid "%d unallocated sectors\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1345 fdisk/fdisksgilabel.c:684 fdisk/fdisksunlabel.c:479
+#, c-format
+msgid "Partition %d is already defined.  Delete it before re-adding it.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1366 fdisk/fdiskbsdlabel.c:252 fdisk/fdisksgilabel.c:706
+#: fdisk/fdisksunlabel.c:494
+#, c-format
+msgid "First %s"
+msgstr ""
+
+#: fdisk/fdisk.c:1381 fdisk/fdisksunlabel.c:519
+#, c-format
+msgid "Sector %d is already allocated\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1407
+msgid "No free sectors available\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1417 fdisk/fdiskbsdlabel.c:256 fdisk/fdisksunlabel.c:529
+#, c-format
+msgid "Last %s or +size or +sizeM or +sizeK"
+msgstr ""
+
+#: fdisk/fdisk.c:1447
+#, fuzzy, c-format
+msgid "Warning: partition %d has an odd number of sectors.\n"
+msgstr "Ecriture de la table de partition sur disque..."
+
+#: fdisk/fdisk.c:1484 fdisk/fdiskbsdlabel.c:590
+msgid "The maximum number of partitions has been created\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1494
+msgid "You must delete some partition and add an extended partition first\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1498
+#, c-format
+msgid ""
+"Command action\n"
+"   %s\n"
+"   p   primary partition (1-4)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1500
+msgid "l   logical (5 or over)"
+msgstr ""
+
+#: fdisk/fdisk.c:1500
+msgid "e   extended"
+msgstr ""
+
+#: fdisk/fdisk.c:1517
+#, c-format
+msgid "Invalid partition number for type `%c'\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1549
+#, fuzzy
+msgid ""
+"The partition table has been altered!\n"
+"\n"
+msgstr "Table de partition écrite sur disque"
+
+#: fdisk/fdisk.c:1551
+#, fuzzy
+msgid "Calling ioctl() to re-read partition table.\n"
+msgstr "Seulement imprimer la table de partitions"
+
+#: fdisk/fdisk.c:1568
+msgid "Syncing disks.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1573
+#, fuzzy, c-format
+msgid ""
+"Re-read table failed with error %d: %s.\n"
+"Reboot your system to ensure the partition table is updated.\n"
+msgstr ""
+"Rebootez le système pour être sur que la table des partitions a été "
+"correctement mise à jour.\n"
+
+#: fdisk/fdisk.c:1579
+#, fuzzy
+msgid ""
+"\n"
+"WARNING: If you have created or modified any DOS 6.x\n"
+"partitions, please see the fdisk manual page for additional\n"
+"information.\n"
+msgstr ""
+"\n"
+"AVERTISSEMENT: Si vous avez créé ou modifié\n"
+"une ou des partitions DOS 6.x, reportez-vous au manuel\n"
+"de cfdisk pour avoir plus d'informations.\n"
+
+#: fdisk/fdisk.c:1610
+#, fuzzy, c-format
+msgid "Device: %s\n"
+msgstr "Disque Dur: %s\n"
+
+#: fdisk/fdisk.c:1625
+#, fuzzy, c-format
+msgid "Partition %d has no data area\n"
+msgstr "Table de partitions pour %s\n"
+
+#: fdisk/fdisk.c:1631
+msgid "New beginning of data"
+msgstr ""
+
+#: fdisk/fdisk.c:1645
+msgid "Expert command (m for help): "
+msgstr ""
+
+#: fdisk/fdisk.c:1656
+#, fuzzy
+msgid "Number of cylinders"
+msgstr "Entrez le nombre de cylindres: "
+
+#: fdisk/fdisk.c:1677
+#, fuzzy
+msgid "Number of heads"
+msgstr "Entrez le nombre de têtes: "
+
+#: fdisk/fdisk.c:1702
+#, fuzzy
+msgid "Number of sectors"
+msgstr " Secteurs"
+
+#: fdisk/fdisk.c:1705
+msgid "Warning: setting sector offset for DOS compatiblity\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1767
+#, fuzzy, c-format
+msgid "Disk %s doesn't contain a valid partition table\n"
+msgstr "Créér une nouvelle partition primaire"
+
+#: fdisk/fdisk.c:1781
+#, fuzzy, c-format
+msgid "Cannot open %s\n"
+msgstr "Impossible d'ouvrir le disque dur"
+
+#: fdisk/fdisk.c:1836
+msgid "This kernel finds the sector size itself - -b option ignored\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1839
+msgid ""
+"Warning: the -b (set sector size) option should be used with one specified "
+"device\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1947
+#, fuzzy, c-format
+msgid "Using %s as default device!\n"
+msgstr "%s: n'est pas un lecteur de disquettes\n"
+
+#: fdisk/fdisk.c:1953
+msgid "Command (m for help): "
+msgstr ""
+
+#: fdisk/fdisk.c:1967
+#, c-format
+msgid ""
+"\n"
+"The current boot file is: %s\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1969
+msgid "Please enter the name of the new boot file: "
+msgstr ""
+
+#: fdisk/fdisk.c:1971
+#, fuzzy
+msgid "Boot file unchanged\n"
+msgstr "Le disque a été changé.\n"
+
+#: fdisk/fdisk.c:2031
+msgid ""
+"\n"
+"\tSorry, no experts menu for SGI partition tables available.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdiskaixlabel.c:29
+msgid ""
+"\n"
+"\tThere is a valid AIX label on this disk.\n"
+"\tUnfortunately Linux cannot handle these\n"
+"\tdisks at the moment.  Nevertheless some\n"
+"\tadvice:\n"
+"\t1. fdisk will destroy its contents on write.\n"
+"\t2. Be sure that this disk is NOT a still vital\n"
+"\t   part of a volume group. (Otherwise you may\n"
+"\t   erase the other disks as well, if unmirrored.)\n"
+"\t3. Before deleting this physical volume be sure\n"
+"\t   to remove the disk logically from your AIX\n"
+"\t   machine.  (Otherwise you become an AIXpert)."
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:97
+#, c-format
+msgid ""
+"\n"
+"BSD label for device: %s\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:106
+#, fuzzy
+msgid "   d   delete a BSD partition"
+msgstr "  d          Effacer la partition courante"
+
+#: fdisk/fdiskbsdlabel.c:107
+msgid "   e   edit drive data"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:108
+msgid "   i   install bootstrap"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:109
+#, fuzzy
+msgid "   l   list known filesystem types"
+msgstr "  t          Changer le type de système de fichiers"
+
+#: fdisk/fdiskbsdlabel.c:111
+#, fuzzy
+msgid "   n   add a new BSD partition"
+msgstr "Créér une nouvelle partition primaire"
+
+#: fdisk/fdiskbsdlabel.c:112
+#, fuzzy
+msgid "   p   print BSD partition table"
+msgstr "Seulement imprimer la table de partitions"
+
+#: fdisk/fdiskbsdlabel.c:117
+msgid "   s   show complete disklabel"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:118
+#, fuzzy
+msgid "   t   change a partition's filesystem id"
+msgstr "  t          Changer le type de système de fichiers"
+
+#: fdisk/fdiskbsdlabel.c:119
+msgid "   w   write disklabel to disk"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:121
+msgid "   x   link BSD partition to non-BSD partition"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:146
+#, fuzzy, c-format
+msgid "Partition %s%d has invalid starting sector 0.\n"
+msgstr "Table de partitions pour %s\n"
+
+#: fdisk/fdiskbsdlabel.c:150
+#, c-format
+msgid "Reading disklabel of %s%d at sector %d.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:159
+#, fuzzy, c-format
+msgid "There is no *BSD partition on %s.\n"
+msgstr "Table de partition non écrite sur le disque"
+
+#: fdisk/fdiskbsdlabel.c:174
+msgid "BSD disklabel command (m for help): "
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:286
+#, c-format
+msgid "type: %s\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:288
+#, c-format
+msgid "type: %d\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:289
+#, fuzzy, c-format
+msgid "disk: %.*s\n"
+msgstr "Disque Dur: %s\n"
+
+#: fdisk/fdiskbsdlabel.c:290
+#, c-format
+msgid "label: %.*s\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:291
+#, fuzzy
+msgid "flags:"
+msgstr "Drapeaux"
+
+#: fdisk/fdiskbsdlabel.c:293
+#, fuzzy
+msgid " removable"
+msgstr "Enlever"
+
+#: fdisk/fdiskbsdlabel.c:295
+msgid " ecc"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:297
+msgid " badsect"
+msgstr ""
+
+#. On various machines the fields of *lp are short/int/long
+#. In order to avoid problems, we cast them all to long.
+#: fdisk/fdiskbsdlabel.c:301
+#, fuzzy, c-format
+msgid "bytes/sector: %ld\n"
+msgstr "Secteur %d:\n"
+
+#: fdisk/fdiskbsdlabel.c:302
+#, fuzzy, c-format
+msgid "sectors/track: %ld\n"
+msgstr "Secteur %d:\n"
+
+#: fdisk/fdiskbsdlabel.c:303
+#, c-format
+msgid "tracks/cylinder: %ld\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:304
+#, c-format
+msgid "sectors/cylinder: %ld\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:305
+#, fuzzy, c-format
+msgid "cylinders: %ld\n"
+msgstr "Cylindres"
+
+#: fdisk/fdiskbsdlabel.c:306
+#, c-format
+msgid "rpm: %d\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:307
+#, c-format
+msgid "interleave: %d\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:308
+#, c-format
+msgid "trackskew: %d\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:309
+#, fuzzy, c-format
+msgid "cylinderskew: %d\n"
+msgstr "Cylindres"
+
+#: fdisk/fdiskbsdlabel.c:310
+#, c-format
+msgid "headswitch: %ld\t\t# milliseconds\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:311
+#, c-format
+msgid "track-to-track seek: %ld\t# milliseconds\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:312
+msgid "drivedata: "
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:321
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%d partitions:\n"
+msgstr "Ne pas créér la partition"
+
+#: fdisk/fdiskbsdlabel.c:322
+msgid "#        size   offset    fstype   [fsize bsize   cpg]\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:378
+#, fuzzy, c-format
+msgid "Writing disklabel to %s%d.\n"
+msgstr "Table de partitions pour %s\n"
+
+#: fdisk/fdiskbsdlabel.c:381
+#, fuzzy, c-format
+msgid "Writing disklabel to %s.\n"
+msgstr "Table de partitions pour %s\n"
+
+#: fdisk/fdiskbsdlabel.c:392
+#, c-format
+msgid "%s%d contains no disklabel.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:395
+#, c-format
+msgid "%s contains no disklabel.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:399
+msgid "Do you want to create a disklabel? (y/n) "
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:438
+#, fuzzy
+msgid "bytes/sector"
+msgstr "Secteurs"
+
+#: fdisk/fdiskbsdlabel.c:439
+#, fuzzy
+msgid "sectors/track"
+msgstr "Secteurs"
+
+#: fdisk/fdiskbsdlabel.c:440
+#, fuzzy
+msgid "tracks/cylinder"
+msgstr "Cylindres"
+
+#: fdisk/fdiskbsdlabel.c:448
+#, fuzzy
+msgid "sectors/cylinder"
+msgstr "Cylindres"
+
+#: fdisk/fdiskbsdlabel.c:452
+msgid "Must be <= sectors/track * tracks/cylinder (default).\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:454
+msgid "rpm"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:455
+msgid "interleave"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:456
+msgid "trackskew"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:457
+#, fuzzy
+msgid "cylinderskew"
+msgstr "Cylindres"
+
+#: fdisk/fdiskbsdlabel.c:458
+msgid "headswitch"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:459
+msgid "track-to-track seek"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:500
+#, c-format
+msgid "Bootstrap: %sboot -> boot%s (%s): "
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:526
+msgid "Bootstrap overlaps with disk label!\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:547
+#, c-format
+msgid "Bootstrap installed on %s%d.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:549
+#, c-format
+msgid "Bootstrap installed on %s.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:570
+#, c-format
+msgid "Partition (a-%c): "
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:601
+#, fuzzy
+msgid "This partition already exists.\n"
+msgstr "Table de partition écrite sur disque"
+
+#: fdisk/fdiskbsdlabel.c:723
+#, fuzzy, c-format
+msgid "Warning: too many partitions (%d, maximum is %d).\n"
+msgstr "Ecriture de la table de partition sur disque..."
+
+#: fdisk/fdiskbsdlabel.c:769
+msgid ""
+"\n"
+"Syncing disks.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:56
+msgid "SGI volhdr"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:57
+msgid "SGI trkrepl"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:58
+msgid "SGI secrepl"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:59
+msgid "SGI raw"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:60
+msgid "SGI bsd"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:61
+msgid "SGI sysv"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:62
+msgid "SGI volume"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:63
+msgid "SGI efs"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:64
+msgid "SGI lvol"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:65
+msgid "SGI rlvol"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:66
+msgid "SGI xfs"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:67
+msgid "SGI xlvol"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:68
+msgid "SGI rxlvol"
+msgstr ""
+
+#. Minix 1.4b and later
+#: fdisk/fdisksgilabel.c:69 fdisk/fdisksunlabel.c:52 fdisk/i386_sys_types.c:52
+#, fuzzy
+msgid "Linux swap"
+msgstr "Linux"
+
+#: fdisk/fdisksgilabel.c:70 fdisk/fdisksunlabel.c:53
+#, fuzzy
+msgid "Linux native"
+msgstr "Linux ext2"
+
+#: fdisk/fdisksgilabel.c:143
+msgid ""
+"According to MIPS Computer Systems, Inc the Label must not contain more than "
+"512 bytes\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:162
+msgid "Detected sgi disklabel with wrong checksum.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:186
+#, c-format
+msgid ""
+"\n"
+"Disk %s (SGI disk label): %d heads, %d sectors\n"
+"%d cylinders, %d physical cylinders\n"
+"%d extra sects/cyl, interleave %d:1\n"
+"%s\n"
+"Units = %ss of %d * 512 bytes\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:199
+#, c-format
+msgid ""
+"\n"
+"Disk %s (SGI disk label): %d heads, %d sectors, %d cylinders\n"
+"Units = %ss of %d * 512 bytes\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:205
+#, c-format
+msgid ""
+"----- partitions -----\n"
+"%*s  Info      Start       End   Sectors  Id  System\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:227
+#, c-format
+msgid ""
+"----- bootinfo -----\n"
+"Bootfile: %s\n"
+"----- directory entries -----\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:237
+#, c-format
+msgid "%2d: %-10s sector%5u size%8u\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:298
+msgid ""
+"\n"
+"Invalid Bootfile!\n"
+"\tThe bootfile must be an absolute non-zero pathname,\n"
+"\te.g. \"/unix\" or \"/unix.save\".\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:305
+msgid ""
+"\n"
+"\tName of Bootfile too long:  16 bytes maximum.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:310
+msgid ""
+"\n"
+"\tBootfile must have a fully qualified pathname.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:315
+msgid ""
+"\n"
+"\tBe aware, that the bootfile is not checked for existence.\n"
+"\tSGI's default is \"/unix\" and for backup \"/unix.save\".\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:343
+#, c-format
+msgid ""
+"\n"
+"\tBootfile is changed to \"%s\".\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:448
+msgid "More than one entire disk entry present.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:456 fdisk/fdisksunlabel.c:455
+#, fuzzy
+msgid "No partitions defined\n"
+msgstr "Ne pas créér la partition"
+
+#: fdisk/fdisksgilabel.c:463
+msgid "IRIX likes when Partition 11 covers the entire disk.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:465
+#, c-format
+msgid ""
+"The entire disk partition should start at block 0,\n"
+"not at diskblock %d.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:469
+#, c-format
+msgid ""
+"The entire disk partition is only %d diskblock large,\n"
+"but the disk is %d diskblocks long.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:476
+msgid "One Partition (#11) should cover the entire disk.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:488
+#, fuzzy, c-format
+msgid "Partition %d does not start on cylinder boundary.\n"
+msgstr "Table de partitions pour %s\n"
+
+#: fdisk/fdisksgilabel.c:495
+#, c-format
+msgid "Partition %d does not end on cylinder boundary.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:503
+#, c-format
+msgid "The Partition %d and %d overlap by %d sectors.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:512 fdisk/fdisksgilabel.c:532
+#, c-format
+msgid "Unused gap of %8d sectors - sectors %8d-%d\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:545
+#, fuzzy
+msgid ""
+"\n"
+"The boot partition does not exist.\n"
+msgstr "Table de partition écrite sur disque"
+
+#: fdisk/fdisksgilabel.c:549
+#, fuzzy
+msgid ""
+"\n"
+"The swap partition does not exist.\n"
+msgstr "Table de partition écrite sur disque"
+
+#: fdisk/fdisksgilabel.c:554
+msgid ""
+"\n"
+"The swap partition has no swap type.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:558
+msgid "\tYou have chosen an unusual boot file name.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:569
+msgid "Sorry You may change the Tag of non-empty partitions.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:576
+msgid ""
+"It is highly recommended that the partition at offset 0\n"
+"is of type \"SGI volhdr\", the IRIX system will rely on it to\n"
+"retrieve from its directory standalone tools like sash and fx.\n"
+"Only the \"SGI volume\" entire disk section may violate this.\n"
+"Type YES if you are sure about tagging this partition differently.\n"
+msgstr ""
+
+#. rebuild freelist
+#: fdisk/fdisksgilabel.c:621
+msgid "Do You know, You got a partition overlap on the disk?\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:691
+msgid "Attempting to generate entire disk entry automatically.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:698
+msgid "The entire disk is already covered with partitions.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:703
+msgid "You got a partition overlap on the disk. Fix it first!\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:712 fdisk/fdisksgilabel.c:741
+msgid ""
+"It is highly recommended that eleventh partition\n"
+"covers the entire disk and is of type `SGI volume'\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:728
+msgid "You will get a partition overlap on the disk. Fix it first!\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:733
+#, c-format
+msgid " Last %s"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:756
+msgid ""
+"Building a new SGI disklabel. Changes will remain in memory only,\n"
+"until you decide to write them. After that, of course, the previous\n"
+"content will be unrecoverable lost.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:784
+#, c-format
+msgid "Trying to keep parameters of partition %d.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:786
+#, c-format
+msgid "ID=%02x\tSTART=%d\tLENGTH=%d\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:43 fdisk/i386_sys_types.c:6
+msgid "Empty"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:45
+msgid "SunOS root"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:46
+msgid "SunOS swap"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:47
+msgid "SunOS usr"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:48
+msgid "Whole disk"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:49
+msgid "SunOS stand"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:50
+msgid "SunOS var"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:51
+msgid "SunOS home"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:122
+msgid ""
+"Detected sun disklabel with wrong checksum.\n"
+"Probably you'll have to set all the values,\n"
+"e.g. heads, sectors, cylinders and partitions\n"
+"or force a fresh label (s command in main menu)\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:215
+#, c-format
+msgid "Autoconfigure found a %s%s%s\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:242
+msgid ""
+"Building a new sun disklabel. Changes will remain in memory only,\n"
+"until you decide to write them. After that, of course, the previous\n"
+"content won't be recoverable.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:253
+msgid ""
+"Drive type\n"
+"   ?   auto configure\n"
+"   0   custom (with hardware detected defaults)"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:263
+msgid "Select type (? for auto, 0 for custom): "
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:275
+msgid "Autoconfigure failed.\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:303
+#, fuzzy
+msgid "Sectors/track"
+msgstr "Secteurs"
+
+#: fdisk/fdisksunlabel.c:310
+#, fuzzy
+msgid "Alternate cylinders"
+msgstr "Cylindres"
+
+#: fdisk/fdisksunlabel.c:313
+#, fuzzy
+msgid "Physical cylinders"
+msgstr "Cylindres"
+
+#: fdisk/fdisksunlabel.c:316 fdisk/fdisksunlabel.c:679
+msgid "Rotation speed (rpm)"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:318 fdisk/fdisksunlabel.c:672
+msgid "Interleave factor"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:321 fdisk/fdisksunlabel.c:665
+#, fuzzy
+msgid "Extra sectors per cylinder"
+msgstr "Cylindres"
+
+#: fdisk/fdisksunlabel.c:334
+msgid "You may change all the disk params from the x menu"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:337
+msgid "3,5\" floppy"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:337
+#, fuzzy
+msgid "Linux custom"
+msgstr "Linux ext2"
+
+#: fdisk/fdisksunlabel.c:418
+#, c-format
+msgid "Partition %d doesn't end on cylinder boundary\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:438
+#, fuzzy, c-format
+msgid "Partition %d overlaps with others in sectors %d-%d\n"
+msgstr "Table de partitions pour %s\n"
+
+#: fdisk/fdisksunlabel.c:460
+#, c-format
+msgid "Unused gap - sectors 0-%d\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:462 fdisk/fdisksunlabel.c:466
+#, c-format
+msgid "Unused gap - sectors %d-%d\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:489
+msgid ""
+"Other partitions already cover the whole disk.\n"
+"Delete some/shrink them before retry.\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:547
+#, c-format
+msgid ""
+"You haven't covered whole disk with 3rd partition, but your value\n"
+"%d %s covers some other partition. Your entry have been changed\n"
+"to %d %s\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:565
+#, c-format
+msgid ""
+"If you want to maintain SunOS/Solaris compatibility, consider leaving this\n"
+"partition as Whole disk (5), starting at 0, with %u sectors\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:578
+msgid ""
+"It is highly recommended that the partition at offset 0\n"
+"is UFS, EXT2FS filesystem or SunOS swap. Putting Linux swap\n"
+"there may destroy your partition table and bootblock.\n"
+"Type YES if you're very sure you would like that partition\n"
+"tagged with 82 (Linux swap): "
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:609
+#, c-format
+msgid ""
+"\n"
+"Disk %s (Sun disk label): %d heads, %d sectors, %d rpm\n"
+"%d cylinders, %d alternate cylinders, %d physical cylinders\n"
+"%d extra sects/cyl, interleave %d:1\n"
+"%s\n"
+"Units = %ss of %d * 512 bytes\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:623
+#, c-format
+msgid ""
+"\n"
+"Disk %s (Sun disk label): %d heads, %d sectors, %d cylinders\n"
+"Units = %ss of %d * 512 bytes\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:628
+#, c-format
+msgid "%*s Flag    Start       End    Blocks   Id  System\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:653
+#, fuzzy
+msgid "Number of alternate cylinders"
+msgstr "Entrez le nombre de cylindres: "
+
+#: fdisk/fdisksunlabel.c:686
+#, fuzzy
+msgid "Number of physical cylinders"
+msgstr "Entrez le nombre de cylindres: "
+
+#: fdisk/i386_sys_types.c:7
+msgid "FAT12"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:8
+msgid "XENIX root"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:9
+msgid "XENIX usr"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:10
+msgid "FAT16 <32M"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:11
+msgid "Extended"
+msgstr ""
+
+#. DOS 3.3+ extended partition
+#: fdisk/i386_sys_types.c:12
+msgid "FAT16"
+msgstr ""
+
+#. DOS 16-bit >=32M
+#: fdisk/i386_sys_types.c:13
+#, fuzzy
+msgid "HPFS/NTFS"
+msgstr "NTFS"
+
+#. OS/2 IFS, eg, HPFS or NTFS or QNX
+#: fdisk/i386_sys_types.c:14
+msgid "AIX"
+msgstr ""
+
+#. AIX boot (AIX -- PS/2 port) or SplitDrive
+#: fdisk/i386_sys_types.c:15
+#, fuzzy
+msgid "AIX bootable"
+msgstr "Bootable"
+
+#. AIX data or Coherent
+#: fdisk/i386_sys_types.c:16
+msgid "OS/2 Boot Manager"
+msgstr ""
+
+#. OS/2 Boot Manager
+#: fdisk/i386_sys_types.c:17
+msgid "Win95 FAT32"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:18
+msgid "Win95 FAT32 (LBA)"
+msgstr ""
+
+#. LBA really is `Extended Int 13h'
+#: fdisk/i386_sys_types.c:19
+msgid "Win95 FAT16 (LBA)"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:20
+msgid "Win95 Ext'd (LBA)"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:21
+msgid "OPUS"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:22
+msgid "Hidden FAT12"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:23
+msgid "Compaq diagnostics"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:24
+msgid "Hidden FAT16 <32M"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:25
+msgid "Hidden FAT16"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:26
+msgid "Hidden HPFS/NTFS"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:27
+msgid "AST Windows swapfile"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:28
+msgid "NEC DOS"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:29
+#, fuzzy
+msgid "PartitionMagic recovery"
+msgstr "Table de partitions pour %s\n"
+
+#: fdisk/i386_sys_types.c:30
+msgid "Venix 80286"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:31
+msgid "PPC PReP Boot"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:32
+msgid "SFS"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:33
+msgid "QNX4.x"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:34
+msgid "QNX4.x 2nd part"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:35
+msgid "QNX4.x 3rd part"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:36
+msgid "OnTrack DM"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:37
+msgid "OnTrack DM6 Aux1"
+msgstr ""
+
+#. (or Novell)
+#: fdisk/i386_sys_types.c:38
+msgid "CP/M"
+msgstr ""
+
+#. CP/M or Microport SysV/AT
+#: fdisk/i386_sys_types.c:39
+msgid "OnTrack DM6 Aux3"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:40
+msgid "OnTrackDM6"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:41
+msgid "EZ-Drive"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:42
+msgid "Golden Bow"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:43
+msgid "Priam Edisk"
+msgstr ""
+
+#. DOS R/O or SpeedStor
+#: fdisk/i386_sys_types.c:44 fdisk/i386_sys_types.c:73
+#: fdisk/i386_sys_types.c:75 fdisk/i386_sys_types.c:76
+#, fuzzy
+msgid "SpeedStor"
+msgstr "Secteurs"
+
+#: fdisk/i386_sys_types.c:45
+msgid "GNU HURD or SysV"
+msgstr ""
+
+#. GNU HURD or Mach or Sys V/386 (such as ISC UNIX)
+#: fdisk/i386_sys_types.c:46
+msgid "Novell Netware 286"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:47
+msgid "Novell Netware 386"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:48
+msgid "DiskSecure Multi-Boot"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:49
+msgid "PC/IX"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:50
+msgid "Old Minix"
+msgstr ""
+
+#. Minix 1.4a and earlier
+#: fdisk/i386_sys_types.c:51
+msgid "Minix / old Linux"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:54
+msgid "OS/2 hidden C: drive"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:55
+#, fuzzy
+msgid "Linux extended"
+msgstr "Linux ext2"
+
+#: fdisk/i386_sys_types.c:56 fdisk/i386_sys_types.c:57
+msgid "NTFS volume set"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:58
+msgid "Amoeba"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:59
+msgid "Amoeba BBT"
+msgstr ""
+
+#. (bad block table)
+#: fdisk/i386_sys_types.c:60
+msgid "IBM Thinkpad hibernation"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:61
+msgid "BSD/386"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:62
+msgid "OpenBSD"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:63
+msgid "NeXTSTEP"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:64
+msgid "BSDI fs"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:65
+msgid "BSDI swap"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:66
+msgid "DRDOS/sec (FAT-12)"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:67
+msgid "DRDOS/sec (FAT-16 < 32M)"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:68
+msgid "DRDOS/sec (FAT-16)"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:69
+msgid "Syrinx"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:70
+msgid "CP/M / CTOS / ..."
+msgstr ""
+
+#. CP/M or Concurrent CP/M or Concurrent DOS or CTOS
+#: fdisk/i386_sys_types.c:71
+msgid "DOS access"
+msgstr ""
+
+#. DOS access or SpeedStor 12-bit FAT extended partition
+#: fdisk/i386_sys_types.c:72
+msgid "DOS R/O"
+msgstr ""
+
+#. SpeedStor 16-bit FAT extended partition < 1024 cyl.
+#: fdisk/i386_sys_types.c:74
+msgid "BeOS fs"
+msgstr ""
+
+#. SpeedStor large partition
+#: fdisk/i386_sys_types.c:77
+msgid "DOS secondary"
+msgstr ""
+
+#. DOS 3.3+ secondary
+#: fdisk/i386_sys_types.c:78
+msgid "LANstep"
+msgstr ""
+
+#. SpeedStor >1024 cyl. or LANstep
+#: fdisk/i386_sys_types.c:79
+msgid "BBT"
+msgstr ""
+
+#: fdisk/sfdisk.c:148
+#, c-format
+msgid "seek error on %s - cannot seek to %lu\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:153
+#, c-format
+msgid "seek error: wanted 0x%08x%08x, got 0x%08x%08x\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:199
+msgid "out of memory - giving up\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:203 fdisk/sfdisk.c:286
+#, c-format
+msgid "read error on %s - cannot read sector %lu\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:219
+#, c-format
+msgid "ERROR: sector %lu does not have an msdos signature\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:236
+#, c-format
+msgid "write error on %s - cannot write sector %lu\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:274
+#, c-format
+msgid "cannot open partition sector save file (%s)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:292
+#, c-format
+msgid "write error on %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:310
+#, c-format
+msgid "cannot stat partition restore file (%s)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:315
+msgid "partition restore file has wrong size - not restoring\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:319
+msgid "out of memory?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:325
+#, c-format
+msgid "cannot open partition restore file (%s)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:331
+#, c-format
+msgid "error reading %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:338
+#, fuzzy, c-format
+msgid "cannot open device %s for writing\n"
+msgstr "Impossible d'ouvrir le disque dur"
+
+#: fdisk/sfdisk.c:350
+#, c-format
+msgid "error writing sector %lu on %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:407
+#, c-format
+msgid ""
+"Warning: start=%d - this looks like a partition rather than\n"
+"the entire disk. Using fdisk on it is probably meaningless.\n"
+"[Use the --force option if you really want this]\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:413
+#, c-format
+msgid "Warning: HDIO_GETGEO says that there are %d heads\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:416
+#, c-format
+msgid "Warning: HDIO_GETGEO says that there are %d sectors\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:419
+#, c-format
+msgid "Warning: HDIO_GETGEO says that there are %d cylinders\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:423
+#, fuzzy, c-format
+msgid "Disk %s: cannot get geometry\n"
+msgstr "Changement de géométrie terminé"
+
+#: fdisk/sfdisk.c:425
+#, c-format
+msgid ""
+"Warning: unlikely number of sectors (%d) - usually at most 63\n"
+"This will give problems with all software that uses C/H/S addressing.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:429
+#, c-format
+msgid ""
+"\n"
+"Disk %s: %lu heads, %lu sectors, %lu cylinders\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:509
+#, c-format
+msgid ""
+"%s of partition %s has impossible value for head: %d (should be in 0-%d)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:514
+#, c-format
+msgid ""
+"%s of partition %s has impossible value for sector: %d (should be in 1-%d)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:519
+#, c-format
+msgid ""
+"%s of partition %s has impossible value for cylinders: %d (should be in "
+"0-%d)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:558
+msgid ""
+"Id  Name\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:703
+#, fuzzy
+msgid "Re-reading the partition table ...\n"
+msgstr "Seulement imprimer la table de partitions"
+
+#: fdisk/sfdisk.c:709
+msgid ""
+"The command to re-read the partition table failed\n"
+"Reboot your system now, before using mkfs\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:714
+#, c-format
+msgid "Error closing %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:752
+#, fuzzy, c-format
+msgid "%s: no such partition\n"
+msgstr "Mauvaise partition logique"
+
+#: fdisk/sfdisk.c:775
+msgid "unrecognized format - using sectors\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:813
+#, fuzzy, c-format
+msgid "# partition table of %s\n"
+msgstr "Table de partitions pour %s\n"
+
+#: fdisk/sfdisk.c:814
+msgid ""
+"unit: sectors\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:824
+#, c-format
+msgid "unimplemented format - using %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:828
+#, c-format
+msgid ""
+"Units = cylinders of %lu bytes, blocks of 1024 bytes, counting from %d\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:831
+msgid "   Device Boot Start     End   #cyls   #blocks   Id  System\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:836
+#, c-format
+msgid ""
+"Units = sectors of 512 bytes, counting from %d\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:838
+msgid "   Device Boot    Start       End  #sectors  Id  System\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:841
+#, c-format
+msgid ""
+"Units = blocks of 1024 bytes, counting from %d\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:843
+msgid "   Device Boot   Start       End   #blocks   Id  System\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:846
+#, c-format
+msgid ""
+"Units = megabytes of 1048576 bytes, blocks of 1024 bytes, counting from %d\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:848
+msgid "   Device Boot Start   End     MB   #blocks   Id  System\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:903
+#, c-format
+msgid " start=%9lu"
+msgstr ""
+
+#: fdisk/sfdisk.c:904
+#, fuzzy, c-format
+msgid ", size=%8lu"
+msgstr "Taillemax=%ld\n"
+
+#: fdisk/sfdisk.c:906
+#, c-format
+msgid ", Id=%2x"
+msgstr ""
+
+#: fdisk/sfdisk.c:908
+#, fuzzy
+msgid ", bootable"
+msgstr "Bootable"
+
+#: fdisk/sfdisk.c:969
+#, c-format
+msgid "\t\tstart: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:976
+#, c-format
+msgid "\t\tend: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:979
+#, c-format
+msgid "partition ends on cylinder %ld, beyond the end of the disk\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:989
+#, fuzzy
+msgid "No partitions found\n"
+msgstr "Ne pas créér la partition"
+
+#: fdisk/sfdisk.c:1034
+#, fuzzy
+msgid "no partition table present.\n"
+msgstr "Table de partition écrite sur disque"
+
+#: fdisk/sfdisk.c:1036
+#, c-format
+msgid "strange, only %d partitions defined.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1045
+#, c-format
+msgid "Warning: partition %s has size 0 but is not marked Empty\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1048
+#, c-format
+msgid "Warning: partition %s has size 0 and is bootable\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1051
+#, c-format
+msgid "Warning: partition %s has size 0 and nonzero start\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1062
+#, fuzzy, c-format
+msgid "Warning: partition %s "
+msgstr "Ecriture de la table de partition sur disque..."
+
+#: fdisk/sfdisk.c:1063
+#, fuzzy, c-format
+msgid "is not contained in partition %s\n"
+msgstr "Créér une nouvelle partition primaire"
+
+#: fdisk/sfdisk.c:1074
+#, c-format
+msgid "Warning: partitions %s "
+msgstr ""
+
+#: fdisk/sfdisk.c:1075
+#, c-format
+msgid "and %s overlap\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1086
+#, fuzzy, c-format
+msgid "Warning: partition %s contains part of "
+msgstr "Ecriture de la table de partition sur disque..."
+
+#: fdisk/sfdisk.c:1087
+#, fuzzy, c-format
+msgid "the partition table (sector %lu),\n"
+msgstr "Table de partition écrite sur disque"
+
+#: fdisk/sfdisk.c:1088
+msgid "and will destroy it when filled\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1097
+#, c-format
+msgid "Warning: partition %s starts at sector 0\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1101
+#, fuzzy, c-format
+msgid "Warning: partition %s extends past end of disk\n"
+msgstr "Ecriture de la table de partition sur disque..."
+
+#: fdisk/sfdisk.c:1115
+msgid "Among the primary partitions, at most one can be extended\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1116
+msgid " (although this is not a problem under Linux)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1133
+#, c-format
+msgid "Warning: partition %s does not start at a cylinder boundary\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1139
+#, c-format
+msgid "Warning: partition %s does not end at a cylinder boundary\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1157
+msgid ""
+"Warning: more than one primary partition is marked bootable (active)\n"
+"This does not matter for LILO, but the DOS MBR will not boot this disk.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1164
+msgid ""
+"Warning: usually one can boot from primary partitions only\n"
+"LILO disregards the `bootable' flag.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1170
+msgid ""
+"Warning: no primary partition is marked bootable (active)\n"
+"This does not matter for LILO, but the DOS MBR will not boot this disk.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1187
+#, c-format
+msgid ""
+"partition %s: start: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1196
+#, c-format
+msgid "partition %s: end: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1199
+#, c-format
+msgid "partition %s ends on cylinder %ld, beyond the end of the disk\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1232 fdisk/sfdisk.c:1309
+#, c-format
+msgid "too many partitions - ignoring those past nr (%d)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1247
+#, fuzzy
+msgid "tree of partitions?\n"
+msgstr "Ne pas créér la partition"
+
+#: fdisk/sfdisk.c:1351
+msgid "detected Disk Manager - unable to handle that\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1358
+msgid "DM6 signature found - giving up\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1378
+msgid "strange..., an extended partition of size 0?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1385
+msgid "strange..., a BSD partition of size 0?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1417
+#, c-format
+msgid " %s: unrecognized partition\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1429
+msgid "-n flag was given: Nothing changed\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1442
+msgid "Failed saving the old sectors - aborting\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1447
+#, fuzzy, c-format
+msgid "Failed writing the partition on %s\n"
+msgstr "Table de partition non écrite sur le disque"
+
+#: fdisk/sfdisk.c:1524
+msgid "long or incomplete input line - quitting\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1560
+#, c-format
+msgid "input error: `=' expected after %s field\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1567
+#, c-format
+msgid "input error: unexpected character %c after %s field\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1573
+#, c-format
+msgid "unrecognized input: %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1605
+msgid "number too big\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1609
+msgid "trailing junk after number\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1725
+#, fuzzy
+msgid "no room for partition descriptor\n"
+msgstr "Ne pas créér la partition"
+
+#: fdisk/sfdisk.c:1758
+msgid "cannot build surrounding extended partition\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1809
+#, fuzzy
+msgid "too many input fields\n"
+msgstr "Trops d'arguments.\n"
+
+#. no free blocks left - don't read any further
+#: fdisk/sfdisk.c:1843
+msgid "No room for more\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1862
+#, fuzzy
+msgid "Illegal type\n"
+msgstr "Touche non valide"
+
+#: fdisk/sfdisk.c:1894
+#, c-format
+msgid "Warning: exceeds max allowable size (%lu)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1899
+#, fuzzy
+msgid "Warning: empty partition\n"
+msgstr "Créér une nouvelle partition primaire"
+
+#: fdisk/sfdisk.c:1913
+#, c-format
+msgid "Warning: bad partition start (earliest %lu)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1926
+msgid "unrecognized bootable flag - choose - or *\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1943 fdisk/sfdisk.c:1956
+msgid "partial c,h,s specification?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1967
+#, fuzzy
+msgid "Extended partition not where expected\n"
+msgstr "Créér une nouvelle partition"
+
+#: fdisk/sfdisk.c:1999
+msgid "bad input\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2021
+#, fuzzy
+msgid "too many partitions\n"
+msgstr "Trops d'arguments.\n"
+
+#: fdisk/sfdisk.c:2054
+msgid ""
+"Input in the following format; absent fields get a default value.\n"
+"<start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s>\n"
+"Usually you only need to specify <start> and <size> (and perhaps <type>).\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2074
+msgid "version"
+msgstr ""
+
+#: fdisk/sfdisk.c:2080
+#, fuzzy, c-format
+msgid "Usage: %s [options] device ...\n"
+msgstr "usage: %s [ -n ] périphérique\n"
+
+#: fdisk/sfdisk.c:2081
+msgid "device: something like /dev/hda or /dev/sda"
+msgstr ""
+
+#: fdisk/sfdisk.c:2082
+msgid "useful options:"
+msgstr ""
+
+#: fdisk/sfdisk.c:2083
+msgid "    -s [or --show-size]: list size of a partition"
+msgstr ""
+
+#: fdisk/sfdisk.c:2084
+msgid "    -c [or --id]:        print or change partition Id"
+msgstr ""
+
+#: fdisk/sfdisk.c:2085
+msgid "    -l [or --list]:      list partitions of each device"
+msgstr ""
+
+#: fdisk/sfdisk.c:2086
+msgid "    -d [or --dump]:      idem, but in a format suitable for later input"
+msgstr ""
+
+#: fdisk/sfdisk.c:2087
+msgid "    -i [or --increment]: number cylinders etc. from 1 instead of from 0"
+msgstr ""
+
+#: fdisk/sfdisk.c:2088
+msgid ""
+"    -uS, -uB, -uC, -uM:  accept/report in units of "
+"sectors/blocks/cylinders/MB"
+msgstr ""
+
+#: fdisk/sfdisk.c:2089
+msgid "    -T [or --list-types]:list the known partition types"
+msgstr ""
+
+#: fdisk/sfdisk.c:2090
+msgid "    -D [or --DOS]:       for DOS-compatibility: waste a little space"
+msgstr ""
+
+#: fdisk/sfdisk.c:2091
+msgid "    -R [or --re-read]:   make kernel reread partition table"
+msgstr ""
+
+#: fdisk/sfdisk.c:2092
+#, fuzzy
+msgid "    -N# :                change only the partition with number #"
+msgstr ""
+"  u          Changement de l'unité utilisée pour la taille des partitions"
+
+#: fdisk/sfdisk.c:2093
+#, fuzzy
+msgid "    -n :                 do not actually write to disk"
+msgstr ""
+"                r - Données brutes (Exactement ce que cfdisk écrirait sur le "
+"disque)"
+
+#: fdisk/sfdisk.c:2094
+#, fuzzy
+msgid ""
+"    -O file :            save the sectors that will be overwritten to file"
+msgstr ""
+"                r - Données brutes (Exactement ce que cfdisk écrirait sur le "
+"disque)"
+
+#: fdisk/sfdisk.c:2095
+#, fuzzy
+msgid "    -I file :            restore these sectors again"
+msgstr "                s - Table triée par secteurs"
+
+#: fdisk/sfdisk.c:2096
+msgid "    -v [or --version]:   print version"
+msgstr ""
+
+#: fdisk/sfdisk.c:2097
+#, fuzzy
+msgid "    -? [or --help]:      print this message"
+msgstr "  h          Afficher cet écran"
+
+#: fdisk/sfdisk.c:2098
+msgid "dangerous options:"
+msgstr ""
+
+#: fdisk/sfdisk.c:2099
+msgid "    -g [or --show-geometry]: print the kernel's idea of the geometry"
+msgstr ""
+
+#: fdisk/sfdisk.c:2100
+msgid ""
+"    -x [or --show-extended]: also list extended partitions on output\n"
+"                             or expect descriptors for them on input"
+msgstr ""
+
+#: fdisk/sfdisk.c:2102
+msgid ""
+"    -L  [or --Linux]:      do not complain about things irrelevant for Linux"
+msgstr ""
+
+#: fdisk/sfdisk.c:2103
+msgid "    -q  [or --quiet]:      suppress warning messages"
+msgstr ""
+
+#: fdisk/sfdisk.c:2104
+msgid "    You can override the detected geometry using:"
+msgstr ""
+
+#: fdisk/sfdisk.c:2105
+#, fuzzy
+msgid "    -C# [or --cylinders #]:set the number of cylinders to use"
+msgstr "Entrez le nombre de cylindres: "
+
+#: fdisk/sfdisk.c:2106
+msgid "    -H# [or --heads #]:    set the number of heads to use"
+msgstr ""
+
+#: fdisk/sfdisk.c:2107
+msgid "    -S# [or --sectors #]:  set the number of sectors to use"
+msgstr ""
+
+#: fdisk/sfdisk.c:2108
+msgid "You can disable all consistency checking with:"
+msgstr ""
+
+#: fdisk/sfdisk.c:2109
+msgid "    -f  [or --force]:      do what I say, even if it is stupid"
+msgstr ""
+
+#: fdisk/sfdisk.c:2115
+msgid "Usage:"
+msgstr ""
+
+#: fdisk/sfdisk.c:2116
+#, c-format
+msgid "%s device\t\t list active partitions on device\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2117
+#, c-format
+msgid "%s device n1 n2 ... activate partitions n1 ..., inactivate the rest\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2118
+#, c-format
+msgid "%s -An device\t activate partition n, inactivate the other ones\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2237
+msgid "no command?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2360
+#, fuzzy, c-format
+msgid "total: %d blocks\n"
+msgstr "%ld blocs\n"
+
+#: fdisk/sfdisk.c:2397
+msgid "usage: sfdisk --print-id device partition-number\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2399
+msgid "usage: sfdisk --change-id device partition-number Id\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2401
+msgid "usage: sfdisk --id device partition-number [Id]\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2408
+msgid "can specify only one device (except with -l or -s)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2433
+#, fuzzy, c-format
+msgid "cannot open %s %s\n"
+msgstr "Impossible d'ouvrir le disque dur"
+
+#: fdisk/sfdisk.c:2433
+msgid "read-write"
+msgstr ""
+
+#: fdisk/sfdisk.c:2433
+msgid "for reading"
+msgstr ""
+
+#: fdisk/sfdisk.c:2458
+#, c-format
+msgid "%s: OK\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2475
+#, c-format
+msgid "%s: %d cylinders, %d heads, %d sectors/track\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2478
+#, c-format
+msgid "%s: unknown geometry\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2493
+#, c-format
+msgid "BLKGETSIZE ioctl failed for %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2570
+#, c-format
+msgid "bad active byte: 0x%x instead of 0x80\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2587 fdisk/sfdisk.c:2640 fdisk/sfdisk.c:2670
+#, fuzzy
+msgid ""
+"Done\n"
+"\n"
+msgstr "Terminé"
+
+#: fdisk/sfdisk.c:2596
+#, c-format
+msgid ""
+"You have %d active primary partitions. This does not matter for LILO,\n"
+"but the DOS MBR will only boot a disk with 1 active partition.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2610
+#, c-format
+msgid "partition %s has id %x and is not hidden\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2666
+#, c-format
+msgid "Bad Id %x\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2681
+msgid "This disk is currently in use.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2698
+#, c-format
+msgid "Fatal error: cannot find %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2701
+#, fuzzy, c-format
+msgid "Warning: %s is not a block device\n"
+msgstr "%s: n'est pas un lecteur de disquettes\n"
+
+#: fdisk/sfdisk.c:2706
+msgid "Checking that no-one is using this disk right now ...\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2708
+msgid ""
+"\n"
+"This disk is currently in use - repartitioning is probably a bad idea.Umount "
+"all file systems, and swapoff all swap partitions on this disk.Use the "
+"--no-reread flag to suppress this check.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2712
+msgid "Use the --force flag to overrule all checks.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2716
+msgid "OK"
+msgstr ""
+
+#: fdisk/sfdisk.c:2725
+msgid "Old situation:\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2729
+#, c-format
+msgid "Partition %d does not exist, cannot change it\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2737
+msgid "New situation:\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2742
+msgid ""
+"I don't like these partitions - nothing changed.\n"
+"(If you really want this, use the --force option.)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2745
+msgid "I don't like this - probably you should answer No\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2750
+msgid "Are you satisfied with this? [ynq] "
+msgstr ""
+
+#: fdisk/sfdisk.c:2752
+msgid "Do you want to write this to disk? [ynq] "
+msgstr ""
+
+#: fdisk/sfdisk.c:2757
+msgid ""
+"\n"
+"sfdisk: premature end of input\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2759
+msgid "Quitting - nothing changed\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2765
+msgid "Please answer one of y,n,q\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2773
+#, fuzzy
+msgid ""
+"Successfully wrote the new partition table\n"
+"\n"
+msgstr "Seulement imprimer la table de partitions"
+
+#: fdisk/sfdisk.c:2779
+msgid ""
+"If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)\n"
+"to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1\n"
+"(See fdisk(8).)\n"
+msgstr ""
+
+#: games/banner.c:1051
+msgid "usage: banner [-w width]\n"
+msgstr ""
+
+#: games/banner.c:1071
+msgid "Message: "
+msgstr ""
+
+#: games/banner.c:1105
+#, c-format
+msgid "The character '%c' is not in my character set"
+msgstr ""
+
+#: games/banner.c:1113
+#, c-format
+msgid "Message '%s' is OK\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:229
+msgid "Try `getopt --help' for more information.\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:295
+msgid "empty long option after -l or --long argument"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:315
+msgid "unknown shell after -s or --shell argument"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:320
+msgid "Usage: getopt optstring parameters\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:321
+msgid "       getopt [options] [--] optstring parameters\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:322
+msgid "       getopt [options] -o|--options optstring [options] [--]\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:323
+#, fuzzy
+msgid "              parameters\n"
+msgstr "            Premier  Dernier\n"
+
+#: getopt-1.0.3b/getopt.c:324
+msgid ""
+"  -a, --alternative            Allow long options starting with single -\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:325
+msgid "  -h, --help                   This small usage guide\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:326
+msgid "  -l, --longoptions=longopts   Long options to be recognized\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:327
+msgid ""
+"  -n, --name=progname          The name under which errors are reported\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:328
+msgid "  -o, --options=optstring      Short options to be recognized\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:329
+#, fuzzy
+msgid "  -q, --quiet                  Disable error reporting by getopt(3)\n"
+msgstr "                s - Table triée par secteurs"
+
+#: getopt-1.0.3b/getopt.c:330
+msgid "  -Q, --quiet-output           No normal output\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:331
+msgid "  -s, --shell=shell            Set shell quoting conventions\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:332
+msgid "  -T, --test                   Test for getopt(1) version\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:333
+msgid "  -V, --version                Output version information\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:387 getopt-1.0.3b/getopt.c:445
+msgid "missing optstring argument"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:433
+msgid "getopt (enhanced) 1.0.3\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:439
+msgid "internal error, contact the author."
+msgstr ""
+
+#: login-utils/agetty.c:300
+msgid "calling open_tty\n"
+msgstr ""
+
+#. Initialize the termio settings (raw mode, eight-bit, blocking i/o).
+#: login-utils/agetty.c:313
+msgid "calling termio_init\n"
+msgstr ""
+
+#: login-utils/agetty.c:318
+msgid "writing init string\n"
+msgstr ""
+
+#. Optionally detect the baud rate from the modem status message.
+#: login-utils/agetty.c:328
+msgid "before autobaud\n"
+msgstr ""
+
+#: login-utils/agetty.c:340
+msgid "waiting for cr-lf\n"
+msgstr ""
+
+#: login-utils/agetty.c:344
+#, c-format
+msgid "read %c\n"
+msgstr ""
+
+#. Read the login name.
+#: login-utils/agetty.c:353
+msgid "reading login name\n"
+msgstr ""
+
+#: login-utils/agetty.c:374
+#, c-format
+msgid "%s: can't exec %s: %m"
+msgstr ""
+
+#: login-utils/agetty.c:394
+msgid "can't malloc initstring"
+msgstr ""
+
+#: login-utils/agetty.c:456
+#, c-format
+msgid "bad timeout value: %s"
+msgstr ""
+
+#: login-utils/agetty.c:465
+msgid "after getopt loop\n"
+msgstr ""
+
+#: login-utils/agetty.c:483
+msgid "exiting parseargs\n"
+msgstr ""
+
+#: login-utils/agetty.c:496
+msgid "entered parse_speeds\n"
+msgstr ""
+
+#: login-utils/agetty.c:499
+#, c-format
+msgid "bad speed: %s"
+msgstr ""
+
+#: login-utils/agetty.c:501
+msgid "too many alternate speeds"
+msgstr ""
+
+#: login-utils/agetty.c:503
+msgid "exiting parsespeeds\n"
+msgstr ""
+
+#: login-utils/agetty.c:576
+#, c-format
+msgid "%s: open for update: %m"
+msgstr ""
+
+#: login-utils/agetty.c:592
+#, c-format
+msgid "%s: no utmp entry"
+msgstr ""
+
+#: login-utils/agetty.c:621
+#, c-format
+msgid "/dev: chdir() failed: %m"
+msgstr ""
+
+#: login-utils/agetty.c:625
+#, c-format
+msgid "/dev/%s: not a character device"
+msgstr ""
+
+#. ignore close(2) errors
+#: login-utils/agetty.c:632
+msgid "open(2)\n"
+msgstr ""
+
+#: login-utils/agetty.c:634
+#, c-format
+msgid "/dev/%s: cannot open as standard input: %m"
+msgstr ""
+
+#: login-utils/agetty.c:644
+#, c-format
+msgid "%s: not open for read/write"
+msgstr ""
+
+#. Set up standard output and standard error file descriptors.
+#: login-utils/agetty.c:648
+msgid "duping\n"
+msgstr ""
+
+#. set up stdout and stderr
+#: login-utils/agetty.c:650
+#, c-format
+msgid "%s: dup problem: %m"
+msgstr ""
+
+#: login-utils/agetty.c:712
+msgid "term_io 2\n"
+msgstr ""
+
+#: login-utils/agetty.c:894
+msgid "user"
+msgstr ""
+
+#: login-utils/agetty.c:894
+msgid "users"
+msgstr ""
+
+#: login-utils/agetty.c:982
+#, c-format
+msgid "%s: read: %m"
+msgstr ""
+
+#: login-utils/agetty.c:1028
+#, c-format
+msgid "%s: input overrun"
+msgstr ""
+
+#: login-utils/agetty.c:1152
+#, c-format
+msgid ""
+"Usage: %s [-hiLmw] [-l login_program] [-t timeout] [-I initstring] "
+"baud_rate,... line [termtype]\n"
+"or\t[-hiLmw] [-l login_program] [-t timeout] [-I initstring] line "
+"baud_rate,... [termtype]\n"
+msgstr ""
+
+#: login-utils/checktty.c:46
+#, c-format
+msgid "badlogin: %s\n"
+msgstr ""
+
+#: login-utils/checktty.c:52
+#, c-format
+msgid "sleepexit %d\n"
+msgstr ""
+
+#: login-utils/checktty.c:108 login-utils/checktty.c:130
+msgid "login: memory low, login may fail\n"
+msgstr ""
+
+#: login-utils/checktty.c:109
+msgid "can't malloc for ttyclass"
+msgstr ""
+
+#: login-utils/checktty.c:131
+msgid "can't malloc for grplist"
+msgstr ""
+
+#. there was a default rule, but user didn't match, reject!
+#: login-utils/checktty.c:424
+#, c-format
+msgid "Login on %s from %s denied by default.\n"
+msgstr ""
+
+#. if we get here, /etc/usertty exists, there's a line
+#. matching our username, but it doesn't contain the
+#. name of the tty where the user is trying to log in.
+#. So deny access!
+#: login-utils/checktty.c:435
+#, c-format
+msgid "Login on %s from %s denied.\n"
+msgstr ""
+
+#: login-utils/chfn.c:139 login-utils/chsh.c:118
+#, c-format
+msgid "%s: you (user %d) don't exist.\n"
+msgstr ""
+
+#: login-utils/chfn.c:146 login-utils/chsh.c:125
+#, c-format
+msgid "%s: user \"%s\" does not exist.\n"
+msgstr ""
+
+#: login-utils/chfn.c:151 login-utils/chsh.c:130
+#, c-format
+msgid "%s: can only change local entries; use yp%s instead.\n"
+msgstr ""
+
+#: login-utils/chfn.c:163
+#, c-format
+msgid "Changing finger information for %s.\n"
+msgstr ""
+
+#: login-utils/chfn.c:169 login-utils/chfn.c:173 login-utils/chfn.c:180
+#: login-utils/chfn.c:184 login-utils/chsh.c:154 login-utils/chsh.c:158
+#: login-utils/chsh.c:165 login-utils/chsh.c:169
+msgid "Password error."
+msgstr ""
+
+#: login-utils/chfn.c:193 login-utils/chsh.c:178 login-utils/login.c:650
+#: login-utils/newgrp.c:47 login-utils/simpleinit.c:219 mount/lomount.c:196
+#: mount/lomount.c:202 mount/losetup.c:115 mount/losetup.c:121
+msgid "Password: "
+msgstr ""
+
+#: login-utils/chfn.c:196 login-utils/chsh.c:181
+msgid "Incorrect password."
+msgstr ""
+
+#: login-utils/chfn.c:207
+msgid "Finger information not changed.\n"
+msgstr ""
+
+#: login-utils/chfn.c:310
+#, c-format
+msgid "Usage: %s [ -f full-name ] [ -o office ] "
+msgstr ""
+
+#: login-utils/chfn.c:311
+msgid ""
+"[ -p office-phone ]\n"
+"\t[ -h home-phone ] "
+msgstr ""
+
+#: login-utils/chfn.c:312
+msgid "[ --help ] [ --version ]\n"
+msgstr ""
+
+#: login-utils/chfn.c:381 login-utils/chsh.c:294
+msgid ""
+"\n"
+"Aborted.\n"
+msgstr ""
+
+#: login-utils/chfn.c:414
+msgid "field is too long.\n"
+msgstr ""
+
+#: login-utils/chfn.c:422
+#, c-format
+msgid "'%c' is not allowed.\n"
+msgstr ""
+
+#: login-utils/chfn.c:427
+msgid "Control characters are not allowed.\n"
+msgstr ""
+
+#: login-utils/chfn.c:492
+msgid "Finger information *NOT* changed.  Try again later.\n"
+msgstr ""
+
+#: login-utils/chfn.c:495
+msgid "Finger information changed.\n"
+msgstr ""
+
+#: login-utils/chfn.c:509 login-utils/chsh.c:412 sys-utils/cytune.c:315
+msgid "malloc failed"
+msgstr ""
+
+#: login-utils/chsh.c:141
+#, c-format
+msgid "%s: Your shell is not in /etc/shells, shell change denied\n"
+msgstr ""
+
+#: login-utils/chsh.c:148
+#, c-format
+msgid "Changing shell for %s.\n"
+msgstr ""
+
+#: login-utils/chsh.c:189
+msgid "New shell"
+msgstr ""
+
+#: login-utils/chsh.c:196
+#, fuzzy
+msgid "Shell not changed.\n"
+msgstr "Le disque a été changé.\n"
+
+#: login-utils/chsh.c:203
+msgid "Shell *NOT* changed.  Try again later.\n"
+msgstr ""
+
+#: login-utils/chsh.c:206
+#, fuzzy
+msgid "Shell changed.\n"
+msgstr "Le disque a été changé.\n"
+
+#: login-utils/chsh.c:274
+#, c-format
+msgid "Usage: %s [ -s shell ] "
+msgstr ""
+
+#: login-utils/chsh.c:275
+msgid "[ --list-shells ] [ --help ] [ --version ]\n"
+msgstr ""
+
+#: login-utils/chsh.c:276
+msgid "       [ username ]\n"
+msgstr ""
+
+#: login-utils/chsh.c:320
+#, c-format
+msgid "%s: shell must be a full path name.\n"
+msgstr ""
+
+#: login-utils/chsh.c:324
+#, c-format
+msgid "%s: \"%s\" does not exist.\n"
+msgstr ""
+
+#: login-utils/chsh.c:328
+#, c-format
+msgid "%s: \"%s\" is not executable.\n"
+msgstr ""
+
+#: login-utils/chsh.c:335
+#, c-format
+msgid "%s: '%c' is not allowed.\n"
+msgstr ""
+
+#: login-utils/chsh.c:339
+#, c-format
+msgid "%s: Control characters are not allowed.\n"
+msgstr ""
+
+#: login-utils/chsh.c:346
+#, c-format
+msgid "Warning: \"%s\" is not listed in /etc/shells\n"
+msgstr ""
+
+#: login-utils/chsh.c:348
+#, c-format
+msgid "%s: \"%s\" is not listed in /etc/shells.\n"
+msgstr ""
+
+#: login-utils/chsh.c:350
+#, c-format
+msgid "%s: use -l option to see list\n"
+msgstr ""
+
+#: login-utils/chsh.c:356
+#, c-format
+msgid "Warning: \"%s\" is not listed in /etc/shells.\n"
+msgstr ""
+
+#: login-utils/chsh.c:357
+#, c-format
+msgid "Use %s -l to see list.\n"
+msgstr ""
+
+#: login-utils/chsh.c:378
+msgid "No known shells.\n"
+msgstr ""
+
+#: login-utils/cryptocard.c:70
+msgid "couldn't open /dev/urandom"
+msgstr ""
+
+#: login-utils/cryptocard.c:75
+msgid "couldn't read random data from /dev/urandom"
+msgstr ""
+
+#: login-utils/cryptocard.c:98
+#, c-format
+msgid "can't open %s for reading"
+msgstr ""
+
+#: login-utils/cryptocard.c:102
+#, c-format
+msgid "can't stat(%s)"
+msgstr ""
+
+#: login-utils/cryptocard.c:108
+#, c-format
+msgid "%s doesn't have the correct filemodes"
+msgstr ""
+
+#: login-utils/cryptocard.c:113
+#, c-format
+msgid "can't read data from %s"
+msgstr ""
+
+#: login-utils/islocal.c:36
+#, c-format
+msgid "Can't read %s, exiting."
+msgstr ""
+
+#: login-utils/last.c:138
+msgid "usage: last [-#] [-f file] [-t tty] [-h hostname] [user ...]\n"
+msgstr ""
+
+#: login-utils/last.c:215
+#, c-format
+msgid "last: %s: "
+msgstr ""
+
+#: login-utils/last.c:270
+msgid "  still logged in"
+msgstr ""
+
+#: login-utils/last.c:291
+#, c-format
+msgid ""
+"\n"
+"wtmp begins %10.10s %5.5s \n"
+msgstr ""
+
+#: login-utils/last.c:352 login-utils/last.c:372 login-utils/last.c:427
+msgid "last: malloc failure.\n"
+msgstr ""
+
+#: login-utils/last.c:401
+msgid "last: gethostname"
+msgstr ""
+
+#: login-utils/last.c:454
+#, c-format
+msgid ""
+"\n"
+"interrupted %10.10s %5.5s \n"
+msgstr ""
+
+#: login-utils/login.c:349
+msgid "login: -h for super-user only.\n"
+msgstr ""
+
+#: login-utils/login.c:374
+msgid "usage: login [-fp] [username]\n"
+msgstr ""
+
+#: login-utils/login.c:476
+#, c-format
+msgid "login: PAM Failure, aborting: %s\n"
+msgstr ""
+
+#: login-utils/login.c:478
+#, c-format
+msgid "Couldn't initialize PAM: %s"
+msgstr ""
+
+#: login-utils/login.c:518
+#, c-format
+msgid "FAILED LOGIN %d FROM %s FOR %s, %s"
+msgstr ""
+
+#: login-utils/login.c:520
+msgid ""
+"Login incorrect\n"
+"\n"
+msgstr ""
+
+#: login-utils/login.c:529
+#, c-format
+msgid "TOO MANY LOGIN TRIES (%d) FROM %s FOR %s, %s"
+msgstr ""
+
+#: login-utils/login.c:533
+#, c-format
+msgid "FAILED LOGIN SESSION FROM %s FOR %s, %s"
+msgstr ""
+
+#: login-utils/login.c:536
+msgid ""
+"\n"
+"Login incorrect\n"
+msgstr ""
+
+#: login-utils/login.c:585
+#, fuzzy
+msgid "Illegal username"
+msgstr "Touche non valide"
+
+#: login-utils/login.c:628
+#, c-format
+msgid "%s login refused on this terminal.\n"
+msgstr ""
+
+#: login-utils/login.c:633
+#, c-format
+msgid "LOGIN %s REFUSED FROM %s ON TTY %s"
+msgstr ""
+
+#: login-utils/login.c:637
+#, c-format
+msgid "LOGIN %s REFUSED ON TTY %s"
+msgstr ""
+
+#: login-utils/login.c:689
+msgid "Login incorrect\n"
+msgstr ""
+
+#: login-utils/login.c:711
+msgid ""
+"Too many users logged on already.\n"
+"Try again later.\n"
+msgstr ""
+
+#: login-utils/login.c:715
+msgid "You have too many processes running.\n"
+msgstr ""
+
+#: login-utils/login.c:761
+msgid "Warning: no Kerberos tickets issued\n"
+msgstr ""
+
+#: login-utils/login.c:773
+msgid "Sorry -- your password has expired.\n"
+msgstr ""
+
+#: login-utils/login.c:779
+#, c-format
+msgid "Warning: your password expires on %s %d, %d\n"
+msgstr ""
+
+#: login-utils/login.c:787
+msgid "Sorry -- your account has expired.\n"
+msgstr ""
+
+#: login-utils/login.c:793
+#, c-format
+msgid "Warning: your account expires on %s %d, %d\n"
+msgstr ""
+
+#: login-utils/login.c:1012
+#, c-format
+msgid "DIALUP AT %s BY %s"
+msgstr ""
+
+#: login-utils/login.c:1019
+#, c-format
+msgid "ROOT LOGIN ON %s FROM %s"
+msgstr ""
+
+#: login-utils/login.c:1022
+#, c-format
+msgid "ROOT LOGIN ON %s"
+msgstr ""
+
+#: login-utils/login.c:1025
+#, c-format
+msgid "LOGIN ON %s BY %s FROM %s"
+msgstr ""
+
+#: login-utils/login.c:1028
+#, c-format
+msgid "LOGIN ON %s BY %s"
+msgstr ""
+
+#: login-utils/login.c:1039
+#, c-format
+msgid "You have %smail.\n"
+msgstr ""
+
+#: login-utils/login.c:1040
+msgid "new "
+msgstr ""
+
+#. error in fork()
+#: login-utils/login.c:1057
+#, c-format
+msgid "login: failure forking: %s"
+msgstr ""
+
+#: login-utils/login.c:1072
+msgid "setuid() failed"
+msgstr ""
+
+#: login-utils/login.c:1078
+#, c-format
+msgid "No directory %s!\n"
+msgstr ""
+
+#: login-utils/login.c:1082
+msgid "Logging in with home = \"/\".\n"
+msgstr ""
+
+#: login-utils/login.c:1090
+msgid "login: no memory for shell script.\n"
+msgstr ""
+
+#: login-utils/login.c:1116
+#, c-format
+msgid "login: couldn't exec shell script: %s.\n"
+msgstr ""
+
+#: login-utils/login.c:1119
+#, c-format
+msgid "login: no shell: %s.\n"
+msgstr ""
+
+#: login-utils/login.c:1135
+#, c-format
+msgid ""
+"\n"
+"%s login: "
+msgstr ""
+
+#: login-utils/login.c:1146
+msgid "login name much too long.\n"
+msgstr ""
+
+#: login-utils/login.c:1147
+msgid "NAME too long"
+msgstr ""
+
+#: login-utils/login.c:1154
+msgid "login names may not start with '-'.\n"
+msgstr ""
+
+#: login-utils/login.c:1164
+msgid "too many bare linefeeds.\n"
+msgstr ""
+
+#: login-utils/login.c:1165
+msgid "EXCESSIVE linefeeds"
+msgstr ""
+
+#: login-utils/login.c:1176
+#, c-format
+msgid "Login timed out after %d seconds\n"
+msgstr ""
+
+#: login-utils/login.c:1276
+#, c-format
+msgid "Last login: %.*s "
+msgstr ""
+
+#: login-utils/login.c:1280
+#, c-format
+msgid "from %.*s\n"
+msgstr ""
+
+#: login-utils/login.c:1283
+#, c-format
+msgid "on %.*s\n"
+msgstr ""
+
+#: login-utils/login.c:1306
+#, c-format
+msgid "LOGIN FAILURE FROM %s, %s"
+msgstr ""
+
+#: login-utils/login.c:1309
+#, c-format
+msgid "LOGIN FAILURE ON %s, %s"
+msgstr ""
+
+#: login-utils/login.c:1313
+#, c-format
+msgid "%d LOGIN FAILURES FROM %s, %s"
+msgstr ""
+
+#: login-utils/login.c:1316
+#, c-format
+msgid "%d LOGIN FAILURES ON %s, %s"
+msgstr ""
+
+#: login-utils/mesg.c:89
+msgid "is y\n"
+msgstr ""
+
+#: login-utils/mesg.c:92
+msgid "is n\n"
+msgstr ""
+
+#: login-utils/mesg.c:112
+msgid "usage: mesg [y | n]\n"
+msgstr ""
+
+#: login-utils/newgrp.c:67
+msgid "newgrp: Who are you?"
+msgstr ""
+
+#: login-utils/newgrp.c:75 login-utils/newgrp.c:85
+msgid "newgrp: setgid"
+msgstr ""
+
+#: login-utils/newgrp.c:80
+msgid "newgrp: No such group."
+msgstr ""
+
+#: login-utils/newgrp.c:89
+msgid "newgrp: Permission denied"
+msgstr ""
+
+#: login-utils/newgrp.c:96
+msgid "newgrp: setuid"
+msgstr ""
+
+#: login-utils/newgrp.c:102
+msgid "No shell"
+msgstr ""
+
+#: login-utils/passwd.c:165
+msgid "The password must have at least 6 characters, try again.\n"
+msgstr ""
+
+#: login-utils/passwd.c:178
+msgid "The password must contain characters out of two of the following\n"
+msgstr ""
+
+#: login-utils/passwd.c:179
+msgid "classes:  upper and lower case letters, digits and non alphanumeric\n"
+msgstr ""
+
+#: login-utils/passwd.c:180
+msgid "characters. See passwd(1) for more information.\n"
+msgstr ""
+
+#: login-utils/passwd.c:185
+msgid "You cannot reuse the old password.\n"
+msgstr ""
+
+#: login-utils/passwd.c:190
+msgid "Please don't use something like your username as password!\n"
+msgstr ""
+
+#: login-utils/passwd.c:201 login-utils/passwd.c:208
+msgid "Please don't use something like your realname as password!\n"
+msgstr ""
+
+#: login-utils/passwd.c:225
+msgid "Usage: passwd [username [password]]\n"
+msgstr ""
+
+#: login-utils/passwd.c:226
+msgid "Only root may use the one and two argument forms.\n"
+msgstr ""
+
+#: login-utils/passwd.c:282
+msgid "Usage: passwd [-foqsvV] [user [password]]\n"
+msgstr ""
+
+#: login-utils/passwd.c:302
+#, c-format
+msgid "Can't exec %s: %s\n"
+msgstr ""
+
+#: login-utils/passwd.c:313
+msgid "Cannot find login name"
+msgstr ""
+
+#: login-utils/passwd.c:320 login-utils/passwd.c:327
+msgid "Only root can change the password for others.\n"
+msgstr ""
+
+#: login-utils/passwd.c:335
+msgid "Too many arguments.\n"
+msgstr "Trops d'arguments.\n"
+
+#: login-utils/passwd.c:340
+#, c-format
+msgid "Can't find username anywhere. Is `%s' really a user?"
+msgstr ""
+"Impossible de trouver ce nom d'utilisateur. Es ce que `%s' est réélement un "
+"utilisateur?"
+
+#: login-utils/passwd.c:344
+msgid "Sorry, I can only change local passwords. Use yppasswd instead."
+msgstr ""
+"Désolé, je peux seulement changer les mots de passe locaux. Utilisez "
+"yppasswd à la place."
+
+#: login-utils/passwd.c:350
+msgid "UID and username does not match, imposter!"
+msgstr "UID et nom d'utilisaeur ne correspondent pas, imposteur!"
+
+#: login-utils/passwd.c:355
+#, c-format
+msgid "Changing password for %s\n"
+msgstr "Changement du mot de passe pour %s\n"
+
+#: login-utils/passwd.c:359
+msgid "Enter old password: "
+msgstr "Donnez l'ancien mot de passe: "
+
+#: login-utils/passwd.c:361
+msgid "Illegal password, imposter."
+msgstr "Mot de passe invalide, imposteur."
+
+#: login-utils/passwd.c:373
+msgid "Enter new password: "
+msgstr "Donnez le nouveau mot de passe: "
+
+#: login-utils/passwd.c:375
+msgid "Password not changed."
+msgstr "Mot de passe inchangé."
+
+#: login-utils/passwd.c:385
+msgid "Re-type new password: "
+msgstr "Redonnez le nouveau mot de passe: "
+
+#: login-utils/passwd.c:388
+msgid "You misspelled it. Password not changed."
+msgstr "Vous avez fait une faute de frappe. Mot de passe inchangé."
+
+#: login-utils/passwd.c:403
+#, c-format
+msgid "password changed, user %s"
+msgstr "mot de passe changé pour l'utilisateur %s"
+
+#: login-utils/passwd.c:406
+msgid "ROOT PASSWORD CHANGED"
+msgstr "MOT DE PASSE DE ROOT CHANGÉ"
+
+#: login-utils/passwd.c:408
+#, c-format
+msgid "password changed by root, user %s"
+msgstr ""
+
+#: login-utils/passwd.c:415
+msgid "calling setpwnam to set password.\n"
+msgstr ""
+
+#: login-utils/passwd.c:419
+msgid "Password *NOT* changed.  Try again later.\n"
+msgstr "Mot de passe *NON* changé. Essayez à nouveau plus tard.\n"
+
+#: login-utils/passwd.c:425
+msgid "Password changed.\n"
+msgstr "Mot de passe changé.\n"
+
+#: login-utils/shutdown.c:85
+msgid "Usage: shutdown [-h|-r] [-fqs] [now|hh:ss|+mins]\n"
+msgstr "Usage: shutdown [-h|-r] [-fqs] [now|hh:ss|+mins]\n"
+
+#: login-utils/shutdown.c:103
+msgid "Shutdown process aborted"
+msgstr ""
+
+#: login-utils/shutdown.c:125
+#, c-format
+msgid "%s: Only root can shut a system down.\n"
+msgstr "%s: Seulement le super-utilisateur peux éteindre le système.\n"
+
+#: login-utils/shutdown.c:219
+msgid "That must be tomorrow, "
+msgstr ""
+
+#: login-utils/shutdown.c:220
+msgid "can't you wait till then?\n"
+msgstr ""
+
+#: login-utils/shutdown.c:271
+msgid "for maintenance; bounce, bounce"
+msgstr ""
+
+#: login-utils/shutdown.c:275
+#, c-format
+msgid "timeout = %d, quiet = %d, reboot = %d\n"
+msgstr ""
+
+#: login-utils/shutdown.c:300
+msgid "The system is being shut down within 5 minutes"
+msgstr ""
+
+#: login-utils/shutdown.c:304
+msgid "Login is therefore prohibited."
+msgstr ""
+
+#: login-utils/shutdown.c:325
+#, c-format
+msgid "%s by %s: %s"
+msgstr ""
+
+#: login-utils/shutdown.c:326
+msgid "rebooted"
+msgstr ""
+
+#: login-utils/shutdown.c:326
+msgid "halted"
+msgstr ""
+
+#. RB_AUTOBOOT
+#: login-utils/shutdown.c:369
+msgid ""
+"\n"
+"Why am I still alive after reboot?"
+msgstr ""
+"\n"
+"Pourquoi suis-je encore vivant après le redémarrage?"
+
+#: login-utils/shutdown.c:371
+msgid ""
+"\n"
+"Now you can turn off the power..."
+msgstr ""
+"\n"
+"Maintenant vous pouvez éteindre la machine..."
+
+#: login-utils/shutdown.c:386
+msgid "Calling kernel power-off facility...\n"
+msgstr ""
+
+#: login-utils/shutdown.c:389
+#, c-format
+msgid "Error powering off\t%s\n"
+msgstr ""
+
+#: login-utils/shutdown.c:397
+#, c-format
+msgid "Executing the program \"%s\" ...\n"
+msgstr ""
+
+#: login-utils/shutdown.c:400
+#, c-format
+msgid "Error executing\t%s\n"
+msgstr ""
+
+#: login-utils/shutdown.c:423
+#, c-format
+msgid "\aURGENT: broadcast message from %s:"
+msgstr ""
+
+#: login-utils/shutdown.c:429
+msgid "System going down IMMEDIATELY!\n"
+msgstr "Arrêt IMMÉDIAT du système!\n"
+
+#: login-utils/shutdown.c:432
+#, c-format
+msgid "System going down in %d hour%s %d minutes"
+msgstr ""
+
+#: login-utils/shutdown.c:435
+#, c-format
+msgid "System going down in %d minute%s\n"
+msgstr ""
+
+#: login-utils/shutdown.c:441
+#, c-format
+msgid "\t... %s ...\n"
+msgstr "\t... %s ...\n"
+
+#: login-utils/shutdown.c:498
+msgid "Cannot fork for swapoff. Shrug!"
+msgstr ""
+
+#: login-utils/shutdown.c:506
+msgid "Cannot exec swapoff, "
+msgstr ""
+
+#: login-utils/shutdown.c:507
+msgid "hoping umount will do the trick."
+msgstr ""
+
+#: login-utils/shutdown.c:525
+msgid "Cannot fork for umount, trying manually."
+msgstr ""
+
+#: login-utils/shutdown.c:531
+msgid "Cannot exec "
+msgstr ""
+
+#: login-utils/shutdown.c:531
+msgid ", trying umount."
+msgstr ""
+
+#: login-utils/shutdown.c:533
+msgid "Cannot exec umount, giving up on umount."
+msgstr ""
+
+#: login-utils/shutdown.c:538
+msgid "Unmounting any remaining filesystems..."
+msgstr ""
+
+#: login-utils/shutdown.c:574
+#, c-format
+msgid "shutdown: Couldn't umount %s\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:79
+msgid "Booting to single user mode.\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:83
+msgid "exec of single user shell failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:87
+msgid "fork of single user shell failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:226
+msgid ""
+"\n"
+"Wrong password.\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:252
+msgid "exec rc failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:255
+msgid "open of rc file failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:261
+msgid "fork of rc shell failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:273
+msgid "fork failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:302 text-utils/more.c:1469
+msgid "exec failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:324
+msgid "cannot open inittab\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:362
+msgid "no TERM or cannot stat tty\n"
+msgstr ""
+
+#: login-utils/ttymsg.c:79
+msgid "too many iov's (change code in wall/ttymsg.c)"
+msgstr ""
+
+#. A slash is an attempt to break security...
+#: login-utils/ttymsg.c:83
+#, c-format
+msgid "'/' in \"%s\""
+msgstr ""
+
+#: login-utils/ttymsg.c:88
+msgid "excessively long line arg"
+msgstr ""
+
+#: login-utils/ttymsg.c:142
+msgid "cannot fork"
+msgstr ""
+
+#: login-utils/ttymsg.c:145
+#, c-format
+msgid "fork: %s"
+msgstr ""
+
+#: login-utils/ttymsg.c:172
+#, c-format
+msgid "%s: BAD ERROR"
+msgstr ""
+
+#: login-utils/vipw.c:147
+#, c-format
+msgid "%s: the %s file is busy.\n"
+msgstr ""
+
+#: login-utils/vipw.c:163
+#, c-format
+msgid "%s: the %s file is busy (%s present)\n"
+msgstr ""
+
+#: login-utils/vipw.c:168
+#, c-format
+msgid "%s: can't link %s: %s\n"
+msgstr ""
+
+#: login-utils/vipw.c:188
+#, c-format
+msgid "%s: can't unlock %s: %s (your changes are still in %s)\n"
+msgstr ""
+
+#: login-utils/vipw.c:212
+#, c-format
+msgid "%s: Cannot fork\n"
+msgstr ""
+
+#: login-utils/vipw.c:252
+#, fuzzy, c-format
+msgid "%s: %s unchanged\n"
+msgstr "Le disque a été changé.\n"
+
+#: login-utils/vipw.c:295
+#, c-format
+msgid "%s: no changes made\n"
+msgstr ""
+
+#: login-utils/wall.c:104
+msgid "usage: wall [file]\n"
+msgstr ""
+
+#: login-utils/wall.c:115
+#, c-format
+msgid "wall: cannot read %s.\n"
+msgstr ""
+
+#: login-utils/wall.c:132
+#, c-format
+msgid "wall: %s\n"
+msgstr ""
+
+#: login-utils/wall.c:154
+msgid "wall: can't open temporary file.\n"
+msgstr ""
+
+#: login-utils/wall.c:181
+#, c-format
+msgid "Broadcast Message from %s@%s"
+msgstr ""
+
+#: login-utils/wall.c:191
+#, c-format
+msgid "wall: can't read %s.\n"
+msgstr ""
+
+#: login-utils/wall.c:216
+msgid "wall: can't stat temporary file.\n"
+msgstr ""
+
+#: login-utils/wall.c:225
+msgid "wall: can't read temporary file.\n"
+msgstr ""
+
+#: misc-utils/cal.c:198
+msgid "illegal month value: use 1-12"
+msgstr ""
+
+#: misc-utils/cal.c:202
+msgid "illegal year value: use 1-9999"
+msgstr ""
+
+#: misc-utils/cal.c:498
+msgid "usage: cal [-mjy] [[month] year]\n"
+msgstr ""
+
+#: misc-utils/ddate.c:184
+#, c-format
+msgid "usage: %s [+format] [day month year]\n"
+msgstr ""
+
+#. handle St. Tib's Day
+#: misc-utils/ddate.c:230
+msgid "St. Tib's Day"
+msgstr ""
+
+#: misc-utils/kill.c:199
+#, c-format
+msgid "%s: unknown signal %s\n"
+msgstr ""
+
+#: misc-utils/kill.c:261
+#, c-format
+msgid "%s: can't find process \"%s\"\n"
+msgstr ""
+
+#: misc-utils/kill.c:303
+#, c-format
+msgid "%s: unknown signal %s; valid signals:\n"
+msgstr ""
+
+#: misc-utils/kill.c:343
+#, c-format
+msgid "usage: %s [ -s signal | -p ] [ -a ] pid ...\n"
+msgstr ""
+
+#: misc-utils/kill.c:344
+#, c-format
+msgid "       %s -l [ signal ]\n"
+msgstr ""
+
+#: misc-utils/logger.c:135
+#, c-format
+msgid "logger: %s: %s.\n"
+msgstr ""
+
+#: misc-utils/logger.c:232
+#, c-format
+msgid "logger: unknown facility name: %s.\n"
+msgstr ""
+
+#: misc-utils/logger.c:244
+#, c-format
+msgid "logger: unknown priority name: %s.\n"
+msgstr ""
+
+#: misc-utils/logger.c:271
+msgid "logger: [-is] [-f file] [-p pri] [-t tag] [-u socket] [ message ... ]\n"
+msgstr ""
+
+#: misc-utils/look.c:170 misc-utils/setterm.c:1153 text-utils/more.c:1782
+#: text-utils/more.c:1793
+msgid "Out of memory"
+msgstr ""
+
+#: misc-utils/look.c:340
+msgid "usage: look [-dfa] [-t char] string [file]\n"
+msgstr ""
+
+#: misc-utils/look.c:365
+msgid "look: "
+msgstr ""
+
+#: misc-utils/mcookie.c:95 misc-utils/mcookie.c:120
+#, c-format
+msgid "Could not open %s\n"
+msgstr ""
+
+#: misc-utils/mcookie.c:103 misc-utils/mcookie.c:117
+#, c-format
+msgid "Got %d bytes from %s\n"
+msgstr ""
+
+#: misc-utils/namei.c:107
+#, c-format
+msgid "namei: unable to get current directory - %s\n"
+msgstr ""
+
+#: misc-utils/namei.c:118
+#, c-format
+msgid "namei: unable to chdir to %s - %s (%d)\n"
+msgstr ""
+
+#: misc-utils/namei.c:128
+msgid "usage: namei [-mx] pathname [pathname ...]\n"
+msgstr ""
+
+#: misc-utils/namei.c:157
+msgid "namei: could not chdir to root!\n"
+msgstr ""
+
+#: misc-utils/namei.c:164
+msgid "namei: could not stat root!\n"
+msgstr ""
+
+#: misc-utils/namei.c:219
+#, c-format
+msgid " ? could not chdir into %s - %s (%d)\n"
+msgstr ""
+
+#: misc-utils/namei.c:248
+#, c-format
+msgid " ? problems reading symlink %s - %s (%d)\n"
+msgstr ""
+
+#: misc-utils/namei.c:258
+msgid "  *** EXCEEDED UNIX LIMIT OF SYMLINKS ***"
+msgstr ""
+
+#: misc-utils/namei.c:294
+#, c-format
+msgid "namei: unknown file type 0%06o on file %s\n"
+msgstr ""
+
+#: misc-utils/script.c:108
+msgid "usage: script [-a] [file]\n"
+msgstr ""
+
+#: misc-utils/script.c:128
+#, c-format
+msgid "Script started, file is %s\n"
+msgstr ""
+
+#: misc-utils/script.c:197
+#, c-format
+msgid "Script started on %s"
+msgstr ""
+
+#: misc-utils/script.c:263
+#, c-format
+msgid ""
+"\n"
+"Script done on %s"
+msgstr ""
+
+#: misc-utils/script.c:268
+#, c-format
+msgid "Script done, file is %s\n"
+msgstr ""
+
+#: misc-utils/script.c:280
+msgid "openpty failed\n"
+msgstr ""
+
+#: misc-utils/script.c:314
+msgid "Out of pty's\n"
+msgstr ""
+
+#. Print error message about arguments, and the command's syntax.
+#: misc-utils/setterm.c:745
+#, c-format
+msgid "%s: Argument error, usage\n"
+msgstr ""
+
+#: misc-utils/setterm.c:747
+#, c-format
+msgid "%s\n"
+msgstr ""
+
+#: misc-utils/setterm.c:748
+msgid "  [ -term terminal_name ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:749
+msgid "  [ -reset ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:750
+msgid "  [ -initialize ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:751
+msgid "  [ -cursor [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:753
+msgid "  [ -snow [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:754
+msgid "  [ -softscroll [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:755
+msgid "  [ -keyboard pc|olivetti|dutch|extended ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:757
+msgid "  [ -repeat [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:758
+msgid "  [ -appcursorkeys [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:759
+msgid "  [ -linewrap [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:760
+msgid "  [ -default ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:761
+msgid "  [ -foreground black|blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:762 misc-utils/setterm.c:764
+msgid "|red|magenta|yellow|white|default ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:763
+msgid "  [ -background black|blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:765
+msgid "  [ -ulcolor black|grey|blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:766 misc-utils/setterm.c:768 misc-utils/setterm.c:770
+#: misc-utils/setterm.c:772
+msgid "|red|magenta|yellow|white ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:767
+msgid "  [ -ulcolor bright blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:769
+msgid "  [ -hbcolor black|grey|blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:771
+msgid "  [ -hbcolor bright blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:774
+msgid "  [ -standout [ attr ] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:776
+msgid "  [ -inversescreen [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:777
+msgid "  [ -bold [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:778
+msgid "  [ -half-bright [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:779
+msgid "  [ -blink [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:780
+msgid "  [ -reverse [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:781
+msgid "  [ -underline [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:782
+msgid "  [ -store ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:783
+msgid "  [ -clear [all|rest] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:784
+msgid "  [ -tabs [ tab1 tab2 tab3 ... ] ]      (tabn = 1-160)\n"
+msgstr ""
+
+#: misc-utils/setterm.c:785
+msgid "  [ -clrtabs [ tab1 tab2 tab3 ... ] ]   (tabn = 1-160)\n"
+msgstr ""
+
+#: misc-utils/setterm.c:786
+msgid "  [ -regtabs [1-160] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:787
+msgid "  [ -blank [0-60] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:788
+msgid "  [ -dump   [1-NR_CONSOLES] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:789
+msgid "  [ -append [1-NR_CONSOLES] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:790
+msgid "  [ -file dumpfilename ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:791
+msgid "  [ -msg [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:792
+msgid "  [ -msglevel [0-8] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:793
+msgid "  [ -powersave [on|vsync|hsync|powerdown|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:794
+msgid "  [ -powerdown [0-60] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:795
+msgid "  [ -blength [0-2000] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:796
+msgid "  [ -bfreq freqnumber ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:841
+msgid "keyboard.pc"
+msgstr ""
+
+#: misc-utils/setterm.c:844
+msgid "keyboard.olivetti"
+msgstr ""
+
+#: misc-utils/setterm.c:847
+msgid "keyboard.dutch"
+msgstr ""
+
+#: misc-utils/setterm.c:850
+msgid "keyboard.extended"
+msgstr ""
+
+#: misc-utils/setterm.c:884
+msgid "snow.on"
+msgstr ""
+
+#: misc-utils/setterm.c:886
+msgid "snow.off"
+msgstr ""
+
+#: misc-utils/setterm.c:892
+msgid "softscroll.on"
+msgstr ""
+
+#: misc-utils/setterm.c:894
+msgid "softscroll.off"
+msgstr ""
+
+#: misc-utils/setterm.c:1069
+msgid "cannot (un)set powersave mode\n"
+msgstr ""
+
+#: misc-utils/setterm.c:1108 misc-utils/setterm.c:1116
+#, c-format
+msgid "klogctl error: %s\n"
+msgstr ""
+
+#: misc-utils/setterm.c:1157
+#, c-format
+msgid "Error reading %s\n"
+msgstr ""
+
+#: misc-utils/setterm.c:1172
+msgid "Error writing screendump\n"
+msgstr ""
+
+#: misc-utils/setterm.c:1186
+#, c-format
+msgid "couldn't read %s, and cannot ioctl dump\n"
+msgstr ""
+
+#: misc-utils/setterm.c:1251
+#, c-format
+msgid "%s: $TERM is not defined.\n"
+msgstr ""
+
+#: misc-utils/tsort.c:119
+msgid "usage: tsort [ inputfile ]\n"
+msgstr ""
+
+#: misc-utils/tsort.c:156
+msgid "tsort: odd data count.\n"
+msgstr ""
+
+#: misc-utils/tsort.c:321
+msgid "tsort: cycle in data.\n"
+msgstr ""
+
+#: misc-utils/tsort.c:334
+msgid "tsort: internal error -- could not find cycle.\n"
+msgstr ""
+
+#: misc-utils/whereis.c:158
+msgid "whereis [ -sbmu ] [ -SBM dir ... -f ] name...\n"
+msgstr ""
+
+#: misc-utils/write.c:101
+msgid "write: can't find your tty's name\n"
+msgstr ""
+
+#: misc-utils/write.c:112
+msgid "write: you have write permission turned off.\n"
+msgstr ""
+
+#: misc-utils/write.c:133
+#, c-format
+msgid "write: %s is not logged in on %s.\n"
+msgstr ""
+
+#: misc-utils/write.c:141
+#, c-format
+msgid "write: %s has messages disabled on %s\n"
+msgstr ""
+
+#: misc-utils/write.c:148
+msgid "usage: write user [tty]\n"
+msgstr ""
+
+#: misc-utils/write.c:247
+#, c-format
+msgid "write: %s is not logged in\n"
+msgstr ""
+
+#: misc-utils/write.c:256
+#, c-format
+msgid "write: %s has messages disabled\n"
+msgstr ""
+
+#: misc-utils/write.c:260
+#, c-format
+msgid "write: %s is logged in more than once; writing to %s\n"
+msgstr ""
+
+#: misc-utils/write.c:327
+#, c-format
+msgid "Message from %s@%s on %s at %s ..."
+msgstr ""
+
+#: mount/fstab.c:113
+#, c-format
+msgid "warning: error reading %s: %s"
+msgstr ""
+
+#: mount/fstab.c:140 mount/fstab.c:162
+#, c-format
+msgid "warning: can't open %s: %s"
+msgstr ""
+
+#: mount/fstab.c:144
+#, c-format
+msgid "mount: could not open %s - using %s instead\n"
+msgstr ""
+
+#. MOUNTLOCK_LINKTARGET does not exist (as a file)
+#. and we cannot create it. Read-only filesystem?
+#. Too many files open in the system? Filesystem full?
+#: mount/fstab.c:346
+#, c-format
+msgid "can't create lock file %s: %s (use -n flag to override)"
+msgstr ""
+
+#: mount/fstab.c:358
+#, c-format
+msgid "can't link lock file %s: %s (use -n flag to override)"
+msgstr ""
+
+#: mount/fstab.c:369
+#, c-format
+msgid "can't open lock file %s: %s (use -n flag to override)"
+msgstr ""
+
+#: mount/fstab.c:383
+#, c-format
+msgid "Can't lock lock file %s: %s\n"
+msgstr ""
+
+#: mount/fstab.c:392
+#, c-format
+msgid "can't lock lock file %s: %s"
+msgstr ""
+
+#: mount/fstab.c:394
+msgid "timed out"
+msgstr ""
+
+#: mount/fstab.c:438
+#, c-format
+msgid "cannot open %s (%s) - mtab not updated"
+msgstr ""
+
+#: mount/fstab.c:445
+#, c-format
+msgid "can't open %s (%s) - mtab not updated"
+msgstr ""
+
+#: mount/fstab.c:470
+msgid "mount: warning: cannot change mounted device with a remount\n"
+msgstr ""
+
+#: mount/fstab.c:475
+msgid "mount: warning: cannot change filesystem type with a remount\n"
+msgstr ""
+
+#: mount/fstab.c:482 mount/fstab.c:486
+#, c-format
+msgid "error writing %s: %s"
+msgstr ""
+
+#: mount/fstab.c:491
+#, c-format
+msgid "error changing mode of %s: %s\n"
+msgstr ""
+
+#: mount/fstab.c:496
+#, c-format
+msgid "can't rename %s to %s: %s\n"
+msgstr ""
+
+#: mount/lomount.c:75
+#, c-format
+msgid "loop: can't open device %s: %s\n"
+msgstr ""
+
+#: mount/lomount.c:80
+#, c-format
+msgid "loop: can't get info on device %s: %s\n"
+msgstr ""
+
+#: mount/lomount.c:85 mount/losetup.c:74
+#, c-format
+msgid "%s: [%04x]:%ld (%s) offset %d, %s encryption\n"
+msgstr ""
+
+#: mount/lomount.c:139
+msgid "mount: could not find any device /dev/loop#"
+msgstr ""
+
+#: mount/lomount.c:143
+msgid ""
+"mount: Could not find any loop device.\n"
+"       Maybe /dev/loop# has a wrong major number?"
+msgstr ""
+
+#: mount/lomount.c:147
+#, c-format
+msgid ""
+"mount: Could not find any loop device, and, according to %s,\n"
+"       this kernel does not know about the loop device.\n"
+"       (If so, then recompile or `insmod loop.o'.)"
+msgstr ""
+
+#: mount/lomount.c:152
+msgid ""
+"mount: Could not find any loop device. Maybe this kernel does not know\n"
+"       about the loop device (then recompile or `insmod loop.o'), or\n"
+"       maybe /dev/loop# has the wrong major number?"
+msgstr ""
+
+#: mount/lomount.c:156
+msgid "mount: could not find any free loop device"
+msgstr ""
+
+#: mount/lomount.c:187 mount/losetup.c:106
+#, c-format
+msgid "Unsupported encryption type %s\n"
+msgstr ""
+
+#: mount/lomount.c:206 mount/losetup.c:125
+msgid "Init (up to 16 hex digits): "
+msgstr ""
+
+#: mount/lomount.c:213 mount/losetup.c:132
+#, c-format
+msgid "Non-hex digit '%c'.\n"
+msgstr ""
+
+#: mount/lomount.c:219 mount/losetup.c:138
+#, c-format
+msgid "Don't know how to get key for encryption system %d\n"
+msgstr ""
+
+#: mount/lomount.c:235
+#, c-format
+msgid "set_loop(%s,%s,%d): success\n"
+msgstr ""
+
+#: mount/lomount.c:245
+#, c-format
+msgid "loop: can't delete device %s: %s\n"
+msgstr ""
+
+#: mount/lomount.c:255
+#, c-format
+msgid "del_loop(%s): success\n"
+msgstr ""
+
+#: mount/lomount.c:263
+msgid "This mount was compiled without loop support. Please recompile.\n"
+msgstr ""
+
+#: mount/losetup.c:70
+msgid "Cannot get loop info"
+msgstr ""
+
+#: mount/losetup.c:174
+#, c-format
+msgid ""
+"usage:\n"
+"  %s loop_device                                      # give info\n"
+"  %s -d loop_device                                   # delete\n"
+"  %s [ -e encryption ] [ -o offset ] loop_device file # setup\n"
+msgstr ""
+
+#: mount/losetup.c:231
+msgid "No loop support was available at compile time. Please recompile.\n"
+msgstr ""
+
+#: mount/mntent.c:165
+#, c-format
+msgid "[mntent]: warning: no final newline at the end of %s\n"
+msgstr ""
+
+#: mount/mntent.c:214
+#, c-format
+msgid "[mntent]: line %d in %s is bad%s\n"
+msgstr ""
+
+#: mount/mntent.c:217
+msgid "; rest of file ignored"
+msgstr ""
+
+#: mount/mount.c:319
+#, c-format
+msgid "mount: according to mtab, %s is already mounted on %s"
+msgstr ""
+
+#: mount/mount.c:322
+#, c-format
+msgid "mount: according to mtab, %s is mounted on %s"
+msgstr ""
+
+#: mount/mount.c:342
+#, c-format
+msgid "mount: can't open %s for writing: %s"
+msgstr ""
+
+#: mount/mount.c:355 mount/mount.c:597
+#, c-format
+msgid "mount: error writing %s: %s"
+msgstr ""
+
+#: mount/mount.c:360
+#, c-format
+msgid "mount: error changing mode of %s: %s"
+msgstr ""
+
+#: mount/mount.c:434
+msgid "mount failed"
+msgstr ""
+
+#: mount/mount.c:436
+#, c-format
+msgid "mount: only root can mount %s on %s"
+msgstr ""
+
+#: mount/mount.c:461
+msgid "mount: loop device specified twice"
+msgstr ""
+
+#: mount/mount.c:467
+msgid "mount: type specified twice"
+msgstr ""
+
+#: mount/mount.c:479
+msgid "mount: skipping the setup of a loop device\n"
+msgstr ""
+
+#: mount/mount.c:488
+#, c-format
+msgid "mount: going to use the loop device %s\n"
+msgstr ""
+
+#: mount/mount.c:492
+msgid "mount: failed setting up loop device\n"
+msgstr ""
+
+#: mount/mount.c:496
+msgid "mount: setup loop device successfully\n"
+msgstr ""
+
+#: mount/mount.c:509
+msgid "mount: this version was compiled without support for the type `nfs'"
+msgstr ""
+
+#: mount/mount.c:557 mount/mount.c:969
+#, c-format
+msgid "mount: cannot fork: %s"
+msgstr ""
+
+#: mount/mount.c:593
+#, c-format
+msgid "mount: can't open %s: %s"
+msgstr ""
+
+#: mount/mount.c:619
+#, fuzzy
+msgid "mount: you must specify the filesystem type"
+msgstr "  t          Changer le type de système de fichiers"
+
+#: mount/mount.c:626 mount/mount.c:660
+#, c-format
+msgid "mount: mount point %s is not a directory"
+msgstr ""
+
+#: mount/mount.c:628
+msgid "mount: permission denied"
+msgstr ""
+
+#: mount/mount.c:630
+msgid "mount: must be superuser to use mount"
+msgstr ""
+
+#. heuristic: if /proc/version exists, then probably proc is mounted
+#. proc mounted?
+#: mount/mount.c:634 mount/mount.c:638
+#, c-format
+msgid "mount: %s is busy"
+msgstr ""
+
+#. no
+#. yes, don't mention it
+#: mount/mount.c:640
+msgid "mount: proc already mounted"
+msgstr ""
+
+#: mount/mount.c:642
+#, c-format
+msgid "mount: %s already mounted or %s busy"
+msgstr ""
+
+#: mount/mount.c:648
+#, c-format
+msgid "mount: mount point %s does not exist"
+msgstr ""
+
+#: mount/mount.c:650
+#, c-format
+msgid "mount: mount point %s is a symbolic link to nowhere"
+msgstr ""
+
+#: mount/mount.c:653
+#, c-format
+msgid "mount: special device %s does not exist"
+msgstr ""
+
+#: mount/mount.c:666
+#, c-format
+msgid "mount: %s not mounted already, or bad option"
+msgstr ""
+
+#: mount/mount.c:668
+#, c-format
+msgid ""
+"mount: wrong fs type, bad option, bad superblock on %s,\n"
+"       or too many mounted file systems"
+msgstr ""
+
+#: mount/mount.c:683
+msgid "mount table full"
+msgstr ""
+
+#: mount/mount.c:685
+#, c-format
+msgid "mount: %s: can't read superblock"
+msgstr ""
+
+#: mount/mount.c:688
+#, c-format
+msgid "mount: %s has wrong major or minor number"
+msgstr ""
+
+#: mount/mount.c:693
+#, c-format
+msgid "mount: fs type %s not supported by kernel"
+msgstr ""
+
+#: mount/mount.c:705
+#, c-format
+msgid "mount: probably you meant %s"
+msgstr ""
+
+#: mount/mount.c:707
+msgid "mount: maybe you meant iso9660 ?"
+msgstr ""
+
+#: mount/mount.c:710
+#, c-format
+msgid "mount: %s has wrong device number or fs type %s not supported"
+msgstr ""
+
+#. strange ...
+#: mount/mount.c:715
+#, c-format
+msgid "mount: %s is not a block device, and stat fails?"
+msgstr ""
+
+#: mount/mount.c:717
+#, c-format
+msgid ""
+"mount: the kernel does not recognize %s as a block device\n"
+"       (maybe `insmod driver'?)"
+msgstr ""
+
+#: mount/mount.c:720
+#, c-format
+msgid "mount: %s is not a block device (maybe try `-o loop'?)"
+msgstr ""
+
+#: mount/mount.c:723
+#, c-format
+msgid "mount: %s is not a block device"
+msgstr ""
+
+#: mount/mount.c:726
+#, c-format
+msgid "mount: %s is not a valid block device"
+msgstr ""
+
+#: mount/mount.c:730
+#, c-format
+msgid "mount: block device %s is not permitted on its filesystem"
+msgstr ""
+
+#: mount/mount.c:747
+#, c-format
+msgid "mount: %s%s is write-protected, mounting read-only"
+msgstr ""
+
+#: mount/mount.c:748
+msgid "block device "
+msgstr ""
+
+#: mount/mount.c:834
+#, c-format
+msgid "mount: consider mounting %s by %s\n"
+msgstr ""
+
+#: mount/mount.c:835
+msgid "UUID"
+msgstr ""
+
+#: mount/mount.c:835
+#, fuzzy
+msgid "label"
+msgstr "[Label]"
+
+#: mount/mount.c:837 mount/mount.c:1151
+msgid "mount: no such partition found"
+msgstr ""
+
+#: mount/mount.c:845
+msgid "mount: no type was given - I'll assume nfs because of the colon\n"
+msgstr ""
+
+#.
+#. * Retry in the background.
+#.
+#: mount/mount.c:861
+#, c-format
+msgid "mount: backgrounding \"%s\"\n"
+msgstr ""
+
+#: mount/mount.c:872
+#, c-format
+msgid "mount: giving up \"%s\"\n"
+msgstr ""
+
+#: mount/mount.c:921
+#, c-format
+msgid "mount: %s already mounted on %s\n"
+msgstr ""
+
+#: mount/mount.c:1030
+msgid ""
+"Usage: mount [-hV]\n"
+"       mount -a [-nfFrsvw] [-t vfstypes]\n"
+"       mount [-nfrsvw] [-o options] special | node\n"
+"       mount [-nfrsvw] [-t vfstype] [-o options] special node\n"
+"       A special device can be indicated by  -L label  or  -U uuid ."
+msgstr ""
+
+#: mount/mount.c:1136
+msgid "mount: only root can do that"
+msgstr ""
+
+#: mount/mount.c:1141
+#, c-format
+msgid "mount: no %s found - creating it..\n"
+msgstr ""
+
+#: mount/mount.c:1153
+#, c-format
+msgid "mount: mounting %s\n"
+msgstr ""
+
+#: mount/mount.c:1162
+msgid "not mounted anything"
+msgstr ""
+
+#: mount/mount.c:1175
+#, c-format
+msgid "mount: cannot find %s in %s"
+msgstr ""
+
+#: mount/mount.c:1189
+#, c-format
+msgid "mount: can't find %s in %s or %s"
+msgstr ""
+
+#: mount/mount_by_label.c:141
+msgid "mount: bad UUID"
+msgstr ""
+
+#: mount/mount_guess_fstype.c:186
+#, c-format
+msgid "mount: you didn't specify a filesystem type for %s\n"
+msgstr ""
+
+#: mount/mount_guess_fstype.c:189
+#, c-format
+msgid "       I will try type %s\n"
+msgstr ""
+
+#: mount/mount_guess_fstype.c:191
+#, c-format
+msgid "       I will try all types mentioned in %s or %s\n"
+msgstr ""
+
+#: mount/nfsmount.c:157
+msgid "mount: excessively long host:dir argument\n"
+msgstr ""
+
+#: mount/nfsmount.c:170
+msgid "mount: warning: multiple hostnames not supported\n"
+msgstr ""
+
+#: mount/nfsmount.c:174
+msgid "mount: directory to mount not in host:dir format\n"
+msgstr ""
+
+#: mount/nfsmount.c:185 mount/nfsmount.c:420
+#, c-format
+msgid "mount: can't get address for %s\n"
+msgstr ""
+
+#: mount/nfsmount.c:191
+msgid "mount: got bad hp->h_length\n"
+msgstr ""
+
+#: mount/nfsmount.c:208
+msgid "mount: excessively long option argument\n"
+msgstr ""
+
+#: mount/nfsmount.c:299
+msgid "Warning: Unrecognized proto= option.\n"
+msgstr ""
+
+#: mount/nfsmount.c:306
+msgid "Warning: Option namlen is not supported.\n"
+msgstr ""
+
+#: mount/nfsmount.c:310
+#, c-format
+msgid "unknown nfs mount parameter: %s=%d\n"
+msgstr ""
+
+#: mount/nfsmount.c:345
+msgid "Warning: option nolock is not supported.\n"
+msgstr ""
+
+#: mount/nfsmount.c:348
+#, c-format
+msgid "unknown nfs mount option: %s%s\n"
+msgstr ""
+
+#: mount/nfsmount.c:349
+msgid "no"
+msgstr ""
+
+#: mount/nfsmount.c:426
+msgid "mount: got bad hp->h_length?\n"
+msgstr ""
+
+#: mount/nfsmount.c:528
+#, c-format
+msgid "mount: %s:%s failed, reason given by server: %s\n"
+msgstr ""
+
+#: mount/nfsmount.c:539
+msgid "NFS over TCP is not supported.\n"
+msgstr ""
+
+#: mount/nfsmount.c:546
+msgid "nfs socket"
+msgstr ""
+
+#: mount/nfsmount.c:550
+msgid "nfs bindresvport"
+msgstr ""
+
+#: mount/nfsmount.c:561
+msgid "used portmapper to find NFS port\n"
+msgstr ""
+
+#: mount/nfsmount.c:565
+#, c-format
+msgid "using port %d for nfs deamon\n"
+msgstr ""
+
+#: mount/nfsmount.c:576
+msgid "nfs connect"
+msgstr ""
+
+#: mount/nfsmount.c:665
+#, c-format
+msgid "unknown nfs status return value: %d"
+msgstr ""
+
+#: mount/sundries.c:40 mount/sundries.c:55
+msgid "not enough memory"
+msgstr ""
+
+#: mount/sundries.c:65
+msgid "bug in xstrndup call"
+msgstr ""
+
+#: mount/swapon.c:49
+#, c-format
+msgid ""
+"usage: %s [-hV]\n"
+"       %s -a [-v]\n"
+"       %s [-v] [-p priority] special ...\n"
+"       %s [-s]\n"
+msgstr ""
+
+#: mount/swapon.c:86
+#, c-format
+msgid "%s on %s\n"
+msgstr ""
+
+#: mount/swapon.c:90
+#, c-format
+msgid "swapon: cannot stat %s: %s\n"
+msgstr ""
+
+#: mount/swapon.c:95
+#, c-format
+msgid "swapon: warning: %s has insecure permissions %04o, 0600 suggested\n"
+msgstr ""
+
+#: mount/swapon.c:103
+#, c-format
+msgid "swapon: Skipping file %s - it appears to have holes.\n"
+msgstr ""
+
+#: mount/swapon.c:204
+#, c-format
+msgid "%s: cannot open %s: %s\n"
+msgstr ""
+
+#: mount/umount.c:65
+msgid "umount: compiled without support for -f\n"
+msgstr ""
+
+#: mount/umount.c:115
+#, c-format
+msgid "host: %s, directory: %s\n"
+msgstr ""
+
+#: mount/umount.c:132
+#, c-format
+msgid "umount: can't get address for %s\n"
+msgstr ""
+
+#: mount/umount.c:137
+msgid "umount: got bad hostp->h_length\n"
+msgstr ""
+
+#: mount/umount.c:175
+#, c-format
+msgid "umount: %s: invalid block device"
+msgstr ""
+
+#: mount/umount.c:177
+#, c-format
+msgid "umount: %s: not mounted"
+msgstr ""
+
+#: mount/umount.c:179
+#, c-format
+msgid "umount: %s: can't write superblock"
+msgstr ""
+
+#. Let us hope fstab has a line "proc /proc ..."
+#. and not "none /proc ..."
+#: mount/umount.c:183
+#, c-format
+msgid "umount: %s: device is busy"
+msgstr ""
+
+#: mount/umount.c:185
+#, c-format
+msgid "umount: %s: not found"
+msgstr ""
+
+#: mount/umount.c:187
+#, c-format
+msgid "umount: %s: must be superuser to umount"
+msgstr ""
+
+#: mount/umount.c:189
+#, c-format
+msgid "umount: %s: block devices not permitted on fs"
+msgstr ""
+
+#: mount/umount.c:191
+#, c-format
+msgid "umount: %s: %s"
+msgstr ""
+
+#: mount/umount.c:235
+msgid "no umount2, trying umount...\n"
+msgstr ""
+
+#: mount/umount.c:248
+#, c-format
+msgid "could not umount %s - trying %s instead\n"
+msgstr ""
+
+#: mount/umount.c:264
+#, c-format
+msgid "umount: %s busy - remounted read-only\n"
+msgstr ""
+
+#: mount/umount.c:272
+#, c-format
+msgid "umount: could not remount %s read-only\n"
+msgstr ""
+
+#: mount/umount.c:280
+#, c-format
+msgid "%s umounted\n"
+msgstr ""
+
+#: mount/umount.c:363
+msgid "umount: cannot find list of filesystems to unmount"
+msgstr ""
+
+#: mount/umount.c:392
+msgid ""
+"Usage: umount [-hV]\n"
+"       umount -a [-f] [-r] [-n] [-v] [-t vfstypes]\n"
+"       umount [-f] [-r] [-n] [-v] special | node...\n"
+msgstr ""
+
+#: mount/umount.c:453
+msgid "umount: only root can do that"
+msgstr ""
+
+#: mount/umount.c:468
+#, c-format
+msgid "Trying to umount %s\n"
+msgstr ""
+
+#: mount/umount.c:472
+#, c-format
+msgid "Could not find %s in mtab\n"
+msgstr ""
+
+#: mount/umount.c:476
+#, c-format
+msgid "umount: %s is not mounted (according to mtab)"
+msgstr ""
+
+#: mount/umount.c:478
+#, c-format
+msgid "umount: it seems %s is mounted multiple times"
+msgstr ""
+
+#: mount/umount.c:480
+#, c-format
+msgid "umount: %s is not in the fstab (and you are not root)"
+msgstr ""
+
+#: mount/umount.c:486
+#, c-format
+msgid "umount: %s mount disagrees with the fstab"
+msgstr ""
+
+#: mount/umount.c:505
+#, c-format
+msgid "umount: only root can unmount %s from %s"
+msgstr ""
+
+#: mount/umount.c:515
+#, c-format
+msgid "umount: only %s can unmount %s from %s"
+msgstr ""
+
+#: sys-utils/ctrlaltdel.c:26
+msgid "You must be root to set the Ctrl-Alt-Del behaviour.\n"
+msgstr ""
+
+#: sys-utils/ctrlaltdel.c:41
+msgid "Usage: ctrlaltdel hard|soft\n"
+msgstr ""
+
+#: sys-utils/cytune.c:116
+#, c-format
+msgid ""
+"File %s, For threshold value %lu, Maximum characters in fifo were %d,\n"
+"and the maximum transfer rate in characters/second was %f\n"
+msgstr ""
+
+#: sys-utils/cytune.c:127
+#, c-format
+msgid ""
+"File %s, For threshold value %lu and timrout value %lu, Maximum characters "
+"in fifo were %d,\n"
+"and the maximum transfer rate in characters/second was %f\n"
+msgstr ""
+
+#: sys-utils/cytune.c:194
+#, c-format
+msgid "Invalid interval value: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:202
+#, c-format
+msgid "Invalid set value: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:210
+#, c-format
+msgid "Invalid default value: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:218
+#, c-format
+msgid "Invalid set time value: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:226
+#, c-format
+msgid "Invalid default time value: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:243
+#, c-format
+msgid ""
+"Usage: %s [-q [-i interval]] ([-s value]|[-S value]) ([-t value]|[-T value]) "
+"[-g|-G] file [file...]\n"
+msgstr ""
+
+#: sys-utils/cytune.c:254 sys-utils/cytune.c:270 sys-utils/cytune.c:287
+#: sys-utils/cytune.c:332
+#, c-format
+msgid "Can't open %s: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:260
+#, c-format
+msgid "Can't set %s to threshold %d: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:276
+#, c-format
+msgid "Can't set %s to time threshold %d: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:291 sys-utils/cytune.c:342 sys-utils/cytune.c:370
+#, c-format
+msgid "Can't get threshold for %s: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:296 sys-utils/cytune.c:347 sys-utils/cytune.c:375
+#, c-format
+msgid "Can't get timeout for %s: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:300
+#, c-format
+msgid "%s: %ld %s threshold and %ld %s timeout\n"
+msgstr ""
+
+#: sys-utils/cytune.c:302 sys-utils/cytune.c:304
+msgid "current"
+msgstr ""
+
+#: sys-utils/cytune.c:302 sys-utils/cytune.c:304
+msgid "default"
+msgstr ""
+
+#: sys-utils/cytune.c:321
+msgid "Can't set signal handler"
+msgstr ""
+
+#: sys-utils/cytune.c:325 sys-utils/cytune.c:356
+msgid "gettimeofday failed"
+msgstr ""
+
+#: sys-utils/cytune.c:336 sys-utils/cytune.c:365
+#, c-format
+msgid "Can't issue CYGETMON on %s: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:405
+#, c-format
+msgid "%s: %lu ints, %lu/%lu chars; "
+msgstr ""
+
+#: sys-utils/cytune.c:406
+#, c-format
+msgid "fifo: %lu thresh, %lu tmout, "
+msgstr ""
+
+#: sys-utils/cytune.c:407
+#, c-format
+msgid "%lu max, %lu now\n"
+msgstr ""
+
+#: sys-utils/cytune.c:412
+#, c-format
+msgid "   %f int/sec; %f rec, %f send (char/sec)\n"
+msgstr ""
+
+#: sys-utils/cytune.c:417
+#, c-format
+msgid ""
+"%s: %lu ints, %lu chars; fifo: %lu thresh, %lu tmout, %lu max, %lu now\n"
+msgstr ""
+
+#: sys-utils/cytune.c:422
+#, c-format
+msgid "   %f int/sec; %f rec (char/sec)\n"
+msgstr ""
+
+#: sys-utils/dmesg.c:38
+#, c-format
+msgid "Usage: %s [-c] [-n level] [-s bufsize]\n"
+msgstr ""
+
+#: sys-utils/ipcrm.c:46
+#, c-format
+msgid "usage: %s [shm | msg | sem] id\n"
+msgstr ""
+
+#: sys-utils/ipcrm.c:70
+#, c-format
+msgid "usage: %s [-shm | -msg | -sem] id\n"
+msgstr ""
+
+#: sys-utils/ipcrm.c:73
+msgid "resource deleted\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:91
+#, c-format
+msgid "usage : %s -asmq -tclup \n"
+msgstr ""
+
+#: sys-utils/ipcs.c:92
+#, c-format
+msgid "\t%s [-s -m -q] -i id\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:93
+#, c-format
+msgid "\t%s -h for help.\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:99
+#, c-format
+msgid "%s provides information on ipc facilities for"
+msgstr ""
+
+#: sys-utils/ipcs.c:100
+msgid " which you have read access.\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:101
+msgid ""
+"Resource Specification:\n"
+"\t-m : shared_mem\n"
+"\t-q : messages\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:102
+msgid ""
+"\t-s : semaphores\n"
+"\t-a : all (default)\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:103
+msgid ""
+"Output Format:\n"
+"\t-t : time\n"
+"\t-p : pid\n"
+"\t-c : creator\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:104
+msgid ""
+"\t-l : limits\n"
+"\t-u : summary\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:105
+msgid "-i id [-s -q -m] : details on resource identified by id\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:237 sys-utils/ipcs.c:439
+msgid "kernel not configured for shared memory\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:243
+msgid "------ Shared Memory Limits --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:246
+#, c-format
+msgid "max number of segments = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:247
+#, c-format
+msgid "max seg size (kbytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:248
+#, c-format
+msgid "max total shared memory (kbytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:249
+#, c-format
+msgid "min seg size (bytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:253
+msgid "------ Shared Memory Status --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:254
+#, c-format
+msgid "segments allocated %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:255
+#, c-format
+msgid "pages allocated %ld\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:256
+#, c-format
+msgid "pages resident  %ld\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:257
+#, c-format
+msgid "pages swapped   %ld\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:258
+#, c-format
+msgid "Swap performance: %ld attempts\t %ld successes\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:263
+msgid "------ Shared Memory Segment Creators/Owners --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:264 sys-utils/ipcs.c:370 sys-utils/ipcs.c:462
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s%-10s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:271 sys-utils/ipcs.c:276
+#: sys-utils/ipcs.c:281 sys-utils/ipcs.c:377
+msgid "shmid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:282 sys-utils/ipcs.c:371
+#: sys-utils/ipcs.c:386 sys-utils/ipcs.c:463 sys-utils/ipcs.c:480
+msgid "perms"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:371 sys-utils/ipcs.c:463
+msgid "cuid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:371 sys-utils/ipcs.c:463
+msgid "cgid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:371 sys-utils/ipcs.c:463
+msgid "uid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:463
+msgid "gid"
+msgstr ""
+
+#: sys-utils/ipcs.c:269
+msgid "------ Shared Memory Attach/Detach/Change Times --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:270
+#, c-format
+msgid "%-10s%-10s  %-20s%-20s%-20s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:271 sys-utils/ipcs.c:276 sys-utils/ipcs.c:282
+#: sys-utils/ipcs.c:377 sys-utils/ipcs.c:386 sys-utils/ipcs.c:469
+#: sys-utils/ipcs.c:474 sys-utils/ipcs.c:480
+#, fuzzy
+msgid "owner"
+msgstr "Terminé"
+
+#: sys-utils/ipcs.c:271
+msgid "attached"
+msgstr ""
+
+#: sys-utils/ipcs.c:271
+msgid "detached"
+msgstr ""
+
+#: sys-utils/ipcs.c:271
+msgid "changed"
+msgstr ""
+
+#: sys-utils/ipcs.c:275
+msgid "------ Shared Memory Creator/Last-op --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:276 sys-utils/ipcs.c:474
+#, c-format
+msgid "%-10s%-10s%-10s%-10s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:276
+msgid "cpid"
+msgstr ""
+
+#: sys-utils/ipcs.c:276
+msgid "lpid"
+msgstr ""
+
+#: sys-utils/ipcs.c:280
+msgid "------ Shared Memory Segments --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:281
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s%-10s%-12s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:281 sys-utils/ipcs.c:386 sys-utils/ipcs.c:479
+msgid "key"
+msgstr ""
+
+#: sys-utils/ipcs.c:282
+msgid "bytes"
+msgstr ""
+
+#: sys-utils/ipcs.c:282
+msgid "nattch"
+msgstr ""
+
+#: sys-utils/ipcs.c:282 sys-utils/ipcs.c:386
+msgid "status"
+msgstr ""
+
+#: sys-utils/ipcs.c:302 sys-utils/ipcs.c:303 sys-utils/ipcs.c:304
+#: sys-utils/ipcs.c:407 sys-utils/ipcs.c:408 sys-utils/ipcs.c:500
+#: sys-utils/ipcs.c:501 sys-utils/ipcs.c:502
+msgid "Not set"
+msgstr ""
+
+#: sys-utils/ipcs.c:324
+msgid "dest"
+msgstr ""
+
+#: sys-utils/ipcs.c:325
+msgid "locked"
+msgstr ""
+
+#: sys-utils/ipcs.c:345
+msgid "kernel not configured for semaphores\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:351
+#, fuzzy
+msgid "------ Semaphore Limits --------\n"
+msgstr "--------     -------------"
+
+#: sys-utils/ipcs.c:355
+#, c-format
+msgid "max number of arrays = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:356
+#, c-format
+msgid "max semaphores per array = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:357
+#, c-format
+msgid "max semaphores system wide = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:358
+#, c-format
+msgid "max ops per semop call = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:359
+#, c-format
+msgid "semaphore max value = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:363
+#, fuzzy
+msgid "------ Semaphore Status --------\n"
+msgstr "--------     -------------"
+
+#: sys-utils/ipcs.c:364
+#, c-format
+msgid "used arrays = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:365
+#, c-format
+msgid "allocated semaphores = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:369
+msgid "------ Semaphore Arrays Creators/Owners --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:371 sys-utils/ipcs.c:386
+msgid "semid"
+msgstr ""
+
+#: sys-utils/ipcs.c:375
+msgid "------ Shared Memory Operation/Change Times --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:376
+#, c-format
+msgid "%-8s%-10s  %-26.24s %-26.24s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:377
+msgid "last-op"
+msgstr ""
+
+#: sys-utils/ipcs.c:377
+msgid "last-changed"
+msgstr ""
+
+#: sys-utils/ipcs.c:384
+#, fuzzy
+msgid "------ Semaphore Arrays --------\n"
+msgstr "--------     -------------"
+
+#: sys-utils/ipcs.c:385
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s%-12s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:386
+msgid "nsems"
+msgstr ""
+
+#: sys-utils/ipcs.c:447
+#, fuzzy
+msgid "------ Messages: Limits --------\n"
+msgstr "--------     -------------"
+
+#: sys-utils/ipcs.c:448
+#, c-format
+msgid "max queues system wide = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:449
+#, c-format
+msgid "max size of message (bytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:450
+#, c-format
+msgid "default max size of queue (bytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:454
+#, fuzzy
+msgid "------ Messages: Status --------\n"
+msgstr "--------     -------------"
+
+#: sys-utils/ipcs.c:455
+#, c-format
+msgid "allocated queues = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:456
+#, c-format
+msgid "used headers = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:457
+#, c-format
+msgid "used space = %d bytes\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:461
+msgid "------ Message Queues: Creators/Owners --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:463 sys-utils/ipcs.c:469 sys-utils/ipcs.c:474
+#: sys-utils/ipcs.c:479
+msgid "msqid"
+msgstr ""
+
+#: sys-utils/ipcs.c:467
+msgid "------ Message Queues Send/Recv/Change Times --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:468
+#, c-format
+msgid "%-8s%-10s  %-20s%-20s%-20s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:469
+msgid "send"
+msgstr ""
+
+#: sys-utils/ipcs.c:469
+msgid "recv"
+msgstr ""
+
+#: sys-utils/ipcs.c:469
+msgid "change"
+msgstr ""
+
+#: sys-utils/ipcs.c:473
+#, fuzzy
+msgid "------ Message Queues PIDs --------\n"
+msgstr "--------     -------------"
+
+#: sys-utils/ipcs.c:474
+msgid "lspid"
+msgstr ""
+
+#: sys-utils/ipcs.c:474
+msgid "lrpid"
+msgstr ""
+
+#: sys-utils/ipcs.c:478
+#, fuzzy
+msgid "------ Message Queues --------\n"
+msgstr "--------     -------------"
+
+#: sys-utils/ipcs.c:479
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-12s%-12s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:480
+msgid "used-bytes"
+msgstr ""
+
+#: sys-utils/ipcs.c:480
+msgid "messages"
+msgstr ""
+
+#: sys-utils/ipcs.c:539
+#, c-format
+msgid ""
+"\n"
+"Shared memory Segment shmid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:540
+#, c-format
+msgid "uid=%d\tgid=%d\tcuid=%d\tcgid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:542
+#, c-format
+msgid "mode=%#o\taccess_perms=%#o\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:543
+#, c-format
+msgid "bytes=%d\tlpid=%d\tcpid=%d\tnattch=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:546
+#, c-format
+msgid "att_time=%s"
+msgstr ""
+
+#: sys-utils/ipcs.c:547 sys-utils/ipcs.c:549 sys-utils/ipcs.c:598
+msgid "Not set\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:548
+#, c-format
+msgid "det_time=%s"
+msgstr ""
+
+#: sys-utils/ipcs.c:550
+#, c-format
+msgid "change_time=%s"
+msgstr ""
+
+#: sys-utils/ipcs.c:566
+#, c-format
+msgid ""
+"\n"
+"Message Queue msqid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:567
+#, c-format
+msgid "uid=%d\tgid=%d\tcuid=%d\tcgid=%d\tmode=%#o\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:569
+#, c-format
+msgid "cbytes=%d\tqbytes=%d\tqnum=%d\tlspid=%d\tlrpid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:572
+#, c-format
+msgid "send_time=%srcv_time=%schange_time=%s"
+msgstr ""
+
+#: sys-utils/ipcs.c:573 sys-utils/ipcs.c:574 sys-utils/ipcs.c:575
+msgid "Not Set\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:592
+#, c-format
+msgid ""
+"\n"
+"Semaphore Array semid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:593
+#, c-format
+msgid "uid=%d\t gid=%d\t cuid=%d\t cgid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:595
+#, c-format
+msgid "mode=%#o, access_perms=%#o\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:596
+#, c-format
+msgid "nsems = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:597
+#, c-format
+msgid "otime = %s"
+msgstr ""
+
+#: sys-utils/ipcs.c:599
+#, c-format
+msgid "ctime = %s"
+msgstr ""
+
+#: sys-utils/ipcs.c:601
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:601
+msgid "semnum"
+msgstr ""
+
+#: sys-utils/ipcs.c:601
+#, fuzzy
+msgid "value"
+msgstr "Table"
+
+#: sys-utils/ipcs.c:601
+msgid "ncount"
+msgstr ""
+
+#: sys-utils/ipcs.c:602
+msgid "zcount"
+msgstr ""
+
+#: sys-utils/ipcs.c:602
+msgid "pid"
+msgstr ""
+
+#: sys-utils/kbdrate.c:126
+#, c-format
+msgid "util-linux kbdrate %s \n"
+msgstr ""
+
+#: sys-utils/kbdrate.c:159 sys-utils/kbdrate.c:206
+#, c-format
+msgid "Typematic Rate set to %.1f cps (delay = %d mS)\n"
+msgstr ""
+
+#: sys-utils/kbdrate.c:182
+msgid "Cannot open /dev/port"
+msgstr ""
+
+#: sys-utils/rdev.c:68
+msgid "usage: rdev [ -rsv ] [ -o OFFSET ] [ IMAGE [ VALUE [ OFFSET ] ] ]"
+msgstr ""
+
+#: sys-utils/rdev.c:69
+msgid ""
+"  rdev /dev/fd0  (or rdev /linux, etc.) displays the current ROOT device"
+msgstr ""
+
+#: sys-utils/rdev.c:70
+msgid "  rdev /dev/fd0 /dev/hda2         sets ROOT to /dev/hda2"
+msgstr ""
+
+#: sys-utils/rdev.c:71
+msgid "  rdev -R /dev/fd0 1              set the ROOTFLAGS (readonly status)"
+msgstr ""
+
+#: sys-utils/rdev.c:72
+msgid "  rdev -s /dev/fd0 /dev/hda2      set the SWAP device"
+msgstr ""
+
+#: sys-utils/rdev.c:73
+msgid "  rdev -r /dev/fd0 627            set the RAMDISK size"
+msgstr ""
+
+#: sys-utils/rdev.c:74
+msgid "  rdev -v /dev/fd0 1              set the bootup VIDEOMODE"
+msgstr ""
+
+#: sys-utils/rdev.c:75
+msgid "  rdev -o N ...                   use the byte offset N"
+msgstr ""
+
+#: sys-utils/rdev.c:76
+msgid "  rootflags ...                   same as rdev -R"
+msgstr ""
+
+#: sys-utils/rdev.c:77
+msgid "  swapdev ...                     same as rdev -s"
+msgstr ""
+
+#: sys-utils/rdev.c:78
+msgid "  ramsize ...                     same as rdev -r"
+msgstr ""
+
+#: sys-utils/rdev.c:79
+msgid "  vidmode ...                     same as rdev -v"
+msgstr ""
+
+#: sys-utils/rdev.c:80
+msgid ""
+"Note: video modes are: -3=Ask, -2=Extended, -1=NormalVga, 1=key1, 2=key2,..."
+msgstr ""
+
+#: sys-utils/rdev.c:81
+msgid "      use -R 1 to mount root readonly, -R 0 for read/write."
+msgstr ""
+
+#: sys-utils/readprofile.c:50
+#, c-format
+msgid ""
+"%s: Usage: \"%s [options]\n"
+"\t -m <mapfile>  (default = \"%s\")\n"
+"\t -p <pro-file> (default = \"%s\")\n"
+"\t -i            print only info about the sampling step\n"
+"\t -v            print verbose data\n"
+"\t -a            print all symbols, even if count is 0\n"
+"\t -r            reset all the counters (root only)\n"
+"\t -V            print version and exit\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:113
+#, c-format
+msgid "%s Version %s\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:125
+msgid "anything\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:154
+#, c-format
+msgid "Sampling_step: %i\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:167 sys-utils/readprofile.c:193
+#, c-format
+msgid "%s: %s(%i): wrong map line\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:180
+#, c-format
+msgid "%s: can't find \"_stext\" in %s\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:221
+#, fuzzy
+msgid "total"
+msgstr "Bootable"
+
+#: sys-utils/renice.c:66
+msgid "usage: renice priority [ [ -p ] pids ] "
+msgstr ""
+
+#: sys-utils/renice.c:67
+msgid "[ [ -g ] pgrps ] [ [ -u ] users ]\n"
+msgstr ""
+
+#: sys-utils/renice.c:93
+#, c-format
+msgid "renice: %s: unknown user\n"
+msgstr ""
+
+#: sys-utils/renice.c:101
+#, c-format
+msgid "renice: %s: bad value\n"
+msgstr ""
+
+#: sys-utils/renice.c:121
+msgid "getpriority"
+msgstr ""
+
+#: sys-utils/renice.c:126
+msgid "setpriority"
+msgstr ""
+
+#: sys-utils/renice.c:129
+#, c-format
+msgid "%d: old priority %d, new priority %d\n"
+msgstr ""
+
+#: sys-utils/setsid.c:23
+#, c-format
+msgid "usage: %s program [arg ...]\n"
+msgstr ""
+
+#: sys-utils/tunelp.c:77
+#, c-format
+msgid ""
+"Usage: %s <device> [ -i <IRQ> | -t <TIME> | -c <CHARS> | -w <WAIT> | \n"
+"          -a [on|off] | -o [on|off] | -C [on|off] | -q [on|off] | -s ]\n"
+msgstr ""
+
+#: sys-utils/tunelp.c:89
+msgid "malloc error"
+msgstr ""
+
+#: sys-utils/tunelp.c:100
+msgid "sscanf error"
+msgstr ""
+
+#: sys-utils/tunelp.c:140
+#, c-format
+msgid "%s: %s not an lp device.\n"
+msgstr ""
+
+#: sys-utils/tunelp.c:239
+#, c-format
+msgid "%s status is %d"
+msgstr ""
+
+#: sys-utils/tunelp.c:240
+msgid ", busy"
+msgstr ""
+
+#: sys-utils/tunelp.c:241
+msgid ", ready"
+msgstr ""
+
+#: sys-utils/tunelp.c:242
+msgid ", out of paper"
+msgstr ""
+
+#: sys-utils/tunelp.c:243
+msgid ", on-line"
+msgstr ""
+
+#: sys-utils/tunelp.c:244
+msgid ", error"
+msgstr ""
+
+#: sys-utils/tunelp.c:261
+msgid "LPGETIRQ error"
+msgstr ""
+
+#: sys-utils/tunelp.c:267
+#, c-format
+msgid "%s using IRQ %d\n"
+msgstr ""
+
+#: sys-utils/tunelp.c:269
+#, c-format
+msgid "%s using polling\n"
+msgstr ""
+
+#: text-utils/col.c:154
+#, c-format
+msgid "col: bad -l argument %s.\n"
+msgstr ""
+
+#: text-utils/col.c:515
+msgid "usage: col [-bfx] [-l nline]\n"
+msgstr ""
+
+#: text-utils/col.c:521
+msgid "col: write error.\n"
+msgstr ""
+
+#: text-utils/col.c:528
+#, c-format
+msgid "col: warning: can't back up %s.\n"
+msgstr ""
+
+#: text-utils/col.c:529
+msgid "past first line"
+msgstr ""
+
+#: text-utils/col.c:529
+msgid "-- line already flushed"
+msgstr ""
+
+#: text-utils/colcrt.c:93
+#, c-format
+msgid "usage: %s [ - ] [ -2 ] [ file ... ]\n"
+msgstr ""
+
+#: text-utils/column.c:276
+msgid "line too long"
+msgstr ""
+
+#: text-utils/column.c:311
+msgid "usage: column [-tx] [-c columns] [file ...]\n"
+msgstr ""
+
+#: text-utils/hexsyntax.c:80
+msgid "hexdump: bad length value.\n"
+msgstr ""
+
+#: text-utils/hexsyntax.c:91
+msgid "hexdump: bad skip value.\n"
+msgstr ""
+
+#: text-utils/hexsyntax.c:129
+msgid ""
+"hexdump: [-bcdovx] [-e fmt] [-f fmt_file] [-n length] [-s skip] [file ...]\n"
+msgstr ""
+
+#: text-utils/more.c:247
+msgid "usage: "
+msgstr ""
+
+#: text-utils/more.c:249
+msgid " [-dfln] [+linenum | +/pattern] name1 name2 ...\n"
+msgstr ""
+
+#: text-utils/more.c:423
+#, c-format
+msgid ""
+"\n"
+"*** %s: directory ***\n"
+"\n"
+msgstr ""
+
+#. simple ELF detection
+#: text-utils/more.c:462
+#, c-format
+msgid ""
+"\n"
+"******** %s: Not a text file ********\n"
+"\n"
+msgstr ""
+
+#: text-utils/more.c:566
+msgid "[Use q or Q to quit]"
+msgstr ""
+
+#: text-utils/more.c:752
+msgid "--More--"
+msgstr ""
+
+#: text-utils/more.c:754
+#, c-format
+msgid "(Next file: %s)"
+msgstr ""
+
+#: text-utils/more.c:760
+#, fuzzy
+msgid "[Press space to continue, 'q' to quit.]"
+msgstr "Appuyez sur une touche pour continuer"
+
+#: text-utils/more.c:1058
+#, c-format
+msgid "...back %d page"
+msgstr ""
+
+#: text-utils/more.c:1104
+#, c-format
+msgid "...skipping %d line"
+msgstr ""
+
+#: text-utils/more.c:1145
+msgid ""
+"\n"
+"***Back***\n"
+"\n"
+msgstr ""
+
+#: text-utils/more.c:1183
+msgid "Can't open help file"
+msgstr ""
+
+#: text-utils/more.c:1204 text-utils/more.c:1208
+msgid "[Press 'h' for instructions.]"
+msgstr ""
+
+#: text-utils/more.c:1243
+#, c-format
+msgid "\"%s\" line %d"
+msgstr ""
+
+#: text-utils/more.c:1245
+#, c-format
+msgid "[Not a file] line %d"
+msgstr ""
+
+#: text-utils/more.c:1329
+msgid "  Overflow\n"
+msgstr ""
+
+#: text-utils/more.c:1376
+msgid "...skipping\n"
+msgstr ""
+
+#: text-utils/more.c:1406
+msgid "Regular expression botch"
+msgstr ""
+
+#: text-utils/more.c:1418
+msgid ""
+"\n"
+"Pattern not found\n"
+msgstr ""
+
+#: text-utils/more.c:1421
+msgid "Pattern not found"
+msgstr ""
+
+#: text-utils/more.c:1483
+msgid "can't fork\n"
+msgstr ""
+
+#: text-utils/more.c:1522
+msgid ""
+"\n"
+"...Skipping "
+msgstr ""
+
+#: text-utils/more.c:1526
+msgid "...Skipping "
+msgstr ""
+
+#: text-utils/more.c:1527
+msgid "to file "
+msgstr ""
+
+#: text-utils/more.c:1527
+msgid "back to file "
+msgstr ""
+
+#: text-utils/more.c:1765
+msgid "Line too long"
+msgstr ""
+
+#: text-utils/more.c:1809
+msgid "No previous command to substitute for"
+msgstr ""
+
+#: text-utils/odsyntax.c:133
+msgid "od: od(1) has been deprecated for hexdump(1).\n"
+msgstr ""
+
+#: text-utils/odsyntax.c:136
+#, c-format
+msgid "od: hexdump(1) compatibility doesn't support the -%c option%s\n"
+msgstr ""
+
+#: text-utils/odsyntax.c:137
+msgid "; see strings(1)."
+msgstr ""
+
+#: text-utils/parse.c:63
+#, c-format
+msgid "hexdump: can't read %s.\n"
+msgstr ""
+
+#: text-utils/parse.c:68
+msgid "hexdump: line too long.\n"
+msgstr ""
+
+#: text-utils/parse.c:406
+msgid "hexdump: byte count with multiple conversion characters.\n"
+msgstr ""
+
+#: text-utils/parse.c:490
+#, c-format
+msgid "hexdump: bad byte count for conversion character %s.\n"
+msgstr ""
+
+#: text-utils/parse.c:497
+msgid "hexdump: %%s requires a precision or a byte count.\n"
+msgstr ""
+
+#: text-utils/parse.c:503
+#, c-format
+msgid "hexdump: bad format {%s}\n"
+msgstr ""
+
+#: text-utils/parse.c:509
+msgid "hexdump: bad conversion character %%%s.\n"
+msgstr ""
+
+#: text-utils/rev.c:109
+msgid "Unable to allocate bufferspace\n"
+msgstr ""
+
+#: text-utils/rev.c:167
+msgid "usage: rev [file ...]\n"
+msgstr ""
+
+#: text-utils/ul.c:125
+#, c-format
+msgid "usage: %s [ -i ] [ -tTerm ] file...\n"
+msgstr ""
+
+#: text-utils/ul.c:136
+msgid "trouble reading terminfo"
+msgstr ""
+
+#: text-utils/ul.c:223
+#, c-format
+msgid "Unknown escape sequence in input: %o, %o\n"
+msgstr ""
+
+#: text-utils/ul.c:372
+msgid "Unable to allocate buffer.\n"
+msgstr ""
+
+#: text-utils/ul.c:529
+msgid "Input line too long.\n"
+msgstr ""
+
+#: text-utils/ul.c:542
+msgid "Out of memory when growing buffer.\n"
+msgstr ""
diff --git a/po/it.po b/po/it.po
new file mode 100644 (file)
index 0000000..15f9e94
--- /dev/null
+++ b/po/it.po
@@ -0,0 +1,827 @@
+# Translation for util-linux.
+# Copyright (C) 1999 Marco d'Itri
+# Marco d'Itri <md@linux.it>, 1999.
+#
+#: fdisk/cfdisk.c:2554
+msgid ""
+msgstr ""
+"Project-Id-Version: util-linux 2.9i\n"
+"POT-Creation-Date: 1999-02-21 22:08+0100\n"
+"PO-Revision-Date: 1999-04-04 21:12+02:00\n"
+"Last-Translator: Marco d'Itri <md@linux.it>\n"
+"Language-Team: Italian <it@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: fdisk/cfdisk.c:323
+msgid "Linux/MINIX"
+msgstr "Linux/MINIX"
+
+#: fdisk/cfdisk.c:324
+msgid "Linux Swap"
+msgstr "Linux Swap"
+
+#: fdisk/cfdisk.c:325 fdisk/cfdisk.c:388
+msgid "Linux"
+msgstr "Linux"
+
+#: fdisk/cfdisk.c:326 fdisk/cfdisk.c:383 fdisk/cfdisk.c:1757
+msgid "Free Space"
+msgstr "Spazio Libero"
+
+#: fdisk/cfdisk.c:327
+msgid "Extended"
+msgstr "Estesa"
+
+#: fdisk/cfdisk.c:328
+msgid "Linux extended"
+msgstr "Estesa linux"
+
+#: fdisk/cfdisk.c:329
+msgid "DOS FAT12"
+msgstr "DOS FAT12"
+
+#: fdisk/cfdisk.c:330
+msgid "XENIX root"
+msgstr "XENIX root"
+
+#: fdisk/cfdisk.c:331
+msgid "XENIX usr"
+msgstr "XENIX usr"
+
+#: fdisk/cfdisk.c:332
+msgid "DOS FAT16"
+msgstr "DOS FAT16"
+
+#: fdisk/cfdisk.c:333
+msgid "DOS FAT16 (big)"
+msgstr "DOS FAT16 (big)"
+
+#: fdisk/cfdisk.c:334
+msgid "OS/2 HPFS or NTFS"
+msgstr "OS/2 HPFS o NTFS"
+
+#: fdisk/cfdisk.c:335
+msgid "AIX"
+msgstr "AIX"
+
+#: fdisk/cfdisk.c:336
+msgid "AIX bootable"
+msgstr "AIX bootabile"
+
+#: fdisk/cfdisk.c:337
+msgid "OS/2 Boot Manager"
+msgstr "OS/2 Boot Manager"
+
+#: fdisk/cfdisk.c:338
+msgid "Win95 FAT32"
+msgstr "Win95 FAT32"
+
+#: fdisk/cfdisk.c:339
+msgid "Win95 FAT32 (LBA)"
+msgstr "Win95 FAT32 (LBA)"
+
+#: fdisk/cfdisk.c:340
+msgid "Win95 FAT16 (LBA)"
+msgstr "Win95 FAT16 (LBA)"
+
+#: fdisk/cfdisk.c:341
+msgid "Win95 Extended (LBA)"
+msgstr "Win95 Estesa (LBA)"
+
+#: fdisk/cfdisk.c:342
+msgid "Hidden DOS FAT12"
+msgstr "DOS FAT12 nascosta"
+
+#: fdisk/cfdisk.c:343
+msgid "Hidden DOS FAT16"
+msgstr "DOS FAT16 nascosta"
+
+#: fdisk/cfdisk.c:344
+msgid "Hidden DOS FAT16 (big)"
+msgstr "DOS FAT16 (big) nascosta"
+
+#: fdisk/cfdisk.c:345
+msgid "Hidden OS/2 HPFS or NTFS"
+msgstr "OS/2 HPFS o NTFS nascosta"
+
+#: fdisk/cfdisk.c:346
+msgid "Venix 80286"
+msgstr "Venix 80286"
+
+#: fdisk/cfdisk.c:347
+msgid "PPC PReP boot"
+msgstr "PPC PReP boot"
+
+#: fdisk/cfdisk.c:348
+msgid "Novell?"
+msgstr "Novell?"
+
+#: fdisk/cfdisk.c:349
+msgid "Microport"
+msgstr "Microport"
+
+#: fdisk/cfdisk.c:350
+msgid "GNU HURD"
+msgstr "GNU HURD"
+
+#: fdisk/cfdisk.c:351
+msgid "Novell Netware 286"
+msgstr "Novell Netware 286"
+
+#: fdisk/cfdisk.c:352
+msgid "Novell Netware 386"
+msgstr "Novell Netware 386"
+
+#: fdisk/cfdisk.c:353
+msgid "PC/IX"
+msgstr "PC/IX"
+
+#: fdisk/cfdisk.c:354
+msgid "Old MINIX"
+msgstr "Vecchio MINIX"
+
+#: fdisk/cfdisk.c:355
+msgid "Amoeba"
+msgstr "Amoeba"
+
+#: fdisk/cfdisk.c:356
+msgid "Amoeba BBT"
+msgstr "Amoeba BBT"
+
+#: fdisk/cfdisk.c:357
+msgid "BSD/386"
+msgstr "BSD/386"
+
+#: fdisk/cfdisk.c:358
+msgid "OpenBSD"
+msgstr "OpenBSD"
+
+#: fdisk/cfdisk.c:359
+msgid "NEXTSTEP"
+msgstr "NEXTSTEP"
+
+#: fdisk/cfdisk.c:360
+msgid "BSDI fs"
+msgstr "BSDI fs"
+
+#: fdisk/cfdisk.c:361
+msgid "BSDI swap"
+msgstr "BSDI swap"
+
+#: fdisk/cfdisk.c:362
+msgid "Syrinx"
+msgstr "Syrinx"
+
+#: fdisk/cfdisk.c:363
+msgid "CP/M"
+msgstr "CP/M"
+
+#: fdisk/cfdisk.c:364
+msgid "DOS access"
+msgstr "DOS access"
+
+#: fdisk/cfdisk.c:365
+msgid "DOS R/O"
+msgstr "DOS R/O"
+
+#: fdisk/cfdisk.c:366
+msgid "BeOS fs"
+msgstr "BeOS fs"
+
+#: fdisk/cfdisk.c:367
+msgid "DOS secondary"
+msgstr "DOS secondary"
+
+#: fdisk/cfdisk.c:368
+msgid "BBT"
+msgstr "BBT"
+
+#: fdisk/cfdisk.c:381 fdisk/cfdisk.c:1755
+msgid "Unusable"
+msgstr "Inutilizzabile"
+
+#: fdisk/cfdisk.c:386
+msgid "Linux ext2"
+msgstr "Linux ext2"
+
+#: fdisk/cfdisk.c:391
+msgid "OS/2 HPFS"
+msgstr "OS/2 HPFS"
+
+#: fdisk/cfdisk.c:393
+msgid "OS/2 IFS"
+msgstr "OS/2 IFS"
+
+#: fdisk/cfdisk.c:397
+msgid "NTFS"
+msgstr "NTFS"
+
+#: fdisk/cfdisk.c:408
+msgid "Disk has been changed.\n"
+msgstr "Il disco è stato modificato.\n"
+
+#: fdisk/cfdisk.c:409
+msgid "Reboot the system to ensure the partition table is correctly updated.\n"
+msgstr ""
+"Riavviare il sistema per essere sicuri che la tabella delle partizioni sia\n"
+"stata aggiornata correttamente.\n"
+
+#: fdisk/cfdisk.c:412
+msgid ""
+"\n"
+"WARNING: If you have created or modified any\n"
+"DOS 6.x partitions, please see the cfdisk manual\n"
+"page for additional information.\n"
+msgstr ""
+"\n"
+"ATTENZIONE: Se sono state create o modificate\n"
+"partizioni del DOS 6.x consultare il manuale di\n"
+"cfdisk per ulteriori informazioni.\n"
+
+#: fdisk/cfdisk.c:848
+msgid ""
+"!!!! Internal error creating logical drive with no extended partition !!!!"
+msgstr ""
+"!!!! Errore interno durante la creazione di un drive logico senza partizione\n"
+"estesa !!!!"
+
+#: fdisk/cfdisk.c:1007
+msgid "Menu item too long. Menu may look odd."
+msgstr "Voce del menù troppo lunga. Il menù può apparire strano."
+
+#: fdisk/cfdisk.c:1009
+#, c-format
+msgid "[%*s%-*s]"
+msgstr "[%*s%-*s]"
+
+#: fdisk/cfdisk.c:1012
+#, c-format
+msgid "%*s%-*s"
+msgstr "%*s%-*s"
+
+#: fdisk/cfdisk.c:1054
+msgid "Menu without direction. Defaulting horizontal."
+msgstr "Menù senza direzione. Predefinita l'orizzontale."
+
+#: fdisk/cfdisk.c:1169
+msgid "Illegal key"
+msgstr "Tasto non valido"
+
+#: fdisk/cfdisk.c:1192
+msgid "Press a key to continue"
+msgstr "Premere un tasto per continuare"
+
+#: fdisk/cfdisk.c:1236 fdisk/cfdisk.c:1726 fdisk/cfdisk.c:2233
+#: fdisk/cfdisk.c:2235
+msgid "Primary"
+msgstr "Primaria"
+
+#: fdisk/cfdisk.c:1236
+msgid "Create a new primary partition"
+msgstr "Crea una nuova partizione primaria"
+
+#: fdisk/cfdisk.c:1237 fdisk/cfdisk.c:1726 fdisk/cfdisk.c:2232
+#: fdisk/cfdisk.c:2235
+msgid "Logical"
+msgstr "Logica"
+
+#: fdisk/cfdisk.c:1237
+msgid "Create a new logical partition"
+msgstr "Crea una nuova partizione logica"
+
+#: fdisk/cfdisk.c:1238 fdisk/cfdisk.c:1291 fdisk/cfdisk.c:1938
+msgid "Cancel"
+msgstr "Annulla"
+
+#: fdisk/cfdisk.c:1238 fdisk/cfdisk.c:1291
+msgid "Don't create a partition"
+msgstr "Non crea partizioni"
+
+#: fdisk/cfdisk.c:1254
+msgid "!!! Internal error !!!"
+msgstr "!!! Errore interno !!!"
+
+#: fdisk/cfdisk.c:1256
+#, c-format
+msgid "%.2f"
+msgstr "%.2f"
+
+#: fdisk/cfdisk.c:1289
+msgid "Beginning"
+msgstr "Inizio"
+
+#: fdisk/cfdisk.c:1289
+msgid "Add partition at beginning of free space"
+msgstr "Aggiunge la partizione all'inizio dello spazio libero"
+
+#: fdisk/cfdisk.c:1290
+msgid "End"
+msgstr "Fine"
+
+#: fdisk/cfdisk.c:1290
+msgid "Add partition at end of free space"
+msgstr "Aggiunge la partizione alla fine dello spazio libero"
+
+#: fdisk/cfdisk.c:1553
+msgid "Are you sure you want write the partition table to disk? (yes or no): "
+msgstr "Sicuro di volere scrivere sul disco la tabella delle part.? (yes o no): "
+
+#: fdisk/cfdisk.c:1669 fdisk/cfdisk.c:1787 fdisk/cfdisk.c:1879
+msgid "Enter filename or press RETURN to display on screen: "
+msgstr "Inserire il nome del file o premere INVIO per mostrarlo sullo schermo: "
+
+#: fdisk/cfdisk.c:1688
+#, c-format
+msgid "Disk Drive: %s\n"
+msgstr "Disk Drive: %s\n"
+
+#: fdisk/cfdisk.c:1690
+msgid "Sector 0:\n"
+msgstr "Settore 0:\n"
+
+#: fdisk/cfdisk.c:1697
+#, c-format
+msgid "Sector %d:\n"
+msgstr "Settore %d:\n"
+
+#: fdisk/cfdisk.c:1717
+msgid "   None   "
+msgstr "  Nessuno "
+
+#: fdisk/cfdisk.c:1719
+msgid "   Pri/Log"
+msgstr "   Pri/Log"
+
+#: fdisk/cfdisk.c:1721
+msgid "   Primary"
+msgstr "  Primaria"
+
+#: fdisk/cfdisk.c:1723
+msgid "   Logical"
+msgstr "    Logica"
+
+#: fdisk/cfdisk.c:1761
+msgid "Unknown"
+msgstr "Sconosciuta"
+
+#: fdisk/cfdisk.c:1767
+#, c-format
+msgid "Boot (%02X)"
+msgstr "Boot (%02X)"
+
+#: fdisk/cfdisk.c:1769 fdisk/cfdisk.c:2241
+#, c-format
+msgid "Unknown (%02X)"
+msgstr "Sconosciuta (%02X)"
+
+#: fdisk/cfdisk.c:1771
+#, c-format
+msgid "None (%02X)"
+msgstr "No (%02X)"
+
+#: fdisk/cfdisk.c:1806 fdisk/cfdisk.c:1898
+#, c-format
+msgid "Partition Table for %s\n"
+msgstr "Tabella delle partizioni per %s\n"
+
+#: fdisk/cfdisk.c:1807 fdisk/cfdisk.c:1899
+msgid "\n"
+msgstr "\n"
+
+#: fdisk/cfdisk.c:1808
+msgid "            First    Last\n"
+msgstr "            Primo    Ultimo\n"
+
+#: fdisk/cfdisk.c:1809
+msgid ""
+" # Type     Sector   Sector   Offset  Length   Filesystem Type (ID)   Flags\n"
+msgstr " # Tipo    Settore   Settore  Offset Lunghezza Tipo filesystem (ID)   Flag\n"
+
+#: fdisk/cfdisk.c:1810
+msgid ""
+"-- ------- -------- --------- ------ --------- ---------------------- "
+"---------\n"
+msgstr "-- ------- -------- --------- ------ --------- ---------------------- ---------\n"
+
+#: fdisk/cfdisk.c:1900
+msgid "         ---Starting---      ----Ending----    Start Number of\n"
+msgstr "         ---Iniziale---      ----Finale----  Settore Numero di\n"
+
+#: fdisk/cfdisk.c:1901
+msgid " # Flags Head Sect Cyl   ID  Head Sect Cyl    Sector  Sectors\n"
+msgstr " # Flag  Head Sect Cyl   ID  Head Sect Cyl  Iniziale  Settori\n"
+
+#: fdisk/cfdisk.c:1902
+msgid "-- ----- ---- ---- ---- ---- ---- ---- ---- -------- ---------\n"
+msgstr "-- ----- ---- ---- ---- ---- ---- ---- ---- -------- ---------\n"
+
+#: fdisk/cfdisk.c:1935
+msgid "Raw"
+msgstr "Raw"
+
+#: fdisk/cfdisk.c:1935
+msgid "Print the table using raw data format"
+msgstr "Stampa la tabella in formato grezzo"
+
+#: fdisk/cfdisk.c:1936 fdisk/cfdisk.c:2041
+msgid "Sectors"
+msgstr "Settori"
+
+#: fdisk/cfdisk.c:1936
+msgid "Print the table ordered by sectors"
+msgstr "Stampa la tabella ordinata secondo i settori"
+
+#: fdisk/cfdisk.c:1937
+msgid "Table"
+msgstr "Tabella"
+
+#: fdisk/cfdisk.c:1937
+msgid "Just print the partition table"
+msgstr "Stampa solo la tabella delle partizioni"
+
+#: fdisk/cfdisk.c:1938
+msgid "Don't print the table"
+msgstr "Non stampa la tabella"
+
+#: fdisk/cfdisk.c:1967
+msgid "Help Screen for cfdisk 0.8l"
+msgstr "Schermo di aiuto di cfdisk 0.8l"
+
+#: fdisk/cfdisk.c:1969
+msgid "This is cfdisk, a curses based disk partitioning program, which"
+msgstr "Questo è cfdisk, un programma di partizionamento del disco basato su"
+
+#: fdisk/cfdisk.c:1970
+msgid "allows you to create, delete and modify partitions on your hard"
+msgstr "curses che permette di creare, cancellare e modificare le partizioni"
+
+#: fdisk/cfdisk.c:1971
+msgid "disk drive."
+msgstr "sull'hard disk."
+
+#: fdisk/cfdisk.c:1973
+msgid "Copyright (C) 1994-1998 Kevin E. Martin & aeb"
+msgstr "Copyright (C) 1994-1998 Kevin E. Martin & aeb"
+
+#: fdisk/cfdisk.c:1975
+msgid "Command      Meaning"
+msgstr "Comando      Significato"
+
+#: fdisk/cfdisk.c:1976
+msgid "-------      -------"
+msgstr "-------      -----------"
+
+#: fdisk/cfdisk.c:1977
+msgid "  b          Toggle bootable flag of the current partition"
+msgstr "  b          Cambia il flag di bootabilità dalla partizione corrente"
+
+#: fdisk/cfdisk.c:1978
+msgid "  d          Delete the current partition"
+msgstr "  d          Cancella la partizione corrente"
+
+#: fdisk/cfdisk.c:1979
+msgid "  g          Change cylinders, heads, sectors-per-track parameters"
+msgstr "  g          Cambia i parametri di cilindri, testine e settori per traccia"
+
+#: fdisk/cfdisk.c:1980
+msgid "             WARNING: This option should only be used by people who"
+msgstr "             ATTENZIONE: Questa opzione dovrebbe essere usata solo da"
+
+#: fdisk/cfdisk.c:1981
+msgid "             know what they are doing."
+msgstr "             persone che sanno cosa stanno facendo."
+
+#: fdisk/cfdisk.c:1982
+msgid "  h          Print this screen"
+msgstr "  h          Stampa questa schermata"
+
+#: fdisk/cfdisk.c:1983
+msgid "  m          Maximize disk usage of the current partition"
+msgstr "  m          Massimizza l'uso del disco da parte della partizione corrente"
+
+#: fdisk/cfdisk.c:1984
+msgid "             Note: This may make the partition incompatible with"
+msgstr "             Nota: Questo può rendere la partizione incompatibile con"
+
+#: fdisk/cfdisk.c:1985
+msgid "             DOS, OS/2, ..."
+msgstr "             DOS, OS/2, ..."
+
+#: fdisk/cfdisk.c:1986
+msgid "  n          Create new partition from free space"
+msgstr "  n          Crea una nuova partizione dallo spazio libero"
+
+#: fdisk/cfdisk.c:1987
+msgid "  p          Print partition table to the screen or to a file"
+msgstr "  p          Stampa la tabella delle partizioni sullo schermo o su un file"
+
+#: fdisk/cfdisk.c:1988
+msgid "             There are several different formats for the partition"
+msgstr "             Ci sono diversi formati di visualizzazione"
+
+#: fdisk/cfdisk.c:1989
+msgid "             that you can choose from:"
+msgstr "             tra cui scegliere:"
+
+#: fdisk/cfdisk.c:1990
+msgid "                r - Raw data (exactly what would be written to disk)"
+msgstr "                r - Dati grezzi (quello che sarebbe scritto sul disco)"
+
+#: fdisk/cfdisk.c:1991
+msgid "                s - Table ordered by sectors"
+msgstr "                s - Tabella ordinata per settori"
+
+#: fdisk/cfdisk.c:1992
+msgid "                t - Table in raw format"
+msgstr "                t - Tabella in formato grezzo"
+
+#: fdisk/cfdisk.c:1993
+msgid "  q          Quit program without writing partition table"
+msgstr "  q          Abbandona il programma senza scrivere la tabella"
+
+#: fdisk/cfdisk.c:1994
+msgid "  t          Change the filesystem type"
+msgstr "  t          Cambia il tipo di filesystem"
+
+#: fdisk/cfdisk.c:1995
+msgid "  u          Change units of the partition size display"
+msgstr "  u          Cambia l'unità di dimensione usata"
+
+#: fdisk/cfdisk.c:1996
+msgid "             Rotates through Mb, sectors and cylinders"
+msgstr "             Cambia tra Mb, settori e cilindri"
+
+#: fdisk/cfdisk.c:1997
+msgid "  W          Write partition table to disk (must enter upper case W)"
+msgstr "  W          Scrive la tabella sul disco (deve essere usata una W maiuscola)"
+
+#: fdisk/cfdisk.c:1998
+msgid "             Since this might destroy data on the disk, you must"
+msgstr "             Poichè questo può distruggere i dati sul disco bisogna"
+
+#: fdisk/cfdisk.c:1999
+msgid "             either confirm or deny the write by entering `yes' or"
+msgstr "             confermare o annullare la scrittura digitando `yes' o"
+
+#: fdisk/cfdisk.c:2000
+msgid "             `no'"
+msgstr "             `no'"
+
+#: fdisk/cfdisk.c:2001
+msgid "Up Arrow     Move cursor to the previous partition"
+msgstr "Freccia su   Sposta il cursore alla partizione precedente"
+
+#: fdisk/cfdisk.c:2002
+msgid "Down Arrow   Move cursor to the next partition"
+msgstr "Freccia giù  Sposta il cursore alla partizione seguente"
+
+#: fdisk/cfdisk.c:2003
+msgid "CTRL-L       Redraws the screen"
+msgstr "CTRL-L       Ridisegna lo schermo"
+
+#: fdisk/cfdisk.c:2004
+msgid "  ?          Print this screen"
+msgstr "  ?          Stampa questa schermata"
+
+#: fdisk/cfdisk.c:2006
+msgid "Note: All of the commands can be entered with either upper or lower"
+msgstr "Nota: tutti i comandi (tranne Write) possono essere immessi sia in lettere"
+
+#: fdisk/cfdisk.c:2007
+msgid "case letters (except for Writes)."
+msgstr "maiuscole che minuscole"
+
+#: fdisk/cfdisk.c:2039 fdisk/cfdisk.c:2322
+msgid "Cylinders"
+msgstr "Cilindri"
+
+#: fdisk/cfdisk.c:2039
+msgid "Change cylinder geometry"
+msgstr "Cambia la geometria del cilindro"
+
+#: fdisk/cfdisk.c:2040
+msgid "Heads"
+msgstr "Testine"
+
+#: fdisk/cfdisk.c:2040
+msgid "Change head geometry"
+msgstr "Cambia la geometria della testina"
+
+#: fdisk/cfdisk.c:2041
+msgid "Change sector geometry"
+msgstr "Cambia la geometria del settore"
+
+#: fdisk/cfdisk.c:2042
+msgid "Done"
+msgstr "Fatto"
+
+#: fdisk/cfdisk.c:2042
+msgid "Done with changing geometry"
+msgstr "Basta cambiamenti di geometria"
+
+#: fdisk/cfdisk.c:2055
+msgid "Enter the number of cylinders: "
+msgstr "Inserire il numero di cilindri: "
+
+#: fdisk/cfdisk.c:2068
+msgid "Enter the number of heads: "
+msgstr "Inserire il numero di testine: "
+
+#: fdisk/cfdisk.c:2081
+msgid "Enter the number of sectors per track: "
+msgstr "Inserire il numero di settori per traccia: "
+
+#: fdisk/cfdisk.c:2168
+msgid "Enter filesystem type: "
+msgstr "Inserire il tipo di filesystem: "
+
+#: fdisk/cfdisk.c:2210
+msgid "Boot"
+msgstr "Boot"
+
+#: fdisk/cfdisk.c:2212
+#, c-format
+msgid "Unk(%02X)"
+msgstr "Scon(%02X)"
+
+#: fdisk/cfdisk.c:2215 fdisk/cfdisk.c:2218
+msgid ", NC"
+msgstr ", NC"
+
+#: fdisk/cfdisk.c:2223 fdisk/cfdisk.c:2226
+msgid "NC"
+msgstr "NC"
+
+#: fdisk/cfdisk.c:2234
+msgid "Pri/Log"
+msgstr "Pri/Log"
+
+#: fdisk/cfdisk.c:2306
+#, c-format
+msgid "cfdisk %s"
+msgstr "cfdisk %s"
+
+#: fdisk/cfdisk.c:2308
+#, c-format
+msgid "Disk Drive: %s"
+msgstr "Disk Drive: %s"
+
+#: fdisk/cfdisk.c:2310
+#, c-format
+msgid "Heads: %d   Sectors per Track: %d   Cylinders: %d"
+msgstr "Testine: %d    Settori per traccia: %d   Cilindri: %d"
+
+#: fdisk/cfdisk.c:2314
+msgid "Name"
+msgstr "Nome"
+
+#: fdisk/cfdisk.c:2315
+msgid "Flags"
+msgstr "Flag"
+
+#: fdisk/cfdisk.c:2316
+msgid "Part Type"
+msgstr "Tipo Part"
+
+#: fdisk/cfdisk.c:2317
+msgid "FS Type"
+msgstr "Tipo FS"
+
+#: fdisk/cfdisk.c:2318
+msgid "[Label]"
+msgstr "[Etichetta]"
+
+#: fdisk/cfdisk.c:2320
+msgid "  Sectors"
+msgstr "Settori"
+
+#: fdisk/cfdisk.c:2324
+msgid "Size (MB)"
+msgstr "Dim (MB)"
+
+#: fdisk/cfdisk.c:2379
+msgid "Bootable"
+msgstr "Bootable"
+
+#: fdisk/cfdisk.c:2379
+msgid "Toggle bootable flag of the current partition"
+msgstr "Cambia il flag di bootabilità dalla partizione corrente"
+
+#: fdisk/cfdisk.c:2380
+msgid "Delete"
+msgstr "Delete"
+
+#: fdisk/cfdisk.c:2380
+msgid "Delete the current partition"
+msgstr "Cancella la partizione corrente"
+
+#: fdisk/cfdisk.c:2381
+msgid "Geometry"
+msgstr "Geometria"
+
+#: fdisk/cfdisk.c:2381
+msgid "Change disk geometry (experts only)"
+msgstr "Cambia la geometria del disco (solo per esperti)"
+
+#: fdisk/cfdisk.c:2382
+msgid "Help"
+msgstr "Help"
+
+#: fdisk/cfdisk.c:2382
+msgid "Print help screen"
+msgstr "Stampa la schermata di aiuto"
+
+#: fdisk/cfdisk.c:2383
+msgid "Maximize"
+msgstr "Massim."
+
+#: fdisk/cfdisk.c:2383
+msgid "Maximize disk usage of the current partition (experts only)"
+msgstr "Massimizza lo spazio usato dalla partizione corrente (solo per esperti)"
+
+#: fdisk/cfdisk.c:2384
+msgid "New"
+msgstr "Nuova"
+
+#: fdisk/cfdisk.c:2384
+msgid "Create new partition from free space"
+msgstr "Crea una nuova partizione dallo spazio libero"
+
+#: fdisk/cfdisk.c:2385
+msgid "Print"
+msgstr "Print"
+
+#: fdisk/cfdisk.c:2385
+msgid "Print partition table to the screen or to a file"
+msgstr "Stampa la tabella delle partizioni sullo schermo o su un file"
+
+#: fdisk/cfdisk.c:2386
+msgid "Quit"
+msgstr "Quit"
+
+#: fdisk/cfdisk.c:2386
+msgid "Quit program without writing partition table"
+msgstr "Abbandona il programma senza scrivere la tabella delle partizioni"
+
+#: fdisk/cfdisk.c:2387
+msgid "Type"
+msgstr "Tipo"
+
+#: fdisk/cfdisk.c:2387
+msgid "Change the filesystem type (DOS, Linux, OS/2 and so on)"
+msgstr "Cambia il tipo di filesystem (DOS, Linux, OS/2 ecc...)"
+
+#: fdisk/cfdisk.c:2388
+msgid "Units"
+msgstr "Unità"
+
+#: fdisk/cfdisk.c:2388
+msgid "Change units of the partition size display (MB, sect, cyl)"
+msgstr "Cambia l'unità di misura usata per le dimensioni (MB, sett, cil)"
+
+#: fdisk/cfdisk.c:2389
+msgid "Write"
+msgstr "Write"
+
+#: fdisk/cfdisk.c:2389
+msgid "Write partition table to disk (this might destroy data)"
+msgstr "Scrive la tabella delle partizioni sul disco (può distruggere dati)"
+
+#: fdisk/cfdisk.c:2542
+msgid "Copyright (C) 1994-1997 Kevin E. Martin & aeb\n"
+msgstr "Copyright (C) 1994-1997 Kevin E. Martin & aeb\n"
+
+#: fdisk/cfdisk.c:2547
+msgid ""
+"\n"
+"Usage:\n"
+msgstr "\nUso:\n"
+
+#: fdisk/cfdisk.c:2548
+msgid "Print version:\n"
+msgstr "Stampa la versione:\n"
+
+#: fdisk/cfdisk.c:2549
+#, c-format
+msgid "\t%s -v\n"
+msgstr "\t%s -v\n"
+
+#: fdisk/cfdisk.c:2550
+msgid "Print partition table:\n"
+msgstr "Stampa la tabella delle partizioni:\n"
+
+#: fdisk/cfdisk.c:2551
+#, c-format
+msgid "\t%s -P {r|s|t} [options] device\n"
+msgstr "\t%s -P {r|s|t} [opzioni] dispositivo\n"
+
+#: fdisk/cfdisk.c:2552
+msgid "Interactive use:\n"
+msgstr "Uso interattivo:\n"
+
+#: fdisk/cfdisk.c:2553
+#, c-format
+msgid "\t%s [options] device\n"
+msgstr "\t%s [opzioni] dispositivo\n"
diff --git a/po/ja.po b/po/ja.po
new file mode 100644 (file)
index 0000000..86f795a
--- /dev/null
+++ b/po/ja.po
@@ -0,0 +1,8416 @@
+# util-linux 2.9t
+# Copyright (C) 1999 Free Software Foundation, Inc.
+# Daisuke Yamashita <yamad@mb.infoweb.ne.jp>, 1999.
+# contains cfdisk translation by
+#     Hidenobu NABETANI <nabetani@kern.phys.sci.osaka-u.ac.jp>
+msgid ""
+msgstr ""
+"Project-Id-Version: util-linux 2.9t\n"
+"POT-Creation-Date: 1999-07-08 01:31+0900\n"
+"PO-Revision-Date: 1999-07-08 01:31+09:00\n"
+"Last-Translator: Daisuke Yamashita <yamad@mb.infoweb.ne.jp>\n"
+"Language-Team: japanese <japo@flatout.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=euc-jp\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: clock/cmos.c:146
+msgid "booted from MILO\n"
+msgstr "MILO ¤«¤é¥Ö¡¼¥È¤µ¤ì¤Þ¤·¤¿\n"
+
+#: clock/cmos.c:154
+msgid "Ruffian BCD clock\n"
+msgstr "Íð˽¤Ê BCD ¥¯¥í¥Ã¥¯\n"
+
+#: clock/cmos.c:170
+#, c-format
+msgid "clockport adjusted to 0x%x\n"
+msgstr "¥¯¥í¥Ã¥¯¥Ý¡¼¥È¤ò 0x%x ¤Ë½¤Àµ¤·¤Þ¤·¤¿\n"
+
+#: clock/cmos.c:180
+msgid "funky TOY!\n"
+msgstr "¥¤¥«¤·¤¿´á¶ñ!\n"
+
+#: clock/cmos.c:234
+#, c-format
+msgid "%s: atomic %s failed for 1000 iterations!"
+msgstr "%s: ÉÔ²Äʬ¤Ê%s¤Î 1000 ²ó¤ÎÈ¿Éü¤¬¼ºÇÔ!"
+
+#: clock/cmos.c:558
+#, c-format
+msgid "Cannot open /dev/port: %s"
+msgstr "/dev/port ¤ò³«¤±¤Þ¤»¤ó: %s"
+
+#: clock/cmos.c:565
+msgid "I failed to get permission because I didnt try.\n"
+msgstr "µö²Ä¤Î¼èÆÀ¤ò»î¤µ¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢µö²Ä¤Î¼èÆÀ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£\n"
+
+#: clock/cmos.c:568
+#, c-format
+msgid "%s is unable to get I/O port access:  the iopl(3) call failed.\n"
+msgstr "%s ¤Ï I/O ¥Ý¡¼¥È¥¢¥¯¥»¥¹¤¬¤Ç¤­¤Þ¤»¤ó: iopl(3) ¥³¡¼¥ë¤Ë¼ºÇÔ¡£\n"
+
+#: clock/cmos.c:571
+msgid "Probably you need root privileges.\n"
+msgstr "¶²¤é¤¯¥ë¡¼¥È¸¢¸Â¤¬É¬ÍפǤ¹¡£\n"
+
+#: clock/hwclock.c:253
+#, c-format
+msgid "Last drift adjustment done at %d seconds after 1969\n"
+msgstr "¤º¤ì¤ÎºÇ½ª½¤Àµ¤Ï 1969 Ç¯°Ê¹ß %d ÉûþÅÀ¤Ç¹Ô¤Ê¤ï¤ì¤Þ¤·¤¿\n"
+
+#: clock/hwclock.c:255
+#, c-format
+msgid "Last calibration done at %d seconds after 1969\n"
+msgstr "ºÇ½ªÄ´À°¤Ï 1969 Ç¯°Ê¹ß %d ÉûþÅÀ¤Ç¹Ô¤Ê¤ï¤ì¤Þ¤·¤¿\n"
+
+#. -----------------------------------------------------------------------------
+#. Wait until the falling edge of the Hardware Clock's update flag so
+#. that any time that is read from the clock immediately after we
+#. return will be exact.
+#.
+#. The clock only has 1 second precision, so it gives the exact time only
+#. once per second, right on the falling edge of the update flag.
+#.
+#. We wait (up to one second) either blocked waiting for an rtc device
+#. or in a CPU spin loop.  The former is probably not very accurate.
+#.
+#. Return *retcode_p == 0 if it worked, nonzero if it didn't.
+#.
+#. -----------------------------------------------------------------------------
+#: clock/hwclock.c:278
+msgid "Waiting for clock tick...\n"
+msgstr "¥¯¥í¥Ã¥¯¥Á¥Ã¥¯¤òÂԤäƤ¤¤Þ¤¹...\n"
+
+#: clock/hwclock.c:282
+msgid "...got clock tick\n"
+msgstr "¥¯¥í¥Ã¥¯¥Á¥Ã¥¯¤ò¼èÆÀ¤·¤Þ¤·¤¿\n"
+
+#: clock/hwclock.c:334
+#, c-format
+msgid "Invalid values in hardware clock: %2d/%.2d/%.2d %.2d:%.2d:%.2d\n"
+msgstr "¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯¤ËÉÔÀµ¤ÊÃÍ: %2d/%.2d/%.2d %.2d:%.2d:%.2d\n"
+
+#: clock/hwclock.c:343
+#, c-format
+msgid "Hw clock time : %.2d:%.2d:%.2d = %d seconds since 1969\n"
+msgstr "¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯»þ¹ï : %.2d:%.2d:%.2d = 1969 Ç¯°ÊÍè %d ÉÃ\n"
+
+#: clock/hwclock.c:369
+#, c-format
+msgid "Time read from Hardware Clock: %02d:%02d:%02d\n"
+msgstr "¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯¤«¤éÆɹþ¤ó¤À»þ¹ï: %02d:%02d:%02d\n"
+
+#: clock/hwclock.c:395
+#, c-format
+msgid "Setting Hardware Clock to %.2d:%.2d:%.2d = %d seconds since 1969\n"
+msgstr "¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯¤ò %.2d:%.2d:%.2d ¤ËÀßÄê = 1969 Ç¯°ÊÍè %d ÉÃ\n"
+
+#: clock/hwclock.c:401
+msgid "Clock not changed - testing only.\n"
+msgstr "¥¯¥í¥Ã¥¯¤òÊѹ¹¤·¤Þ¤»¤ó¤Ç¤·¤¿ -- ¥Æ¥¹¥È¤À¤±¤Ç¤¹¡£\n"
+
+#: clock/hwclock.c:449
+#, c-format
+msgid ""
+"Time elapsed since reference time has been %.6f seconds.\n"
+"Delaying further to reach the next full second.\n"
+msgstr ""
+"»þ¹ï¤ò»²¾È¤·¤¿»þÅÀ¤«¤é %.6f É÷вᡣ\n"
+"¼¡¤Î´°Á´¤ÊÉäޤÇÃ٤餻¤Þ¤¹¡£\n"
+
+#: clock/hwclock.c:473
+msgid ""
+"The Hardware Clock registers contain values that are either invalid (e.g. "
+"50th day of month) or beyond the range we can handle (e.g. Year 2095).\n"
+msgstr ""
+"¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯¥ì¥¸¥¹¥¿¤¬¤ª¤«¤·¤ÊÃÍ(Îã ²¿·î50Æü)¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¡¢\n"
+"Ê᪤Ǥ­¤Ê¤¤ÈϰϤÎÃÍ(Îã 2095ǯ)¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£\n"
+
+#. Address of static storage containing time string
+#. For some strange reason, ctime() is designed to include a newline
+#. character at the end.  We have to remove that.
+#.
+#. Compute display value for time
+#. Cut off trailing newline
+#: clock/hwclock.c:485
+#, c-format
+msgid "%s  %.6f seconds\n"
+msgstr "%s  %.6f ÉÃ\n"
+
+#: clock/hwclock.c:519
+msgid "No --date option specified.\n"
+msgstr "--date ¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£\n"
+
+#. Quotation marks in date_opt would ruin the date command we construct.
+#.
+#: clock/hwclock.c:524
+msgid ""
+"The value of the --date option is not a valid date.\n"
+"In particular, it contains quotation marks.\n"
+msgstr ""
+"--date ¥ª¥×¥·¥ç¥ó¤ÎÃͤ¬Àµ¤·¤¤ÆüÉդǤϤ¢¤ê¤Þ¤»¤ó¡£\n"
+"Æäˡ¢¥¯¥©¡¼¥Æ¡¼¥·¥ç¥ó¥Þ¡¼¥¯¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£\n"
+
+#: clock/hwclock.c:530
+#, c-format
+msgid "Issuing date command: %s\n"
+msgstr "date ¥³¥Þ¥ó¥É¤òȯ¹Ô¤·¤Þ¤¹: %s\n"
+
+#: clock/hwclock.c:534
+msgid "Unable to run 'date' program in /bin/sh shell. popen() failed"
+msgstr ""
+"/bin/sh ¥·¥§¥ë¥×¥í¥°¥é¥à¤Ç 'date' ¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó¡£\n"
+"popen() ¤¬¼ºÇÔ¤·¤Þ¤·¤¿¡£"
+
+#: clock/hwclock.c:540
+#, c-format
+msgid "response from date command = %s\n"
+msgstr "date ¥³¥Þ¥ó¥É¤«¤é¤ÎÊÖÅú = %s\n"
+
+#: clock/hwclock.c:542
+#, c-format
+msgid ""
+"The date command issued by %s returned unexpected results.\n"
+"The command was:\n"
+"  %s\n"
+"The response was:\n"
+"  %s\n"
+msgstr ""
+"%s ¤Ë¤è¤Ã¤Æȯ¹Ô¤µ¤ì¤¿ date ¥³¥Þ¥ó¥É¤Ïͽ´ü¤»¤Ì·ë²Ì¤òÊÖ¤·¤Þ¤·¤¿¡£\n"
+"¤½¤Î¥³¥Þ¥ó¥É¤Ï:\n"
+"  %s\n"
+"¤½¤ÎÊÖÅú¤Ï:\n"
+"  %s\n"
+
+#: clock/hwclock.c:551
+#, c-format
+msgid ""
+"The date command issued by %s returnedsomething other than an integer where "
+"the convertedtime value was expected.\n"
+"The command was:\n"
+"  %s\n"
+"The response was:\n"
+" %s\n"
+msgstr ""
+"%s ¤Ë¤è¤Ã¤Æȯ¹Ô¤µ¤ì¤¿ date ¥³¥Þ¥ó¥É¤Ï¡¢ÊÑ´¹»þ¹ï¤È¤·¤Æµá¤á¤Æ¤¤¤ëÀ°¿ôÃͤÎ\n"
+"¤«¤ï¤ê¤Ë²¿¤«Ê̤Τâ¤Î¤òÊÖ¤·¤Æ¤­¤Þ¤·¤¿¡£\n"
+"¤½¤Î¥³¥Þ¥ó¥É¤Ï:\n"
+"  %s\n"
+"¤½¤ÎÊÖÅú¤Ï:\n"
+" %s\n"
+
+#: clock/hwclock.c:561
+#, c-format
+msgid "date string %s equates to %d seconds since 1969.\n"
+msgstr "date Ê¸»úÎó %s ¤ò 1969 Ç¯°ÊÍè %d Éäȸ«¤Ê¤·¤Þ¤¹¡£\n"
+
+#: clock/hwclock.c:596
+msgid ""
+"The Hardware Clock does not contain a valid time, so we cannot set the "
+"System Time from it.\n"
+msgstr ""
+"¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯¤Ï¡¢Àµ¤·¤¤»þ¹ï¤ò´Þ¤ó¤Ç¤¤¤Ê¤¤¤Î¤Ç¡¢¤³¤³¤«¤éÆÀ¤é¤ì¤¿Ãͤò\n"
+"¥·¥¹¥Æ¥à»þ¹ï¤ËÀßÄê¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: clock/hwclock.c:612
+msgid "Calling settimeofday:\n"
+msgstr "settimeofday ¤ò¥³¡¼¥ë¤·¤Þ¤¹:\n"
+
+#: clock/hwclock.c:613
+#, c-format
+msgid "\ttv.tv_sec = %ld, tv.tv_usec = %ld\n"
+msgstr "\ttv.tv_sec = %ld, tv.tv_usec = %ld\n"
+
+#: clock/hwclock.c:615
+#, c-format
+msgid "\ttz.tz_minuteswest = %ld\n"
+msgstr "\ttz.tz_minuteswest = %ld\n"
+
+#: clock/hwclock.c:618
+msgid "Not setting system clock because running in test mode.\n"
+msgstr "¥Æ¥¹¥È¥â¡¼¥É¤ÇÆ°ºî¤·¤Æ¤¤¤ë¤¿¤á¡¢¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤òÀßÄꤷ¤Þ¤»¤ó¡£\n"
+
+#: clock/hwclock.c:630
+msgid "Must be superuser to set system clock.\n"
+msgstr "¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤òÀßÄꤹ¤ë¤Ë¤Ï¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£\n"
+
+#: clock/hwclock.c:632
+msgid "settimeofday() failed"
+msgstr "settimeofday() ¥³¡¼¥ë¤Ë¼ºÇÔ"
+
+#: clock/hwclock.c:665
+msgid ""
+"Not adjusting drift factor because the Hardware Clock previously contained "
+"garbage.\n"
+msgstr ""
+"¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯¤Ë°ÊÁ°¤Î¥´¥ß¤¬´Þ¤Þ¤ì¤Æ¤ª¤ê¡¢¤º¤ì¤ò½¤Àµ¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: clock/hwclock.c:669
+msgid ""
+"Not adjusting drift factor because it has been less than a day since the "
+"last calibration.\n"
+msgstr "Á°²ó¤ÎÄ´À°°ÊÍè¡¢¾¯¤Ê¤¯¤È¤â°ìÆü·Ð²á¤·¤Ê¤¤¤È¡¢¤º¤ì¤ò½¤Àµ¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: clock/hwclock.c:678
+#, c-format
+msgid ""
+"Clock drifted %d seconds in the past %d seconds in spite of a drift factor "
+"of %f seconds/day.\n"
+"Adjusting drift factor by %f seconds/day\n"
+msgstr ""
+"²áµî %2$d Éäδ֤ˡ¢°ìÆü¤¢¤¿¤ê %3$f É交餷¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢¥¯¥í¥Ã¥¯¤¬ %1$d "
+"ÉÃ\n"
+"¤º¤ì¤Þ¤·¤¿¡£°ìÆü¤¢¤¿¤ê %4$f É交ì¤ò½¤Àµ¤·¤Þ¤¹\n"
+
+#: clock/hwclock.c:729
+#, c-format
+msgid "Time since last adjustment is %d seconds\n"
+msgstr "ºÇ½ª½¤Àµ»þ¹ï¤«¤é %d ÉäǤ¹\n"
+
+#: clock/hwclock.c:731
+#, c-format
+msgid "Need to insert %d seconds and refer time back %.6f seconds ago\n"
+msgstr "%d ÉäÎÁÞÆþ¤È¡¢%.6f ÉÃÁ°¤Î»þ¹ï¤Î»²¾È¤¬É¬ÍפǤ¹\n"
+
+#: clock/hwclock.c:759
+msgid "Not updating adjtime file because of testing mode.\n"
+msgstr "¥Æ¥¹¥È¥â¡¼¥É¤ÇÆ°ºî¤·¤Æ¤¤¤ë¤¿¤á adjtime ¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤·¤Þ¤»¤ó¡£\n"
+
+#: clock/hwclock.c:760
+#, c-format
+msgid ""
+"Would have written the following to %s:\n"
+"%s"
+msgstr ""
+"ËÜÍè¤Ê¤é¤Ð %s ¤Ë°Ê²¼¤Î¤è¤¦¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¤Ï¤º¤Ç¤·¤¿:\n"
+"%s"
+
+#: clock/hwclock.c:784
+msgid "Drift adjustment parameters not updated.\n"
+msgstr "¤º¤ì¤Î½¤ÀµÃͤϹ¹¿·¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£\n"
+
+#: clock/hwclock.c:825
+msgid ""
+"The Hardware Clock does not contain a valid time, so we cannot adjust it.\n"
+msgstr ""
+"¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯¤Ï¡¢Àµ¾ï¤Ê»þ¹ï¤ò´Þ¤ó¤Ç¤¤¤Ê¤¤¤Î¤Ç¡¢¤³¤ì¤ò½¤Àµ¤Ç¤­¤Þ¤»¤ó¡£"
+"\n"
+
+#: clock/hwclock.c:849
+msgid "Needed adjustment is less than one second, so not setting clock.\n"
+msgstr "ɬÍפʽ¤Àµ¤¬°ìÉÃ̤Ëþ¤Ê¤Î¤Ç¡¢¥¯¥í¥Ã¥¯¤òÀßÄꤷ¤Þ¤»¤ó¡£\n"
+
+#: clock/hwclock.c:875
+#, c-format
+msgid "Using %s.\n"
+msgstr "%s ¤ò»È¤¤¤Þ¤¹¡£\n"
+
+#: clock/hwclock.c:877
+msgid "No usable clock interface found.\n"
+msgstr "ÍøÍѲÄǽ¤Ê¥¯¥í¥Ã¥¯¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£\n"
+
+#: clock/hwclock.c:965
+msgid "Unable to set system clock.\n"
+msgstr "¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤òÀßÄê¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: clock/hwclock.c:994
+msgid ""
+"The kernel keeps an epoch value for the Hardware Clock only on an Alpha "
+"machine.\n"
+"This copy of hwclock was built for a machine other than Alpha\n"
+"(and thus is presumably not running on an Alpha now).  No action taken.\n"
+msgstr ""
+"¥«¡¼¥Í¥ë¤¬¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯¤Î¤¿¤á¤Î¥¨¥Ý¥Ã¥¯ÃͤòÊÝ»ý¤Ç¤­¤ë¤Î¤Ï Alpha "
+"¥Þ¥·¥ó\n"
+"¤Î¤ß¤Ç¤¹¡£\n"
+"¤³¤Î hwclock ¤ÎÊ£À½¤Ï Alpha °Ê³°¤Î¥Þ¥·¥ó¤Ç¥Ó¥ë¥É¤µ¤ì¤Þ¤·¤¿\n"
+"(¤½¤·¤ÆÅöÁ³¡¢¸½ºß Alpha ¾å¤Ç¼Â¹Ô¤µ¤ì¤Æ¤¤¤Þ¤»¤ó)¡£¼Â¹Ô¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: clock/hwclock.c:1003
+msgid "Unable to get the epoch value from the kernel.\n"
+msgstr "¥«¡¼¥Í¥ë¤«¤é¥¨¥Ý¥Ã¥¯Ãͤò¼èÆÀ¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: clock/hwclock.c:1005
+#, c-format
+msgid "Kernel is assuming an epoch value of %lu\n"
+msgstr "¥«¡¼¥Í¥ë¤Ï¥¨¥Ý¥Ã¥¯Ãͤò %lu ¤ÈÁÛÄꤷ¤Æ¤¤¤Þ¤¹\n"
+
+#: clock/hwclock.c:1008
+msgid ""
+"To set the epoch value, you must use the 'epoch' option to tell to what "
+"value to set it.\n"
+msgstr ""
+"¥¨¥Ý¥Ã¥¯ÃͤòÀßÄꤹ¤ë¤¿¤á¤Ë¤Ï¡¢²¿¤ÎÃͤòÀßÄꤹ¤ë¤«¤òÃΤ餻¤ë¤¿¤á¤Ë 'epoch'\n"
+"¥ª¥×¥·¥ç¥ó¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£\n"
+
+#: clock/hwclock.c:1011
+#, c-format
+msgid "Not setting the epoch to %d - testing only.\n"
+msgstr "¥¨¥Ý¥Ã¥¯¤ò %d ¤ËÀßÄꤷ¤Þ¤»¤ó -- ¥Æ¥¹¥È¤À¤±¤Ç¤¹¡£\n"
+
+#: clock/hwclock.c:1014
+msgid "Unable to set the epoch value in the kernel.\n"
+msgstr "¥«¡¼¥Í¥ë¤Ë¥¨¥Ý¥Ã¥¯ÃͤòÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£\n"
+
+#: clock/hwclock.c:1094
+#, c-format
+msgid "%s takes no non-option arguments.  You supplied %d.\n"
+msgstr "%s ¤Ï²¿¤é¤«¤Î¥ª¥×¥·¥ç¥ó°ú¿ô¤ò¼è¤ê¤Þ¤¹¡£¤¢¤Ê¤¿¤Ï %d ¸ÄÍ¿¤¨¤Þ¤·¤¿¡£\n"
+
+#: clock/hwclock.c:1102
+msgid ""
+"You have specified multiple function options.\n"
+"You can only perform one function at a time.\n"
+msgstr ""
+"¤¢¤Ê¤¿¤Ïµ¡Ç½¥ª¥×¥·¥ç¥ó¤òÊ£¿ô¸Ä»ØÄꤷ¤Þ¤·¤¿¡£\n"
+"°ìÅ٤˰ì¤Ä¤Îµ¡Ç½¤Î¤ß¹Ô¤Ê¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£\n"
+
+#: clock/hwclock.c:1115
+msgid "No usable set-to time.  Cannot set clock.\n"
+msgstr "Í­¸ú¤ÊÀßÄê»þ¹ï¤¬¤¢¤ê¤Þ¤»¤ó¡£¥¯¥í¥Ã¥¯¤òÀßÄê¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: clock/hwclock.c:1130
+msgid "Sorry, only the superuser can change the Hardware Clock.\n"
+msgstr ""
+"»ÄÇ°¤Ê¤¬¤é¡¢¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯¤ÎÊѹ¹¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ç¤·¤«¹Ô¤Ê¤¨¤Þ¤»¤ó¡£\n"
+
+#: clock/hwclock.c:1134
+msgid ""
+"Sorry, only the superuser can change the Hardware Clock epoch in the "
+"kernel.\n"
+msgstr ""
+"»ÄÇ°¤Ê¤¬¤é¡¢¥«¡¼¥Í¥ëÆâ¤Î¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯¤Î¥¨¥Ý¥Ã¥¯ÃͤòÊѹ¹¤Ç¤­¤ë¤Î¤Ï¡¢\n"
+"¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤À¤±¤Ç¤¹¡£\n"
+
+#: clock/hwclock.c:1150
+msgid ""
+"Cannot access the Hardware Clock via any known method.  Use --debug option "
+"to see the details of our search for an access method.\n"
+msgstr ""
+"¥×¥í¥°¥é¥à¤¬ÃΤë¸Â¤ê¤ÎÊýË¡¤Ç¤Ï¡¢¥Ï¡¼¥É¥¦¥§¥¢¥¯¥í¥Ã¥¯¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤»¤ó¡£\n"
+"--debug ¥ª¥×¥·¥ç¥ó¤Ç¥¢¥¯¥»¥¹ÊýË¡¸¡º÷¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¸«¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: clock/hwclock.c:1164
+#, c-format
+msgid "%s: %s, errno=%d: %s.\n"
+msgstr "%s: %s, ¥¨¥é¡¼ÈÖ¹æ=%d: %s.\n"
+
+#: clock/kd.c:40
+msgid "Waiting in loop for time from KDGHWCLK to change\n"
+msgstr "KDGHWCLK ¤«¤éÊѹ¹¤Î¤¿¤á¤Î»þ¹ï¤ò¼èÆÀ¤¹¤ë¥ë¡¼¥×Ãæ¤Ç¤¹\n"
+
+#: clock/kd.c:43
+msgid "KDGHWCLK ioctl to read time failed"
+msgstr "KDGHWCLK ¤Î»þ¹ïÆɤ߼è¤ê¤¬¼ºÇÔ¤·¤Þ¤·¤¿"
+
+#: clock/kd.c:50 clock/rtc.c:144
+msgid "Timed out waiting for time change.\n"
+msgstr "»þ¹ïÊѹ¹ÂÔ¤Á¤¬¥¿¥¤¥à¥¢¥¦¥È¤·¤Þ¤·¤¿¡£\n"
+
+#: clock/kd.c:54
+msgid "KDGHWCLK ioctl to read time failed in loop"
+msgstr "»þ¹ïÆɤ߹þ¤ß¤Î¤¿¤á¤Î KDGHWCLK ioctl ¤¬¥ë¡¼¥×Æâ¤Ç¼ºÇÔ¤·¤Þ¤·¤¿"
+
+#: clock/kd.c:76
+msgid "ioctl() failed to read time from  /dev/tty1"
+msgstr "/dev/tty1 ¤«¤é»þ¹ï¤òÆɹþ¤à¤¿¤á¤Î ioctl() ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿"
+
+#: clock/kd.c:112
+msgid "ioctl() to open /dev/tty1 failed"
+msgstr "/dev/tty1 ¤ò¥ª¡¼¥×¥ó¤¹¤ë¤¿¤á¤Î ioctl ¤¬¼ºÇÔ¤·¤Þ¤·¤¿"
+
+#: clock/kd.c:142
+msgid "KDGHWCLK ioctl failed"
+msgstr "KDGHWCLK ioctl ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿"
+
+#: clock/kd.c:146
+msgid "Can't open /dev/tty1"
+msgstr "/dev/tty1 ¤ò³«¤±¤Þ¤»¤ó"
+
+#: clock/rtc.c:98
+msgid "ioctl() to /dev/rtc to read the time failed.\n"
+msgstr "»þ¹ïÆɤ߹þ¤ß¤Î¤¿¤á¤Î /dev/rtc ¤Ø¤Î ioctl() ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£\n"
+
+#: clock/rtc.c:129
+msgid "Waiting in loop for time from /dev/rtc to change\n"
+msgstr "/dev/rtc ¤«¤é»þ¹ï¤òÊѹ¹¤¹¤ë¤¿¤á¤Î¥ë¡¼¥×Ãæ¤Ç¤¹\n"
+
+#: clock/rtc.c:165 clock/rtc.c:222
+msgid "open() of /dev/rtc failed"
+msgstr "/dev/rtc ¤Ø¤Î open() ¤¬¼ºÇÔ¤·¤Þ¤·¤¿"
+
+#. This rtc device doesn't have interrupt functions.  This is typical
+#. on an Alpha, where the Hardware Clock interrupts are used by the
+#. kernel for the system clock, so aren't at the user's disposal.
+#.
+#: clock/rtc.c:182
+msgid "/dev/rtc does not have interrupt functions. "
+msgstr "/dev/rtc ¤Ï³ä¤ê¹þ¤ßµ¡Ç½¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£ "
+
+#: clock/rtc.c:191
+msgid "read() to /dev/rtc to wait for clock tick failed"
+msgstr "¥¯¥í¥Ã¥¯¥Á¥Ã¥¯¤òÂԤĤ¿¤á¤Î /dev/rtc ¤Ø¤Î read() ¤¬¼ºÇÔ¤·¤Þ¤·¤¿"
+
+#: clock/rtc.c:199
+msgid "ioctl() to /dev/rtc to turn off update interrupts failed"
+msgstr "³ä¤ê¹þ¤ß¹¹¿·¤ò¥ª¥Õ¤Ë¤¹¤ë¤¿¤á¤Î /dev/rtc ¤Ø¤Î ioctl() ¤¬¼ºÇÔ¤·¤Þ¤·¤¿"
+
+#: clock/rtc.c:202
+msgid "ioctl() to /dev/rtc to turn on update interrupts failed unexpectedly"
+msgstr ""
+"³ä¤ê¹þ¤ß¹¹¿·¤ò¥ª¥ó¤Ë¤¹¤ë¤¿¤á¤Î /dev/rtc ¤Ø¤Î ioctl() "
+"¤¬Í½´ü¤»¤Ì¼ºÇԤ˽ª¤ï¤ê¤Þ¤·¤¿"
+
+#: clock/rtc.c:245 clock/rtc.c:324 clock/rtc.c:369
+msgid "Unable to open /dev/rtc"
+msgstr "/dev/rtc ¤ò¥ª¡¼¥×¥ó¤Ç¤­¤Þ¤»¤ó"
+
+#: clock/rtc.c:268
+msgid "ioctl() to /dev/rtc to set the time failed.\n"
+msgstr "»þ¹ïÀßÄê¤Î¤¿¤á¤Î /dev/rtc ¤Ø¤Î ioctl() ¤¬¼ºÇÔ¤·¤Þ¤·¤¿¡£\n"
+
+#: clock/rtc.c:272
+#, c-format
+msgid "ioctl(%s) was successful.\n"
+msgstr "ioctl(%s) ¤ËÀ®¸ù¤·¤Þ¤·¤¿¡£\n"
+
+#: clock/rtc.c:302
+msgid "Open of /dev/rtc failed"
+msgstr "/dev/rtc ¤Î¥ª¡¼¥×¥ó¤Ë¼ºÇÔ¤·¤Þ¤·¤¿"
+
+#: clock/rtc.c:320 clock/rtc.c:365
+msgid ""
+"To manipulate the epoch value in the kernel, we must access the Linux 'rtc' "
+"device driver via the device special file /dev/rtc.  This file does not "
+"exist on this system.\n"
+msgstr ""
+"¥«¡¼¥Í¥ëÆâ¤Î¥¨¥Ý¥Ã¥¯Ãͤò»»½Ð¤¹¤ë¤Ë¤Ï¡¢¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë /dev/rtc ¤òÄ̤¸¤Æ\n"
+"Linux ¤Î 'rtc' ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ë¥¢¥¯¥»¥¹¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤·¤«¤·¡¢¤³¤Î\n"
+"¥Õ¥¡¥¤¥ë¤¬¥·¥¹¥Æ¥à¤Ë¸ºß¤·¤Þ¤»¤ó¡£\n"
+
+#: clock/rtc.c:331
+msgid "ioctl(RTC_EPOCH_READ) to /dev/rtc failed"
+msgstr "/dev/rtc ¤Ø¤Î ioctl(RTC_EPOCH_READ) ¤¬¼ºÇÔ¤·¤Þ¤·¤¿"
+
+#: clock/rtc.c:337
+#, c-format
+msgid "we have read epoch %ld from /dev/rtc with RTC_EPOCH_READ ioctl.\n"
+msgstr ""
+"/dev/rtc ¤«¤é RTC_EPOCH_READ ioctl ¤Ë¤è¤Ã¤Æ¥¨¥Ý¥Ã¥¯ %ld ¤òÆɤ߼è¤ê¤Þ¤·¤¿¡£\n"
+
+#. kernel would not accept this epoch value
+#. Hmm - bad habit, deciding not to do what the user asks
+#. just because one believes that the kernel might not like it.
+#: clock/rtc.c:357
+#, c-format
+msgid "The epoch value may not be less than 1900.  You requested %ld\n"
+msgstr ""
+"¥¨¥Ý¥Ã¥¯ÃͤϠ1900 Ç¯°ÊÁ°¤Ç¤Ï¤¢¤êÆÀ¤Þ¤»¤ó¡£¤¢¤Ê¤¿¤Ï %ld ¤òÍ׵ᤷ¤Þ¤·¤¿\n"
+
+#: clock/rtc.c:374
+#, c-format
+msgid "setting epoch to %ld with RTC_EPOCH_SET ioctl to /dev/rtc.\n"
+msgstr ""
+"/dev/rtc ¤«¤é RTC_EPOCH_READ ioctl ¤Ë¤è¤Ã¤Æ¥¨¥Ý¥Ã¥¯ %ld ¤òÆɤ߼è¤ê¤Þ¤·¤¿¡£\n"
+
+#: clock/rtc.c:379
+msgid ""
+"The kernel device driver for /dev/rtc does not have the RTC_EPOCH_SET "
+"ioctl.\n"
+msgstr "/dev/rtc ¤Î¥«¡¼¥Í¥ë¥É¥é¥¤¥Ð¤Ï RTC_EPOCH_SET ioctl ¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£\n"
+
+#: clock/rtc.c:382
+msgid "ioctl(RTC_EPOCH_SET) to /dev/rtc failed"
+msgstr "/dev/rtc ¤Ø¤Î ioctl(RTC_EPOCH_SET) ¤¬¼ºÇÔ¤·¤Þ¤·¤¿"
+
+#: clock/shhopt.c:255 clock/shhopt.c:281
+#, c-format
+msgid "invalid number `%s'\n"
+msgstr "ÉÔÀµ¤ÊÃÍ `%s'\n"
+
+#: clock/shhopt.c:258 clock/shhopt.c:284
+#, c-format
+msgid "number `%s' to `%s' out of range\n"
+msgstr "ÃÍ `%s' ¤Ï `%s' ¤Ë¤È¤Ã¤ÆÈϰϳ°¤Ç¤¹\n"
+
+#: clock/shhopt.c:398
+#, c-format
+msgid "unrecognized option `%s'\n"
+msgstr "ǧ¼±¤Ç¤­¤Ê¤¤¥ª¥×¥·¥ç¥ó `%s' ¤Ç¤¹\n"
+
+#: clock/shhopt.c:411 clock/shhopt.c:449
+#, c-format
+msgid "option `%s' requires an argument\n"
+msgstr "¥ª¥×¥·¥ç¥ó `%s' ¤Ï°ú¿ô¤òÍ׵ᤷ¤Þ¤¹\n"
+
+#: clock/shhopt.c:417
+#, c-format
+msgid "option `%s' doesn't allow an argument\n"
+msgstr "¥ª¥×¥·¥ç¥ó `%s' ¤Ï°ú¿ô¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó\n"
+
+#: clock/shhopt.c:439
+#, c-format
+msgid "unrecognized option `-%c'\n"
+msgstr "ǧ¼±¤Ç¤­¤Ê¤¤¥ª¥×¥·¥ç¥ó `-%c' ¤Ç¤¹\n"
+
+#: disk-utils/fdformat.c:33
+msgid "Formatting ... "
+msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤·¤Þ¤¹ ... "
+
+#: disk-utils/fdformat.c:51 disk-utils/fdformat.c:86
+msgid "done\n"
+msgstr "½ªÎ»\n"
+
+#: disk-utils/fdformat.c:62
+msgid "Verifying ... "
+msgstr "¾È¹ç¤·¤Þ¤¹ ... "
+
+#: disk-utils/fdformat.c:73
+msgid "Read: "
+msgstr "Æɹþ: "
+
+#: disk-utils/fdformat.c:75
+#, c-format
+msgid "Problem reading cylinder %d, expected %d, read %d\n"
+msgstr "Æɹþ¤ßÃæ¤ËÌäÂêȯÀ¸¡¢¥·¥ê¥ó¥À %d, %d ¤ÎȦ¤Ç¤¹¤¬ %d ¤òÆɹþ¤ß¤Þ¤·¤¿\n"
+
+#: disk-utils/fdformat.c:81
+#, c-format
+msgid ""
+"bad data in cyl %d\n"
+"Continuing ... "
+msgstr ""
+"¥·¥ê¥ó¥À %d ¤ËÉÔÀµ¤Ê¥Ç¡¼¥¿\n"
+"³¤±¤Þ¤¹ ... "
+
+#: disk-utils/fdformat.c:96
+#, c-format
+msgid "usage: %s [ -n ] device\n"
+msgstr "»È¤¤Êý: %s [ -n ] ¥Ç¥Ð¥¤¥¹\n"
+
+#: disk-utils/fdformat.c:122
+#, c-format
+msgid "%s: not a floppy device\n"
+msgstr "%s: ¥Õ¥í¥Ã¥Ô¡¼¥Ç¥Ð¥¤¥¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó\n"
+
+#: disk-utils/fdformat.c:128
+msgid "Could not determine current format type"
+msgstr "¸½ºß¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¥¿¥¤¥×¤òÆÃÄê¤Ç¤­¤Þ¤»¤ó"
+
+#: disk-utils/fdformat.c:129
+#, c-format
+msgid "%s-sided, %d tracks, %d sec/track. Total capacity %d kB.\n"
+msgstr "%sÌÌ, %d ¥È¥é¥Ã¥¯, %d ¥»¥¯¥¿/¥È¥é¥Ã¥¯¡£¹ç·×ÍÆÎÌ %d kB¡£\n"
+
+#: disk-utils/fdformat.c:130
+msgid "Double"
+msgstr "ξ"
+
+#: disk-utils/fdformat.c:130
+msgid "Single"
+msgstr "ÊÒ"
+
+#: disk-utils/fsck.minix.c:288
+#, c-format
+msgid "%s is mounted.\t "
+msgstr "%s ¤Ï¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤Þ¤¹\t "
+
+#: disk-utils/fsck.minix.c:290
+msgid "Do you really want to continue"
+msgstr "ËÜÅö¤Ë³¤±¤Þ¤¹¤«"
+
+#: disk-utils/fsck.minix.c:294
+msgid "check aborted.\n"
+msgstr "¥Á¥§¥Ã¥¯¤òÃæ»ß¤·¤Þ¤·¤¿\n"
+
+#: disk-utils/fsck.minix.c:311 disk-utils/fsck.minix.c:331
+msgid "Zone nr < FIRSTZONE in file `"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:313 disk-utils/fsck.minix.c:333
+msgid "Zone nr >= ZONES in file `"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:318 disk-utils/fsck.minix.c:338
+msgid "Remove block"
+msgstr "¥Ö¥í¥Ã¥¯¤Îºï½ü"
+
+#: disk-utils/fsck.minix.c:356
+msgid "Read error: unable to seek to block in file '"
+msgstr "Æɹþ¥¨¥é¡¼: ¥Õ¥¡¥¤¥ëÃæ¤Î¥Ö¥í¥Ã¥¯¤Ë°ÜÆ°¤Ç¤­¤Þ¤»¤ó '"
+
+#: disk-utils/fsck.minix.c:362
+msgid "Read error: bad block in file '"
+msgstr "Æɹþ¥¨¥é¡¼: ¥Õ¥¡¥¤¥ë¤ËÉÔÀµ¥Ö¥í¥Ã¥¯¤¬¤¢¤ê¤Þ¤¹ '"
+
+#: disk-utils/fsck.minix.c:378
+msgid ""
+"Internal error: trying to write bad block\n"
+"Write request ignored\n"
+msgstr ""
+"ÆâÉô¥¨¥é¡¼: ÉÔÀµ¥Ö¥í¥Ã¥¯¤Ø¤Î½ñ¤­¹þ¤ß\n"
+"½ñ¤­¹þ¤ßÍ×µá¤Ï̵»ë¤µ¤ì¤Þ¤¹\n"
+
+#: disk-utils/fsck.minix.c:386
+msgid "Write error: bad block in file '"
+msgstr "½ñ¤­¹þ¤ß¥¨¥é¡¼: ¥Õ¥¡¥¤¥ëÃæ¤ËÉÔÀµ¥Ö¥í¥Ã¥¯¤¬¤¢¤ê¤Þ¤¹ '"
+
+#: disk-utils/fsck.minix.c:607
+msgid "Warning: Firstzone != Norm_firstzone\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:612 disk-utils/mkfs.minix.c:528
+#, c-format
+msgid "%ld inodes\n"
+msgstr "inode ¿ô %ld\n"
+
+#: disk-utils/fsck.minix.c:613 disk-utils/mkfs.minix.c:529
+#, c-format
+msgid "%ld blocks\n"
+msgstr "¥Ö¥í¥Ã¥¯¿ô %ld\n"
+
+#: disk-utils/fsck.minix.c:614 disk-utils/mkfs.minix.c:530
+#, c-format
+msgid "Firstdatazone=%ld (%ld)\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:615 disk-utils/mkfs.minix.c:531
+#, c-format
+msgid "Zonesize=%d\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:616
+#, c-format
+msgid "Maxsize=%ld\n"
+msgstr "ºÇÂ祵¥¤¥º=%ld\n"
+
+#: disk-utils/fsck.minix.c:617
+#, c-format
+msgid "Filesystem state=%d\n"
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾õÂÖ=%d\n"
+
+#: disk-utils/fsck.minix.c:618
+#, c-format
+msgid ""
+"namelen=%d\n"
+"\n"
+msgstr ""
+"̾Á°¤ÎŤµ=%d\n"
+"\n"
+
+#: disk-utils/fsck.minix.c:632 disk-utils/fsck.minix.c:684
+#, c-format
+msgid "Inode %d marked not used, but used for file '"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:637 disk-utils/fsck.minix.c:688
+msgid "Mark in use"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:659 disk-utils/fsck.minix.c:708
+#, c-format
+msgid " has mode %05o\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:665 disk-utils/fsck.minix.c:713
+msgid "Warning: inode count too big.\n"
+msgstr "·Ù¹ð: inode ¿ô¤¬Â礭¤¹¤®¤Þ¤¹¡£\n"
+
+#: disk-utils/fsck.minix.c:749 disk-utils/fsck.minix.c:783
+msgid "Block has been used before. Now in file `"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:752 disk-utils/fsck.minix.c:786
+#: disk-utils/fsck.minix.c:1114 disk-utils/fsck.minix.c:1123
+#: disk-utils/fsck.minix.c:1167 disk-utils/fsck.minix.c:1176
+msgid "Clear"
+msgstr "¥¯¥ê¥¢"
+
+#: disk-utils/fsck.minix.c:761 disk-utils/fsck.minix.c:795
+#, c-format
+msgid "Block %d in file `"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:763 disk-utils/fsck.minix.c:797
+msgid "' is marked not in use."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:764 disk-utils/fsck.minix.c:798
+msgid "Correct"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:948 disk-utils/fsck.minix.c:1012
+msgid " contains a bad inode number for file '"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:950 disk-utils/fsck.minix.c:1014
+msgid " Remove"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:964 disk-utils/fsck.minix.c:1028
+msgid ": bad directory: '.' isn't first\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:971 disk-utils/fsck.minix.c:1036
+msgid ": bad directory: '..' isn't second\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1071
+msgid ": bad directory: size<32"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1090
+msgid ": bad directory: size < 32"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1113 disk-utils/fsck.minix.c:1166
+#, c-format
+msgid "Inode %d mode not cleared."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1122 disk-utils/fsck.minix.c:1175
+#, c-format
+msgid "Inode %d not used, marked used in the bitmap."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1128 disk-utils/fsck.minix.c:1181
+#, c-format
+msgid "Inode %d used, marked unused in the bitmap."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1134 disk-utils/fsck.minix.c:1186
+#, c-format
+msgid "Inode %d (mode = %07o), i_nlinks=%d, counted=%d."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1136 disk-utils/fsck.minix.c:1188
+msgid "Set i_nlinks to count"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1148 disk-utils/fsck.minix.c:1200
+#, c-format
+msgid "Zone %d: marked in use, no file uses it."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1149 disk-utils/fsck.minix.c:1201
+msgid "Unmark"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1153 disk-utils/fsck.minix.c:1205
+#, c-format
+msgid "Zone %d: %sin use, counted=%d\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1154 disk-utils/fsck.minix.c:1206
+msgid "not "
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1182
+msgid "Set"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1296
+#, c-format
+msgid "%s is clean, no check.\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1300
+#, c-format
+msgid "Forcing filesystem check on %s.\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1302
+#, c-format
+msgid "Filesystem on %s is dirty, needs checking.\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1331
+msgid ""
+"\n"
+"%6ld inodes used (%ld%%)\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1336
+msgid "%6ld zones used (%ld%%)\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1338
+#, c-format
+msgid ""
+"\n"
+"%6d regular files\n"
+"%6d directories\n"
+"%6d character device files\n"
+"%6d block device files\n"
+"%6d links\n"
+"%6d symbolic links\n"
+"------\n"
+"%6d files\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1351
+msgid ""
+"----------------------------\n"
+"FILE SYSTEM HAS BEEN CHANGED\n"
+"----------------------------\n"
+msgstr ""
+
+#: disk-utils/mkfs.c:66
+msgid "Usage: mkfs [-V] [-t fstype] [fs-options] device [size]\n"
+msgstr ""
+"»È¤¤Êý: mkfs [-V] [-t ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à·¿] [fs ¥ª¥×¥·¥ç¥ó] ¥Ç¥Ð¥¤¥¹ [¥µ¥¤¥º]\n"
+
+#: disk-utils/mkfs.c:80 fdisk/cfdisk.c:328 getopt-1.0.3b/getopt.c:85
+#: getopt-1.0.3b/getopt.c:95 login-utils/wall.c:221 mount/sundries.c:195
+#, c-format
+msgid "%s: Out of memory!\n"
+msgstr "%s: ¥á¥â¥ê¤¬Â­¤ê¤Þ¤»¤ó¡ª\n"
+
+#: disk-utils/mkfs.c:89
+msgid "mkfs version "
+msgstr "mkfs ¥Ð¡¼¥¸¥ç¥ó "
+
+#: disk-utils/mkfs.minix.c:186
+#, c-format
+msgid "Usage: %s [-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]\n"
+msgstr "»È¤¤Êý: %s [-c | -l ¥Õ¥¡¥¤¥ë̾] [-nXX] [-iXX] /dev/name [¥Ö¥í¥Ã¥¯¿ô]\n"
+
+#: disk-utils/mkfs.minix.c:210
+#, c-format
+msgid "%s is mounted; will not make a filesystem here!"
+msgstr "%s ¤Ï¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤Þ¤¹ -- ¤³¤³¤Ë¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¤Ä¤¯¤ì¤Þ¤»¤ó¡ª"
+
+#: disk-utils/mkfs.minix.c:271
+msgid "seek to boot block failed in write_tables"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:273
+msgid "unable to clear boot sector"
+msgstr "¥Ö¡¼¥È¥»¥¯¥¿¤ò¥¯¥ê¥¢¤Ç¤­¤Þ¤»¤ó"
+
+#: disk-utils/mkfs.minix.c:275
+msgid "seek failed in write_tables"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:277
+msgid "unable to write super-block"
+msgstr "¥¹¡¼¥Ñ¡¼¥Ö¥í¥Ã¥¯¤Î½ñ¤­¹þ¤ß¤¬¤Ç¤­¤Þ¤»¤ó"
+
+#: disk-utils/mkfs.minix.c:279
+msgid "unable to write inode map"
+msgstr "inode ¥Þ¥Ã¥×¤Î½ñ¤­¹þ¤ß¤¬¤Ç¤­¤Þ¤»¤ó"
+
+#: disk-utils/mkfs.minix.c:281
+msgid "unable to write zone map"
+msgstr "¥¾¡¼¥ó¥Þ¥Ã¥×¤Î½ñ¤­¹þ¤ß¤¬¤Ç¤­¤Þ¤»¤ó"
+
+#: disk-utils/mkfs.minix.c:283
+msgid "unable to write inodes"
+msgstr "inode ¤Î½ñ¤­¹þ¤ß¤¬¤Ç¤­¤Þ¤»¤ó"
+
+#: disk-utils/mkfs.minix.c:290
+msgid "seek failed in write_block"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:292
+msgid "write failed in write_block"
+msgstr ""
+
+#. Could make triple indirect block here
+#: disk-utils/mkfs.minix.c:300 disk-utils/mkfs.minix.c:374
+#: disk-utils/mkfs.minix.c:425
+msgid "too many bad blocks"
+msgstr "ÉÔÀµ¥Ö¥í¥Ã¥¯¤¬Â¿¤¹¤®¤Þ¤¹"
+
+#: disk-utils/mkfs.minix.c:308
+msgid "not enough good blocks"
+msgstr "Àµ¾ï¤Ê¥Ö¥í¥Ã¥¯¤¬ÉÔ½½Ê¬¤Ç¤¹"
+
+#: disk-utils/mkfs.minix.c:517
+msgid "unable to allocate buffers for maps"
+msgstr "¥Þ¥Ã¥×¥Ð¥Ã¥Õ¥¡¤ò³ÎÊݤǤ­¤Þ¤»¤ó"
+
+#: disk-utils/mkfs.minix.c:526
+msgid "unable to allocate buffer for inodes"
+msgstr "inode ¥Ð¥Ã¥Õ¥¡¤Î³ÎÊݤ¬¤Ç¤­¤Þ¤»¤ó¡£"
+
+#: disk-utils/mkfs.minix.c:532
+#, c-format
+msgid ""
+"Maxsize=%ld\n"
+"\n"
+msgstr ""
+"ºÇÂ祵¥¤¥º=%ld\n"
+"\n"
+
+#: disk-utils/mkfs.minix.c:546
+msgid "seek failed during testing of blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:554
+msgid "Weird values in do_check: probably bugs\n"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:585
+msgid "seek failed in check_blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:594
+msgid "bad blocks before data-area: cannot make fs"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:600 disk-utils/mkfs.minix.c:622
+#, c-format
+msgid "%d bad blocks\n"
+msgstr "ÉÔÀµ¥Ö¥í¥Ã¥¯¿ô %d\n"
+
+#: disk-utils/mkfs.minix.c:602 disk-utils/mkfs.minix.c:624
+msgid "one bad block\n"
+msgstr "ÉÔÀµ¥Ö¥í¥Ã¥¯¿ô 1\n"
+
+#: disk-utils/mkfs.minix.c:614
+msgid "can't open file of bad blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:637 disk-utils/mkfs.minix.c:640
+msgid "bad inode size"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:669
+#, c-format
+msgid "%s: not compiled with minix v2 support\n"
+msgstr "%s: minix v2 ¤Î¥µ¥Ý¡¼¥È¤Ä¤­¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
+
+#: disk-utils/mkfs.minix.c:685
+msgid "strtol error: number of blocks not specified"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:717
+#, c-format
+msgid "unable to open %s"
+msgstr "%s ¤ò³«¤±¤Þ¤»¤ó"
+
+#: disk-utils/mkfs.minix.c:719
+#, c-format
+msgid "unable to stat %s"
+msgstr "%s ¤Î¾õÂÖ¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
+
+#: disk-utils/mkfs.minix.c:723
+#, c-format
+msgid "will not try to make filesystem on '%s'"
+msgstr ""
+
+#: disk-utils/mkswap.c:101
+#, c-format
+msgid "Assuming pages of size %d\n"
+msgstr "¥µ¥¤¥º %s ¥Ú¡¼¥¸¤ò»î¤·¤Þ¤¹\n"
+
+#: disk-utils/mkswap.c:234
+msgid "one bad page\n"
+msgstr "ÉÔÀµ¤Ê¥Ú¡¼¥¸¿ô 1\n"
+
+#: disk-utils/mkswap.c:236
+#, c-format
+msgid "%d bad pages\n"
+msgstr "ÉÔÀµ¤Ê¥Ú¡¼¥¸¿ô %d\n"
+
+#: disk-utils/mkswap.c:340
+#, c-format
+msgid "%s: error: Nowhere to set up swap on?\n"
+msgstr "%s: ¥¨¥é¡¼: ¥¹¥ï¥Ã¥×¤òÍ­¸ú¤ËÀßÄꤹ¤ë¤¿¤á¤Î¾ì½ê¤¬¤Ê¤¤¡©\n"
+
+#: disk-utils/mkswap.c:349
+#, c-format
+msgid "%s: error: size %ld is larger than device size %d\n"
+msgstr "%s: ¥¨¥é¡¼: ¥µ¥¤¥º %ld ¤¬¥Ç¥Ð¥¤¥¹¤Î¥µ¥¤¥º %d ¤è¤ê¤âÂ礭¤¤¤Ç¤¹\n"
+
+#: disk-utils/mkswap.c:367
+#, c-format
+msgid "%s: error: unknown version %d\n"
+msgstr "%s: ¥¨¥é¡¼: Ì¤ÃΤΥС¼¥¸¥ç¥ó %d\n"
+
+#: disk-utils/mkswap.c:373
+#, c-format
+msgid "%s: error: swap area needs to be at least %ldkB\n"
+msgstr "%s: ¥¨¥é¡¼: ¥¹¥ï¥Ã¥×Îΰè¤Ï¾¯¤Ê¤¯¤È¤â %ldkB É¬ÍפǤ¹\n"
+
+#: disk-utils/mkswap.c:392
+#, c-format
+msgid "%s: warning: truncating swap area to %ldkB\n"
+msgstr "%s: ·Ù¹ð: ¥¹¥ï¥Ã¥×Îΰè¤ò %ldkB ¤ËÀÚ¤êµÍ¤á¤Þ¤·¤¿\n"
+
+#: disk-utils/mkswap.c:419
+#, c-format
+msgid ""
+"%s: Device '%s' contains a valid Sun disklabel.\n"
+"This probably means creating v0 swap would destroy your partition table\n"
+"No swap created. If you really want to create swap v0 on that device, use\n"
+"the -f option to force it.\n"
+msgstr ""
+"%s: ¥Ç¥Ð¥¤¥¹ '%s' ¤ÏÀµ¾ï¤Ê Sun ¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£\n"
+"¤³¤ì¤Ï¤ª¤½¤é¤¯ v0 ¥¹¥ï¥Ã¥×¤òºî¤ë¤³¤È¤¬¤¢¤Ê¤¿¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤ò\n"
+"Ç˲õ¤·¤Æ¤·¤Þ¤¦¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£¤â¤·¤¢¤Ê¤¿¤¬ËÜÅö¤Ë¤½¤Î¥Ç¥Ð¥¤¥¹¤Ë v0 "
+"¥¹¥ï¥Ã¥×\n"
+"¤ò¤òºîÀ®¤·¤¿¤±¤ì¤Ð¡¢-f ¥ª¥×¥·¥ç¥ó¤Ç¶¯Íפ·¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: disk-utils/mkswap.c:444
+#, c-format
+msgid "Setting up swapspace version %d, size = %ld bytes\n"
+msgstr "¥¹¥ï¥Ã¥×¶õ´Ö¥Ð¡¼¥¸¥ç¥ó %d ¤òÀßÄꤷ¤Þ¤¹¡¢¥µ¥¤¥º = %ld ¥Ð¥¤¥È\n"
+
+#: disk-utils/setfdprm.c:30
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "ÉÔÀµ¤Ê¿ô: %s\n"
+
+#: disk-utils/setfdprm.c:80
+#, c-format
+msgid "Syntax error: '%s'\n"
+msgstr "ʸˡ¥¨¥é¡¼: '%s'\n"
+
+#: disk-utils/setfdprm.c:90
+#, c-format
+msgid "No such parameter set: '%s'\n"
+msgstr "¤½¤Î¤è¤¦¤ÊÀßÄê¥Ñ¥é¥á¥¿¤Ï¤¢¤ê¤Þ¤»¤ó: '%s'\n"
+
+#: disk-utils/setfdprm.c:100
+#, c-format
+msgid "usage: %s [ -p ] dev name\n"
+msgstr "»È¤¤Êý: %s [ -p ] ¥Ç¥Ð¥¤¥¹ Ì¾Á°\n"
+
+#: disk-utils/setfdprm.c:101
+#, c-format
+msgid ""
+"       %s [ -p ] dev size sect heads tracks stretch gap rate spec1 fmt_gap\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:104
+#, c-format
+msgid "       %s [ -c | -y | -n | -d ] dev\n"
+msgstr "       %s [ -c | -y | -n | -d ] ¥Ç¥Ð¥¤¥¹\n"
+
+#: disk-utils/setfdprm.c:106
+#, c-format
+msgid "       %s [ -c | -y | -n ] dev\n"
+msgstr "       %s [ -c | -y | -n ] ¥Ç¥Ð¥¤¥¹\n"
+
+#: fdisk/cfdisk.c:353 fdisk/cfdisk.c:1853
+msgid "Unusable"
+msgstr "»ÈÍÑÉÔ²Ä"
+
+#: fdisk/cfdisk.c:355 fdisk/cfdisk.c:1855
+msgid "Free Space"
+msgstr "¶õ¤­Îΰè"
+
+#: fdisk/cfdisk.c:358
+msgid "Linux ext2"
+msgstr "Linux ext2"
+
+#. also Solaris
+#: fdisk/cfdisk.c:360 fdisk/i386_sys_types.c:56
+msgid "Linux"
+msgstr "Linux"
+
+#: fdisk/cfdisk.c:363
+msgid "OS/2 HPFS"
+msgstr "OS/2 HPFS"
+
+#: fdisk/cfdisk.c:365
+msgid "OS/2 IFS"
+msgstr "OS/2 IFS"
+
+#: fdisk/cfdisk.c:369
+msgid "NTFS"
+msgstr "NTFS"
+
+#: fdisk/cfdisk.c:380
+msgid "Disk has been changed.\n"
+msgstr "¥Ç¥£¥¹¥¯¤¬Êѹ¹¤µ¤ì¤Þ¤·¤¿¡£\n"
+
+#: fdisk/cfdisk.c:381
+msgid "Reboot the system to ensure the partition table is correctly updated.\n"
+msgstr ""
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾ðÊó¤òÀµ¤·¤¯¹¹¿·¤µ¤»¤ë¤Ë¤Ï¥·¥¹¥Æ¥à¤òºÆµ¯Æ°¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: fdisk/cfdisk.c:384
+msgid ""
+"\n"
+"WARNING: If you have created or modified any\n"
+"DOS 6.x partitions, please see the cfdisk manual\n"
+"page for additional information.\n"
+msgstr ""
+"\n"
+"·Ù¹ð: DOS 6.x ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºîÀ®¡¢¤Þ¤¿¤ÏÊѹ¹¤·¤Æ¤·\n"
+"¤Þ¤Ã¤¿¾ì¹ç¤Ï¡¢cfdisk ¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¤¢¤ëÄɲþðÊó\n"
+"¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: fdisk/cfdisk.c:479
+msgid "FATAL ERROR"
+msgstr "*Ã×̿Ū¤Ê¥¨¥é¡¼*"
+
+#: fdisk/cfdisk.c:488
+msgid "Press any key to exit cfdisk"
+msgstr "ÃæÃǤ¹¤ë¤Ë¤Ï²¿¤«¥­¡¼¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤"
+
+#: fdisk/cfdisk.c:524 fdisk/cfdisk.c:532
+msgid "Cannot seek on disk drive"
+msgstr "¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö¾å¤Ç seek ¤Ç¤­¤Þ¤»¤ó"
+
+#: fdisk/cfdisk.c:526
+msgid "Cannot read disk drive"
+msgstr "¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö¤òÆɤ߹þ¤á¤Þ¤»¤ó"
+
+#: fdisk/cfdisk.c:534
+msgid "Cannot write disk drive"
+msgstr "¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö¤Ë½ñ¤­¹þ¤á¤Þ¤»¤ó"
+
+#: fdisk/cfdisk.c:771
+msgid "Too many partitions"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬Â¿¤¹¤®¤Þ¤¹"
+
+#: fdisk/cfdisk.c:776
+msgid "Partition begins before sector 0"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¥»¥¯¥¿ 0 ¤è¤ê¤Þ¤¨¤«¤é»Ï¤Þ¤Ã¤Æ¤¤¤Þ¤¹"
+
+#: fdisk/cfdisk.c:781
+msgid "Partition ends before sector 0"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¥»¥¯¥¿ 0 ¤è¤êÁ°¤Ç½ª¤ï¤Ã¤Æ¤¤¤Þ¤¹"
+
+#: fdisk/cfdisk.c:786
+msgid "Partition begins after end-of-disk"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¥Ç¥£¥¹¥¯¤Î½ªÅÀ¤è¤ê¤â¸å¤í¤«¤é»Ï¤Þ¤Ã¤Æ¤¤¤Þ¤¹"
+
+#: fdisk/cfdisk.c:791
+msgid "Partition ends after end-of-disk"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¥Ç¥£¥¹¥¯¤Î½ªÅÀ¤è¤ê¤â¸å¤í¤Ç½ª¤ï¤Ã¤Æ¤¤¤Þ¤¹"
+
+#: fdisk/cfdisk.c:839
+msgid ""
+"!!!! Internal error creating logical drive with no extended partition !!!!"
+msgstr ""
+"!!!! ÆâÉô¥¨¥é¡¼¡£³ÈÄ¥Îΰè°Ê³°¤ËÏÀÍý¥É¥é¥¤¥Ö¤òºîÀ®¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹ !!!!"
+
+#: fdisk/cfdisk.c:850 fdisk/cfdisk.c:862
+msgid ""
+"Cannot create logical drive here -- would create two extended partitions"
+msgstr ""
+"¤³¤³¤Ë¤ÏÏÀÍý¥É¥é¥¤¥Ö¤òºîÀ®¤Ç¤­¤Þ¤»¤ó -- 2 ¤Ä¤Î³ÈÄ¥Îΰè¤Ç¤¢¤ì¤ÐºîÀ®¤·¤Þ¤¹"
+
+#: fdisk/cfdisk.c:1012
+msgid "Menu item too long. Menu may look odd."
+msgstr "¥á¥Ë¥å¡¼¹àÌÜ̾¤¬Ä¹¤¹¤®¤Þ¤¹¡£¥á¥Ë¥å¡¼É½¼¨¤¬Íð¤ì¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£"
+
+#: fdisk/cfdisk.c:1068
+msgid "Menu without direction. Defaulting horizontal."
+msgstr "¥á¥Ë¥å¡¼¤ËÊý¸þ¤¬¤¢¤ê¤Þ¤»¤ó¡£¿åÊ¿Êý¸þ¤ò½é´üÃͤȤ·¤Þ¤¹¡£"
+
+#: fdisk/cfdisk.c:1203
+msgid "Illegal key"
+msgstr "ÉÔÀµ¤Ê¥­¡¼"
+
+#: fdisk/cfdisk.c:1226
+msgid "Press a key to continue"
+msgstr "³¤±¤ë¤Ë¤Ï²¿¤«¥­¡¼¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤"
+
+#: fdisk/cfdisk.c:1273 fdisk/cfdisk.c:1824 fdisk/cfdisk.c:2347
+#: fdisk/cfdisk.c:2349
+msgid "Primary"
+msgstr "´ðËÜÎΰè"
+
+#: fdisk/cfdisk.c:1273
+msgid "Create a new primary partition"
+msgstr "¿·µ¬¤Ë´ðËÜÎΰè¤òºîÀ®¤·¤Þ¤¹"
+
+#: fdisk/cfdisk.c:1274 fdisk/cfdisk.c:1824 fdisk/cfdisk.c:2346
+#: fdisk/cfdisk.c:2349
+msgid "Logical"
+msgstr "ÏÀÍýÎΰè"
+
+#: fdisk/cfdisk.c:1274
+msgid "Create a new logical partition"
+msgstr "¿·µ¬¤ËÏÀÍýÎΰè¤òºîÀ®¤·¤Þ¤¹"
+
+#: fdisk/cfdisk.c:1275 fdisk/cfdisk.c:1328 fdisk/cfdisk.c:2036
+msgid "Cancel"
+msgstr "Ãæ»ß"
+
+#: fdisk/cfdisk.c:1275 fdisk/cfdisk.c:1328
+msgid "Don't create a partition"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºîÀ®¤·¤Þ¤»¤ó"
+
+#: fdisk/cfdisk.c:1291
+msgid "!!! Internal error !!!"
+msgstr "!!! ÆâÉô¥¨¥é¡¼ !!!"
+
+#: fdisk/cfdisk.c:1294
+msgid "Size (in MB): "
+msgstr "¥µ¥¤¥º (MB Ã±°Ì): "
+
+#: fdisk/cfdisk.c:1326
+msgid "Beginning"
+msgstr "ºÇ½é¤«¤é"
+
+#: fdisk/cfdisk.c:1326
+msgid "Add partition at beginning of free space"
+msgstr "¶õ¤­Îΰè¤ÎºÇ½é¤Ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òÄɲÃ"
+
+#: fdisk/cfdisk.c:1327
+msgid "End"
+msgstr "ºÇ¸å¤«¤é"
+
+#: fdisk/cfdisk.c:1327
+msgid "Add partition at end of free space"
+msgstr "¶õ¤­Îΰè¤ÎºÇ¸å¤Ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òÄɲÃ"
+
+#: fdisk/cfdisk.c:1345
+msgid "No room to create the extended partition"
+msgstr "³ÈÄ¥Îΰè¤òºîÀ®¤¹¤ë¤¿¤á¤Î¾ì½ê¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#. probably a file or cdrom
+#: fdisk/cfdisk.c:1377
+msgid "Cannot read disk drive geometry"
+msgstr "¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö¤Î¥¸¥ª¥á¥È¥ê¤òÆɤ߹þ¤á¤Þ¤»¤ó"
+
+#: fdisk/cfdisk.c:1392
+msgid "Bad signature on partition table"
+msgstr "Îΰè¥Æ¡¼¥Ö¥ë¤Î½ð̾¤¬ÉÔÀµ¤Ç¤¹"
+
+#: fdisk/cfdisk.c:1395
+msgid "Cannot get disk size"
+msgstr "¥Ç¥£¥¹¥¯¥µ¥¤¥º¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
+
+#: fdisk/cfdisk.c:1413
+msgid "Cannot derive a geometry from an empty partition table"
+msgstr "¶õ¤ÎÎΰè¥Æ¡¼¥Ö¥ë¤«¤é¤Ï¥¸¥ª¥á¥È¥ê¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
+
+#: fdisk/cfdisk.c:1421
+msgid "Cannot derive a geometry from the partition table"
+msgstr "¤½¤ÎÎΰè¥Æ¡¼¥Ö¥ë¤«¤é¥¸¥ª¥á¥È¥ê¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
+
+#: fdisk/cfdisk.c:1454
+msgid "Cannot open disk drive"
+msgstr "¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö¤ò³«¤±¤Þ¤»¤ó"
+
+#: fdisk/cfdisk.c:1456 fdisk/cfdisk.c:1640
+msgid "Opened disk read-only - you have no permission to write"
+msgstr "¥Ç¥£¥¹¥¯¤òÆɹþ¤ßÀìÍѤdz«¤­¤Þ¤·¤¿ -- ¤¢¤Ê¤¿¤Ë¤Ï½ñ¹þ¤ß¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#. avoid snprintf - it does not exist on ancient systems
+#: fdisk/cfdisk.c:1499
+msgid "Bad primary partition"
+msgstr "ÉÔÀµ¤Ê´ðËÜÎΰè"
+
+#. avoid snprintf
+#: fdisk/cfdisk.c:1530
+msgid "Bad logical partition"
+msgstr "ÉÔÀµ¤ÊÏÀÍýÎΰè"
+
+#: fdisk/cfdisk.c:1652
+msgid "Warning!!  This may destroy data on your disk!"
+msgstr "·Ù¹ð¡ª ¤³¤ì¤Ï¤¢¤Ê¤¿¤Î¥Ç¥£¥¹¥¯¤Ë¤¢¤ë¥Ç¡¼¥¿¤òÇ˲õ¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó"
+
+#: fdisk/cfdisk.c:1656
+msgid "Are you sure you want write the partition table to disk? (yes or no): "
+msgstr ""
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾ðÊó¤ò¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤ó¤Ç¤â¤è¤í¤·¤¤¤Ç¤¹¤«¡©(yes ¤Þ¤¿¤Ï no): "
+
+#: fdisk/cfdisk.c:1662
+msgid "no"
+msgstr ""
+
+#: fdisk/cfdisk.c:1663
+msgid "Did not write partition table to disk"
+msgstr "Îΰè¥Æ¡¼¥Ö¥ë¤ò¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤ß¤Þ¤»¤ó¤Ç¤·¤¿"
+
+#: fdisk/cfdisk.c:1665
+msgid "yes"
+msgstr "yes"
+
+#: fdisk/cfdisk.c:1668
+msgid "Please enter `yes' or `no'"
+msgstr "`yes' ¤« `no' ¤Î¤¤¤º¤ì¤«¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤"
+
+#: fdisk/cfdisk.c:1672
+msgid "Writing partition table to disk..."
+msgstr "Îΰè¥Æ¡¼¥Ö¥ë¤ò½ñ¤­¹þ¤ßÃæ..."
+
+#: fdisk/cfdisk.c:1697 fdisk/cfdisk.c:1701
+msgid "Wrote partition table to disk"
+msgstr "Îΰè¥Æ¡¼¥Ö¥ë¤ò¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤ß¤Þ¤·¤¿"
+
+#: fdisk/cfdisk.c:1699
+msgid ""
+"Wrote partition table, but re-read table failed.  Reboot to update table."
+msgstr ""
+"Îΰè¥Æ¡¼¥Ö¥ë¤ò½ñ¤­¹þ¤ß¤Þ¤·¤¿¤¬¡¢ºÆÆɹþ¤ß¤Ë¼ºÇÔ¡£ºÆµ¯Æ°¤·¤Æ¹¹¿·¤·¤Æ¤¯¤À¤µ¤¤"
+
+#: fdisk/cfdisk.c:1709
+msgid ""
+"Not precisely one primary partition is bootable. DOS MBR cannot boot this."
+msgstr ""
+"¥Ö¡¼¥È²Äǽ´ðËÜÎΰ褬°ì¤Ä¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£DOS MBR ¤Ï¤³¤ì¤ò¥Ö¡¼¥È¤Ç¤­¤Þ¤»¤ó¡£"
+
+#: fdisk/cfdisk.c:1767 fdisk/cfdisk.c:1885 fdisk/cfdisk.c:1977
+msgid "Enter filename or press RETURN to display on screen: "
+msgstr "¥Õ¥¡¥¤¥ë̾¤òÆþÎÏ¡¢²èÌ̤Ëɽ¼¨¤¹¤ë¾ì¹ç¤Ï¥ê¥¿¡¼¥ó¥­¡¼: "
+
+#: fdisk/cfdisk.c:1775 fdisk/cfdisk.c:1893 fdisk/cfdisk.c:1985
+#, c-format
+msgid "Cannot open file '%s'"
+msgstr "¥Õ¥¡¥¤¥ë '%s' ¤ò³«¤±¤Þ¤»¤ó"
+
+#: fdisk/cfdisk.c:1786
+#, c-format
+msgid "Disk Drive: %s\n"
+msgstr "¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö: %s\n"
+
+#: fdisk/cfdisk.c:1788
+msgid "Sector 0:\n"
+msgstr "¥»¥¯¥¿ 0:\n"
+
+#: fdisk/cfdisk.c:1795
+#, c-format
+msgid "Sector %d:\n"
+msgstr "¥»¥¯¥¿ %d:\n"
+
+#: fdisk/cfdisk.c:1815
+msgid "   None   "
+msgstr "   Ìµ¤·   "
+
+#: fdisk/cfdisk.c:1817
+msgid "   Pri/Log"
+msgstr "   ´ðËÜ/ÏÀÍý"
+
+#: fdisk/cfdisk.c:1819
+msgid "   Primary"
+msgstr "   ´ðËÜÎΰè"
+
+#: fdisk/cfdisk.c:1821
+msgid "   Logical"
+msgstr "   ÏÀÍýÎΰè"
+
+#. odd flag on end
+#. type id
+#. type name
+#: fdisk/cfdisk.c:1859 fdisk/fdisk.c:1059 fdisk/fdisk.c:1208
+#: fdisk/fdisksgilabel.c:224 fdisk/fdisksunlabel.c:646 fdisk/sfdisk.c:560
+msgid "Unknown"
+msgstr "ÉÔÌÀ"
+
+#: fdisk/cfdisk.c:1865
+#, c-format
+msgid "Boot (%02X)"
+msgstr "¥Ö¡¼¥È (%02X)"
+
+#: fdisk/cfdisk.c:1867 fdisk/cfdisk.c:2355
+#, c-format
+msgid "Unknown (%02X)"
+msgstr "̤ÃΠ(%02X)"
+
+#: fdisk/cfdisk.c:1869
+#, c-format
+msgid "None (%02X)"
+msgstr "¤Ê¤· (%02X)"
+
+#: fdisk/cfdisk.c:1904 fdisk/cfdisk.c:1996
+#, c-format
+msgid "Partition Table for %s\n"
+msgstr "%s ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾ðÊó\n"
+
+#: fdisk/cfdisk.c:1906
+msgid "            First    Last\n"
+msgstr "            ºÇ½é¤Î   ºÇ¸å¤Î\n"
+
+#: fdisk/cfdisk.c:1907
+msgid ""
+" # Type     Sector   Sector   Offset  Length   Filesystem Type (ID)   Flags\n"
+msgstr ""
+" #  Îΰ蠠  ¥»¥¯¥¿   ¥»¥¯¥¿ ¥ª¥Õ¥»¥Ã¥È Â礭¤µ  Filesystem¥¿¥¤¥×(ID)   "
+"¥Õ¥é¥°\n"
+
+#: fdisk/cfdisk.c:1908
+msgid ""
+"-- ------- -------- --------- ------ --------- ---------------------- "
+"---------\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:1998
+msgid "         ---Starting---      ----Ending----    Start Number of\n"
+msgstr "         ---ºÇ½é¤Î-----      ----ºÇ¸å¤Î---- ½é¤á¤Î¥»  \n"
+
+#: fdisk/cfdisk.c:1999
+msgid " # Flags Head Sect Cyl   ID  Head Sect Cyl    Sector  Sectors\n"
+msgstr " # Flags Head Sect Cyl   ID  Head Sect Cyl  ¥¯¥¿Èֹ栥»¥¯¥¿¿ô\n"
+
+#: fdisk/cfdisk.c:2000
+msgid "-- ----- ---- ---- ---- ---- ---- ---- ---- -------- ---------\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:2033
+msgid "Raw"
+msgstr "À¸¥Ç¡¼¥¿"
+
+#: fdisk/cfdisk.c:2033
+msgid "Print the table using raw data format"
+msgstr "À¸¥Ç¡¼¥¿¤Î·Á¼°¤Ç¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾ðÊó¤ò½ÐÎÏ"
+
+#: fdisk/cfdisk.c:2034 fdisk/cfdisk.c:2136
+msgid "Sectors"
+msgstr "¥»¥¯¥¿"
+
+#: fdisk/cfdisk.c:2034
+msgid "Print the table ordered by sectors"
+msgstr "¥»¥¯¥¿½ç¤Ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾ðÊó¤ò½ÐÎÏ"
+
+#: fdisk/cfdisk.c:2035
+msgid "Table"
+msgstr "¥Æ¡¼¥Ö¥ë"
+
+#: fdisk/cfdisk.c:2035
+msgid "Just print the partition table"
+msgstr "ñ¤Ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾ðÊó¤ò½ÐÎÏ"
+
+#: fdisk/cfdisk.c:2036
+msgid "Don't print the table"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾ðÊó¤ò½ÐÎϤ·¤Ê¤¤"
+
+#: fdisk/cfdisk.c:2064
+msgid "Help Screen for cfdisk "
+msgstr "cfdisk ¤Î¥Ø¥ë¥×²èÌÌ "
+
+#: fdisk/cfdisk.c:2066
+msgid "This is cfdisk, a curses based disk partitioning program, which"
+msgstr "cfdisk ¤ÏüËö·¿¥Ç¥£¥¹¥¯¥Ñ¡¼¥Æ¥£¥·¥ç¥óºîÀ®¥×¥í¥°¥é¥à¤Ç¤¹¡£"
+
+#: fdisk/cfdisk.c:2067
+msgid "allows you to create, delete and modify partitions on your hard"
+msgstr "¥Ï¡¼¥É¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºîÀ®¡¢ºï½ü¡¢Êѹ¹"
+
+#: fdisk/cfdisk.c:2068
+msgid "disk drive."
+msgstr "¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£"
+
+#: fdisk/cfdisk.c:2070
+msgid "Copyright (C) 1994-1998 Kevin E. Martin & aeb"
+msgstr "Copyright (C) 1994-1998 Kevin E. Martin & aeb"
+
+#: fdisk/cfdisk.c:2072
+msgid "Command      Meaning"
+msgstr "¥³¥Þ¥ó¥É      ÀâÌÀ"
+
+#: fdisk/cfdisk.c:2073
+msgid "-------      -------"
+msgstr ""
+
+#: fdisk/cfdisk.c:2074
+msgid "  b          Toggle bootable flag of the current partition"
+msgstr "  b          ¥«¡¼¥½¥ë¾å¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥Ö¡¼¥È¥Õ¥é¥°¤ÎÀÚÂØ"
+
+#: fdisk/cfdisk.c:2075
+msgid "  d          Delete the current partition"
+msgstr "  d          ¥«¡¼¥½¥ë¾å¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºï½ü"
+
+#: fdisk/cfdisk.c:2076
+msgid "  g          Change cylinders, heads, sectors-per-track parameters"
+msgstr "  g          ¥·¥ê¥ó¥À, ¥Ø¥Ã¥À, ¥È¥é¥Ã¥¯Åö¤¿¤ê¤Î¥»¥¯¥¿¿ô¤òÊѹ¹"
+
+#: fdisk/cfdisk.c:2077
+msgid "             WARNING: This option should only be used by people who"
+msgstr "             ·Ù¹ð: ¤³¤Î¥ª¥×¥·¥ç¥ó¤¬²¿¤ò¤¹¤ë¤â¤Î¤«Íý²ò¤·¤Æ¤¤¤Ê¤¤¿Í"
+
+#: fdisk/cfdisk.c:2078
+msgid "             know what they are doing."
+msgstr "             ¤Ï»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£"
+
+#: fdisk/cfdisk.c:2079
+msgid "  h          Print this screen"
+msgstr "  h          ¤³¤Î²èÌ̤òɽ¼¨"
+
+#: fdisk/cfdisk.c:2080
+msgid "  m          Maximize disk usage of the current partition"
+msgstr "  m          ¥«¡¼¥½¥ë¾å¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥Ç¥£¥¹¥¯»ÈÍÑÎ̤òºÇÂç¤Ë¤¹¤ë¡£"
+
+#: fdisk/cfdisk.c:2081
+msgid "             Note: This may make the partition incompatible with"
+msgstr "             Ãí°Õ: ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢DOS, OS/2 Åù¤È¸ß´¹À­¤Î¤Ê¤¤"
+
+#: fdisk/cfdisk.c:2082
+msgid "             DOS, OS/2, ..."
+msgstr "             ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºîÀ®¤¹¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£"
+
+#: fdisk/cfdisk.c:2083
+msgid "  n          Create new partition from free space"
+msgstr "  n          ¶õ¤­Îΰ褫¤é¿·µ¬¤Ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºîÀ®"
+
+#: fdisk/cfdisk.c:2084
+msgid "  p          Print partition table to the screen or to a file"
+msgstr "  p          ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾ðÊó¤ò²èÌ̤ޤ¿¤Ï¥Ç¥£¥¹¥¯¤Ë½ÐÎϤ¹¤ë"
+
+#: fdisk/cfdisk.c:2085
+msgid "             There are several different formats for the partition"
+msgstr "             ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î½ÐÎϤˤϼ¡¤Î¤è¤¦¤ÊÊ£¿ô¤Î·Á¼°¤«¤éÁªÂò"
+
+#: fdisk/cfdisk.c:2086
+msgid "             that you can choose from:"
+msgstr "             ¤Ç¤­¤ë:"
+
+#: fdisk/cfdisk.c:2087
+msgid "                r - Raw data (exactly what would be written to disk)"
+msgstr "                r - À¸¥Ç¡¼¥¿(¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¾ðÊ󤽤Τâ¤Î)"
+
+#: fdisk/cfdisk.c:2088
+msgid "                s - Table ordered by sectors"
+msgstr "                s - ¥»¥¯¥¿½ç¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾ðÊó"
+
+#: fdisk/cfdisk.c:2089
+msgid "                t - Table in raw format"
+msgstr "                t - À¸¤Î·Á¼°¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾ðÊó"
+
+#: fdisk/cfdisk.c:2090
+msgid "  q          Quit program without writing partition table"
+msgstr "  q          ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾ðÊó¤ò½ñ¤­¹þ¤Þ¤º¤Ë¥×¥í¥°¥é¥à¤ò½ªÎ»"
+
+#: fdisk/cfdisk.c:2091
+msgid "  t          Change the filesystem type"
+msgstr "  t          ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥×¤òÊѹ¹"
+
+#: fdisk/cfdisk.c:2092
+msgid "  u          Change units of the partition size display"
+msgstr "  u          É½¼¨¤¹¤ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥µ¥¤¥º¤Îñ°Ì¤òÊѹ¹¤¹¤ë"
+
+#: fdisk/cfdisk.c:2093
+msgid "             Rotates through Mb, sectors and cylinders"
+msgstr "             MB, ¥»¥¯¥¿, ¥·¥ê¥ó¥À¤Î½ç¤ËÊѤï¤ë"
+
+#: fdisk/cfdisk.c:2094
+msgid "  W          Write partition table to disk (must enter upper case W)"
+msgstr "  W          ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾ðÊó¤ò¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤à(Âçʸ»ú W ¤ò"
+
+#: fdisk/cfdisk.c:2095
+msgid "             Since this might destroy data on the disk, you must"
+msgstr "             ÆþÎϤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥£¥¹¥¯¾å¤Î"
+
+#: fdisk/cfdisk.c:2096
+msgid "             either confirm or deny the write by entering `yes' or"
+msgstr "             ¥Ç¡¼¥¿¤òÇ˲õ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¤¿¤á¡¢'yes'¤Þ¤¿¤Ï'no'¤ÎÆþ"
+
+#: fdisk/cfdisk.c:2097
+msgid "             `no'"
+msgstr "             ÎϤˤè¤ê¡¢½ñ¤­¹þ¤ß¤ò¹Ô¤¦¤«¤É¤¦¤«¤ò³Îǧ¤¹¤ë¡£"
+
+#: fdisk/cfdisk.c:2098
+msgid "Up Arrow     Move cursor to the previous partition"
+msgstr "¾åÌð°õ¥­¡¼   ¾å¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¥«¡¼¥½¥ë¤ò°ÜÆ°"
+
+#: fdisk/cfdisk.c:2099
+msgid "Down Arrow   Move cursor to the next partition"
+msgstr "²¼Ìð°õ¥­¡¼   ²¼¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë¥«¡¼¥½¥ë¤ò°ÜÆ°"
+
+#: fdisk/cfdisk.c:2100
+msgid "CTRL-L       Redraws the screen"
+msgstr "CTRL-L       ²èÌ̤òºÆÉÁ²è"
+
+#: fdisk/cfdisk.c:2101
+msgid "  ?          Print this screen"
+msgstr "  ?          ¤³¤Î²èÌ̤òɽ¼¨"
+
+#: fdisk/cfdisk.c:2103
+msgid "Note: All of the commands can be entered with either upper or lower"
+msgstr "Ãí°Õ: ¥³¥Þ¥ó¥É¤Ï¤¹¤Ù¤ÆÂçʸ»ú¡¢¾®Ê¸»ú¤É¤Á¤é¤Ç¤â»ÈÍѤǤ­¤Þ¤¹"
+
+#: fdisk/cfdisk.c:2104
+msgid "case letters (except for Writes)."
+msgstr "(½ñ¤­¹þ¤ß¤ò½ü¤¯)¡£"
+
+#: fdisk/cfdisk.c:2134 fdisk/cfdisk.c:2436 fdisk/fdisksunlabel.c:305
+#: fdisk/fdisksunlabel.c:307
+msgid "Cylinders"
+msgstr "¥·¥ê¥ó¥À"
+
+#: fdisk/cfdisk.c:2134
+msgid "Change cylinder geometry"
+msgstr "¥·¥ê¥ó¥À¤Î¥¸¥ª¥á¥È¥ê¤òÊѹ¹"
+
+#: fdisk/cfdisk.c:2135 fdisk/fdisksunlabel.c:302
+msgid "Heads"
+msgstr "¥Ø¥Ã¥É¿ô"
+
+#: fdisk/cfdisk.c:2135
+msgid "Change head geometry"
+msgstr "¥Ø¥Ã¥É¤Î¥¸¥ª¥á¥È¥ê¤òÊѹ¹"
+
+#: fdisk/cfdisk.c:2136
+msgid "Change sector geometry"
+msgstr "¥»¥¯¥¿¤Î¥¸¥ª¥á¥È¥ê¤òÊѹ¹"
+
+#: fdisk/cfdisk.c:2137
+msgid "Done"
+msgstr "½ªÎ»"
+
+#: fdisk/cfdisk.c:2137
+msgid "Done with changing geometry"
+msgstr "¥¸¥ª¥á¥È¥ê¤òÊѹ¹¤·¤Æ½ªÎ»"
+
+#: fdisk/cfdisk.c:2150
+msgid "Enter the number of cylinders: "
+msgstr "¥·¥ê¥ó¥À¿ô¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤: "
+
+#: fdisk/cfdisk.c:2157 fdisk/cfdisk.c:2700
+msgid "Illegal cylinders value"
+msgstr "ÉÔÀµ¤Ê¥·¥ê¥ó¥À¿ô"
+
+#: fdisk/cfdisk.c:2163
+msgid "Enter the number of heads: "
+msgstr "¥Ø¥Ã¥À¿ô¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤: "
+
+#: fdisk/cfdisk.c:2170 fdisk/cfdisk.c:2710
+msgid "Illegal heads value"
+msgstr "ÉÔÀµ¤Ê¥Ø¥Ã¥É¿ô"
+
+#: fdisk/cfdisk.c:2176
+msgid "Enter the number of sectors per track: "
+msgstr "¥È¥é¥Ã¥¯Åö¤¿¤ê¤Î¥»¥¯¥¿¿ô¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤: "
+
+#: fdisk/cfdisk.c:2183 fdisk/cfdisk.c:2717
+msgid "Illegal sectors value"
+msgstr "ÉÔÀµ¤Ê¥»¥¯¥¿¿ô"
+
+#: fdisk/cfdisk.c:2282
+msgid "Enter filesystem type: "
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥×¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤: "
+
+#: fdisk/cfdisk.c:2300
+msgid "Cannot change FS Type to empty"
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥×¤ò¶õ¤ËÊѹ¹¤Ç¤­¤Þ¤»¤ó"
+
+#: fdisk/cfdisk.c:2302
+msgid "Cannot change FS Type to extended"
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥×¤ò³ÈÄ¥¤ËÊѹ¹¤Ç¤­¤Þ¤»¤ó"
+
+#: fdisk/cfdisk.c:2324 fdisk/fdisksunlabel.c:44
+msgid "Boot"
+msgstr "¥Ö¡¼¥È"
+
+#: fdisk/cfdisk.c:2326
+#, c-format
+msgid "Unk(%02X)"
+msgstr ""
+
+#: fdisk/cfdisk.c:2329 fdisk/cfdisk.c:2332
+msgid ", NC"
+msgstr ""
+
+#: fdisk/cfdisk.c:2337 fdisk/cfdisk.c:2340
+msgid "NC"
+msgstr ""
+
+#: fdisk/cfdisk.c:2348
+msgid "Pri/Log"
+msgstr "´ðËÜ/ÏÀÍý"
+
+#: fdisk/cfdisk.c:2422
+#, c-format
+msgid "Disk Drive: %s"
+msgstr "¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö: %s"
+
+#: fdisk/cfdisk.c:2424
+#, c-format
+msgid "Heads: %d   Sectors per Track: %d   Cylinders: %d"
+msgstr "¥Ø¥Ã¥É: %d   ¥È¥é¥Ã¥¯Åö¤¿¤ê¤Î¥»¥¯¥¿: %d   ¥·¥ê¥ó¥À: %d"
+
+#: fdisk/cfdisk.c:2428
+msgid "Name"
+msgstr "̾Á°"
+
+#: fdisk/cfdisk.c:2429
+msgid "Flags"
+msgstr "¥Õ¥é¥°"
+
+#: fdisk/cfdisk.c:2430
+msgid "Part Type"
+msgstr "Îΰ西¥¤¥×"
+
+#: fdisk/cfdisk.c:2431
+msgid "FS Type"
+msgstr "FS¥¿¥¤¥×"
+
+#: fdisk/cfdisk.c:2432
+msgid "[Label]"
+msgstr "[¥é¥Ù¥ë]"
+
+#: fdisk/cfdisk.c:2434
+msgid "  Sectors"
+msgstr "  ¥»¥¯¥¿"
+
+#: fdisk/cfdisk.c:2438
+msgid "Size (MB)"
+msgstr "¥µ¥¤¥º (MB)"
+
+#: fdisk/cfdisk.c:2493
+msgid "Bootable"
+msgstr "¥Ö¡¼¥È²Ä"
+
+#: fdisk/cfdisk.c:2493
+msgid "Toggle bootable flag of the current partition"
+msgstr "¥«¡¼¥½¥ë¾å¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥Ö¡¼¥È¥Õ¥é¥°¤òÀÚ¤êÂؤ¨¤ë"
+
+#: fdisk/cfdisk.c:2494
+msgid "Delete"
+msgstr "ºï½ü"
+
+#: fdisk/cfdisk.c:2494
+msgid "Delete the current partition"
+msgstr "¥«¡¼¥½¥ë¾å¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºï½ü"
+
+#: fdisk/cfdisk.c:2495
+msgid "Geometry"
+msgstr "¥¸¥ª¥á¥È¥ê"
+
+#: fdisk/cfdisk.c:2495
+msgid "Change disk geometry (experts only)"
+msgstr "¥Ç¥£¥¹¥¯¥¸¥ª¥á¥È¥ê¤òÊѹ¹¤¹¤ë(¥¨¥­¥¹¥Ñ¡¼¥ÈÍÑ)"
+
+#: fdisk/cfdisk.c:2496
+msgid "Help"
+msgstr "¥Ø¥ë¥×"
+
+#: fdisk/cfdisk.c:2496
+msgid "Print help screen"
+msgstr "¥Ø¥ë¥×²èÌ̤òɽ¼¨"
+
+#: fdisk/cfdisk.c:2497
+msgid "Maximize"
+msgstr "ºÇÂç²½"
+
+#: fdisk/cfdisk.c:2497
+msgid "Maximize disk usage of the current partition (experts only)"
+msgstr "¥«¡¼¥½¥ë¾å¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥Ç¥£¥¹¥¯»ÈÍÑÎ̤òºÇÂç²½(¥¨¥­¥¹¥Ñ¡¼¥ÈÍÑ)"
+
+#: fdisk/cfdisk.c:2498
+msgid "New"
+msgstr "¿·µ¬ºîÀ®"
+
+#: fdisk/cfdisk.c:2498
+msgid "Create new partition from free space"
+msgstr "¶õ¤­Îΰ褫¤é¿·¤·¤¯¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºîÀ®"
+
+#: fdisk/cfdisk.c:2499
+msgid "Print"
+msgstr "ɽ¼¨"
+
+#: fdisk/cfdisk.c:2499
+msgid "Print partition table to the screen or to a file"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾ðÊó¤ò²èÌ̤ޤ¿¤Ï¥Õ¥¡¥¤¥ë¤Ë½ÐÎÏ"
+
+#: fdisk/cfdisk.c:2500
+msgid "Quit"
+msgstr "½ªÎ»"
+
+#: fdisk/cfdisk.c:2500
+msgid "Quit program without writing partition table"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾ðÊó¤ò½ñ¤­¹þ¤Þ¤º¤Ë¥×¥í¥°¥é¥à¤ò½ªÎ»"
+
+#: fdisk/cfdisk.c:2501
+msgid "Type"
+msgstr "FS¥¿¥¤¥×"
+
+#: fdisk/cfdisk.c:2501
+msgid "Change the filesystem type (DOS, Linux, OS/2 and so on)"
+msgstr "¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¿¥¤¥×¤òÊѹ¹¤¹¤ë(DOS, Linux, OS/2 ¤Ê¤É)"
+
+#: fdisk/cfdisk.c:2502
+msgid "Units"
+msgstr "ñ°Ì"
+
+#: fdisk/cfdisk.c:2502
+msgid "Change units of the partition size display (MB, sect, cyl)"
+msgstr "ɽ¼¨¤¹¤ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥µ¥¤¥º¤Îñ°Ì(MB, ¥»¥¯¥¿, ¥·¥ê¥ó¥À)¤òÊѹ¹¤¹¤ë"
+
+#: fdisk/cfdisk.c:2503
+msgid "Write"
+msgstr "½ñ¤­¹þ¤ß"
+
+#: fdisk/cfdisk.c:2503
+msgid "Write partition table to disk (this might destroy data)"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾ðÊó¤ò¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤à(¥Ç¡¼¥¿¤òÇ˲õ¤¹¤ë²ÄǽÀ­¤¢¤ê)"
+
+#: fdisk/cfdisk.c:2549
+msgid "Cannot make this partition bootable"
+msgstr "¤³¤ÎÎΰè¤ò¥Ö¡¼¥È²Äǽ¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó"
+
+#: fdisk/cfdisk.c:2559
+msgid "Cannot delete an empty partition"
+msgstr "¶õ¤ÎÎΰè¤òºï½ü¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
+
+#: fdisk/cfdisk.c:2579 fdisk/cfdisk.c:2581
+msgid "Cannot maximize this partition"
+msgstr "¤³¤ÎÎΰè¤òºÇÂç²½¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
+
+#: fdisk/cfdisk.c:2589
+msgid "This partition is unusable"
+msgstr "¤³¤ÎÎΰè¤Ï»ÈÍѤǤ­¤Þ¤»¤ó"
+
+#: fdisk/cfdisk.c:2591
+msgid "This partition is already in use"
+msgstr "¤³¤Î¥Ç¥£¥¹¥¯¤Ï¸½ºß»ÈÍÑÃæ¤Ç¤¹¡£"
+
+#: fdisk/cfdisk.c:2608
+msgid "Cannot change the type of an empty partition"
+msgstr "¶õ¤ÎÎΰè¤Î¥¿¥¤¥×¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
+
+#: fdisk/cfdisk.c:2633 fdisk/cfdisk.c:2639
+msgid "No more partitions"
+msgstr "¤³¤ì°Ê¾å¤ÎÎΰè¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: fdisk/cfdisk.c:2646
+msgid "Illegal command"
+msgstr "ÉÔÀµ¤Ê¥³¥Þ¥ó¥É"
+
+#: fdisk/cfdisk.c:2656
+msgid "Copyright (C) 1994-1999 Kevin E. Martin & aeb\n"
+msgstr ""
+
+#. Unfortunately, xgettext does not handle multi-line strings
+#. so, let's use explicit \n's instead
+#: fdisk/cfdisk.c:2663
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+"Print version:\n"
+"        %s -v\n"
+"Print partition table:\n"
+"        %s -P {r|s|t} [options] device\n"
+"Interactive use:\n"
+"        %s [options] device\n"
+"\n"
+"Options:\n"
+"-a: Use arrow instead of highlighting;\n"
+"-z: Start with a zero partition table, instead of reading the pt from disk;\n"
+"-c C -h H -s S: Override the kernel's idea of the number of cylinders,\n"
+"                the number of heads and the number of sectors/track.\n"
+"\n"
+msgstr ""
+"\n"
+"»È¤¤Êý:\n"
+"¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨:\n"
+"        %s -v\n"
+"Îΰè¥Æ¡¼¥Ö¥ë¤òɽ¼¨:\n"
+"        %s -P {r|s|t} [¥ª¥×¥·¥ç¥ó] ¥Ç¥Ð¥¤¥¹\n"
+"ÂÐÏÃŪ¤Ë»ÈÍÑ:\n"
+"        %s [¥ª¥×¥·¥ç¥ó] ¥Ç¥Ð¥¤¥¹\n"
+"\n"
+"¥ª¥×¥·¥ç¥ó:\n"
+"-a: È¿Å¾É½¼¨¤ÎÂå¤ï¤ê¤ËÌð°õ¤ò»ÈÍÑ\n"
+"-z: ¥Ç¥£¥¹¥¯¤«¤éÎΰè¤òÆɹþ¤Þ¤º¡¢¥¼¥í¤ÎÎΰè¥Æ¡¼¥Ö¥ë¤È¤·¤Æ³«»Ï¤¹¤ë\n"
+"-c C -h H -s S: ¥«¡¼¥Í¥ë¤¬´üÂÔ¤¹¤ë¥·¥ê¥ó¥À¿ô¡¢¥Ø¥Ã¥É¿ô¡¢¥»¥¯¥¿/¥È¥é¥Ã¥¯¿ô\n"
+"                ¤òʤ¤¹\n"
+"\n"
+
+#: fdisk/fdisk.c:241
+msgid ""
+"Usage: fdisk [-b SSZ] [-u] [DISK]     Change partition table\n"
+"       fdisk -l [-b SSZ] [-u] [DISK]  List partition table(s)\n"
+"       fdisk -s PARTITION         Give partition size(s) in blocks\n"
+"       fdisk -v                   Give fdisk version\n"
+"Here DISK is something like /dev/hdb or /dev/sda\n"
+"and PARTITION is something like /dev/hda7\n"
+"-u: give Start and End in sector (instead of cylinder) units\n"
+"-b 2048: (for certain MO drives) use 2048-byte sectors\n"
+msgstr ""
+"»È¤¤Êý: fdisk [-b SSZ] [-u] [¥Ç¥£¥¹¥¯]    ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤ÎÊѹ¹\n"
+"        fdisk -l [-b SSZ] [-u] [¥Ç¥£¥¹¥¯] "
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¥ê¥¹¥È¤Îɽ¼¨\n"
+"        fdisk -s ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó           "
+"¥Ö¥í¥Ã¥¯¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥µ¥¤¥ºÉ½¼¨\n"
+"        fdisk -v                          fdisk ¤Î¥Ð¡¼¥¸¥ç¥óɽ¼¨\n"
+"`¥Ç¥£¥¹¥¯' ¤Ë¤Ï /dev/hdb ¤ä /dev/sda ¤ÎÍͤʲ¿¤«¤òÍ¿¤¨¤Þ¤¹\n"
+"¤½¤·¤Æ `¥Ñ¡¼¥Æ¥£¥·¥ç¥ó' ¤Ë¤Ï /dev/hda7 ¤ÎÍͤʲ¿¤«¤òÍ¿¤¨¤Þ¤¹\n"
+"-u: (¥·¥ê¥ó¥À¤ÎÂå¤ï¤ê¤Ë)¥»¥¯¥¿¥æ¥Ë¥Ã¥È¤Î¤Î³«»Ï¡¢½ªÎ»¤òÍ¿¤¨¤Þ¤¹\n"
+"-b 2048: (¤¢¤ë¼ï¤Î MO ¥É¥é¥¤¥ÖÍÑ) 2048 ¥Ð¥¤¥È¤Î¥»¥¯¥¿¥µ¥¤¥º¤ò»È¤¤¤Þ¤¹\n"
+
+#: fdisk/fdisk.c:251
+msgid "A disk block device is needed.\n"
+msgstr "¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ë¤³¤È¤¬É¬ÍפǤ¹¡£\n"
+
+#: fdisk/fdisk.c:254
+msgid ""
+"Given name does not refer to a partition,\n"
+"or maybe not even to a block device.\n"
+msgstr ""
+"Í¿¤¨¤é¤ì¤¿Ì¾Á°¤Ï¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò»²¾È¤·¤Æ¤¤¤Þ¤»¤ó¡£\n"
+"¤¢¤ë¤¤¤Ï¡¢¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤µ¤¨¤Ê¤¤¤Î¤«¤âÃΤì¤Þ¤»¤ó¡£\n"
+
+#: fdisk/fdisk.c:258
+#, c-format
+msgid "Unable to open %s\n"
+msgstr "%s ¤ò³«¤±¤Þ¤»¤ó\n"
+
+#: fdisk/fdisk.c:261
+#, c-format
+msgid "Unable to read %s\n"
+msgstr "%s ¤òÆɤá¤Þ¤»¤ó\n"
+
+#: fdisk/fdisk.c:264
+#, c-format
+msgid "Unable to seek on %s\n"
+msgstr "%s ¤ò¥·¡¼¥¯¤Ç¤­¤Þ¤»¤ó\n"
+
+#: fdisk/fdisk.c:267
+#, c-format
+msgid "Unable to write %s\n"
+msgstr "%s ¤Ø¤Î½ñ¤­¹þ¤ß¤¬¤Ç¤­¤Þ¤»¤ó\n"
+
+#: fdisk/fdisk.c:270
+msgid "Unable to allocate any more memory\n"
+msgstr "¤³¤ì°Ê¾å¤Î¥á¥â¥ê¤¬³ÎÊݤǤ­¤Þ¤»¤ó\n"
+
+#: fdisk/fdisk.c:272
+msgid "Fatal error\n"
+msgstr "Ã×̿Ū¤Ê¥¨¥é¡¼\n"
+
+#: fdisk/fdisk.c:283 fdisk/fdisk.c:302 fdisk/fdisk.c:320 fdisk/fdisk.c:327
+#: fdisk/fdisk.c:350 fdisk/fdisk.c:368 fdisk/fdiskbsdlabel.c:105
+msgid "Command action"
+msgstr "¥³¥Þ¥ó¥É¤ÎÆ°ºî"
+
+#: fdisk/fdisk.c:284
+msgid "   a   toggle a read only flag"
+msgstr "   a   Æɹþ¤ßÀìÍѥե饰¤ò¤Ä¤±¤ë"
+
+#. sun
+#: fdisk/fdisk.c:285 fdisk/fdisk.c:329
+msgid "   b   edit bsd disklabel"
+msgstr "   b   bsd ¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤òÊÔ½¸¤¹¤ë"
+
+#: fdisk/fdisk.c:286
+msgid "   c   toggle the mountable flag"
+msgstr "   c   ¥Þ¥¦¥ó¥È²Äǽ¥Õ¥é¥°¤ò¤Ä¤±¤ë"
+
+#. sun
+#: fdisk/fdisk.c:287 fdisk/fdisk.c:306 fdisk/fdisk.c:331
+msgid "   d   delete a partition"
+msgstr "   d   Îΰè¤òºï½ü¤¹¤ë"
+
+#: fdisk/fdisk.c:288 fdisk/fdisk.c:307 fdisk/fdisk.c:332
+msgid "   l   list known partition types"
+msgstr "   l   ´ûÃΤÎÎΰ西¥¤¥×¤ò¥ê¥¹¥Èɽ¼¨¤¹¤ë"
+
+#. sun
+#: fdisk/fdisk.c:289 fdisk/fdisk.c:308 fdisk/fdisk.c:321 fdisk/fdisk.c:333
+#: fdisk/fdisk.c:358 fdisk/fdisk.c:375 fdisk/fdiskbsdlabel.c:110
+msgid "   m   print this menu"
+msgstr "   m   ¤³¤Î¥á¥Ë¥å¡¼¤òɽ¼¨¤¹¤ë"
+
+#: fdisk/fdisk.c:290 fdisk/fdisk.c:309 fdisk/fdisk.c:334
+msgid "   n   add a new partition"
+msgstr "   n   ¿·¤¿¤ËÎΰè¤òºîÀ®¤¹¤ë"
+
+#: fdisk/fdisk.c:291 fdisk/fdisk.c:310 fdisk/fdisk.c:322 fdisk/fdisk.c:335
+msgid "   o   create a new empty DOS partition table"
+msgstr "   o   ¿·¤¿¤Ë¶õ¤Î DOS Îΰè¥Æ¡¼¥Ö¥ë¤òºîÀ®¤¹¤ë"
+
+#: fdisk/fdisk.c:292 fdisk/fdisk.c:311 fdisk/fdisk.c:336 fdisk/fdisk.c:359
+#: fdisk/fdisk.c:376
+msgid "   p   print the partition table"
+msgstr "   p   Îΰè¥Æ¡¼¥Ö¥ë¤òɽ¼¨¤¹¤ë"
+
+#: fdisk/fdisk.c:293 fdisk/fdisk.c:312 fdisk/fdisk.c:323 fdisk/fdisk.c:337
+#: fdisk/fdisk.c:360 fdisk/fdisk.c:377 fdisk/fdiskbsdlabel.c:113
+msgid "   q   quit without saving changes"
+msgstr "   q   Êѹ¹¤òÊݸ¤»¤º¤Ë½ªÎ»¤¹¤ë"
+
+#: fdisk/fdisk.c:294 fdisk/fdisk.c:313 fdisk/fdisk.c:324 fdisk/fdisk.c:338
+msgid "   s   create a new empty Sun disklabel"
+msgstr "   s   ¶õ¤Î Sun ¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤òºîÀ®¤¹¤ë"
+
+#. sun
+#: fdisk/fdisk.c:295 fdisk/fdisk.c:314 fdisk/fdisk.c:339
+msgid "   t   change a partition's system id"
+msgstr "   t   Îΰè¤Î¥·¥¹¥Æ¥à ID ¤òÊѹ¹¤¹¤ë"
+
+#: fdisk/fdisk.c:296 fdisk/fdisk.c:315 fdisk/fdisk.c:340
+msgid "   u   change display/entry units"
+msgstr "   u   É½¼¨/¹àÌÜ¥æ¥Ë¥Ã¥È¤òÊѹ¹¤¹¤ë"
+
+#: fdisk/fdisk.c:297 fdisk/fdisk.c:316 fdisk/fdisk.c:341 fdisk/fdisk.c:363
+#: fdisk/fdisk.c:380
+msgid "   v   verify the partition table"
+msgstr "   v   Îΰè¥Æ¡¼¥Ö¥ë¤ò¾È¹ç¤¹¤ë"
+
+#: fdisk/fdisk.c:298 fdisk/fdisk.c:317 fdisk/fdisk.c:342 fdisk/fdisk.c:364
+#: fdisk/fdisk.c:381
+msgid "   w   write table to disk and exit"
+msgstr "   w   ¥Æ¡¼¥Ö¥ë¤ò¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤ß¡¢½ªÎ»¤¹¤ë"
+
+#: fdisk/fdisk.c:299 fdisk/fdisk.c:343
+msgid "   x   extra functionality (experts only)"
+msgstr "   x   ÆÃÊ̤ʵ¡Ç½ (¥¨¥­¥¹¥Ñ¡¼¥ÈÀìÍÑ)"
+
+#: fdisk/fdisk.c:303
+msgid "   a   select bootable partition"
+msgstr "   a   ¥Ö¡¼¥È²ÄǽÎΰè¤òÁªÂò¤¹¤ë"
+
+#. sgi flavour
+#: fdisk/fdisk.c:304
+msgid "   b   edit bootfile entry"
+msgstr "   b   ¥Ö¡¼¥È¥Õ¥¡¥¤¥ë¥¨¥ó¥È¥ê¤òÊÔ½¸¤¹¤ë"
+
+#. sgi
+#: fdisk/fdisk.c:305
+msgid "   c   select sgi swap partition"
+msgstr "   c   sgi ¥¹¥ï¥Ã¥×Îΰè¤òÁªÂò¤¹¤ë"
+
+#: fdisk/fdisk.c:328
+msgid "   a   toggle a bootable flag"
+msgstr "   a   ¥Ö¡¼¥È²Äǽ¥Õ¥é¥°¤ò¤Ä¤±¤ë"
+
+#: fdisk/fdisk.c:330
+msgid "   c   toggle the dos compatibility flag"
+msgstr "   c   dos ¸ß´¹¥Õ¥é¥°¤ò¤Ä¤±¤ë"
+
+#: fdisk/fdisk.c:351
+msgid "   a   change number of alternate cylinders"
+msgstr "   a   ÂåÂØ¥·¥ê¥ó¥À¿ô¤òÊѹ¹¤¹¤ë"
+
+#. sun
+#: fdisk/fdisk.c:352 fdisk/fdisk.c:370
+msgid "   c   change number of cylinders"
+msgstr "   c   ¥·¥ê¥ó¥À¿ô¤òÊѹ¹¤¹¤ë"
+
+#: fdisk/fdisk.c:353 fdisk/fdisk.c:371
+msgid "   d   print the raw data in the partition table"
+msgstr "   d   Îΰè¥Æ¡¼¥Ö¥ëÆâ¤ÎÀ¸¥Ç¡¼¥¿¤òɽ¼¨¤¹¤ë"
+
+#: fdisk/fdisk.c:354
+msgid "   e   change number of extra sectors per cylinder"
+msgstr "   e   ¥·¥ê¥ó¥ÀËè¤Î;¾ê¥»¥¯¥¿¿ô¤òÊѹ¹¤¹¤ë"
+
+#. sun
+#: fdisk/fdisk.c:355 fdisk/fdisk.c:374
+msgid "   h   change number of heads"
+msgstr "   h   ¥Ø¥Ã¥É¿ô¤òÊѹ¹¤¹¤ë"
+
+#: fdisk/fdisk.c:356
+msgid "   i   change interleave factor"
+msgstr "   i   ¥¤¥ó¥¿¡¼¥ê¡¼¥Ö¥Õ¥¡¥¯¥¿¤òÊѹ¹¤¹¤ë"
+
+#. sun
+#: fdisk/fdisk.c:357
+msgid "   o   change rotation speed (rpm)"
+msgstr "   o   ²óž¿ô¤òÊѹ¹¤¹¤ë (rpm)"
+
+#: fdisk/fdisk.c:361 fdisk/fdisk.c:378 fdisk/fdiskbsdlabel.c:115
+msgid "   r   return to main menu"
+msgstr "   r   ¥á¥¤¥ó¥á¥Ë¥å¡¼¤ËÌá¤ë"
+
+#: fdisk/fdisk.c:362 fdisk/fdisk.c:379
+msgid "   s   change number of sectors"
+msgstr "   s   ¥»¥¯¥¿¿ô¤òÊѹ¹¤¹¤ë"
+
+#: fdisk/fdisk.c:365
+msgid "   y   change number of physical cylinders"
+msgstr "   y   ÊªÍý¥·¥ê¥ó¥À¿ô¤òÊѹ¹¤¹¤ë"
+
+#: fdisk/fdisk.c:369
+msgid "   b   move beginning of data in a partition"
+msgstr "   b   ÎΰèÆâ¤Î¥Ç¡¼¥¿¤ÎÀèƬ¤Ë°ÜÆ°¤¹¤ë"
+
+#: fdisk/fdisk.c:372
+msgid "   e   list extended partitions"
+msgstr "   e   ³ÈÄ¥Îΰè¤ò¥ê¥¹¥Èɽ¼¨¤¹¤ë"
+
+#. !sun
+#: fdisk/fdisk.c:373
+msgid "   g   create an IRIX partition table"
+msgstr "   g   IRIX Îΰè¥Æ¡¼¥Ö¥ë¤òºîÀ®¤¹¤ë"
+
+#: fdisk/fdisk.c:469
+msgid "You must set"
+msgstr "ÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹"
+
+#: fdisk/fdisk.c:483
+msgid "heads"
+msgstr "¥Ø¥Ã¥É¿ô"
+
+#: fdisk/fdisk.c:485 fdisk/fdisk.c:893 fdisk/sfdisk.c:843
+msgid "sectors"
+msgstr "¥»¥¯¥¿¿ô"
+
+#: fdisk/fdisk.c:487 fdisk/fdisk.c:893 fdisk/fdiskbsdlabel.c:441
+#: fdisk/sfdisk.c:843
+msgid "cylinders"
+msgstr "¥·¥ê¥ó¥À¿ô"
+
+#: fdisk/fdisk.c:491
+#, c-format
+msgid ""
+"%s%s.\n"
+"You can do this from the extra functions menu.\n"
+msgstr ""
+"%s%s.\n"
+"¤¢¤Ê¤¿¤ÏÆÃÊ̵¡Ç½¥á¥Ë¥å¡¼¤«¤é¤³¤ì¤ò¹Ô¤Ê¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹\n"
+
+#: fdisk/fdisk.c:492
+msgid " and "
+msgstr " µÚ¤Ó "
+
+#: fdisk/fdisk.c:526
+msgid "Bad offset in primary extended partition\n"
+msgstr "´ðËܳÈÄ¥Îΰè¤ËÉÔÀµ¤Ê¥ª¥Õ¥»¥Ã¥È¤¬¤¢¤ê¤Þ¤¹\n"
+
+#: fdisk/fdisk.c:533
+#, c-format
+msgid "Warning: deleting partitions after %d\n"
+msgstr "·Ù¹ð: %d °Ê¹ß¤ÎÎΰè¤òºï½ü¤·¤Þ¤¹\n"
+
+#: fdisk/fdisk.c:554
+#, c-format
+msgid "Warning: extra link pointer in partition table %d\n"
+msgstr "·Ù¹ð: Îΰè¥Æ¡¼¥Ö¥ë %d Æâ¤ÎÆÃÊ̤ʥê¥ó¥¯¥Ý¥¤¥ó¥¿¤Ç¤¹\n"
+
+#: fdisk/fdisk.c:562
+#, c-format
+msgid "Warning: ignoring extra data in partition table %d\n"
+msgstr "·Ù¹ð: Îΰè¥Æ¡¼¥Ö¥ë %d Æâ¤ÎÆÃÊ̤ʥǡ¼¥¿¤ò̵»ë¤·¤Þ¤¹\n"
+
+#: fdisk/fdisk.c:588
+msgid ""
+"Building a new DOS disklabel. Changes will remain in memory only,\n"
+"until you decide to write them. After that, of course, the previous\n"
+"content won't be recoverable.\n"
+"\n"
+msgstr ""
+"¿·¤¿¤Ë DOS "
+"¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤òºîÀ®¤·¤Þ¤¹¡£¤¢¤Ê¤¿¤¬½ñ¤­¹þ¤ß¤ò·èÄꤹ¤ë¤Þ¤Ç¡¢Êѹ¹¤Ï\n"
+"¥á¥â¥êÆâ¤À¤±¤Ë»Ä¤·¤Þ¤¹¡£¤½¤Î¸å¤Ï¤â¤Á¤í¤ó°ÊÁ°¤ÎÆâÍƤϽ¤ÉüÉÔ²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£\n"
+
+#: fdisk/fdisk.c:624
+msgid "You will not be able to write the partition table.\n"
+msgstr "Îΰè¥Æ¡¼¥Ö¥ë¤Î½ñ¤­¹þ¤ß¤ò¹Ô¤¨¤Þ¤»¤ó¡£\n"
+
+#: fdisk/fdisk.c:633
+#, c-format
+msgid "Note: sector size is %d (not %d)\n"
+msgstr "Ãí°Õ: ¥»¥¯¥¿¥µ¥¤¥º¤¬ %d ¤Ç¤¹ (%d ¤Ç¤Ï¤Ê¤¯)\n"
+
+#: fdisk/fdisk.c:681
+msgid ""
+"Device contains neither a valid DOS partition table, nor Sun or SGI "
+"disklabel\n"
+msgstr ""
+"¥Ç¥Ð¥¤¥¹¤ÏÀµ¾ï¤Ê DOS Îΰè¥Æ¡¼¥Ö¥ë¤â¡¢Sun ¤ä SGI ¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤â\n"
+"´Þ¤ó¤Ç¤¤¤Þ¤»¤ó\n"
+
+#: fdisk/fdisk.c:697
+msgid "Internal error\n"
+msgstr "ÆâÉô¥¨¥é¡¼\n"
+
+#: fdisk/fdisk.c:707
+#, c-format
+msgid "Ignoring extra extended partition %d\n"
+msgstr "ÆÃÊ̤ʳÈÄ¥Îΰè %d ¤ò̵»ë¤·¤Þ¤¹\n"
+
+#: fdisk/fdisk.c:714
+#, c-format
+msgid ""
+"Warning: invalid flag 0x%04x of partition table %d will be corrected by "
+"w(rite)\n"
+msgstr ""
+"·Ù¹ð: Îΰè¥Æ¡¼¥Ö¥ë %2$d ¤ÎÉÔÀµ¤Ê¥Õ¥é¥° 0x%1$04x ¤Ï w(½ñ¤­¹þ¤ß)¤Ë¤è¤Ã¤Æ\n"
+"Àµ¾ï¤Ë¤Ê¤ê¤Þ¤¹\n"
+
+#: fdisk/fdisk.c:735
+msgid ""
+"\n"
+"got EOF thrice - exiting..\n"
+msgstr ""
+"\n"
+"EOF ¤ò 3 ²óÆɤߤޤ·¤¿ -- ½ªÎ»¤·¤Þ¤¹..\n"
+
+#: fdisk/fdisk.c:772
+msgid "Hex code (type L to list codes): "
+msgstr "16¿Ê¿ô¥³¡¼¥É (L ¥³¥Þ¥ó¥É¤Ç¥³¡¼¥É¥ê¥¹¥Èɽ¼¨): "
+
+#: fdisk/fdisk.c:811
+#, c-format
+msgid "%s (%d-%d, default %d): "
+msgstr "%s (%d-%d, ½é´üÃÍ %d): "
+
+#: fdisk/fdisk.c:865
+#, c-format
+msgid "Using default value %d\n"
+msgstr "½é´üÃÍ %d ¤ò»È¤¤¤Þ¤¹\n"
+
+#: fdisk/fdisk.c:869
+msgid "Value out of range.\n"
+msgstr "Èϰϳ°¤ÎÃͤǤ¹¡£\n"
+
+#: fdisk/fdisk.c:876
+msgid "Partition number"
+msgstr "ÎΰèÈÖ¹æ"
+
+#: fdisk/fdisk.c:884
+#, c-format
+msgid "Warning: partition %d has empty type\n"
+msgstr "·Ù¹ð: Îΰè %d ¤Ï¶õ¤Î¥¿¥¤¥×¤Ç¤¹¡£\n"
+
+#: fdisk/fdisk.c:891
+msgid "cylinder"
+msgstr "¥·¥ê¥ó¥À"
+
+#: fdisk/fdisk.c:891
+msgid "sector"
+msgstr "¥»¥¯¥¿"
+
+#: fdisk/fdisk.c:900
+#, c-format
+msgid "Changing display/entry units to %s\n"
+msgstr "%s ¤Îɽ¼¨/¹àÌÜ¥æ¥Ë¥Ã¥È¤òÊѹ¹¤·¤Þ¤¹\n"
+
+#: fdisk/fdisk.c:910
+#, c-format
+msgid "WARNING: Partition %d is an extended partition\n"
+msgstr "·Ù¹ð: Îΰè %d ¤Ï³ÈÄ¥Îΰè¤Ç¤¹\n"
+
+#: fdisk/fdisk.c:923
+msgid "DOS Compatibility flag is set\n"
+msgstr "DOS ¸ß´¹¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Þ¤·¤¿\n"
+
+#: fdisk/fdisk.c:927
+msgid "DOS Compatibility flag is not set\n"
+msgstr "DOS ¸ß´¹¥Õ¥é¥°¤ÏÀßÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
+
+#: fdisk/fdisk.c:1013
+#, c-format
+msgid "Partition %d does not exist yet!\n"
+msgstr "Îΰè %d ¤Ï¤Þ¤À¸ºß¤·¤Þ¤»¤ó¡ª\n"
+
+#: fdisk/fdisk.c:1018
+msgid ""
+"Type 0 means free space to many systems\n"
+"(but not to Linux). Having partitions of\n"
+"type 0 is probably unwise. You can delete\n"
+"a partition using the `d' command.\n"
+msgstr ""
+"¥¿¥¤¥× 0 ¤Ï¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¥Õ¥ê¡¼¥¹¥Ú¡¼¥¹¤ò°ÕÌ£¤·¤Þ¤¹\n"
+"(Linux ¤Ç¤Ï°ã¤¤¤Þ¤¹¤¬)¡£¥¿¥¤¥× 0 ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò»ý¤Ä¤³¤È¤Ï\n"
+"¿ʬÀõ¤Ï¤«¤Ê¤³¤È¤Ç¤¹¡£¤¢¤Ê¤¿¤Ï `d' ¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¤³¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò\n"
+"ºï½ü¤Ç¤­¤Þ¤¹¡£\n"
+
+#: fdisk/fdisk.c:1027
+msgid ""
+"You cannot change a partition into an extended one or vice versa\n"
+"Delete it first.\n"
+msgstr ""
+"¤¢¤Ê¤¿¤Ï¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ËÊѹ¹¤Ç¤­¤Þ¤»¤ó¤·¡¢\n"
+"¤½¤ÎµÕ¤â¤Þ¤¿¤Ç¤­¤Þ¤»¤ó¡£¤Þ¤ººï½ü¤ò¹Ô¤Ê¤Ã¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: fdisk/fdisk.c:1036
+msgid ""
+"Consider leaving partition 3 as Whole disk (5),\n"
+"as SunOS/Solaris expects it and even Linux likes it.\n"
+"\n"
+msgstr ""
+"Îΰè 3 ¤ò Whole disk (5) ¤È¤·¤Æ»Ä¤·¤Æ¤ª¤¯¤³¤È¤ò¹Íθ¤·¤Æ¤¯¤À¤µ¤¤¡¢\n"
+"SunOS/Solaris ¤Ï¤³¤ì¤ò´üÂÔ¤·¤Þ¤¹¤·¡¢Linux ¤Ç¤µ¤¨¤½¤ì¤¬Ë¾¤Þ¤·¤¤¤Ç¤¹¡£\n"
+
+#: fdisk/fdisk.c:1042
+msgid ""
+"Consider leaving partition 9 as volume header (0),\n"
+"and partition 11 as entire volume (6)as IRIX expects it.\n"
+"\n"
+msgstr ""
+"Îΰè 9 ¤ò volume header (0) ¤È¤·¤Æ¡¢µÚ¤Ó¥Ñ¡¼¥Æ¥£¥·¥ç¥ó 11 ¤ò entire\n"
+"volume (6) ¤È¤·¤Æ»Ä¤·¤Æ¤ª¤¯¤³¤È¤ò¹Íθ¤·¤Æ¤¯¤À¤µ¤¤¡£IRIX "
+"¤Ï¤³¤ì¤ò´üÂÔ¤·¤Þ¤¹¡£\n"
+
+#: fdisk/fdisk.c:1056
+#, c-format
+msgid "Changed system type of partition %d to %x (%s)\n"
+msgstr "Îΰè¤Î¥·¥¹¥Æ¥à¥¿¥¤¥×¤ò %d ¤«¤é %x (%s) ¤ËÊѹ¹¤·¤Þ¤·¤¿\n"
+
+#: fdisk/fdisk.c:1109
+#, c-format
+msgid "Partition %d has different physical/logical beginnings (non-Linux?):\n"
+msgstr "Îΰè %d ¤Ï°Û¤Ê¤Ã¤¿ÊªÍý/ÏÀÍý³«»Ï°ÌÃ֤ˤʤäƤ¤¤Þ¤¹(Linux ¤Ç¤Ï̵¤¤?):\n"
+
+#: fdisk/fdisk.c:1111 fdisk/fdisk.c:1119 fdisk/fdisk.c:1128 fdisk/fdisk.c:1137
+#, c-format
+msgid "     phys=(%d, %d, %d) "
+msgstr "     ÊªÍý=(%d, %d, %d) "
+
+#: fdisk/fdisk.c:1112 fdisk/fdisk.c:1120
+#, c-format
+msgid "logical=(%d, %d, %d)\n"
+msgstr "ÏÀÍý=(%d, %d, %d)\n"
+
+#: fdisk/fdisk.c:1117
+#, c-format
+msgid "Partition %d has different physical/logical endings:\n"
+msgstr "Îΰè %d ¤Ï°Û¤Ê¤Ã¤¿ÊªÍý/ÏÀÍý½ªÅÀ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹:\n"
+
+#: fdisk/fdisk.c:1126
+#, c-format
+msgid "Partition %i does not start on cylinder boundary:\n"
+msgstr "Îΰè %i ¤Ï¥·¥ê¥ó¥À¶­³¦¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤Þ¤»¤ó:\n"
+
+#: fdisk/fdisk.c:1129
+#, c-format
+msgid "should be (%d, %d, 1)\n"
+msgstr "(%d, %d, 1) ¤Ç¤¢¤ë¤Ù¤­¤Ç¤¹\n"
+
+#: fdisk/fdisk.c:1135
+#, c-format
+msgid "Partition %i does not end on cylinder boundary:\n"
+msgstr "Îΰè %i ¤Ï¥·¥ê¥ó¥À¶­³¦¤Ç½ª¤ï¤Ã¤Æ¤¤¤Þ¤»¤ó:\n"
+
+#: fdisk/fdisk.c:1138
+#, c-format
+msgid "should be (%d, %d, %d)\n"
+msgstr "(%d, %d, %d) ¤Ç¤¢¤ë¤Ù¤­¤Ç¤¹\n"
+
+#: fdisk/fdisk.c:1145
+#, c-format
+msgid ""
+"\n"
+"Disk %s: %d heads, %d sectors, %d cylinders\n"
+"Units = %s of %d * %d bytes\n"
+"\n"
+msgstr ""
+"\n"
+"¥Ç¥£¥¹¥¯ %s: ¥Ø¥Ã¥É %d, ¥»¥¯¥¿ %d, ¥·¥ê¥ó¥À %d\n"
+"¥æ¥Ë¥Ã¥È = %s of %d * %d ¥Ð¥¤¥È\n"
+"\n"
+
+#. FIXME! let's see how this shows up with other languagues
+#. acme@conectiva.com.br
+#: fdisk/fdisk.c:1182
+#, c-format
+msgid "%*s Boot    Start       End    Blocks   Id  System\n"
+msgstr "%*s ¥Ö¡¼¥È  »ÏÅÀ        ½ªÅÀ   ¥Ö¥í¥Ã¥¯ ID  ¥·¥¹¥Æ¥à\n"
+
+#: fdisk/fdisk.c:1183 fdisk/fdisksgilabel.c:207 fdisk/fdisksunlabel.c:631
+msgid "Device"
+msgstr "¥Ç¥Ð¥¤¥¹"
+
+#: fdisk/fdisk.c:1223
+#, c-format
+msgid ""
+"\n"
+"Disk %s: %d heads, %d sectors, %d cylinders\n"
+"\n"
+msgstr ""
+"\n"
+"¥Ç¥£¥¹¥¯ %s: ¥Ø¥Ã¥É %d, ¥»¥¯¥¿ %d, ¥·¥ê¥ó¥À %d\n"
+"\n"
+
+#: fdisk/fdisk.c:1225
+msgid "Nr AF  Hd Sec  Cyl  Hd Sec  Cyl   Start    Size ID\n"
+msgstr "Nr AF  Hd Sec  Cyl  Hd Sec  Cyl   ³«»Ï   ¥µ¥¤¥º ID\n"
+
+#: fdisk/fdisk.c:1264
+#, c-format
+msgid "Warning: partition %d contains sector 0\n"
+msgstr "·Ù¹ð: Îΰè %d ¤Ï¥»¥¯¥¿ 0 ¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹\n"
+
+#: fdisk/fdisk.c:1267
+#, c-format
+msgid "Partition %d: head %d greater than maximum %d\n"
+msgstr "Îΰè %d: ¥Ø¥Ã¥É %d ¤ÏºÇÂçÃÍ %d ¤è¤ê¤âÂ礭¤¤¤Ç¤¹\n"
+
+#: fdisk/fdisk.c:1270
+#, c-format
+msgid "Partition %d: sector %d greater than maximum %d\n"
+msgstr "Îΰè %d: ¥»¥¯¥¿ %d ¤ÏºÇÂçÃÍ %d ¤è¤ê¤âÂ礭¤¤¤Ç¤¹\n"
+
+#: fdisk/fdisk.c:1273
+#, c-format
+msgid "Partitions %d: cylinder %d greater than maximum %d\n"
+msgstr "Îΰè %d: ¥·¥ê¥ó¥À %d ¤ÏºÇÂçÃÍ %d ¤è¤ê¤âÂ礭¤¤¤Ç¤¹\n"
+
+#: fdisk/fdisk.c:1277
+#, c-format
+msgid "Partition %d: previous sectors %d disagrees with total %d\n"
+msgstr "Îΰè %d: Á°¤Î¥»¥¯¥¿ %d ¤Ï¹ç·× %d ¤È°ìÃפ·¤Þ¤»¤ó\n"
+
+#: fdisk/fdisk.c:1307
+#, c-format
+msgid "Warning: bad start-of-data in partition %d\n"
+msgstr "·Ù¹ð: Îΰè %d ¤ËÉÔÀµ¤Ê¥Ç¡¼¥¿³«»Ï°ÌÃÖ¤¬¤¢¤ê¤Þ¤¹\n"
+
+#: fdisk/fdisk.c:1315
+#, c-format
+msgid "Warning: partition %d overlaps partition %d.\n"
+msgstr "·Ù¹ð: Îΰè %d ¤Ï¡¢Îΰè %d ¤È½Å¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£\n"
+
+#: fdisk/fdisk.c:1333
+#, c-format
+msgid "Warning: partition %d is empty\n"
+msgstr "·Ù¹ð: Îΰè %d ¤Ï¶õ¤Ç¤¹\n"
+
+#: fdisk/fdisk.c:1338
+#, c-format
+msgid "Logical partition %d not entirely in partition %d\n"
+msgstr "ÏÀÍýÎΰè %d ¤ÏÎΰè %d Á´ÂΤˤʤäƤ¤¤Þ¤»¤ó\n"
+
+#: fdisk/fdisk.c:1344
+#, c-format
+msgid "Total allocated sectors %d greater than the maximum %d\n"
+msgstr "¹ç·×³ÎÊÝ¥»¥¯¥¿ %d ¤ÏºÇÂçÃÍ %d ¤è¤ê¤âÂ礭¤¤¤Ç¤¹\n"
+
+#: fdisk/fdisk.c:1347
+#, c-format
+msgid "%d unallocated sectors\n"
+msgstr "³ÎÊݤµ¤ì¤Æ¤¤¤Ê¤¤¥»¥¯¥¿¤¬ %d ¤¢¤ê¤Þ¤¹\n"
+
+#: fdisk/fdisk.c:1359 fdisk/fdisksgilabel.c:684 fdisk/fdisksunlabel.c:479
+#, c-format
+msgid "Partition %d is already defined.  Delete it before re-adding it.\n"
+msgstr "Îΰè %d ¤ÏÄêµÁºÑ¤Ç¤¹¡£¤Þ¤º¤Ïºï½ü¤ò¹Ô¤Ê¤Ã¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: fdisk/fdisk.c:1380 fdisk/fdiskbsdlabel.c:252 fdisk/fdisksgilabel.c:706
+#: fdisk/fdisksunlabel.c:494
+#, c-format
+msgid "First %s"
+msgstr "ºÇ½é %s"
+
+#: fdisk/fdisk.c:1395 fdisk/fdisksunlabel.c:519
+#, c-format
+msgid "Sector %d is already allocated\n"
+msgstr "¥»¥¯¥¿ %d ¤Ï´û¤Ë³ÎÊݺѤߤǤ¹\n"
+
+#: fdisk/fdisk.c:1421
+msgid "No free sectors available\n"
+msgstr "ÍøÍѲÄǽ¥Õ¥ê¡¼¥»¥¯¥¿¤¬¤¢¤ê¤Þ¤»¤ó\n"
+
+#: fdisk/fdisk.c:1431 fdisk/fdiskbsdlabel.c:256 fdisk/fdisksunlabel.c:529
+#, c-format
+msgid "Last %s or +size or +sizeM or +sizeK"
+msgstr "½ªÅÀ %s ¤Þ¤¿¤Ï +¥µ¥¤¥º ¤Þ¤¿¤Ï +¥µ¥¤¥ºM ¤Þ¤¿¤Ï +¥µ¥¤¥ºK"
+
+#: fdisk/fdisk.c:1461
+#, c-format
+msgid "Warning: partition %d has an odd number of sectors.\n"
+msgstr "·Ù¹ð: Îΰè %d ¤Ï´ñ¿ô¥»¥¯¥¿¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£\n"
+
+#: fdisk/fdisk.c:1498 fdisk/fdiskbsdlabel.c:590
+msgid "The maximum number of partitions has been created\n"
+msgstr "ºÇÂçÎΰè¿ô¤ÏºîÀ®ºÑ¤Ç¤¹\n"
+
+#: fdisk/fdisk.c:1508
+msgid "You must delete some partition and add an extended partition first\n"
+msgstr "³ÈÄ¥Îΰè¤òÄɲ乤ëÁ°¤Ë¡¢¤Þ¤ºÎΰè¤òºï½ü¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹\n"
+
+#: fdisk/fdisk.c:1512
+#, c-format
+msgid ""
+"Command action\n"
+"   %s\n"
+"   p   primary partition (1-4)\n"
+msgstr ""
+"¥³¥Þ¥ó¥É¥¢¥¯¥·¥ç¥ó\n"
+"   %s\n"
+"   p   ´ðËÜÎΰè (1-4)\n"
+
+#: fdisk/fdisk.c:1514
+msgid "l   logical (5 or over)"
+msgstr "l   ÏÀÍý (5 °Ê¾å)"
+
+#: fdisk/fdisk.c:1514
+msgid "e   extended"
+msgstr "e   ³ÈÄ¥"
+
+#: fdisk/fdisk.c:1531
+#, c-format
+msgid "Invalid partition number for type `%c'\n"
+msgstr "¥¿¥¤¥× `%c' ¤Ë¤È¤Ã¤Æ¤ÏÉÔÀµ¤ÊÎΰèÈÖ¹æ¤Ç¤¹\n"
+
+#: fdisk/fdisk.c:1563
+msgid ""
+"The partition table has been altered!\n"
+"\n"
+msgstr ""
+"Îΰè¥Æ¡¼¥Ö¥ë¤Ï¸ò´¹¤µ¤ì¤Þ¤·¤¿¡ª\n"
+"\n"
+
+#: fdisk/fdisk.c:1565
+msgid "Calling ioctl() to re-read partition table.\n"
+msgstr "ioctl() ¤ò¸Æ¤Ó½Ð¤·¤ÆÎΰè¥Æ¡¼¥Ö¥ë¤òºÆÆɹþ¤ß¤·¤Þ¤¹¡£\n"
+
+#: fdisk/fdisk.c:1582
+msgid "Syncing disks.\n"
+msgstr "¥Ç¥£¥¹¥¯¤òƱ´ü¤µ¤»¤Þ¤¹¡£\n"
+
+#: fdisk/fdisk.c:1587
+#, c-format
+msgid ""
+"Re-read table failed with error %d: %s.\n"
+"Reboot your system to ensure the partition table is updated.\n"
+msgstr ""
+"¥Æ¡¼¥Ö¥ë¤ÎºÆÆɤ߹þ¤ß¤¬¥¨¥é¡¼¥¹¥Æ¡¼¥¿¥¹ %d ¤Ç¼ºÇÔ: %s.\n"
+"Îΰè¾ðÊó¤òÀµ¤·¤¯¹¹¿·¤µ¤»¤ë¤Ë¤Ï¥·¥¹¥Æ¥à¤òºÆµ¯Æ°¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: fdisk/fdisk.c:1593
+msgid ""
+"\n"
+"WARNING: If you have created or modified any DOS 6.x\n"
+"partitions, please see the fdisk manual page for additional\n"
+"information.\n"
+msgstr ""
+"\n"
+"·Ù¹ð: DOS 6.x Îΰè¤òºîÀ®¡¢¤Þ¤¿¤ÏÊѹ¹¤·¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¤Ï¡¢\n"
+"fdisk ¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ë¤¢¤ëÄɲþðÊó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: fdisk/fdisk.c:1624
+#, c-format
+msgid "Device: %s\n"
+msgstr "¥Ç¥Ð¥¤¥¹: %s\n"
+
+#: fdisk/fdisk.c:1639
+#, c-format
+msgid "Partition %d has no data area\n"
+msgstr "Îΰè %d ¤Ë¥Ç¡¼¥¿Îΰ褬¤¢¤ê¤Þ¤»¤ó\n"
+
+#: fdisk/fdisk.c:1645
+msgid "New beginning of data"
+msgstr "¿·µ¬¥Ç¡¼¥¿³«»Ï°ÌÃÖ"
+
+#: fdisk/fdisk.c:1659
+msgid "Expert command (m for help): "
+msgstr "¥¨¥­¥¹¥Ñ¡¼¥È¥³¥Þ¥ó¥É (m ¤Ç¥Ø¥ë¥×): "
+
+#: fdisk/fdisk.c:1670
+msgid "Number of cylinders"
+msgstr "¥·¥ê¥ó¥À¿ô"
+
+#: fdisk/fdisk.c:1691
+msgid "Number of heads"
+msgstr "¥Ø¥Ã¥É¿ô"
+
+#: fdisk/fdisk.c:1716
+msgid "Number of sectors"
+msgstr "¥»¥¯¥¿¿ô"
+
+#: fdisk/fdisk.c:1719
+msgid "Warning: setting sector offset for DOS compatiblity\n"
+msgstr "·Ù¹ð: DOS ¸ß´¹¤Î¤¿¤á¤Î¥»¥¯¥¿¥ª¥Õ¥»¥Ã¥È¤òÀßÄꤷ¤Þ¤¹\n"
+
+#: fdisk/fdisk.c:1781
+#, c-format
+msgid "Disk %s doesn't contain a valid partition table\n"
+msgstr "¥Ç¥£¥¹¥¯ %s ¤ÏÀµ¾ï¤ÊÎΰè¥Æ¡¼¥Ö¥ë¤ò´Þ¤ó¤Ç¤¤¤Þ¤»¤ó\n"
+
+#: fdisk/fdisk.c:1795
+#, c-format
+msgid "Cannot open %s\n"
+msgstr "%s ¤ò³«¤±¤Þ¤»¤ó\n"
+
+#: fdisk/fdisk.c:1861
+msgid "This kernel finds the sector size itself - -b option ignored\n"
+msgstr ""
+"¤³¤Î¥«¡¼¥Í¥ë¤Ï¥»¥¯¥¿¥µ¥¤¥º¤ò¼«Ê¬Ç§¼±¤·¤Þ¤¹ -- -b ¥ª¥×¥·¥ç¥ó¤Ï̵»ë¤·¤Þ¤¹\n"
+
+#: fdisk/fdisk.c:1864
+msgid ""
+"Warning: the -b (set sector size) option should be used with one specified "
+"device\n"
+msgstr ""
+"·Ù¹ð: -b (¥»¥¯¥¿¥µ¥¤¥ºÀßÄê) ¥ª¥×¥·¥ç¥ó¤Ï 1 ¤Ä¤Î¥Ç¥Ð¥¤¥¹»ØÄê¤È¶¦¤Ë\n"
+"»ÈÍѤµ¤ì¤ë¤Ù¤­¤Ç¤¹\n"
+
+#: fdisk/fdisk.c:1985
+#, c-format
+msgid "Using %s as default device!\n"
+msgstr "¥Ç¥Õ¥©¥ë¥È¥Ç¥Ð¥¤¥¹¤È¤·¤Æ %s ¤ò»È¤¤¤Þ¤¹¡ª\n"
+
+#: fdisk/fdisk.c:1991
+msgid "Command (m for help): "
+msgstr "¥³¥Þ¥ó¥É (m ¤Ç¥Ø¥ë¥×): "
+
+#: fdisk/fdisk.c:2005
+#, c-format
+msgid ""
+"\n"
+"The current boot file is: %s\n"
+msgstr ""
+"\n"
+"¸½ºß¤Î¥Ö¡¼¥È¥Õ¥¡¥¤¥ë¤Ï: %s\n"
+
+#: fdisk/fdisk.c:2007
+msgid "Please enter the name of the new boot file: "
+msgstr "¿·¤¿¤Ê¥Ö¡¼¥È¥Õ¥¡¥¤¥ë̾¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤: "
+
+#: fdisk/fdisk.c:2009
+msgid "Boot file unchanged\n"
+msgstr "¥Ö¡¼¥È¥Õ¥¡¥¤¥ë¤òÊѹ¹¤·¤Þ¤»¤ó¤Ç¤·¤¿\n"
+
+#: fdisk/fdisk.c:2069
+msgid ""
+"\n"
+"\tSorry, no experts menu for SGI partition tables available.\n"
+"\n"
+msgstr ""
+"\n"
+"\t»ÄÇ°¤Ê¤¬¤é SGI Îΰè¥Æ¡¼¥Ö¥ëÍѤΥ¨¥­¥¹¥Ñ¡¼¥È¥á¥Ë¥å¡¼¤Ï\n"
+"\tÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£\n"
+
+#: fdisk/fdiskaixlabel.c:29
+msgid ""
+"\n"
+"\tThere is a valid AIX label on this disk.\n"
+"\tUnfortunately Linux cannot handle these\n"
+"\tdisks at the moment.  Nevertheless some\n"
+"\tadvice:\n"
+"\t1. fdisk will destroy its contents on write.\n"
+"\t2. Be sure that this disk is NOT a still vital\n"
+"\t   part of a volume group. (Otherwise you may\n"
+"\t   erase the other disks as well, if unmirrored.)\n"
+"\t3. Before deleting this physical volume be sure\n"
+"\t   to remove the disk logically from your AIX\n"
+"\t   machine.  (Otherwise you become an AIXpert)."
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:97
+#, c-format
+msgid ""
+"\n"
+"BSD label for device: %s\n"
+msgstr ""
+"\n"
+"BSD ¥é¥Ù¥ëÍѥǥХ¤¥¹: %s\n"
+
+#: fdisk/fdiskbsdlabel.c:106
+msgid "   d   delete a BSD partition"
+msgstr "   d   BSD Îΰè¤òºï½ü¤¹¤ë"
+
+#: fdisk/fdiskbsdlabel.c:107
+msgid "   e   edit drive data"
+msgstr "   e   ¥É¥é¥¤¥Ö¥Ç¡¼¥¿¤òÊÔ½¸¤¹¤ë"
+
+#: fdisk/fdiskbsdlabel.c:108
+msgid "   i   install bootstrap"
+msgstr "   i   ¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë"
+
+#: fdisk/fdiskbsdlabel.c:109
+msgid "   l   list known filesystem types"
+msgstr "   l   ´ûÃΤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥×¤ò¥ê¥¹¥Èɽ¼¨¤¹¤ë"
+
+#: fdisk/fdiskbsdlabel.c:111
+msgid "   n   add a new BSD partition"
+msgstr "   n   ¿·¤¿¤Ë BSD Îΰè¤òºîÀ®¤¹¤ë"
+
+#: fdisk/fdiskbsdlabel.c:112
+msgid "   p   print BSD partition table"
+msgstr "   p   BSD Îΰè¥Æ¡¼¥Ö¥ë¤òɽ¼¨¤¹¤ë"
+
+#: fdisk/fdiskbsdlabel.c:117
+msgid "   s   show complete disklabel"
+msgstr "   s   ´°Á´¤Ê¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤òɽ¼¨¤¹¤ë"
+
+#: fdisk/fdiskbsdlabel.c:118
+msgid "   t   change a partition's filesystem id"
+msgstr "   t   Îΰè¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à ID ¤òÊѹ¹¤¹¤ë"
+
+#: fdisk/fdiskbsdlabel.c:119
+msgid "   w   write disklabel to disk"
+msgstr "   w   ¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤ò¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤à"
+
+#: fdisk/fdiskbsdlabel.c:121
+msgid "   x   link BSD partition to non-BSD partition"
+msgstr "   x   BSD Îΰè¤òÈó BSD Îΰè¤È¥ê¥ó¥¯¤¹¤ë"
+
+#: fdisk/fdiskbsdlabel.c:146
+#, c-format
+msgid "Partition %s%d has invalid starting sector 0.\n"
+msgstr "Îΰè %s%d ¤ÏÉÔÀµ¤Ê»ÏÅÀ¥»¥¯¥¿ 0 ¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£\n"
+
+#: fdisk/fdiskbsdlabel.c:150
+#, c-format
+msgid "Reading disklabel of %s%d at sector %d.\n"
+msgstr "%s%d ¤Î¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤Î¥»¥¯¥¿ %d ¤òÆɹþ¤ß¤Þ¤¹¡£\n"
+
+#: fdisk/fdiskbsdlabel.c:159
+#, c-format
+msgid "There is no *BSD partition on %s.\n"
+msgstr "%s ¤Ë¤Ï *BSD Îΰè¤Ï¤¢¤ê¤Þ¤»¤ó¡£\n"
+
+#: fdisk/fdiskbsdlabel.c:174
+msgid "BSD disklabel command (m for help): "
+msgstr "BSD ¥Ç¥£¥¹¥¯¥é¥Ù¥ë¥³¥Þ¥ó¥É (m ¤Ç¥Ø¥ë¥×): "
+
+#: fdisk/fdiskbsdlabel.c:286
+#, c-format
+msgid "type: %s\n"
+msgstr "¥¿¥¤¥×: %s\n"
+
+#: fdisk/fdiskbsdlabel.c:288
+#, c-format
+msgid "type: %d\n"
+msgstr "¥¿¥¤¥×: %d\n"
+
+#: fdisk/fdiskbsdlabel.c:289
+#, c-format
+msgid "disk: %.*s\n"
+msgstr "¥Ç¥£¥¹¥¯: %.*s\n"
+
+#: fdisk/fdiskbsdlabel.c:290
+#, c-format
+msgid "label: %.*s\n"
+msgstr "¥é¥Ù¥ë: %.*s\n"
+
+#: fdisk/fdiskbsdlabel.c:291
+msgid "flags:"
+msgstr "¥Õ¥é¥°:"
+
+#: fdisk/fdiskbsdlabel.c:293
+msgid " removable"
+msgstr " ¼è½Ð¤·²Äǽ"
+
+#: fdisk/fdiskbsdlabel.c:295
+msgid " ecc"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:297
+msgid " badsect"
+msgstr ""
+
+#. On various machines the fields of *lp are short/int/long
+#. In order to avoid problems, we cast them all to long.
+#: fdisk/fdiskbsdlabel.c:301
+#, c-format
+msgid "bytes/sector: %ld\n"
+msgstr "¥Ð¥¤¥È/¥»¥¯¥¿: %ld\n"
+
+#: fdisk/fdiskbsdlabel.c:302
+#, c-format
+msgid "sectors/track: %ld\n"
+msgstr "¥»¥¯¥¿/¥È¥é¥Ã¥¯: %ld\n"
+
+#: fdisk/fdiskbsdlabel.c:303
+#, c-format
+msgid "tracks/cylinder: %ld\n"
+msgstr "¥È¥é¥Ã¥¯/¥·¥ê¥ó¥À: %ld\n"
+
+#: fdisk/fdiskbsdlabel.c:304
+#, c-format
+msgid "sectors/cylinder: %ld\n"
+msgstr "¥»¥¯¥¿/¥·¥ê¥ó¥À: %ld\n"
+
+#: fdisk/fdiskbsdlabel.c:305
+#, c-format
+msgid "cylinders: %ld\n"
+msgstr "¥·¥ê¥ó¥À: %ld\n"
+
+#: fdisk/fdiskbsdlabel.c:306
+#, c-format
+msgid "rpm: %d\n"
+msgstr "²óž¿ô: %d\n"
+
+#: fdisk/fdiskbsdlabel.c:307
+#, c-format
+msgid "interleave: %d\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:308
+#, c-format
+msgid "trackskew: %d\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:309
+#, c-format
+msgid "cylinderskew: %d\n"
+msgstr "cylinderskew: %d\n"
+
+#: fdisk/fdiskbsdlabel.c:310
+#, c-format
+msgid "headswitch: %ld\t\t# milliseconds\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:311
+#, c-format
+msgid "track-to-track seek: %ld\t# milliseconds\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:312
+msgid "drivedata: "
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:321
+#, c-format
+msgid ""
+"\n"
+"%d partitions:\n"
+msgstr ""
+"\n"
+"%d ¸Ä¤ÎÎΰè:\n"
+
+#: fdisk/fdiskbsdlabel.c:322
+msgid "#        size   offset    fstype   [fsize bsize   cpg]\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:378
+#, c-format
+msgid "Writing disklabel to %s%d.\n"
+msgstr "%s%d ¤Ë¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤ò½ñ¤­¹þ¤ß¤Þ¤¹¡£\n"
+
+#: fdisk/fdiskbsdlabel.c:381
+#, c-format
+msgid "Writing disklabel to %s.\n"
+msgstr "%s ¤Ë¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤ò½ñ¤­¹þ¤ß¤Þ¤¹¡£\n"
+
+#: fdisk/fdiskbsdlabel.c:392
+#, c-format
+msgid "%s%d contains no disklabel.\n"
+msgstr "%s%d ¤Ï¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤ò´Þ¤ó¤Ç¤¤¤Þ¤»¤ó¡£\n"
+
+#: fdisk/fdiskbsdlabel.c:395
+#, c-format
+msgid "%s contains no disklabel.\n"
+msgstr "%s ¤Ï¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤ò´Þ¤ó¤Ç¤¤¤Þ¤»¤ó¡£\n"
+
+#: fdisk/fdiskbsdlabel.c:399
+msgid "Do you want to create a disklabel? (y/n) "
+msgstr "¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤òºîÀ®¤·¤Þ¤¹¤«? (y/n) "
+
+#: fdisk/fdiskbsdlabel.c:438
+msgid "bytes/sector"
+msgstr "¥Ð¥¤¥È/¥»¥¯¥¿"
+
+#: fdisk/fdiskbsdlabel.c:439
+msgid "sectors/track"
+msgstr "¥»¥¯¥¿/¥È¥é¥Ã¥¯"
+
+#: fdisk/fdiskbsdlabel.c:440
+msgid "tracks/cylinder"
+msgstr "¥È¥é¥Ã¥¯/¥·¥ê¥ó¥À"
+
+#: fdisk/fdiskbsdlabel.c:448
+msgid "sectors/cylinder"
+msgstr "¥»¥¯¥¿/¥·¥ê¥ó¥À"
+
+#: fdisk/fdiskbsdlabel.c:452
+msgid "Must be <= sectors/track * tracks/cylinder (default).\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:454
+msgid "rpm"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:455
+msgid "interleave"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:456
+msgid "trackskew"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:457
+msgid "cylinderskew"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:458
+msgid "headswitch"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:459
+msgid "track-to-track seek"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:500
+#, c-format
+msgid "Bootstrap: %sboot -> boot%s (%s): "
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:526
+msgid "Bootstrap overlaps with disk label!\n"
+msgstr "¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¤¬¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤È½Å¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡ª\n"
+
+#: fdisk/fdiskbsdlabel.c:547
+#, c-format
+msgid "Bootstrap installed on %s%d.\n"
+msgstr "¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¤Ï %s%d ¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤·¤¿¡£\n"
+
+#: fdisk/fdiskbsdlabel.c:549
+#, c-format
+msgid "Bootstrap installed on %s.\n"
+msgstr "¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×¤Ï %s ¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤·¤¿¡£\n"
+
+#: fdisk/fdiskbsdlabel.c:570
+#, c-format
+msgid "Partition (a-%c): "
+msgstr "Îΰè (a-%c): "
+
+#: fdisk/fdiskbsdlabel.c:601
+msgid "This partition already exists.\n"
+msgstr "¤³¤ÎÎΰè¤Ï¤¹¤Ç¤Ë¸ºß¤·¤Þ¤¹¡£\n"
+
+#: fdisk/fdiskbsdlabel.c:723
+#, c-format
+msgid "Warning: too many partitions (%d, maximum is %d).\n"
+msgstr "·Ù¹ð: Îΰ褬¿¤¹¤®¤Þ¤¹ (%d, ºÇÂç¤Ï %d)¡£\n"
+
+#: fdisk/fdiskbsdlabel.c:769
+msgid ""
+"\n"
+"Syncing disks.\n"
+msgstr ""
+"\n"
+"¥Ç¥£¥¹¥¯¤ÈƱ´ü¤µ¤»¤Þ¤¹¡£\n"
+
+#: fdisk/fdisksgilabel.c:56
+msgid "SGI volhdr"
+msgstr "SGI volhdr"
+
+#: fdisk/fdisksgilabel.c:57
+msgid "SGI trkrepl"
+msgstr "SGI trkrepl"
+
+#: fdisk/fdisksgilabel.c:58
+msgid "SGI secrepl"
+msgstr "SGI secrepl"
+
+#: fdisk/fdisksgilabel.c:59
+msgid "SGI raw"
+msgstr "SGI raw"
+
+#: fdisk/fdisksgilabel.c:60
+msgid "SGI bsd"
+msgstr "SGI bsd"
+
+#: fdisk/fdisksgilabel.c:61
+msgid "SGI sysv"
+msgstr "SGI sysv"
+
+#: fdisk/fdisksgilabel.c:62
+msgid "SGI volume"
+msgstr "SGI volume"
+
+#: fdisk/fdisksgilabel.c:63
+msgid "SGI efs"
+msgstr "SGI efs"
+
+#: fdisk/fdisksgilabel.c:64
+msgid "SGI lvol"
+msgstr "SGI lvol"
+
+#: fdisk/fdisksgilabel.c:65
+msgid "SGI rlvol"
+msgstr "SGI rlvol"
+
+#: fdisk/fdisksgilabel.c:66
+msgid "SGI xfs"
+msgstr "SGI xfs"
+
+#: fdisk/fdisksgilabel.c:67
+msgid "SGI xlvol"
+msgstr "SGI xlvol"
+
+#: fdisk/fdisksgilabel.c:68
+msgid "SGI rxlvol"
+msgstr "SGI rxlvol"
+
+#. Minix 1.4b and later
+#: fdisk/fdisksgilabel.c:69 fdisk/fdisksunlabel.c:52 fdisk/i386_sys_types.c:55
+msgid "Linux swap"
+msgstr "Linux ¥¹¥ï¥Ã¥×"
+
+#: fdisk/fdisksgilabel.c:70 fdisk/fdisksunlabel.c:53
+msgid "Linux native"
+msgstr "Linux native"
+
+#: fdisk/fdisksgilabel.c:143
+msgid ""
+"According to MIPS Computer Systems, Inc the Label must not contain more than "
+"512 bytes\n"
+msgstr ""
+"MIPS Computer Systems, Inc ¤Ë¤è¤ë¤È¡¢¤½¤Î¥é¥Ù¥ë¤Ï 512 ¥Ð¥¤¥È°Ê¾å¤Ç¤Ê¤±¤ì¤Ð\n"
+"¤Ê¤ê¤Þ¤»¤ó\n"
+
+#: fdisk/fdisksgilabel.c:162
+msgid "Detected sgi disklabel with wrong checksum.\n"
+msgstr "´Ö°ã¤Ã¤¿¥Á¥§¥Ã¥¯¥µ¥àÃͤΠsgi ¥Ç¥£¥¹¥¯¥é¥Ù¥ë¤ò¸¡½Ð¤·¤Þ¤·¤¿¡£\n"
+
+#: fdisk/fdisksgilabel.c:186
+#, c-format
+msgid ""
+"\n"
+"Disk %s (SGI disk label): %d heads, %d sectors\n"
+"%d cylinders, %d physical cylinders\n"
+"%d extra sects/cyl, interleave %d:1\n"
+"%s\n"
+"Units = %s of %d * 512 bytes\n"
+"\n"
+msgstr ""
+"\n"
+"¥Ç¥£¥¹¥¯ %s (SGI ¥Ç¥£¥¹¥¯¥é¥Ù¥ë): ¥Ø¥Ã¥É %d, ¥»¥¯¥¿ %d\n"
+"¥·¥ê¥ó¥À %d , ÊªÍý¥·¥ê¥ó¥À %d\n"
+"%d ¥¨¥¯¥¹¥È¥é¥»¥¯¥¿/¥·¥ê¥ó¥À, ¥¤¥ó¥¿¡¼¥ê¡¼¥Ö %d:1\n"
+"%s\n"
+"¥æ¥Ë¥Ã¥È = %s of %d * 512 ¥Ð¥¤¥È\n"
+"\n"
+
+#: fdisk/fdisksgilabel.c:199
+#, c-format
+msgid ""
+"\n"
+"Disk %s (SGI disk label): %d heads, %d sectors, %d cylinders\n"
+"Units = %s of %d * 512 bytes\n"
+"\n"
+msgstr ""
+"\n"
+"¥Ç¥£¥¹¥¯ %s (SGI ¥Ç¥£¥¹¥¯¥é¥Ù¥ë): ¥Ø¥Ã¥É %d, ¥»¥¯¥¿ %d, ¥·¥ê¥ó¥À %d\n"
+"¥æ¥Ë¥Ã¥È = %s of %d * 512 ¥Ð¥¤¥È\n"
+"\n"
+
+#: fdisk/fdisksgilabel.c:205
+#, c-format
+msgid ""
+"----- partitions -----\n"
+"%*s  Info      Start       End   Sectors  Id  System\n"
+msgstr ""
+"----- Îΰè -----\n"
+"%*s  ¾ðÊó      »ÏÅÀ        ½ªÅÀ   ¥»¥¯¥¿   ID  ¥·¥¹¥Æ¥à\n"
+
+#: fdisk/fdisksgilabel.c:227
+#, c-format
+msgid ""
+"----- bootinfo -----\n"
+"Bootfile: %s\n"
+"----- directory entries -----\n"
+msgstr ""
+"----- ¥Ö¡¼¥È¾ðÊó -----\n"
+"¥Ö¡¼¥È¥Õ¥¡¥¤¥ë: %s\n"
+"----- ¥Ç¥£¥ì¥¯¥È¥ê¹àÌÜ -----\n"
+
+#: fdisk/fdisksgilabel.c:237
+#, c-format
+msgid "%2d: %-10s sector%5u size%8u\n"
+msgstr "%2d: %-10s ¥»¥¯¥¿%5u ¥µ¥¤¥º%8u\n"
+
+#: fdisk/fdisksgilabel.c:298
+msgid ""
+"\n"
+"Invalid Bootfile!\n"
+"\tThe bootfile must be an absolute non-zero pathname,\n"
+"\te.g. \"/unix\" or \"/unix.save\".\n"
+msgstr ""
+"\n"
+"ÉÔÀµ¤Ê¥Ö¡¼¥È¥Õ¥¡¥¤¥ë¤Ç¤¹¡ª\n"
+"\t¤½¤Î¥Ö¡¼¥È¥Õ¥¡¥¤¥ë¤ÏÀäÂÐÈó¥¼¥í¥Ñ¥¹Ì¾¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó\n"
+"\tÎã. \"/unix\" ¤Þ¤¿¤Ï \"/unix.save\"\n"
+
+#: fdisk/fdisksgilabel.c:305
+msgid ""
+"\n"
+"\tName of Bootfile too long:  16 bytes maximum.\n"
+msgstr ""
+"\n"
+"\t¥Ö¡¼¥È¥Õ¥¡¥¤¥ë̾¤¬Ä¹¤¹¤®¤Þ¤¹ -- ºÇÂç 16 ¥Ð¥¤¥È¡£\n"
+
+#: fdisk/fdisksgilabel.c:310
+msgid ""
+"\n"
+"\tBootfile must have a fully qualified pathname.\n"
+msgstr ""
+"\n"
+"\t¥Ö¡¼¥È¥Õ¥¡¥¤¥ë¤Ï¥Õ¥ë¥Ñ¥¹¤Ç»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£\n"
+
+#: fdisk/fdisksgilabel.c:315
+msgid ""
+"\n"
+"\tBe aware, that the bootfile is not checked for existence.\n"
+"\tSGI's default is \"/unix\" and for backup \"/unix.save\".\n"
+msgstr ""
+"\n"
+"\t¥Ö¡¼¥È¥Õ¥¡¥¤¥ë¤Ï¤½¤Î¸ºß¤ò¥Á¥§¥Ã¥¯¤µ¤ì¤Ê¤¤¤³¤È¤Ëµ¤¤Å¤¤¤Æ¤¯¤À¤µ¤¤¡£\n"
+"\tSGI ¤Î½é´üÃͤϠ\"/unix\" ¤Ç¡¢¥Ð¥Ã¥¯¥¢¥Ã¥×ÍѤˤϠ\"/unix.save\" ¤Ç¤¹¡£\n"
+
+#: fdisk/fdisksgilabel.c:343
+#, c-format
+msgid ""
+"\n"
+"\tBootfile is changed to \"%s\".\n"
+msgstr ""
+"\n"
+"\t¥Ö¡¼¥È¥Õ¥¡¥¤¥ë¤Ï \"%s\" ¤ËÊѹ¹¤µ¤ì¤Þ¤·¤¿¡£\n"
+
+#: fdisk/fdisksgilabel.c:448
+msgid "More than one entire disk entry present.\n"
+msgstr "Ê£¿ô¤Î¥Ç¥£¥¹¥¯Á´ÂΤιàÌܤ¬¤¢¤ê¤Þ¤¹¡£\n"
+
+#: fdisk/fdisksgilabel.c:456 fdisk/fdisksunlabel.c:455
+msgid "No partitions defined\n"
+msgstr "Îΰ褬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
+
+#: fdisk/fdisksgilabel.c:463
+msgid "IRIX likes when Partition 11 covers the entire disk.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:465
+#, c-format
+msgid ""
+"The entire disk partition should start at block 0,\n"
+"not at diskblock %d.\n"
+msgstr ""
+"Á´ÂΥǥ£¥¹¥¯¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¡¢¥Ö¥í¥Ã¥¯ 0 ¤«¤é»Ï¤Þ¤ë¤Ù¤­¤Ç¤¹¤¬¡¢\n"
+"¥Ç¥£¥¹¥¯¥Ö¥í¥Ã¥¯ %d ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£\n"
+
+#: fdisk/fdisksgilabel.c:469
+#, c-format
+msgid ""
+"The entire disk partition is only %d diskblock large,\n"
+"but the disk is %d diskblocks long.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:476
+msgid "One Partition (#11) should cover the entire disk.\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó (#11) ¤Ï¥Ç¥£¥¹¥¯Á´ÂΤòʤ¤¦¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¹¡£\n"
+
+#: fdisk/fdisksgilabel.c:488
+#, c-format
+msgid "Partition %d does not start on cylinder boundary.\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %d ¤Ï¡¢¥·¥ê¥ó¥À¶­³¦¤«¤é»Ï¤Þ¤Ã¤Æ¤¤¤Þ¤»¤ó¡£\n"
+
+#: fdisk/fdisksgilabel.c:495
+#, c-format
+msgid "Partition %d does not end on cylinder boundary.\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %d ¤Ï¡¢¥·¥ê¥ó¥À¶­³¦¤Ç½ª¤ï¤Ã¤Æ¤¤¤Þ¤»¤ó¡£\n"
+
+#: fdisk/fdisksgilabel.c:503
+#, c-format
+msgid "The Partition %d and %d overlap by %d sectors.\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %d ¤È %d ¤Ï %d ¥»¥¯¥¿½Å¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£\n"
+
+#: fdisk/fdisksgilabel.c:512 fdisk/fdisksgilabel.c:532
+#, c-format
+msgid "Unused gap of %8d sectors - sectors %8d-%d\n"
+msgstr "%8d ¥»¥¯¥¿¤Î̤»ÈÍÑ¥®¥ã¥Ã¥× -- ¥»¥¯¥¿ %8d-%d\n"
+
+#: fdisk/fdisksgilabel.c:545
+msgid ""
+"\n"
+"The boot partition does not exist.\n"
+msgstr ""
+"\n"
+"¥Ö¡¼¥È¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬Â¸ºß¤·¤Þ¤»¤ó¡£\n"
+
+#: fdisk/fdisksgilabel.c:549
+msgid ""
+"\n"
+"The swap partition does not exist.\n"
+msgstr ""
+"\n"
+"¥¹¥ï¥Ã¥×¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬Â¸ºß¤·¤Þ¤»¤ó¡£\n"
+
+#: fdisk/fdisksgilabel.c:554
+msgid ""
+"\n"
+"The swap partition has no swap type.\n"
+msgstr ""
+"\n"
+"¥¹¥ï¥Ã¥×¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¥¹¥ï¥Ã¥×¥¿¥¤¥×¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤»¤ó¡£\n"
+
+#: fdisk/fdisksgilabel.c:558
+msgid "\tYou have chosen an unusual boot file name.\n"
+msgstr "\t¤¢¤Ê¤¿¤Ï¡¢¥Ö¡¼¥È¥Õ¥¡¥¤¥ë̾¤È¤·¤ÆÄ̾ï¤È°Û¤Ê¤ë̾Á°¤òÁª¤Ó¤Þ¤·¤¿¡£\n"
+
+#: fdisk/fdisksgilabel.c:569
+msgid "Sorry You may change the Tag of non-empty partitions.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:576
+msgid ""
+"It is highly recommended that the partition at offset 0\n"
+"is of type \"SGI volhdr\", the IRIX system will rely on it to\n"
+"retrieve from its directory standalone tools like sash and fx.\n"
+"Only the \"SGI volume\" entire disk section may violate this.\n"
+"Type YES if you are sure about tagging this partition differently.\n"
+msgstr ""
+
+#. rebuild freelist
+#: fdisk/fdisksgilabel.c:621
+msgid "Do You know, You got a partition overlap on the disk?\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:691
+msgid "Attempting to generate entire disk entry automatically.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:698
+msgid "The entire disk is already covered with partitions.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:703
+msgid "You got a partition overlap on the disk. Fix it first!\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:712 fdisk/fdisksgilabel.c:741
+msgid ""
+"It is highly recommended that eleventh partition\n"
+"covers the entire disk and is of type `SGI volume'\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:728
+msgid "You will get a partition overlap on the disk. Fix it first!\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:733
+#, c-format
+msgid " Last %s"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:756
+msgid ""
+"Building a new SGI disklabel. Changes will remain in memory only,\n"
+"until you decide to write them. After that, of course, the previous\n"
+"content will be unrecoverable lost.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:784
+#, c-format
+msgid "Trying to keep parameters of partition %d.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:786
+#, c-format
+msgid "ID=%02x\tSTART=%d\tLENGTH=%d\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:43 fdisk/i386_sys_types.c:6
+msgid "Empty"
+msgstr "¶õ"
+
+#: fdisk/fdisksunlabel.c:45
+msgid "SunOS root"
+msgstr "SunOS ¥ë¡¼¥È"
+
+#: fdisk/fdisksunlabel.c:46
+msgid "SunOS swap"
+msgstr "SunOS ¥¹¥ï¥Ã¥×"
+
+#: fdisk/fdisksunlabel.c:47
+msgid "SunOS usr"
+msgstr "SunOS usr"
+
+#: fdisk/fdisksunlabel.c:48
+msgid "Whole disk"
+msgstr "Whole disk"
+
+#: fdisk/fdisksunlabel.c:49
+msgid "SunOS stand"
+msgstr "SunOS stand"
+
+#: fdisk/fdisksunlabel.c:50
+msgid "SunOS var"
+msgstr "SunOS var"
+
+#: fdisk/fdisksunlabel.c:51
+msgid "SunOS home"
+msgstr "SunOS home"
+
+#: fdisk/fdisksunlabel.c:122
+msgid ""
+"Detected sun disklabel with wrong checksum.\n"
+"Probably you'll have to set all the values,\n"
+"e.g. heads, sectors, cylinders and partitions\n"
+"or force a fresh label (s command in main menu)\n"
+msgstr ""
+"´Ö°ã¤Ã¤¿¥Á¥§¥Ã¥¯¥µ¥àÃͤò»ý¤Ä sun disklabel ¤ò¸¡½Ð¤·¤Þ¤·¤¿¡£\n"
+"¿ʬ¡¢¤¢¤Ê¤¿¤ÏÁ´¤Æ¤ÎÃͤòÀßÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Ç¤·¤ç¤¦\n"
+"Îã. ¥Ø¥Ã¥É¿ô¡¢¥»¥¯¥¿¿ô¡¢¥·¥ê¥ó¥À¿ôµÚ¤Ó¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¿ô\n"
+"¤¢¤ë¤¤¤Ï fresh label ¤ò¶¯À©¤·¤Æ¤¯¤À¤µ¤¤ (¥á¥¤¥ó¥á¥Ë¥å¡¼¤Î s ¥³¥Þ¥ó¥É)\n"
+
+#: fdisk/fdisksunlabel.c:215
+#, c-format
+msgid "Autoconfigure found a %s%s%s\n"
+msgstr "¼«Æ°ÀßÄê¤Ç %s%s%s ¤ò¸«¤Ä¤±¤Þ¤·¤¿\n"
+
+#: fdisk/fdisksunlabel.c:242
+msgid ""
+"Building a new sun disklabel. Changes will remain in memory only,\n"
+"until you decide to write them. After that, of course, the previous\n"
+"content won't be recoverable.\n"
+"\n"
+msgstr ""
+"¿·¤¿¤Ê sun disklabel ¤ò¹½ÃÛ¤·¤Þ¤¹¡£Êѹ¹¤Ï¤¢¤Ê¤¿¤¬½ñ¤­¹þ¤ß¤ò·èÄꤹ¤ë¤Þ¤Ç¡¢\n"
+"¥á¥â¥ê¤Ë¤Î¤ß»Ä¤·¤Þ¤¹¡£¤½¤Î¸å¤Ï¤â¤Á¤í¤ó¡¢°ÊÁ°¤ÎÆâÍƤÏÉü¸µ¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: fdisk/fdisksunlabel.c:253
+msgid ""
+"Drive type\n"
+"   ?   auto configure\n"
+"   0   custom (with hardware detected defaults)"
+msgstr ""
+"¥É¥é¥¤¥Ö¥¿¥¤¥×\n"
+"   ?   ¼«Æ°ÀßÄê\n"
+"   0   ¥«¥¹¥¿¥à (¥Ï¡¼¥É¥¦¥§¥¢¤¬¸¡½Ð¤·¤¿Ãͤò½é´üÃͤȤ·¤Æ)"
+
+#: fdisk/fdisksunlabel.c:263
+msgid "Select type (? for auto, 0 for custom): "
+msgstr "¥¿¥¤¥×¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤ (? ¤Ç¼«Æ°¡¢0 ¤Ç¥«¥¹¥¿¥à): "
+
+#: fdisk/fdisksunlabel.c:275
+msgid "Autoconfigure failed.\n"
+msgstr "¼«Æ°ÀßÄ꤬¼ºÇÔ¤·¤Þ¤·¤¿¡£\n"
+
+#: fdisk/fdisksunlabel.c:303
+msgid "Sectors/track"
+msgstr "¥»¥¯¥¿/¥È¥é¥Ã¥¯"
+
+#: fdisk/fdisksunlabel.c:310
+msgid "Alternate cylinders"
+msgstr "ÂåÂØ¥·¥ê¥ó¥À¿ô"
+
+#: fdisk/fdisksunlabel.c:313
+msgid "Physical cylinders"
+msgstr "ʪÍý¥·¥ê¥ó¥À¿ô"
+
+#: fdisk/fdisksunlabel.c:316 fdisk/fdisksunlabel.c:681
+msgid "Rotation speed (rpm)"
+msgstr "²óž¿ô (rpm)"
+
+#: fdisk/fdisksunlabel.c:318 fdisk/fdisksunlabel.c:674
+msgid "Interleave factor"
+msgstr "¥¤¥ó¥¿¡¼¥ê¡¼¥Ö"
+
+#: fdisk/fdisksunlabel.c:321 fdisk/fdisksunlabel.c:667
+msgid "Extra sectors per cylinder"
+msgstr "¥·¥ê¥ó¥ÀËè¤ÎÆÃÊ̤ʥ»¥¯¥¿"
+
+#: fdisk/fdisksunlabel.c:334
+msgid "You may change all the disk params from the x menu"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:337
+msgid "3,5\" floppy"
+msgstr "3,5\" ¥Õ¥í¥Ã¥Ô¡¼"
+
+#: fdisk/fdisksunlabel.c:337
+msgid "Linux custom"
+msgstr "Linux custom"
+
+#: fdisk/fdisksunlabel.c:418
+#, c-format
+msgid "Partition %d doesn't end on cylinder boundary\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %d ¤Ï¥·¥ê¥ó¥À¶­³¦¤Ç½ª¤ï¤Ã¤Æ¤¤¤Þ¤»¤ó\n"
+
+#: fdisk/fdisksunlabel.c:438
+#, c-format
+msgid "Partition %d overlaps with others in sectors %d-%d\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %d ¤Ï¾¤Î¥»¥¯¥¿ %d-%d ¤È½Å¤Ê¤Ã¤Æ¤¤¤Þ¤¹\n"
+
+#: fdisk/fdisksunlabel.c:460
+#, c-format
+msgid "Unused gap - sectors 0-%d\n"
+msgstr "̤»ÈÍÑ¥®¥ã¥Ã¥× -- 0-%d ¥»¥¯¥¿\n"
+
+#: fdisk/fdisksunlabel.c:462 fdisk/fdisksunlabel.c:466
+#, c-format
+msgid "Unused gap - sectors %d-%d\n"
+msgstr "̤»ÈÍÑ¥®¥ã¥Ã¥× -- %d-%d ¥»¥¯¥¿\n"
+
+#: fdisk/fdisksunlabel.c:489
+msgid ""
+"Other partitions already cover the whole disk.\n"
+"Delete some/shrink them before retry.\n"
+msgstr ""
+"¾¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬´û¤Ë¥Ç¥£¥¹¥¯Á´ÂΤòʤ¤Ã¤Æ¤¤¤Þ¤¹¡£\n"
+"¤Þ¤º¤½¤ì¤òºï½ü¤·¤Æ¤«¤é¤â¤¦°ìÅٻ¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: fdisk/fdisksunlabel.c:547
+#, c-format
+msgid ""
+"You haven't covered the whole disk with the 3rd partition, but your value\n"
+"%d %s covers some other partition. Your entry has been changed\n"
+"to %d %s\n"
+msgstr ""
+"3 ÈÖÌܤΥѡ¼¥Æ¥£¥·¥ç¥ó¤¬¥Ç¥£¥¹¥¯Á´ÂΤòʤ¤Ã¤Æ¤¤¤Þ¤»¤ó¤¬¡¢»ØÄêÃÍ %d %s ¤Ï\n"
+"¾¤Î¤¤¤¯¤Ä¤«¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òʤ¤Ã¤Æ¤¤¤Þ¤¹¡£¤¢¤Ê¤¿¤Î¹àÌܤϠ%d %s ¤Ë\n"
+"Êѹ¹¤µ¤ì¤Þ¤·¤¿¡£\n"
+
+#: fdisk/fdisksunlabel.c:567
+#, c-format
+msgid ""
+"If you want to maintain SunOS/Solaris compatibility, consider leaving this\n"
+"partition as Whole disk (5), starting at 0, with %u sectors\n"
+msgstr ""
+"¤â¤·¤â SunOS/Solaris ¸ß´¹¤ò°Ý»ý¤·¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢¤³¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ò\n"
+"Whole disk (5) ¤Î¤Þ¤Þ¤Ë¤·¤Æ¤ª¤¯¤³¤È¤ò¹Íθ¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+"0 ¤«¤é»Ï¤Þ¤ë %u ¥»¥¯¥¿Ê¬¤Ç¤¹\n"
+
+#: fdisk/fdisksunlabel.c:580
+msgid ""
+"It is highly recommended that the partition at offset 0\n"
+"is UFS, EXT2FS filesystem or SunOS swap. Putting Linux swap\n"
+"there may destroy your partition table and bootblock.\n"
+"Type YES if you're very sure you would like that partition\n"
+"tagged with 82 (Linux swap): "
+msgstr ""
+"¤½¤Î¥ª¥Õ¥»¥Ã¥È 0 ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï UFS, EXT2FS ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤«¡¢\n"
+"SunOS swap ¤È¤¹¤ë¤³¤È¤ò¶¯¤¯¿ä¾©¤·¤Þ¤¹¡£¤½¤³¤Ë Linux swap ¤òÃÖ¤¯¤³¤È¤Ï¡¢\n"
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤ä¥Ö¡¼¥È¥Ö¥í¥Ã¥¯¤òÇ˲õ¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤«¤Í¤Þ¤»¤ó¡£\n"
+"¤â¤·¡¢¤¢¤Ê¤¿¤¬ËÜÅö¤Ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤ËÉä¹ç 82 (Linux swap) ¤ò¤Ä¤±¤¿¤±¤ì¤Ð\n"
+"YES ¤ÈÅú¤¨¤Æ¤¯¤À¤µ¤¤: "
+
+#: fdisk/fdisksunlabel.c:611
+#, c-format
+msgid ""
+"\n"
+"Disk %s (Sun disk label): %d heads, %d sectors, %d rpm\n"
+"%d cylinders, %d alternate cylinders, %d physical cylinders\n"
+"%d extra sects/cyl, interleave %d:1\n"
+"%s\n"
+"Units = %s of %d * 512 bytes\n"
+"\n"
+msgstr ""
+"\n"
+"¥Ç¥£¥¹¥¯ %s (Sun ¥Ç¥£¥¹¥¯¥é¥Ù¥ë): ¥Ø¥Ã¥É %d, ¥»¥¯¥¿ %d, ²óž¿ô %d rpm\n"
+"¥·¥ê¥ó¥À %d, ÂåÂØ¥·¥ê¥ó¥À %d, ÊªÍý¥·¥ê¥ó¥À %d\n"
+"%d ¥¨¥¯¥¹¥È¥é¥»¥¯¥¿/¥·¥ê¥ó¥À, ¥¤¥ó¥¿¡¼¥ê¡¼¥Ö %d:1\n"
+"%s\n"
+"¥æ¥Ë¥Ã¥È = %s of %d * 512 ¥Ð¥¤¥È\n"
+"\n"
+
+#: fdisk/fdisksunlabel.c:625
+#, c-format
+msgid ""
+"\n"
+"Disk %s (Sun disk label): %d heads, %d sectors, %d cylinders\n"
+"Units = %s of %d * 512 bytes\n"
+"\n"
+msgstr ""
+"\n"
+"¥Ç¥£¥¹¥¯ %s (Sun ¥Ç¥£¥¹¥¯¥é¥Ù¥ë): ¥Ø¥Ã¥É %d, ¥»¥¯¥¿ %d, ¥·¥ê¥ó¥À %d\n"
+"¥æ¥Ë¥Ã¥È = %s of %d * 512 ¥Ð¥¤¥È\n"
+"\n"
+
+#: fdisk/fdisksunlabel.c:630
+#, c-format
+msgid "%*s Flag    Start       End    Blocks   Id  System\n"
+msgstr "%*s ¥Õ¥é¥°  »ÏÅÀ        ½ªÅÀ   ¥Ö¥í¥Ã¥¯ ID  ¥·¥¹¥Æ¥à\n"
+
+#: fdisk/fdisksunlabel.c:655
+msgid "Number of alternate cylinders"
+msgstr "ÂåÂØ¥·¥ê¥ó¥À¿ô"
+
+#: fdisk/fdisksunlabel.c:688
+msgid "Number of physical cylinders"
+msgstr "ʪÍý¥·¥ê¥ó¥À¿ô"
+
+#: fdisk/i386_sys_types.c:7
+msgid "FAT12"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:8
+msgid "XENIX root"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:9
+msgid "XENIX usr"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:10
+msgid "FAT16 <32M"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:11
+msgid "Extended"
+msgstr "³ÈÄ¥Îΰè"
+
+#. DOS 3.3+ extended partition
+#: fdisk/i386_sys_types.c:12
+msgid "FAT16"
+msgstr ""
+
+#. DOS 16-bit >=32M
+#: fdisk/i386_sys_types.c:13
+msgid "HPFS/NTFS"
+msgstr "HPFS/NTFS"
+
+#. OS/2 IFS, eg, HPFS or NTFS or QNX
+#: fdisk/i386_sys_types.c:14
+msgid "AIX"
+msgstr ""
+
+#. AIX boot (AIX -- PS/2 port) or SplitDrive
+#: fdisk/i386_sys_types.c:15
+msgid "AIX bootable"
+msgstr "AIX ¥Ö¡¼¥È²Äǽ"
+
+#. AIX data or Coherent
+#: fdisk/i386_sys_types.c:16
+msgid "OS/2 Boot Manager"
+msgstr "OS/2 ¥Ö¡¼¥È¥Þ¥Í¡¼¥¸¥ã"
+
+#. OS/2 Boot Manager
+#: fdisk/i386_sys_types.c:17
+msgid "Win95 FAT32"
+msgstr "Win95 FAT32"
+
+#: fdisk/i386_sys_types.c:18
+msgid "Win95 FAT32 (LBA)"
+msgstr "Win95 FAT32 (LBA)"
+
+#. LBA really is `Extended Int 13h'
+#: fdisk/i386_sys_types.c:19
+msgid "Win95 FAT16 (LBA)"
+msgstr "Win95 FAT16 (LBA)"
+
+#: fdisk/i386_sys_types.c:20
+msgid "Win95 Ext'd (LBA)"
+msgstr "Win95 ³ÈÄ¥Îΰè (LBA)"
+
+#: fdisk/i386_sys_types.c:21
+msgid "OPUS"
+msgstr "OPUS"
+
+#: fdisk/i386_sys_types.c:22
+msgid "Hidden FAT12"
+msgstr "±£¤· FAT12"
+
+#: fdisk/i386_sys_types.c:23
+msgid "Compaq diagnostics"
+msgstr "Compaq ¿ÇÃÇ"
+
+#: fdisk/i386_sys_types.c:24
+msgid "Hidden FAT16 <32M"
+msgstr "±£¤· FAT16 <32M"
+
+#: fdisk/i386_sys_types.c:25
+msgid "Hidden FAT16"
+msgstr "±£¤· FAT16"
+
+#: fdisk/i386_sys_types.c:26
+msgid "Hidden HPFS/NTFS"
+msgstr "±£¤· HPFS/NTFS"
+
+#: fdisk/i386_sys_types.c:27
+msgid "AST Windows swapfile"
+msgstr "AST Windows ¥¹¥ï¥Ã¥×"
+
+#: fdisk/i386_sys_types.c:28
+msgid "Hidden Win95 FAT32"
+msgstr "Hidden Win95 FAT32"
+
+#: fdisk/i386_sys_types.c:29
+msgid "Hidden Win95 FAT32 (LBA)"
+msgstr "Hidden Win95 FAT32 (LBA)"
+
+#: fdisk/i386_sys_types.c:30
+msgid "Hidden Win95 FAT16 (LBA)"
+msgstr "Hidden Win95 FAT16 (LBA)"
+
+#: fdisk/i386_sys_types.c:31
+msgid "NEC DOS"
+msgstr "NEC DOS"
+
+#: fdisk/i386_sys_types.c:32
+msgid "PartitionMagic recovery"
+msgstr "PartitionMagic ½¤Éü"
+
+#: fdisk/i386_sys_types.c:33
+msgid "Venix 80286"
+msgstr "Venix 80286"
+
+#: fdisk/i386_sys_types.c:34
+msgid "PPC PReP Boot"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:35
+msgid "SFS"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:36
+msgid "QNX4.x"
+msgstr "QNX4.x"
+
+#: fdisk/i386_sys_types.c:37
+msgid "QNX4.x 2nd part"
+msgstr "QNX4.x 2nd part"
+
+#: fdisk/i386_sys_types.c:38
+msgid "QNX4.x 3rd part"
+msgstr "QNX4.x 3rd part"
+
+#: fdisk/i386_sys_types.c:39
+msgid "OnTrack DM"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:40
+msgid "OnTrack DM6 Aux1"
+msgstr ""
+
+#. (or Novell)
+#: fdisk/i386_sys_types.c:41
+msgid "CP/M"
+msgstr ""
+
+#. CP/M or Microport SysV/AT
+#: fdisk/i386_sys_types.c:42
+msgid "OnTrack DM6 Aux3"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:43
+msgid "OnTrackDM6"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:44
+msgid "EZ-Drive"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:45
+msgid "Golden Bow"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:46
+msgid "Priam Edisk"
+msgstr ""
+
+#. DOS R/O or SpeedStor
+#: fdisk/i386_sys_types.c:47 fdisk/i386_sys_types.c:76
+#: fdisk/i386_sys_types.c:78 fdisk/i386_sys_types.c:79
+msgid "SpeedStor"
+msgstr "SpeedStor"
+
+#: fdisk/i386_sys_types.c:48
+msgid "GNU HURD or SysV"
+msgstr "GNU HURD ¤Þ¤¿¤Ï SysV"
+
+#. GNU HURD or Mach or Sys V/386 (such as ISC UNIX)
+#: fdisk/i386_sys_types.c:49
+msgid "Novell Netware 286"
+msgstr "Novell Netware 286"
+
+#: fdisk/i386_sys_types.c:50
+msgid "Novell Netware 386"
+msgstr "Novell Netware 386"
+
+#: fdisk/i386_sys_types.c:51
+msgid "DiskSecure Multi-Boot"
+msgstr "DiskSecure Multi-Boot"
+
+#: fdisk/i386_sys_types.c:52
+msgid "PC/IX"
+msgstr "PC/IX"
+
+#: fdisk/i386_sys_types.c:53
+msgid "Old Minix"
+msgstr "¸Å¤¤ Minix"
+
+#. Minix 1.4a and earlier
+#: fdisk/i386_sys_types.c:54
+msgid "Minix / old Linux"
+msgstr "Minix / ¸Å¤¤ Linux"
+
+#: fdisk/i386_sys_types.c:57
+msgid "OS/2 hidden C: drive"
+msgstr "OS/2 ±£¤· C: ¥É¥é¥¤¥ô"
+
+#: fdisk/i386_sys_types.c:58
+msgid "Linux extended"
+msgstr "Linux ³ÈÄ¥Îΰè"
+
+#: fdisk/i386_sys_types.c:59 fdisk/i386_sys_types.c:60
+msgid "NTFS volume set"
+msgstr "NTFS ¥Ü¥ê¥å¡¼¥à¥»¥Ã¥È"
+
+#: fdisk/i386_sys_types.c:61
+msgid "Amoeba"
+msgstr "Amoeba"
+
+#: fdisk/i386_sys_types.c:62
+msgid "Amoeba BBT"
+msgstr "Amoeba BBT"
+
+#. (bad block table)
+#: fdisk/i386_sys_types.c:63
+msgid "IBM Thinkpad hibernation"
+msgstr "IBM Thinkpad ¥Ï¥¤¥Ð¥Í¡¼¥·¥ç¥ó"
+
+#: fdisk/i386_sys_types.c:64
+msgid "BSD/386"
+msgstr "BSD/386"
+
+#: fdisk/i386_sys_types.c:65
+msgid "OpenBSD"
+msgstr "OpenBSD"
+
+#: fdisk/i386_sys_types.c:66
+msgid "NeXTSTEP"
+msgstr "NeXTSTEP"
+
+#: fdisk/i386_sys_types.c:67
+msgid "BSDI fs"
+msgstr "BSDI fs"
+
+#: fdisk/i386_sys_types.c:68
+msgid "BSDI swap"
+msgstr "BSDI ¥¹¥ï¥Ã¥×"
+
+#: fdisk/i386_sys_types.c:69
+msgid "DRDOS/sec (FAT-12)"
+msgstr "DRDOS/sec (FAT-12)"
+
+#: fdisk/i386_sys_types.c:70
+msgid "DRDOS/sec (FAT-16 < 32M)"
+msgstr "DRDOS/sec (FAT-16 < 32M)"
+
+#: fdisk/i386_sys_types.c:71
+msgid "DRDOS/sec (FAT-16)"
+msgstr "DRDOS/sec (FAT-16)"
+
+#: fdisk/i386_sys_types.c:72
+msgid "Syrinx"
+msgstr "Syrinx"
+
+#: fdisk/i386_sys_types.c:73
+msgid "CP/M / CTOS / ..."
+msgstr ""
+
+#. CP/M or Concurrent CP/M or Concurrent DOS or CTOS
+#: fdisk/i386_sys_types.c:74
+msgid "DOS access"
+msgstr ""
+
+#. DOS access or SpeedStor 12-bit FAT extended partition
+#: fdisk/i386_sys_types.c:75
+msgid "DOS R/O"
+msgstr ""
+
+#. SpeedStor 16-bit FAT extended partition < 1024 cyl.
+#: fdisk/i386_sys_types.c:77
+msgid "BeOS fs"
+msgstr "BeOS fs"
+
+#. SpeedStor large partition
+#: fdisk/i386_sys_types.c:80
+msgid "DOS secondary"
+msgstr "DOS ¥»¥«¥ó¥À¥ê"
+
+#. DOS 3.3+ secondary
+#: fdisk/i386_sys_types.c:81
+msgid "Linux raid autodetect"
+msgstr ""
+
+#. New (2.2.x) raid partition with autodetect
+#. using persistent superblock
+#: fdisk/i386_sys_types.c:83
+msgid "LANstep"
+msgstr ""
+
+#. SpeedStor >1024 cyl. or LANstep
+#: fdisk/i386_sys_types.c:84
+msgid "BBT"
+msgstr ""
+
+#: fdisk/sfdisk.c:148
+#, c-format
+msgid "seek error on %s - cannot seek to %lu\n"
+msgstr "%s ¤Î¥·¡¼¥¯¥¨¥é¡¼ -- %lu ¤ò¥·¡¼¥¯¤Ç¤­¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:153
+#, c-format
+msgid "seek error: wanted 0x%08x%08x, got 0x%08x%08x\n"
+msgstr "¥·¡¼¥¯¥¨¥é¡¼: 0x%08x%08x ¤Î¤Ï¤º¤Ç¤·¤¿¤¬ 0x%08x%08x ¤ò¼õ¤±¼è¤ê¤Þ¤·¤¿\n"
+
+#: fdisk/sfdisk.c:199
+msgid "out of memory - giving up\n"
+msgstr "¥á¥â¥ê¤¬Â­¤ê¤Þ¤»¤ó -- Äü¤á¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:203 fdisk/sfdisk.c:286
+#, c-format
+msgid "read error on %s - cannot read sector %lu\n"
+msgstr "%s ¤ÎÆɤ߼è¤ê¥¨¥é¡¼ -- ¥»¥¯¥¿ %lu ¤òÆɤá¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:219
+#, c-format
+msgid "ERROR: sector %lu does not have an msdos signature\n"
+msgstr "¥¨¥é¡¼: ¥»¥¯¥¿ %lu ¤Ë¤Ï msdos ¥µ¥¤¥ó¤¬¤¢¤ê¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:236
+#, c-format
+msgid "write error on %s - cannot write sector %lu\n"
+msgstr "%s ¤Ø¤Î½ñ¤­¹þ¤ß¥¨¥é¡¼ -- ¥»¥¯¥¿ %lu ¤Ë½ñ¤­¹þ¤á¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:274
+#, c-format
+msgid "cannot open partition sector save file (%s)\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥»¥¯¥¿Êݸ¥Õ¥¡¥¤¥ë (%s) ¤ò¥ª¡¼¥×¥ó¤Ç¤­¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:292
+#, c-format
+msgid "write error on %s\n"
+msgstr "%s ¤Ø¤Î½ñ¤­¹þ¤ß¥¨¥é¡¼\n"
+
+#: fdisk/sfdisk.c:310
+#, c-format
+msgid "cannot stat partition restore file (%s)\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥óÉü¸µ¥Õ¥¡¥¤¥ë (%s) ¤Î¾ðÊó¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:315
+msgid "partition restore file has wrong size - not restoring\n"
+msgstr ""
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥óÉü¸µ¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹ -- Éü¸µ¤ò¹Ô¤Ê¤¤¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:319
+msgid "out of memory?\n"
+msgstr "¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡©\n"
+
+#: fdisk/sfdisk.c:325
+#, c-format
+msgid "cannot open partition restore file (%s)\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥óÉü¸µ¥Õ¥¡¥¤¥ë (%s) ¤ò³«¤±¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:331
+#, c-format
+msgid "error reading %s\n"
+msgstr "%s ¤ÎÆɤ߼è¤ê¥¨¥é¡¼\n"
+
+#: fdisk/sfdisk.c:338
+#, c-format
+msgid "cannot open device %s for writing\n"
+msgstr "¥Ç¥Ð¥¤¥¹ %s ¤ò½ñ¤­¹þ¤ß¤è¤¦¤Ë¥ª¡¼¥×¥ó¤Ç¤­¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:350
+#, c-format
+msgid "error writing sector %lu on %s\n"
+msgstr "%s ¤Î¥»¥¯¥¿ %lu ¤Ø¤Î½ñ¤­¹þ¤ß¥¨¥é¡¼\n"
+
+#: fdisk/sfdisk.c:416
+#, c-format
+msgid ""
+"Warning: start=%d - this looks like a partition rather than\n"
+"the entire disk. Using fdisk on it is probably meaningless.\n"
+"[Use the --force option if you really want this]\n"
+msgstr ""
+"·Ù¹ð: start=%d -- "
+"¤³¤ÎÃͤϥѡ¼¥Æ¥£¥·¥ç¥ó¤Ç¤Ï¤Ê¤¯¥Ç¥£¥¹¥¯¤½¤Î¤â¤Î¤Î¤è¤¦¤Ç¤¹¡£\n"
+"¤³¤³¤Ë fdisk ¤òÍøÍѤ¹¤ë¤Î¤Ï¿ʬ°ÕÌ£¤¬¤Ê¤¤¤³¤È¤Ç¤¹¡£\n"
+"[ËÜÅö¤Ë¤³¤ì¤ò¹Ô¤Ê¤¤¤¿¤±¤ì¤Ð¡¢--force ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤]\n"
+
+#: fdisk/sfdisk.c:422
+#, c-format
+msgid "Warning: HDIO_GETGEO says that there are %d heads\n"
+msgstr "·Ù¹ð: HDIO_GETGEO ¤Ï¥Ø¥Ã¥É¿ô¤ò %d ¤ÈÊÖ¤·¤Þ¤·¤¿\n"
+
+#: fdisk/sfdisk.c:425
+#, c-format
+msgid "Warning: HDIO_GETGEO says that there are %d sectors\n"
+msgstr "·Ù¹ð: HDIO_GETGEO ¤Ï¥»¥¯¥¿¿ô¤ò %d ¤ÈÊÖ¤·¤Þ¤·¤¿\n"
+
+#: fdisk/sfdisk.c:428
+#, c-format
+msgid "Warning: HDIO_GETGEO says that there are %d cylinders\n"
+msgstr "·Ù¹ð: HDIO_GETGEO ¤Ï¥·¥ê¥ó¥À¿ô¤ò %d ¤ÈÊÖ¤·¤Þ¤·¤¿\n"
+
+#: fdisk/sfdisk.c:432
+#, c-format
+msgid "Disk %s: cannot get geometry\n"
+msgstr "¥Ç¥£¥¹¥¯ %s: ¥¸¥ª¥á¥È¥ê¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:434
+#, c-format
+msgid ""
+"Warning: unlikely number of sectors (%d) - usually at most 63\n"
+"This will give problems with all software that uses C/H/S addressing.\n"
+msgstr ""
+"·Ù¹ð: ¥»¥¯¥¿¿ô (%d) ¤¬Ë¾¤Þ¤·¤¯¤¢¤ê¤Þ¤»¤ó -- ÂçÄñ¤Î¾ì¹ç 63 ¤Ç¤¹¡£\n"
+"¤³¤ì¤Ï¡¢C/H/S ¤ò¥¢¥É¥ì¥¹¼èÆÀ¤ËÍøÍѤ·¤Æ¤¤¤ëÁ´¤Æ¤Î¥½¥Õ¥È¥¦¥§¥¢¤Ç¡¢\n"
+"ÌäÂ꤬À¸¤º¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£\n"
+
+#: fdisk/sfdisk.c:438
+#, c-format
+msgid ""
+"\n"
+"Disk %s: %lu cylinders, %lu heads, %lu sectors/track\n"
+msgstr ""
+"\n"
+"¥Ç¥£¥¹¥¯ %s: ¥·¥ê¥ó¥À¿ô %lu¡¢¥Ø¥Ã¥É¿ô %lu¡¢%lu ¥»¥¯¥¿/¥È¥é¥Ã¥¯\n"
+
+#: fdisk/sfdisk.c:518
+#, c-format
+msgid ""
+"%s of partition %s has impossible value for head: %d (should be in 0-%d)\n"
+msgstr ""
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %2$s ¤Î¥Ø¥Ã¥É¿ô¤È¤·¤Æ %1$s ¤ÏÉÔ²Äǽ¤Ç¤¹:\n"
+"   (0-%3$d ¤Ë¤·¤Æ¤¯¤À¤µ¤¤)\n"
+
+#: fdisk/sfdisk.c:523
+#, c-format
+msgid ""
+"%s of partition %s has impossible value for sector: %d (should be in 1-%d)\n"
+msgstr ""
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %2$s ¤Î¥»¥¯¥¿¿ô¤È¤·¤Æ %1$s ¤ÏÉÔ²Äǽ¤Ç¤¹:\n"
+"   (1-%3$d ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó)\n"
+
+#: fdisk/sfdisk.c:528
+#, c-format
+msgid ""
+"%s of partition %s has impossible value for cylinders: %d (should be in "
+"0-%d)\n"
+msgstr ""
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %2$s ¤Î¥·¥ê¥ó¥À¿ô¤È¤·¤Æ %1$s ¤ÏÉÔ²Äǽ¤Ç¤¹:\n"
+"   (0-%3$d ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó)\n"
+
+#: fdisk/sfdisk.c:567
+msgid ""
+"Id  Name\n"
+"\n"
+msgstr ""
+"Id  Ì¾Á°\n"
+"\n"
+
+#: fdisk/sfdisk.c:720
+msgid "Re-reading the partition table ...\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë¤òºÆÆɤ߹þ¤ßÃæ...\n"
+
+#: fdisk/sfdisk.c:726
+msgid ""
+"The command to re-read the partition table failed\n"
+"Reboot your system now, before using mkfs\n"
+msgstr ""
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥óºÝÆɹþ¤ß¥³¥Þ¥ó¥É¤¬¼ºÇÔ¤·¤Þ¤·¤¿\n"
+"mkfs ¤ò»È¤¦Á°¤Ë¡¢¥·¥¹¥Æ¥à¤òºÆµ¯Æ°¤·¤Æ¤¯¤À¤µ¤¤\n"
+
+#: fdisk/sfdisk.c:731
+#, c-format
+msgid "Error closing %s\n"
+msgstr "%s ¤Î¥¯¥í¡¼¥º¥¨¥é¡¼\n"
+
+#: fdisk/sfdisk.c:769
+#, c-format
+msgid "%s: no such partition\n"
+msgstr "%s: ¤½¤Î¤è¤¦¤Ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¤¢¤ê¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:792
+msgid "unrecognized format - using sectors\n"
+msgstr "ǧ¼±¤Ç¤­¤Ê¤¤¥Õ¥©¡¼¥Þ¥Ã¥È -- ¥»¥¯¥¿¿ô¤òÍøÍѤ·¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:831
+#, c-format
+msgid "# partition table of %s\n"
+msgstr "# %s ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¥Æ¡¼¥Ö¥ë\n"
+
+#: fdisk/sfdisk.c:832
+msgid ""
+"unit: sectors\n"
+"\n"
+msgstr ""
+"unit: ¥»¥¯¥¿¿ô\n"
+"\n"
+
+#: fdisk/sfdisk.c:842
+#, c-format
+msgid "unimplemented format - using %s\n"
+msgstr "̤¼ÂÁõ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È -- %s ¤òÍøÍѤ·¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:846
+#, c-format
+msgid ""
+"Units = cylinders of %lu bytes, blocks of 1024 bytes, counting from %d\n"
+"\n"
+msgstr ""
+"¥æ¥Ë¥Ã¥È = %lu ¥Ð¥¤¥È¤Î¥·¥ê¥ó¥À¡¢1024 ¥Ð¥¤¥È¤Î¥Ö¥í¥Ã¥¯¡¢%d ¤«¤é¿ô¤¨¤Þ¤¹\n"
+"\n"
+
+#: fdisk/sfdisk.c:849
+msgid "   Device Boot Start     End   #cyls   #blocks   Id  System\n"
+msgstr "¥Ç¥Ð¥¤¥¹ ¥Ö¡¼¥È »ÏÅÀ   ½ªÅÀ   #¥·¥ê¥ó¥À #¥Ö¥í¥Ã¥¯ ID   ¥·¥¹¥Æ¥à\n"
+
+#: fdisk/sfdisk.c:854
+#, c-format
+msgid ""
+"Units = sectors of 512 bytes, counting from %d\n"
+"\n"
+msgstr ""
+"¥æ¥Ë¥Ã¥È = 512 ¥Ð¥¤¥È¤Î¥»¥¯¥¿¡¢%d ¤«¤é¿ô¤¨¤Þ¤¹\n"
+"\n"
+
+#: fdisk/sfdisk.c:856
+msgid "   Device Boot    Start       End  #sectors  Id  System\n"
+msgstr " ¥Ç¥Ð¥¤¥¹ ¥Ö¡¼¥È  »ÏÅÀ      ½ªÅÀ   #¥»¥¯¥¿   ID  ¥·¥¹¥Æ¥à\n"
+
+#: fdisk/sfdisk.c:859
+#, c-format
+msgid ""
+"Units = blocks of 1024 bytes, counting from %d\n"
+"\n"
+msgstr ""
+"¥æ¥Ë¥Ã¥È = 1024 ¥Ð¥¤¥È¤Î¥Ö¥í¥Ã¥¯¡¢%d ¤«¤é¿ô¤¨¤Þ¤¹\n"
+"\n"
+
+#: fdisk/sfdisk.c:861
+msgid "   Device Boot   Start       End   #blocks   Id  System\n"
+msgstr " ¥Ç¥Ð¥¤¥¹ ¥Ö¡¼¥È »ÏÅÀ        ½ªÅÀ  #¥Ö¥í¥Ã¥¯ ID  ¥·¥¹¥Æ¥à\n"
+
+#: fdisk/sfdisk.c:864
+#, c-format
+msgid ""
+"Units = megabytes of 1048576 bytes, blocks of 1024 bytes, counting from %d\n"
+"\n"
+msgstr ""
+"Units = 1048576 ¥Ð¥¤¥È¤ò¥á¥¬¥Ð¥¤¥È¡¢1024 ¥Ð¥¤¥È¤Î¥Ö¥í¥Ã¥¯¡¢%d ¤«¤é¿ô¤¨¤Þ¤¹\n"
+"\n"
+
+#: fdisk/sfdisk.c:866
+msgid "   Device Boot Start   End     MB   #blocks   Id  System\n"
+msgstr "¥Ç¥Ð¥¤¥¹ ¥Ö¡¼¥È »ÏÅÀ   ½ªÅÀ    MB   #¥Ö¥í¥Ã¥¯ ID  ¥·¥¹¥Æ¥à\n"
+
+#: fdisk/sfdisk.c:932
+#, c-format
+msgid " start=%9lu"
+msgstr " ³«»Ï=%9lu"
+
+#: fdisk/sfdisk.c:933
+#, c-format
+msgid ", size=%8lu"
+msgstr ", ¥µ¥¤¥º=%8lu"
+
+#: fdisk/sfdisk.c:935
+#, c-format
+msgid ", Id=%2x"
+msgstr ", Id=%2x"
+
+#: fdisk/sfdisk.c:937
+msgid ", bootable"
+msgstr ", ¥Ö¡¼¥È²Ä"
+
+#: fdisk/sfdisk.c:998
+#, c-format
+msgid "\t\tstart: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr "\t\t³«»Ï: (c,h,s) ´üÂÔÃÍ (%ld,%ld,%ld)  (%ld,%ld,%ld) ¤òȯ¸«\n"
+
+#: fdisk/sfdisk.c:1005
+#, c-format
+msgid "\t\tend: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr "\t\t½ªÅÀ: (c,h,s) ´üÂÔÃÍ (%ld,%ld,%ld)  (%ld,%ld,%ld) ¤òȯ¸«\n"
+
+#: fdisk/sfdisk.c:1008
+#, c-format
+msgid "partition ends on cylinder %ld, beyond the end of the disk\n"
+msgstr "¥·¥ê¥ó¥À %ld ¤Ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î½ªÅÀ¡¢¥Ç¥£¥¹¥¯¤ÎºÇ¸å¤ò±Û¤¨¤Æ¤¤¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:1018
+msgid "No partitions found\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:1021
+#, c-format
+msgid ""
+"Warning: The first partition looks like it was made\n"
+"  for C/H/S=*/%ld/%ld (instead of %ld/%ld/%ld).\n"
+"For this listing I'll assume that geometry.\n"
+msgstr ""
+"·Ù¹ð: ºÇ½é¤ÎÎΰè¤Ï C/H/S=*/%ld/%ld ¤È¤·¤ÆºîÀ®¤µ¤ì¤¿¤è¤¦¤Ç¤¹\n"
+"  (%ld/%ld/%ld ¤Î¤«¤ï¤ê¤Ë)¡£\n"
+"¤³¤Î¥ê¥¹¥È¤Ï¡¢¤½¤Î¥¸¥ª¥á¥È¥ê¤È¸«¤Ê¤·¤Þ¤¹¡£\n"
+
+#: fdisk/sfdisk.c:1068
+msgid "no partition table present.\n"
+msgstr "¸½ºß¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾ðÊó¤Ï¤¢¤ê¤Þ¤»¤ó¡£\n"
+
+#: fdisk/sfdisk.c:1070
+#, c-format
+msgid "strange, only %d partitions defined.\n"
+msgstr "ÊѤǤ¹¡¢%d ¤Ä¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤·¤«ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£\n"
+
+#: fdisk/sfdisk.c:1079
+#, c-format
+msgid "Warning: partition %s has size 0 but is not marked Empty\n"
+msgstr ""
+"·Ù¹ð: ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %s ¤Ï¥µ¥¤¥º 0 ¤Ç¤¹¤¬¡¢¶õ¤È¤·¤Æ¥Þ¡¼¥¯¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:1082
+#, c-format
+msgid "Warning: partition %s has size 0 and is bootable\n"
+msgstr "·Ù¹ð: ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %s ¤Ï¥µ¥¤¥º 0 ¤Ê¤Î¤Ë¥Ö¡¼¥È²Äǽ¤Ç¤¹¡£\n"
+
+#: fdisk/sfdisk.c:1085
+#, c-format
+msgid "Warning: partition %s has size 0 and nonzero start\n"
+msgstr "·Ù¹ð: ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %s ¤Ï¥µ¥¤¥º 0 ¤Ç¡¢Èó¥¼¥í¤Î³«»Ï°ÌÃ֤Ǥ¹\n"
+
+#: fdisk/sfdisk.c:1096
+#, c-format
+msgid "Warning: partition %s "
+msgstr "·Ù¹ð: ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %s ¤Ï¡¢"
+
+#: fdisk/sfdisk.c:1097
+#, c-format
+msgid "is not contained in partition %s\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %s ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:1108
+#, c-format
+msgid "Warning: partitions %s "
+msgstr "·Ù¹ð: ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %s "
+
+#: fdisk/sfdisk.c:1109
+#, c-format
+msgid "and %s overlap\n"
+msgstr "¤È %s ¤¬½Å¤Ê¤Ã¤Æ¤¤¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:1120
+#, c-format
+msgid "Warning: partition %s contains part of "
+msgstr "·Ù¹ð: ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %s ¤¬"
+
+#: fdisk/sfdisk.c:1121
+#, c-format
+msgid "the partition table (sector %lu),\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %s (¥»¥¯¥¿ %lu)¤Î°ìÉô¤ò´Þ¤ó¤Ç¤ª¤ê¡¢\n"
+
+#: fdisk/sfdisk.c:1122
+msgid "and will destroy it when filled\n"
+msgstr "¤³¤ì¤ò¹Ô¤¦¤È¡¢Ç˲õ¤µ¤ì¤Æ¤·¤Þ¤¦¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦\n"
+
+#: fdisk/sfdisk.c:1131
+#, c-format
+msgid "Warning: partition %s starts at sector 0\n"
+msgstr "·Ù¹ð: ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %s ¤¬¥»¥¯¥¿ 0 ¤«¤é»Ï¤Þ¤Ã¤Æ¤¤¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:1135
+#, c-format
+msgid "Warning: partition %s extends past end of disk\n"
+msgstr "·Ù¹ð: ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %s ¤Ï¥Ç¥£¥¹¥¯¤Î½ª¤ê¤ò±Û¤¨¤Æ¤¤¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:1149
+msgid "Among the primary partitions, at most one can be extended\n"
+msgstr "´ðËÜÎΰè¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ç¤Ï¡¢³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï°ì¤Ä¤À¤±ºî¤ì¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:1150
+msgid " (although this is not a problem under Linux)\n"
+msgstr " (Linux ¤Ç¤ÏÌäÂê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤±¤É¤â)\n"
+
+#: fdisk/sfdisk.c:1167
+#, c-format
+msgid "Warning: partition %s does not start at a cylinder boundary\n"
+msgstr "·Ù¹ð: ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %s ¤Ï¥·¥ê¥ó¥À¶­³¦¤«¤é»Ï¤Þ¤Ã¤Æ¤¤¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:1173
+#, c-format
+msgid "Warning: partition %s does not end at a cylinder boundary\n"
+msgstr "·Ù¹ð: ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %s ¤Ï¥·¥ê¥ó¥À¶­³¦¤Ç½ª¤ï¤Ã¤Æ¤¤¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:1191
+msgid ""
+"Warning: more than one primary partition is marked bootable (active)\n"
+"This does not matter for LILO, but the DOS MBR will not boot this disk.\n"
+msgstr ""
+"·Ù¹ð: Ê£¿ô¤Î´ðËÜÎΰè¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¥Ö¡¼¥È²Äǽ¤Ë»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹\n"
+"LILO ¤Ë¤È¤Ã¤Æ¤ÏÌäÂꤢ¤ê¤Þ¤»¤ó¤¬¡¢DOS ¤Î MBR ¤Ï¤³¤Î¥Ç¥£¥¹¥¯¤ò¥Ö¡¼¥È¤Ç¤­¤Ê¤¯\n"
+"¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£\n"
+
+#: fdisk/sfdisk.c:1198
+msgid ""
+"Warning: usually one can boot from primary partitions only\n"
+"LILO disregards the `bootable' flag.\n"
+msgstr ""
+"·Ù¹ð: ÉáÄ̤ϥץ饤¥Þ¥ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó°ì¤Ä¤ò¥Ö¡¼¥È¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£\n"
+"LILO ¤Ï `¥Ö¡¼¥È²Äǽ' ¥Õ¥é¥°¤ò̵»ë¤·¤Þ¤¹¤±¤É¤â¡£\n"
+
+#: fdisk/sfdisk.c:1204
+msgid ""
+"Warning: no primary partition is marked bootable (active)\n"
+"This does not matter for LILO, but the DOS MBR will not boot this disk.\n"
+msgstr ""
+"·Ù¹ð: ¥Ö¡¼¥È²Äǽ´ðËÜÎΰè¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤»¤ó\n"
+"LILO ¤Ë¤È¤Ã¤Æ¤ÏÌäÂꤢ¤ê¤Þ¤»¤ó¤¬¡¢DOS MBR ¤Ï¤³¤Î¥Ç¥£¥¹¥¯¤ò¥Ö¡¼¥È¤Ç¤­¤Ê¤¯\n"
+"¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£\n"
+
+#: fdisk/sfdisk.c:1221
+#, c-format
+msgid ""
+"partition %s: start: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %s: »ÏÅÀ: (c,h,s) ´üÂÔÃÍ (%ld,%ld,%ld)  (%ld,%ld,%ld) ¤òȯ¸«\n"
+
+#: fdisk/sfdisk.c:1230
+#, c-format
+msgid "partition %s: end: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %s: ½ªÅÀ: (c,h,s) ´üÂÔÃÍ (%ld,%ld,%ld)  (%ld,%ld,%ld) ¤òȯ¸«\n"
+
+#: fdisk/sfdisk.c:1233
+#, c-format
+msgid "partition %s ends on cylinder %ld, beyond the end of the disk\n"
+msgstr ""
+"¥·¥ê¥ó¥À %2$ld ¤Ë¤¢¤ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %1$s "
+"¤Î½ªÅÀ¤Ï¥Ç¥£¥¹¥¯¤ÎºÇ¸å¤ò±Û¤¨¤Æ¤¤¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:1266 fdisk/sfdisk.c:1343
+#, c-format
+msgid "too many partitions - ignoring those past nr (%d)\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬Â¿¤¹¤®¤Þ¤¹ -- nr (%d) °Ê¹ß¤ò̵»ë¤·¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:1281
+msgid "tree of partitions?\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î¥Ä¥ê¡¼¡©\n"
+
+#: fdisk/sfdisk.c:1385
+msgid "detected Disk Manager - unable to handle that\n"
+msgstr "Disk Manager ¤ò¸¡½Ð -- ¤³¤ì¤òÊ᪤Ǥ­¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:1392
+msgid "DM6 signature found - giving up\n"
+msgstr "DM6 ¥µ¥¤¥ó¤òȯ¸« -- Äü¤á¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:1412
+msgid "strange..., an extended partition of size 0?\n"
+msgstr "ÊѤǤ¹..., ¥µ¥¤¥º 0 ¤Î³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó ¡©\n"
+
+#: fdisk/sfdisk.c:1419
+msgid "strange..., a BSD partition of size 0?\n"
+msgstr "ÊѤǤ¹..., ¥µ¥¤¥º 0 ¤Î BSD ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¡©\n"
+
+#: fdisk/sfdisk.c:1451
+#, c-format
+msgid " %s: unrecognized partition\n"
+msgstr " %s: Ç§¼±¤Ç¤­¤Ê¤¤¥Ñ¡¼¥Æ¥£¥·¥ç¥ó\n"
+
+#: fdisk/sfdisk.c:1463
+msgid "-n flag was given: Nothing changed\n"
+msgstr "-n ¥Õ¥é¥°¤¬Í¿¤¨¤é¤ì¤Þ¤·¤¿: ²¿¤âÊѹ¹¤·¤Þ¤»¤ó¤Ç¤·¤¿\n"
+
+#: fdisk/sfdisk.c:1476
+msgid "Failed saving the old sectors - aborting\n"
+msgstr "¸Å¤¤¥»¥¯¥¿¤ÎÊݸ¤Ë¼ºÇÔ -- ÃæÃǤ·¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:1481
+#, c-format
+msgid "Failed writing the partition on %s\n"
+msgstr "%s ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó½ñ¤­¹þ¤ß¤Ë¼ºÇÔ\n"
+
+#: fdisk/sfdisk.c:1558
+msgid "long or incomplete input line - quitting\n"
+msgstr "Ť¤¤«ÉÔ´°Á´¤Ê¹Ô¤ÎÆþÎÏ -- Ãæ»ß¤·¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:1594
+#, c-format
+msgid "input error: `=' expected after %s field\n"
+msgstr "ÆþÎÏ¥¨¥é¡¼: `=' ¤Ï %s ¥Õ¥£¡¼¥ë¥É¤Î¸å¤Ë¤·¤Æ¤¯¤À¤µ¤¤\n"
+
+#: fdisk/sfdisk.c:1601
+#, c-format
+msgid "input error: unexpected character %c after %s field\n"
+msgstr "ÆþÎÏ¥¨¥é¡¼: %2$s ¥Õ¥£¡¼¥ë¥É¤Î¸å¤Îͽ´ü¤·¤Ê¤¤Ê¸»ú `%1$c'\n"
+
+#: fdisk/sfdisk.c:1607
+#, c-format
+msgid "unrecognized input: %s\n"
+msgstr "ǧ¼±¤Ç¤­¤Ê¤¤ÆþÎÏ: %s\n"
+
+#: fdisk/sfdisk.c:1639
+msgid "number too big\n"
+msgstr "¿ô»ú¤¬Â礭¤¹¤®¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:1643
+msgid "trailing junk after number\n"
+msgstr "¿ô»ú¤Î¸å¤í¤Ë¥´¥ß¤¬ÉÕ¤¤¤Æ¤¤¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:1759
+msgid "no room for partition descriptor\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥óµ­½Ò»Ò¤Î¶õ¤­¤¬¤¢¤ê¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:1792
+msgid "cannot build surrounding extended partition\n"
+msgstr "³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î°Ï¤¤¤ò¹½ÃۤǤ­¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:1843
+msgid "too many input fields\n"
+msgstr "ÆþÎÏ¥Õ¥£¡¼¥ë¥É¤¬Â¿¤¹¤®¤Þ¤¹\n"
+
+#. no free blocks left - don't read any further
+#: fdisk/sfdisk.c:1877
+msgid "No room for more\n"
+msgstr "¤³¤ì°Ê¾å¤Î¶õ¤­¤¬¤¢¤ê¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:1896
+msgid "Illegal type\n"
+msgstr "ÉÔÀµ¤Ê¥¿¥¤¥×\n"
+
+#: fdisk/sfdisk.c:1928
+#, c-format
+msgid "Warning: exceeds max allowable size (%lu)\n"
+msgstr "·Ù¹ð: ²Äǽ¤Ê¥µ¥¤¥º¤ÎºÇÂç (%lu) ¤ò±Û¤¨¤Æ¤¤¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:1933
+msgid "Warning: empty partition\n"
+msgstr "·Ù¹ð: ¶õ¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó\n"
+
+#: fdisk/sfdisk.c:1947
+#, c-format
+msgid "Warning: bad partition start (earliest %lu)\n"
+msgstr "·Ù¹ð: ÉÔÀµ¤Ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬»Ï¤Þ¤Ã¤Æ¤¤¤Þ¤¹ (°ìÈֺǽé %lu)\n"
+
+#: fdisk/sfdisk.c:1960
+msgid "unrecognized bootable flag - choose - or *\n"
+msgstr "ǧ¼±¤Ç¤­¤Ê¤¤¥Ö¡¼¥È²Äǽ¥Õ¥é¥° -- - ¤« * ¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤\n"
+
+#: fdisk/sfdisk.c:1977 fdisk/sfdisk.c:1990
+msgid "partial c,h,s specification?\n"
+msgstr "c,h,s ¤Î°ìÉô¤ò»ØÄê¡©\n"
+
+#: fdisk/sfdisk.c:2001
+msgid "Extended partition not where expected\n"
+msgstr "³ÈÄ¥¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬Í½´ü¤·¤¿¾ì½ê¤Ë¤¢¤ê¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:2033
+msgid "bad input\n"
+msgstr "ÉÔÀµ¤ÊÆþÎÏ\n"
+
+#: fdisk/sfdisk.c:2055
+msgid "too many partitions\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬Â¿¤¹¤®¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:2088
+msgid ""
+"Input in the following format; absent fields get a default value.\n"
+"<start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s>\n"
+"Usually you only need to specify <start> and <size> (and perhaps <type>).\n"
+msgstr ""
+"°Ê²¼¤Î½ñ¼°¤ÇÆþÎϤ·¤Æ²¼¤µ¤¤ -- "
+"»ØÄꤷ¤Ê¤«¤Ã¤¿¥Õ¥£¡¼¥ë¥É¤Ë¤Ï½é´üÃͤò¥»¥Ã¥È¤·¤Þ¤¹\n"
+"<start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s>\n"
+"ÉáÄ̤Ϡ<start> ¤È <size> (¤½¤·¤Æ¶²¤é¤¯ <type>)¤ò»ØÄꤹ¤ë¤À¤±¤Ç¹½¤¤¤Þ¤»¤ó¡£\n"
+
+#: fdisk/sfdisk.c:2108
+msgid "version"
+msgstr "¥Ð¡¼¥¸¥ç¥ó"
+
+#: fdisk/sfdisk.c:2114
+#, c-format
+msgid "Usage: %s [options] device ...\n"
+msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó] ¥Ç¥Ð¥¤¥¹Ì¾...\n"
+
+#: fdisk/sfdisk.c:2115
+msgid "device: something like /dev/hda or /dev/sda"
+msgstr "¥Ç¥Ð¥¤¥¹: /dev/hda ¤ä /dev/sda ¤ÎÍͤʲ¿¤«"
+
+#: fdisk/sfdisk.c:2116
+msgid "useful options:"
+msgstr "Í­±×¤Ê¥ª¥×¥·¥ç¥ó:"
+
+#: fdisk/sfdisk.c:2117
+msgid "    -s [or --show-size]: list size of a partition"
+msgstr "    -s [or --show-size]: Îΰ襵¥¤¥º¤Î¥ê¥¹¥È"
+
+#: fdisk/sfdisk.c:2118
+msgid "    -c [or --id]:        print or change partition Id"
+msgstr "    -c [or --id]:        Îΰè ID ¤Îɽ¼¨¤Þ¤¿¤ÏÊѹ¹"
+
+#: fdisk/sfdisk.c:2119
+msgid "    -l [or --list]:      list partitions of each device"
+msgstr "    -l [or --list]:      ¥Ç¥Ð¥¤¥¹Ëè¤ÎÎΰè¥ê¥¹¥È"
+
+#: fdisk/sfdisk.c:2120
+msgid "    -d [or --dump]:      idem, but in a format suitable for later input"
+msgstr "    -d [or --dump]:      Á°¤ËƱ¤¸¤À¤¬¡¢¸å¤ÎÆþÎϽñ¼°¤Ë±è¤¦¤è¤¦¤Ë¤¹¤ë"
+
+#: fdisk/sfdisk.c:2121
+msgid "    -i [or --increment]: number cylinders etc. from 1 instead of from 0"
+msgstr "    -i [or --increment]: ¥·¥ê¥ó¥À¿ô¤Ê¤É¡£0 ¤Ç¤Ï¤Ê¤¯ 1 ¤«¤é"
+
+#: fdisk/sfdisk.c:2122
+msgid ""
+"    -uS, -uB, -uC, -uM:  accept/report in units of "
+"sectors/blocks/cylinders/MB"
+msgstr ""
+"    -uS, -uB, -uC, -uM:  ¥»¥¯¥¿/¥Ö¥í¥Ã¥¯/¥·¥ê¥ó¥À/MB ¤Î¥æ¥Ë¥Ã¥È¤Î¼õÍý/Êó¹ð"
+
+#: fdisk/sfdisk.c:2123
+msgid "    -T [or --list-types]:list the known partition types"
+msgstr "    -T [or --list-types]:´ûÃΤÎÎΰ西¥¤¥×¤Î¥ê¥¹¥È"
+
+#: fdisk/sfdisk.c:2124
+msgid "    -D [or --DOS]:       for DOS-compatibility: waste a little space"
+msgstr "    -D [or --DOS]:       DOS ¸ß´¹¥â¡¼¥É -- ¶õ´Ö¤¬¾¯¤·ÌµÂ̤ˤʤê¤Þ¤¹"
+
+#: fdisk/sfdisk.c:2125
+msgid "    -R [or --re-read]:   make kernel reread partition table"
+msgstr "    -R [or --re-read]:   ¥«¡¼¥Í¥ë¤ËÎΰè¥Æ¡¼¥Ö¥ë¤òºÆÆɹþ¤ß¤µ¤»¤ë"
+
+#: fdisk/sfdisk.c:2126
+msgid "    -N# :                change only the partition with number #"
+msgstr "    -N# :                »ØÄêÈÖ¹æ# ¤ÎÎΰè¤Î¤ßÊѹ¹¤¹¤ë"
+
+#: fdisk/sfdisk.c:2127
+msgid "    -n :                 do not actually write to disk"
+msgstr "    -n :                 ¥Ç¥£¥¹¥¯¤Ø¤Î¼ÂºÝ¤Î½ñ¹þ¤ß¤ò¹Ô¤ï¤Ê¤¤"
+
+#: fdisk/sfdisk.c:2128
+msgid ""
+"    -O file :            save the sectors that will be overwritten to file"
+msgstr "    -O file :            ¾å½ñ¤­¤µ¤ì¤ë¥»¥¯¥¿¤ò¥Õ¥¡¥¤¥ë¤ËÊݸ¤¹¤ë"
+
+#: fdisk/sfdisk.c:2129
+msgid "    -I file :            restore these sectors again"
+msgstr "    -I file :            ¥»¥¯¥¿¤ò¥Õ¥¡¥¤¥ë¤«¤éÉü¸µ¤¹¤ë"
+
+#: fdisk/sfdisk.c:2130
+msgid "    -v [or --version]:   print version"
+msgstr "    -v [or --version]:   ¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤¹¤ë"
+
+#: fdisk/sfdisk.c:2131
+msgid "    -? [or --help]:      print this message"
+msgstr "    -? [or --help]:      ¤³¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë"
+
+#: fdisk/sfdisk.c:2132
+msgid "dangerous options:"
+msgstr "´í¸±¤Ê¥ª¥×¥·¥ç¥ó:"
+
+#: fdisk/sfdisk.c:2133
+msgid "    -g [or --show-geometry]: print the kernel's idea of the geometry"
+msgstr "    -g [or --show-geometry]: ¥«¡¼¥Í¥ë¤Î¥¸¥ª¥á¥È¥ê¾ðÊó¤òɽ¼¨¤¹¤ë"
+
+#: fdisk/sfdisk.c:2134
+msgid ""
+"    -x [or --show-extended]: also list extended partitions on output\n"
+"                             or expect descriptors for them on input"
+msgstr ""
+"    -x [or --show-extended]: ³ÈÄ¥Îΰè¥ê¥¹¥È¤âɽ¼¨¤¹¤ë\n"
+"                             ¤Þ¤¿¤Ï¤½¤ì¤é¤Îµ­½Ò»Ò¤ÎÆþÎϤòÆÀ¤ë"
+
+#: fdisk/sfdisk.c:2136
+msgid ""
+"    -L  [or --Linux]:      do not complain about things irrelevant for Linux"
+msgstr "    -L  [or --Linux]:      Linux ¤Ë¤½¤°¤ï¤Ê¤¯¤Æ¤âʸ¶ç¤ò±¾¤ï¤Ê¤¤"
+
+#: fdisk/sfdisk.c:2137
+msgid "    -q  [or --quiet]:      suppress warning messages"
+msgstr "    -q  [or --quiet]:      ·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤¹¤ë"
+
+#: fdisk/sfdisk.c:2138
+msgid "    You can override the detected geometry using:"
+msgstr "    ¥¸¥ª¥á¥È¥ê¸¡½Ð¤ò¶¯À©»ØÄê¤Ç¤­¤Þ¤¹:"
+
+#: fdisk/sfdisk.c:2139
+msgid "    -C# [or --cylinders #]:set the number of cylinders to use"
+msgstr "    -C# [or --cylinders #]:»ÈÍѤ¹¤ë¥·¥ê¥ó¥À¿ô¤òÀßÄꤹ¤ë"
+
+#: fdisk/sfdisk.c:2140
+msgid "    -H# [or --heads #]:    set the number of heads to use"
+msgstr "    -H# [or --heads #]:    »ÈÍѤ¹¤ë¥Ø¥Ã¥É¿ô¤òÀßÄꤹ¤ë"
+
+#: fdisk/sfdisk.c:2141
+msgid "    -S# [or --sectors #]:  set the number of sectors to use"
+msgstr "    -S# [or --sectors #]:  »ÈÍѤ¹¤ë¥»¥¯¥¿¿ô¤òÀßÄꤹ¤ë"
+
+#: fdisk/sfdisk.c:2142
+msgid "You can disable all consistency checking with:"
+msgstr "Ì·½â¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤ï¤Ê¤¤¤è¤¦¤Ë¤Ç¤­¤Þ¤¹:"
+
+#: fdisk/sfdisk.c:2143
+msgid "    -f  [or --force]:      do what I say, even if it is stupid"
+msgstr "    -f  [or --force]:      ¤ª¤«¤·¤Ê»ØÄê¤ò¹Ô¤Ã¤Æ¤â¡¢¤½¤Î¤Þ¤Þ¼Â¹Ô¤·¤Þ¤¹"
+
+#: fdisk/sfdisk.c:2149
+msgid "Usage:"
+msgstr "»È¤¤Êý:"
+
+#: fdisk/sfdisk.c:2150
+#, c-format
+msgid "%s device\t\t list active partitions on device\n"
+msgstr "%s ¥Ç¥Ð¥¤¥¹\t\t ¥Ç¥Ð¥¤¥¹¾å¤Î¥¢¥¯¥Æ¥£¥ôÎΰè¤ò¥ê¥¹¥È¤·¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:2151
+#, c-format
+msgid "%s device n1 n2 ... activate partitions n1 ..., inactivate the rest\n"
+msgstr ""
+"%s ¥Ç¥Ð¥¤¥¹ n1 n2 ... n1 ¤ò¥¢¥¯¥Æ¥£¥ô¤Ë¤·¤Æ..., »Ä¤ê¤òÈó¥¢¥¯¥Æ¥£¥ô¤Ë¤·¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:2152
+#, c-format
+msgid "%s -An device\t activate partition n, inactivate the other ones\n"
+msgstr "%s -An ¥Ç¥Ð¥¤¥¹\t n ¤ò¥¢¥¯¥Æ¥£¥ô¤Ë¤·¡¢¤½¤ì°Ê³°¤òÈó¥¢¥¯¥Æ¥£¥ô¤Ë¤·¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:2271
+msgid "no command?\n"
+msgstr "¥³¥Þ¥ó¥É¤Ê¤·¡©\n"
+
+#: fdisk/sfdisk.c:2394
+#, c-format
+msgid "total: %d blocks\n"
+msgstr "¹ç·×: %d ¥Ö¥í¥Ã¥¯\n"
+
+#: fdisk/sfdisk.c:2431
+msgid "usage: sfdisk --print-id device partition-number\n"
+msgstr "»È¤¤Êý: sfdisk --print-id ¥Ç¥Ð¥¤¥¹ ¥Ñ¡¼¥Æ¥£¥·¥ç¥óÈÖ¹æ\n"
+
+#: fdisk/sfdisk.c:2433
+msgid "usage: sfdisk --change-id device partition-number Id\n"
+msgstr "»È¤¤Êý: sfdisk --change-id ¥Ç¥Ð¥¤¥¹ ¥Ñ¡¼¥Æ¥£¥·¥ç¥óÈÖ¹æ ID\n"
+
+#: fdisk/sfdisk.c:2435
+msgid "usage: sfdisk --id device partition-number [Id]\n"
+msgstr "»È¤¤Êý: sfdisk --id ¥Ç¥Ð¥¤¥¹ ¥Ñ¡¼¥Æ¥£¥·¥ç¥óÈÖ¹æ [ID]\n"
+
+#: fdisk/sfdisk.c:2442
+msgid "can specify only one device (except with -l or -s)\n"
+msgstr "°ì¤Ä¤Î¥Ç¥Ð¥¤¥¹¤Î¤ß»ØÄê¤Ç¤­¤Þ¤¹ (-l ¤ä -s ¤ò½ü¤¯)\n"
+
+#: fdisk/sfdisk.c:2467
+#, c-format
+msgid "cannot open %s %s\n"
+msgstr "%s ¤ò%s¤Ç¥ª¡¼¥×¥ó¤Ç¤­¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:2467
+msgid "read-write"
+msgstr "Æɤ߽ñ¤­²Äǽ"
+
+#: fdisk/sfdisk.c:2467
+msgid "for reading"
+msgstr "Æɹþ¤ß²Äǽ"
+
+#: fdisk/sfdisk.c:2492
+#, c-format
+msgid "%s: OK\n"
+msgstr "%s: OK\n"
+
+#: fdisk/sfdisk.c:2509
+#, c-format
+msgid "%s: %d cylinders, %d heads, %d sectors/track\n"
+msgstr "%s: ¥·¥ê¥ó¥À¿ô %d¡¢¥Ø¥Ã¥É¿ô %d¡¢%d ¥»¥¯¥¿/¥È¥é¥Ã¥¯\n"
+
+#: fdisk/sfdisk.c:2512
+#, c-format
+msgid "%s: unknown geometry\n"
+msgstr "%s: Ì¤ÃΤΥ¸¥ª¥á¥È¥ê\n"
+
+#: fdisk/sfdisk.c:2528
+#, c-format
+msgid "BLKGETSIZE ioctl failed for %s\n"
+msgstr "%s ¤Ø¤Î BLKGETSIZE ioctl ¤Ë¼ºÇÔ\n"
+
+#: fdisk/sfdisk.c:2605
+#, c-format
+msgid "bad active byte: 0x%x instead of 0x80\n"
+msgstr "ÉÔÀµ¤Ê¥Ö¡¼¥È¥Õ¥é¥°: 0x80 ¤Ç¤Ê¤¯ 0x%x ¤Ç¤¹\n"
+
+#: fdisk/sfdisk.c:2622 fdisk/sfdisk.c:2675 fdisk/sfdisk.c:2705
+msgid ""
+"Done\n"
+"\n"
+msgstr ""
+"½ªÎ»\n"
+"\n"
+
+#: fdisk/sfdisk.c:2631
+#, c-format
+msgid ""
+"You have %d active primary partitions. This does not matter for LILO,\n"
+"but the DOS MBR will only boot a disk with 1 active partition.\n"
+msgstr ""
+"%d ¸Ä¤Î¥¢¥¯¥Æ¥£¥Ö¤Ê´ðËÜÎΰè¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£\n"
+"LILO ¤Ç¤ÏÌäÂꤢ¤ê¤Þ¤»¤ó¤¬¡¢DOS MBR ¤Ï 1 ¤Ä¤Î¥¢¥¯¥Æ¥£¥Ö¤Ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤·¤«\n"
+"¥Ö¡¼¥È¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: fdisk/sfdisk.c:2645
+#, c-format
+msgid "partition %s has id %x and is not hidden\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %s ¤Ë¤Ï ID %x ¤¬¤¢¤ê¡¢±£¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:2701
+#, c-format
+msgid "Bad Id %x\n"
+msgstr "ÉÔÀµ¤Ê ID %x\n"
+
+#: fdisk/sfdisk.c:2716
+msgid "This disk is currently in use.\n"
+msgstr "¤³¤Î¥Ç¥£¥¹¥¯¤Ï¸½ºß»ÈÍÑÃæ¤Ç¤¹¡£\n"
+
+#: fdisk/sfdisk.c:2733
+#, c-format
+msgid "Fatal error: cannot find %s\n"
+msgstr "Ã×̿Ū¤Ê¥¨¥é¡¼: %s ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:2736
+#, c-format
+msgid "Warning: %s is not a block device\n"
+msgstr "·Ù¹ð: %s ¤Ï¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:2742
+msgid "Checking that no-one is using this disk right now ...\n"
+msgstr "¸½ºß¡¢Ã¯¤â¤³¤Î¥Ç¥£¥¹¥¯¤ò»È¤Ã¤Æ¤¤¤Ê¤¤¤«¤òÄ´¤Ù¤Þ¤¹...\n"
+
+#: fdisk/sfdisk.c:2744
+msgid ""
+"\n"
+"This disk is currently in use - repartitioning is probably a bad idea.Umount "
+"all file systems, and swapoff all swap partitions on this disk.Use the "
+"--no-reread flag to suppress this check.\n"
+msgstr ""
+"\n"
+"¤³¤Î¥Ç¥£¥¹¥¯¤Ï¸½ºß»ÈÍÑÃæ¤Ç¤¹ -- "
+"¥Ñ¡¼¥Æ¥£¥·¥ç¥óºÆ¹½ÃۤϤä¤á¤¿Êý¤¬¤¤¤¤¤Ç¤·¤ç¤¦\n"
+"Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥¢¥ó¥Þ¥¦¥ó¥È¤·¡¢¤½¤Î¥Ç¥£¥¹¥¯¤Ë¥¹¥ï¥Ã¥×¥Ñ¡¼¥Æ¥£¥·¥ç¥ó"
+"\n"
+"¤¬¤¢¤ì¤Ð swapoff ¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+"¤Á¤Ê¤ß¤Ë --no-reread ¥Õ¥é¥°¤Ç¤³¤Î¥Á¥§¥Ã¥¯¤òÍÞÀ©¤Ç¤­¤Þ¤¹¡£\n"
+
+#: fdisk/sfdisk.c:2748
+msgid "Use the --force flag to overrule all checks.\n"
+msgstr "Á´¤Æ¤Î¥Á¥§¥Ã¥¯¤òĶ±Û¤µ¤»¤ë¤Ë¤Ï --force ¥Õ¥é¥°¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: fdisk/sfdisk.c:2752
+msgid "OK"
+msgstr "OK"
+
+#: fdisk/sfdisk.c:2761
+msgid "Old situation:\n"
+msgstr "¸Å¤¤¾ìÌÌ:\n"
+
+#: fdisk/sfdisk.c:2765
+#, c-format
+msgid "Partition %d does not exist, cannot change it\n"
+msgstr "¥Ñ¡¼¥Æ¥£¥·¥ç¥ó %d ¤Ï¸ºß¤·¤Þ¤»¤ó¤Î¤Ç¡¢Êѹ¹¤Ç¤­¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:2773
+msgid "New situation:\n"
+msgstr "¿·¤¿¤Ê¾ìÌÌ:\n"
+
+#: fdisk/sfdisk.c:2778
+msgid ""
+"I don't like these partitions - nothing changed.\n"
+"(If you really want this, use the --force option.)\n"
+msgstr ""
+"»ä¤Ï¤³¤ì¤é¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë´ØÍ¿¤·¤¿¤¯¤¢¤ê¤Þ¤»¤ó -- Êѹ¹¤·¤Þ¤»¤ó¡£\n"
+"(ËÜÅö¤Ë¤³¤ì¤ò¹Ô¤Ê¤¤¤¿¤±¤ì¤Ð¡¢--force ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤)\n"
+
+#: fdisk/sfdisk.c:2781
+msgid "I don't like this - probably you should answer No\n"
+msgstr "»ä¤Ï¤³¤ì¤Ë´ØÍ¿¤·¤¿¤¯¤¢¤ê¤Þ¤»¤ó -- ¶²¤é¤¯ No ¤ÈÅú¤¨¤ë¤Ù¤­¤Ç¤·¤ç¤¦\n"
+
+#: fdisk/sfdisk.c:2786
+msgid "Are you satisfied with this? [ynq] "
+msgstr "¤³¤ì¤Ç¤¢¤Ê¤¿¤ÎÍ×µá¤ÏËþ¤¿¤µ¤ì¤Þ¤¹¤«¡© [ynq] "
+
+#: fdisk/sfdisk.c:2788
+msgid "Do you want to write this to disk? [ynq] "
+msgstr "¥Ç¥£¥¹¥¯¤Ø¤Î½ñ¤­¹þ¤ß¤ò¹Ô¤Ê¤¤¤Þ¤¹¤«¡© [ynq] "
+
+#: fdisk/sfdisk.c:2793
+msgid ""
+"\n"
+"sfdisk: premature end of input\n"
+msgstr ""
+"\n"
+"sfdisk: ÆþÎϤ¬Ã»¤¹¤®¤Þ¤¹\n"
+
+#: fdisk/sfdisk.c:2795
+msgid "Quitting - nothing changed\n"
+msgstr "ÃæÃÇ -- ²¿¤âÊѹ¹¤·¤Þ¤»¤ó\n"
+
+#: fdisk/sfdisk.c:2801
+msgid "Please answer one of y,n,q\n"
+msgstr "y,n,q ¤Î¤¤¤º¤ì¤«¤ÇÅú¤¨¤Æ¤¯¤À¤µ¤¤\n"
+
+#: fdisk/sfdisk.c:2809
+msgid ""
+"Successfully wrote the new partition table\n"
+"\n"
+msgstr ""
+"¿·¤¿¤Ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î½ñ¤­¹þ¤ß¤ËÀ®¸ù\n"
+"\n"
+
+#: fdisk/sfdisk.c:2815
+msgid ""
+"If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)\n"
+"to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1\n"
+"(See fdisk(8).)\n"
+msgstr ""
+"¤â¤·¡¢DOS ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òºîÀ®¤Þ¤¿¤ÏÊѹ¹¤·¤¿¤Ê¤é¤Ð -- ¤¿¤È¤¨¤Ð /dev/foo7 ¡¢\n"
+"dd(1) ¤ò¤Ä¤«¤Ã¤ÆºÇ½é¤Î 512 ¥Ð¥¤¥È¤ò¥¼¥í¤Ë¤·¤Æ²¼¤µ¤¤:\n"
+"dd if=/dev/zero of=/dev/foo7 bs=512 count=1\n"
+"(¾ÜºÙ¤Ï fdisk(8)¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£)\n"
+
+#: games/banner.c:1048
+msgid "usage: banner [-w width]\n"
+msgstr "»È¤¤Êý: banner [-w Éý]\n"
+
+#: games/banner.c:1068
+msgid "Message: "
+msgstr "¥á¥Ã¥»¡¼¥¸: "
+
+#: games/banner.c:1102
+#, c-format
+msgid "The character '%c' is not in my character set"
+msgstr "ʸ»ú '%c' ¤Ï¥­¥ã¥é¥¯¥¿¥»¥Ã¥ÈÆâ¤Ë¤¢¤ê¤Þ¤»¤ó"
+
+#: games/banner.c:1110
+#, c-format
+msgid "Message '%s' is OK\n"
+msgstr "¥á¥Ã¥»¡¼¥¸ '%s' ¤Ï OK ¤Ç¤¹\n"
+
+#: getopt-1.0.3b/getopt.c:229
+msgid "Try `getopt --help' for more information.\n"
+msgstr "`getopt --help' ¤Ç¾ÜºÙ¾ðÊó¤òÄ´¤Ù¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: getopt-1.0.3b/getopt.c:295
+msgid "empty long option after -l or --long argument"
+msgstr "-l ¤ä --long °ú¿ô¤Î¸å¤Î¥í¥ó¥°¥ª¥×¥·¥ç¥ó¤¬¶õ¤Ç¤¹"
+
+#: getopt-1.0.3b/getopt.c:315
+msgid "unknown shell after -s or --shell argument"
+msgstr "-s ¤« --shell °ú¿ô¤Î¸å¤Î¥·¥§¥ë¤òÃΤê¤Þ¤»¤ó"
+
+#: getopt-1.0.3b/getopt.c:320
+msgid "Usage: getopt optstring parameters\n"
+msgstr "»È¤¤Êý: getopt ¥ª¥×¥·¥ç¥óʸ»úÎó ÃÍ\n"
+
+#: getopt-1.0.3b/getopt.c:321
+msgid "       getopt [options] [--] optstring parameters\n"
+msgstr "       getopt [¥ª¥×¥·¥ç¥ó] [--] ¥ª¥×¥·¥ç¥óʸ»úÎó ÃÍ\n"
+
+#: getopt-1.0.3b/getopt.c:322
+msgid "       getopt [options] -o|--options optstring [options] [--]\n"
+msgstr ""
+"       getopt [¥ª¥×¥·¥ç¥ó] -o|--options ¥ª¥×¥·¥ç¥óʸ»úÎó [¥ª¥×¥·¥ç¥ó] [--]\n"
+
+#: getopt-1.0.3b/getopt.c:323
+msgid "              parameters\n"
+msgstr "              ÃÍ\n"
+
+#: getopt-1.0.3b/getopt.c:324
+msgid ""
+"  -a, --alternative            Allow long options starting with single -\n"
+msgstr ""
+"  -a, --alternative            ¥í¥ó¥°¥ª¥×¥·¥ç¥ó¤¬ - °ì¤Ä¤Ç»Ï¤Þ¤ë¤Î¤òµö¤¹\n"
+
+#: getopt-1.0.3b/getopt.c:325
+msgid "  -h, --help                   This small usage guide\n"
+msgstr "  -h, --help                   ¤³¤Î¤Á¤ç¤Ã¤È¤·¤¿»È¤¤Êý¤òɽ¼¨¤¹¤ë\n"
+
+#: getopt-1.0.3b/getopt.c:326
+msgid "  -l, --longoptions=longopts   Long options to be recognized\n"
+msgstr "  -l, --longoptions=longopts   ¥í¥ó¥°¥ª¥×¥·¥ç¥ó¤òÍý²ò¤µ¤»¤ë\n"
+
+#: getopt-1.0.3b/getopt.c:327
+msgid ""
+"  -n, --name=progname          The name under which errors are reported\n"
+msgstr "  -n, --name=progname          ¥¨¥é¡¼Êó¹ð¤ÎºÝ¤Î̾Á°\n"
+
+#: getopt-1.0.3b/getopt.c:328
+msgid "  -o, --options=optstring      Short options to be recognized\n"
+msgstr "  -o, --options=optstring      ¥·¥ç¡¼¤È¥ª¥×¥·¥ç¥ó¤òÍý²ò¤µ¤»¤ë\n"
+
+#: getopt-1.0.3b/getopt.c:329
+msgid "  -q, --quiet                  Disable error reporting by getopt(3)\n"
+msgstr "  -q, --quiet                  getopt(3) ¤Î¥¨¥é¡¼Êó¹ð¤ò¹Ô¤ï¤Ê¤¤\n"
+
+#: getopt-1.0.3b/getopt.c:330
+msgid "  -Q, --quiet-output           No normal output\n"
+msgstr "  -Q, --quiet-output           Ä̾ï¤Î½ÐÎϤò¹Ô¤ï¤Ê¤¤\n"
+
+#: getopt-1.0.3b/getopt.c:331
+msgid "  -s, --shell=shell            Set shell quoting conventions\n"
+msgstr "  -s, --shell=shell            ¥·¥§¥ë¤Î°úÍѼè¤ê·è¤á¤òÀßÄꤹ¤ë\n"
+
+#: getopt-1.0.3b/getopt.c:332
+msgid "  -T, --test                   Test for getopt(1) version\n"
+msgstr "  -T, --test                   getopt(1) ¥Ð¡¼¥¸¥ç¥ó¤ò¥Æ¥¹¥È¤¹¤ë\n"
+
+#: getopt-1.0.3b/getopt.c:333
+msgid "  -V, --version                Output version information\n"
+msgstr "  -V, --version                ¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤ò½ÐÎϤ¹¤ë\n"
+
+#: getopt-1.0.3b/getopt.c:387 getopt-1.0.3b/getopt.c:445
+msgid "missing optstring argument"
+msgstr "¥ª¥×¥·¥ç¥óʸ»úÎó°ú¿ô¤¬Â­¤ê¤Þ¤»¤ó"
+
+#: getopt-1.0.3b/getopt.c:433
+msgid "getopt (enhanced) 1.0.3\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:439
+msgid "internal error, contact the author."
+msgstr "ÆâÉô¥¨¥é¡¼¡¢ºî¼Ô¤ËÏ¢Íí¤ò¡£"
+
+#: login-utils/agetty.c:300
+msgid "calling open_tty\n"
+msgstr "open_tty ¤Î¸Æ¤Ó½Ð¤·Ãæ\n"
+
+#. Initialize the termio settings (raw mode, eight-bit, blocking i/o).
+#: login-utils/agetty.c:313
+msgid "calling termio_init\n"
+msgstr "termio_init ¸Æ¤Ó½Ð¤·Ãæ\n"
+
+#: login-utils/agetty.c:318
+msgid "writing init string\n"
+msgstr "½é´ü²½Ê¸»úÎó¤Î½ñ¤­¹þ¤ßÃæ\n"
+
+#. Optionally detect the baud rate from the modem status message.
+#: login-utils/agetty.c:328
+msgid "before autobaud\n"
+msgstr ""
+
+#: login-utils/agetty.c:340
+msgid "waiting for cr-lf\n"
+msgstr "cr-lf ¤òÂԤäƤ¤¤Þ¤¹\n"
+
+#: login-utils/agetty.c:344
+#, c-format
+msgid "read %c\n"
+msgstr "%c ¤òÆɹþ¤ß\n"
+
+#. Read the login name.
+#: login-utils/agetty.c:353
+msgid "reading login name\n"
+msgstr "¥í¥°¥¤¥ó̾¤òÆɹþ¤á¤Þ¤»¤ó\n"
+
+#: login-utils/agetty.c:374
+#, c-format
+msgid "%s: can't exec %s: %m"
+msgstr "%s: %s ¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó: %m"
+
+#: login-utils/agetty.c:394
+msgid "can't malloc initstring"
+msgstr "ʸ»úÎó½é´ü²½ÍÑ¥á¥â¥ê¤¬³ÎÊݤǤ­¤Þ¤»¤ó"
+
+#: login-utils/agetty.c:456
+#, c-format
+msgid "bad timeout value: %s"
+msgstr "ÉÔÀµ¤Ê¥¿¥¤¥à¥¢¥¦¥ÈÃÍ: %s"
+
+#: login-utils/agetty.c:465
+msgid "after getopt loop\n"
+msgstr "getopt ¥ë¡¼¥×¤Î¸å\n"
+
+#: login-utils/agetty.c:483
+msgid "exiting parseargs\n"
+msgstr "°ú¿ô²òÀϤò½ªÎ»¤·¤Þ¤¹\n"
+
+#: login-utils/agetty.c:496
+msgid "entered parse_speeds\n"
+msgstr "parse_speeds ¤ËÆþ¤ê¤Þ¤·¤¿\n"
+
+#: login-utils/agetty.c:499
+#, c-format
+msgid "bad speed: %s"
+msgstr "ÉÔÀµ¤Ê®ÅÙ: %s"
+
+#: login-utils/agetty.c:501
+msgid "too many alternate speeds"
+msgstr "ÂåÂØ®ÅÙ¤¬Â¿¤¹¤®¤Þ¤¹"
+
+#: login-utils/agetty.c:503
+msgid "exiting parsespeeds\n"
+msgstr "parsespeeds ¤ò½ª¤ï¤ê¤Þ¤¹\n"
+
+#: login-utils/agetty.c:576
+#, c-format
+msgid "%s: open for update: %m"
+msgstr "%s: ¹¹¿·ÍѤ˥ª¡¼¥×¥ó: %m"
+
+#: login-utils/agetty.c:592
+#, c-format
+msgid "%s: no utmp entry"
+msgstr "%s: utmp ¹àÌܤˤ¢¤ê¤Þ¤»¤ó"
+
+#: login-utils/agetty.c:621
+#, c-format
+msgid "/dev: chdir() failed: %m"
+msgstr "/dev: chdir() ¤¬¼ºÇÔ: %m"
+
+#: login-utils/agetty.c:625
+#, c-format
+msgid "/dev/%s: not a character device"
+msgstr "/dev/%s: ¥­¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#. ignore close(2) errors
+#: login-utils/agetty.c:632
+msgid "open(2)\n"
+msgstr ""
+
+#: login-utils/agetty.c:634
+#, c-format
+msgid "/dev/%s: cannot open as standard input: %m"
+msgstr "/dev/%s: É¸½àÆþÎϤȤ·¤Æ³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó: %m"
+
+#: login-utils/agetty.c:644
+#, c-format
+msgid "%s: not open for read/write"
+msgstr "%s: Æɤ߽ñ¤­Î¾ÍѤ˥ª¡¼¥×¥ó¤Ç¤­¤Þ¤»¤ó"
+
+#. Set up standard output and standard error file descriptors.
+#: login-utils/agetty.c:648
+msgid "duping\n"
+msgstr ""
+
+#. set up stdout and stderr
+#: login-utils/agetty.c:650
+#, c-format
+msgid "%s: dup problem: %m"
+msgstr "%s: dup ¤ËÌäÂêȯÀ¸: %m"
+
+#: login-utils/agetty.c:712
+msgid "term_io 2\n"
+msgstr ""
+
+#: login-utils/agetty.c:894
+msgid "user"
+msgstr "¥æ¡¼¥¶"
+
+#: login-utils/agetty.c:894
+msgid "users"
+msgstr "¥æ¡¼¥¶"
+
+#: login-utils/agetty.c:982
+#, c-format
+msgid "%s: read: %m"
+msgstr "%s: read: %m"
+
+#: login-utils/agetty.c:1028
+#, c-format
+msgid "%s: input overrun"
+msgstr "%s: ÆþÎϤ¬°î¤ì¤Þ¤·¤¿"
+
+#: login-utils/agetty.c:1152
+#, c-format
+msgid ""
+"Usage: %s [-hiLmw] [-l login_program] [-t timeout] [-I initstring] "
+"baud_rate,... line [termtype]\n"
+"or\t[-hiLmw] [-l login_program] [-t timeout] [-I initstring] line "
+"baud_rate,... [termtype]\n"
+msgstr ""
+"»È¤¤Êý: %s [-hiLmw] [-l ¥í¥°¥¤¥ó¥×¥í¥°¥é¥à] [-t ¥¿¥¤¥à¥¢¥¦¥È] [-I "
+"½é´ü²½Ê¸»úÎó] ¥Ü¡¼¥ì¡¼¥È,... ¹Ô [üËö¥¿¥¤¥×]\n"
+"Ëô¤Ï\t[-hiLmw] [-l ¥í¥°¥¤¥ó¥×¥í¥°¥é¥à] [-t¥¿¥¤¥à¥¢¥¦¥È [-I ½é´ü²½Ê¸»úÎó] ¹Ô "
+"¥Ü¡¼¥ì¡¼¥È,... [üËö¥¿¥¤¥×]\n"
+
+#: login-utils/checktty.c:46
+#, c-format
+msgid "badlogin: %s\n"
+msgstr "ÉÔÀµ¥í¥°¥¤¥ó: %s\n"
+
+#: login-utils/checktty.c:52
+#, c-format
+msgid "sleepexit %d\n"
+msgstr "¥¹¥ê¡¼¥×½ªÎ»\n"
+
+#: login-utils/checktty.c:108 login-utils/checktty.c:130
+msgid "login: memory low, login may fail\n"
+msgstr "login: ¥á¥â¥ê¤¬¾¯¤Ê¤¤¤Î¤Ç¡¢¥í¥°¥¤¥ó¤Ë¼ºÇÔ¤¹¤ë¤è¤¦¤Ç¤¹\n"
+
+#: login-utils/checktty.c:109
+msgid "can't malloc for ttyclass"
+msgstr "tty ¥¯¥é¥¹ÍÑ¥á¥â¥ê¤¬³ÎÊݤǤ­¤Þ¤»¤ó"
+
+#: login-utils/checktty.c:131
+msgid "can't malloc for grplist"
+msgstr "¥°¥ë¡¼¥×¥ê¥¹¥ÈÍÑ¥á¥â¥ê¤¬³ÎÊݤǤ­¤Þ¤»¤ó"
+
+#. there was a default rule, but user didn't match, reject!
+#: login-utils/checktty.c:431
+#, c-format
+msgid "Login on %s from %s denied by default.\n"
+msgstr "%2$s ¤«¤é %1$s ¤Ø¤Î¥í¥°¥¤¥ó¤Ï¡¢½é´ü¾õÂ֤ǤϵñÈݤµ¤ì¤Þ¤·¤¿¡£\n"
+
+#. if we get here, /etc/usertty exists, there's a line
+#. matching our username, but it doesn't contain the
+#. name of the tty where the user is trying to log in.
+#. So deny access!
+#: login-utils/checktty.c:442
+#, c-format
+msgid "Login on %s from %s denied.\n"
+msgstr "%2$s ¤«¤é %1$s ¤Ø¤Î¥í¥°¥¤¥ó¤ÏÈÝÄꤵ¤ì¤Þ¤·¤¿¡£\n"
+
+#: login-utils/chfn.c:136 login-utils/chsh.c:118
+#, c-format
+msgid "%s: you (user %d) don't exist.\n"
+msgstr "%s: ¤¢¤Ê¤¿ (¥æ¡¼¥¶ %d) ¤Ï¸ºß¤·¤Þ¤»¤ó¡£\n"
+
+#: login-utils/chfn.c:143 login-utils/chsh.c:125
+#, c-format
+msgid "%s: user \"%s\" does not exist.\n"
+msgstr "%s: ¥æ¡¼¥¶ \"%s\" ¤Ï¸ºß¤·¤Þ¤»¤ó¡£\n"
+
+#: login-utils/chfn.c:148 login-utils/chsh.c:130
+#, c-format
+msgid "%s: can only change local entries; use yp%s instead.\n"
+msgstr ""
+"%s: ¥í¡¼¥«¥ë¤Î¹àÌܤ·¤«Êѹ¹¤Ç¤­¤Þ¤»¤ó -- ¤«¤ï¤ê¤Ë yp%s ¤ò»È¤¤¤Þ¤·¤ç¤¦¡£\n"
+
+#: login-utils/chfn.c:160
+#, c-format
+msgid "Changing finger information for %s.\n"
+msgstr "%s ¤Î finger ¾ðÊó¤òÊѹ¹¤·¤Þ¤¹¡£\n"
+
+#: login-utils/chfn.c:166 login-utils/chfn.c:170 login-utils/chfn.c:177
+#: login-utils/chfn.c:181 login-utils/chsh.c:154 login-utils/chsh.c:158
+#: login-utils/chsh.c:165 login-utils/chsh.c:169
+msgid "Password error."
+msgstr "¥Ñ¥¹¥ï¡¼¥É¥¨¥é¡¼¡£"
+
+#: login-utils/chfn.c:190 login-utils/chsh.c:178 login-utils/login.c:650
+#: login-utils/newgrp.c:47 login-utils/simpleinit.c:219 mount/lomount.c:200
+#: mount/lomount.c:206 mount/losetup.c:115 mount/losetup.c:121
+msgid "Password: "
+msgstr "¥Ñ¥¹¥ï¡¼¥É: "
+
+#: login-utils/chfn.c:193 login-utils/chsh.c:181
+msgid "Incorrect password."
+msgstr "´Ö°ã¤Ã¤¿¥Ñ¥¹¥ï¡¼¥É¤Ç¤¹¡£"
+
+#: login-utils/chfn.c:204
+msgid "Finger information not changed.\n"
+msgstr "finger ¾ðÊó¤ÏÊѹ¹¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£\n"
+
+#: login-utils/chfn.c:307
+#, c-format
+msgid "Usage: %s [ -f full-name ] [ -o office ] "
+msgstr "»È¤¤Êý: %s [ -f ¥Õ¥ë¥Í¡¼¥à ] [ -o ¥ª¥Õ¥£¥¹ ] "
+
+#: login-utils/chfn.c:308
+msgid ""
+"[ -p office-phone ]\n"
+"\t[ -h home-phone ] "
+msgstr ""
+"[ -p ¥ª¥Õ¥£¥¹ÅÅÏÃÈÖ¹æ ]\n"
+"\t[ -h ¼«ÂðÅÅÏÃÈÖ¹æ ] "
+
+#: login-utils/chfn.c:309
+msgid "[ --help ] [ --version ]\n"
+msgstr "[ --help ] [ --version ]\n"
+
+#: login-utils/chfn.c:378 login-utils/chsh.c:294
+msgid ""
+"\n"
+"Aborted.\n"
+msgstr ""
+"\n"
+"ÃæÃÇ¡£\n"
+
+#: login-utils/chfn.c:411
+msgid "field is too long.\n"
+msgstr "¥Õ¥£¡¼¥ë¥É¤¬Ä¹¤¹¤®¤Þ¤¹¡£\n"
+
+#: login-utils/chfn.c:419
+#, c-format
+msgid "'%c' is not allowed.\n"
+msgstr "'%c' ¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó¡£\n"
+
+#: login-utils/chfn.c:424
+msgid "Control characters are not allowed.\n"
+msgstr "¥³¥ó¥È¥í¡¼¥ëʸ»ú¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó¡£\n"
+
+#: login-utils/chfn.c:489
+msgid "Finger information *NOT* changed.  Try again later.\n"
+msgstr "finger ¾ðÊó¤ÏÊѹ¹ *¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿*¡£¤Þ¤¿¤¢¤È¤Ç»î¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: login-utils/chfn.c:492
+msgid "Finger information changed.\n"
+msgstr "finger ¾ðÊó¤òÊѹ¹¤·¤Þ¤·¤¿¡£\n"
+
+#: login-utils/chfn.c:506 login-utils/chsh.c:412 sys-utils/cytune.c:324
+msgid "malloc failed"
+msgstr "malloc ¤Ë¼ºÇÔ"
+
+#: login-utils/chsh.c:141
+#, c-format
+msgid "%s: Your shell is not in /etc/shells, shell change denied\n"
+msgstr ""
+"%s: ¤¢¤Ê¤¿¤Î¥·¥§¥ë¤Ï /etc/shells "
+"¤Ë¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢¥·¥§¥ë¤ÎÊѹ¹¤¬µñÈݤµ¤ì¤Þ¤·¤¿\n"
+
+#: login-utils/chsh.c:148
+#, c-format
+msgid "Changing shell for %s.\n"
+msgstr "%s ¤Î¥·¥§¥ë¤òÊѹ¹¤·¤Þ¤¹¡£\n"
+
+#: login-utils/chsh.c:189
+msgid "New shell"
+msgstr "¿·¤·¤¤¥·¥§¥ë"
+
+#: login-utils/chsh.c:196
+msgid "Shell not changed.\n"
+msgstr "¥·¥§¥ë¤òÊѹ¹¤·¤Þ¤»¤ó¤Ç¤·¤¿¡£\n"
+
+#: login-utils/chsh.c:203
+msgid "Shell *NOT* changed.  Try again later.\n"
+msgstr "¥·¥§¥ë¤ÏÊѹ¹ *¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿*¡£¤¢¤È¤Ç¤Þ¤¿»î¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: login-utils/chsh.c:206
+msgid "Shell changed.\n"
+msgstr "¥·¥§¥ë¤òÊѹ¹¤·¤Þ¤·¤¿¡£\n"
+
+#: login-utils/chsh.c:274
+#, c-format
+msgid "Usage: %s [ -s shell ] "
+msgstr "»È¤¤Êý: %s [ -s ¥·¥§¥ë ] "
+
+#: login-utils/chsh.c:275
+msgid "[ --list-shells ] [ --help ] [ --version ]\n"
+msgstr "[ --list-shells ] [ --help ] [ --version ]\n"
+
+#: login-utils/chsh.c:276
+msgid "       [ username ]\n"
+msgstr "        [ ¥æ¡¼¥¶Ì¾ ]\n"
+
+#: login-utils/chsh.c:320
+#, c-format
+msgid "%s: shell must be a full path name.\n"
+msgstr "%s: ¥·¥§¥ë¤Ï¥Õ¥ë¥Ñ¥¹¤Ç̵¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£\n"
+
+#: login-utils/chsh.c:324
+#, c-format
+msgid "%s: \"%s\" does not exist.\n"
+msgstr "%s: \"%s\" ¤Ï¸ºß¤·¤Þ¤»¤ó¡£\n"
+
+#: login-utils/chsh.c:328
+#, c-format
+msgid "%s: \"%s\" is not executable.\n"
+msgstr "%s: \"%s\" ¤Ï¼Â¹Ô¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: login-utils/chsh.c:335
+#, c-format
+msgid "%s: '%c' is not allowed.\n"
+msgstr "%s: '%c' ¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó¡£\n"
+
+#: login-utils/chsh.c:339
+#, c-format
+msgid "%s: Control characters are not allowed.\n"
+msgstr "%s: ¥³¥ó¥È¥í¡¼¥ëʸ»ú¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó¡£\n"
+
+#: login-utils/chsh.c:346
+#, c-format
+msgid "Warning: \"%s\" is not listed in /etc/shells\n"
+msgstr "·Ù¹ð: \"%s\" ¤Ï /etc/shells ¥ê¥¹¥È¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó\n"
+
+#: login-utils/chsh.c:348
+#, c-format
+msgid "%s: \"%s\" is not listed in /etc/shells.\n"
+msgstr "%s: \"%s\" ¤Ï /etc/shells ¥ê¥¹¥È¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó¡£\n"
+
+#: login-utils/chsh.c:350
+#, c-format
+msgid "%s: use -l option to see list\n"
+msgstr "%s: ¥ê¥¹¥È¤ò¸«¤ë¤Ë¤Ï -l ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤\n"
+
+#: login-utils/chsh.c:356
+#, c-format
+msgid "Warning: \"%s\" is not listed in /etc/shells.\n"
+msgstr "·Ù¹ð: \"%s\" ¤Ï /etc/shells ¥ê¥¹¥È¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó¡£\n"
+
+#: login-utils/chsh.c:357
+#, c-format
+msgid "Use %s -l to see list.\n"
+msgstr "¥ê¥¹¥È¤ò¸«¤ë¤Ë¤Ï¡¢%s -l ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: login-utils/chsh.c:378
+msgid "No known shells.\n"
+msgstr "ÃΤé¤Ê¤¤¥·¥§¥ë¤Ç¤¹¡£\n"
+
+#: login-utils/cryptocard.c:70
+msgid "couldn't open /dev/urandom"
+msgstr "/dev/urandom ¤ò³«¤±¤Þ¤»¤ó"
+
+#: login-utils/cryptocard.c:75
+msgid "couldn't read random data from /dev/urandom"
+msgstr "/dev/urandom ¤«¤é¥é¥ó¥À¥à¥Ç¡¼¥¿¤¬Æɹþ¤á¤Þ¤»¤ó"
+
+#: login-utils/cryptocard.c:98
+#, c-format
+msgid "can't open %s for reading"
+msgstr "%s ¤òÆɹþ¤ßÍѤ˳«¤±¤Þ¤»¤ó"
+
+#: login-utils/cryptocard.c:102
+#, c-format
+msgid "can't stat(%s)"
+msgstr "(%s) ¥Õ¥¡¥¤¥ë¾ðÊó¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
+
+#: login-utils/cryptocard.c:108
+#, c-format
+msgid "%s doesn't have the correct filemodes"
+msgstr "%s ¤ÏÀµ¤·¤¤¥Õ¥¡¥¤¥ë¥â¡¼¥É¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: login-utils/cryptocard.c:113
+#, c-format
+msgid "can't read data from %s"
+msgstr "%s ¤«¤é¥Ç¡¼¥¿¤òÆɹþ¤á¤Þ¤»¤ó"
+
+#: login-utils/islocal.c:36
+#, c-format
+msgid "Can't read %s, exiting."
+msgstr "%s ¤òÆɤá¤Þ¤»¤ó¤Î¤Ç½ªÎ»¤·¤Þ¤¹¡£"
+
+#: login-utils/last.c:143
+msgid "usage: last [-#] [-f file] [-t tty] [-h hostname] [user ...]\n"
+msgstr "»È¤¤Êý: last [-#] [-f ¥Õ¥¡¥¤¥ë] [-t Ã¼Ëö] [-h ¥Û¥¹¥È̾] [¥æ¡¼¥¶ ...]\n"
+
+#: login-utils/last.c:283
+msgid "  still logged in"
+msgstr "  ¥í¥°¥¤¥ó¤·¤¿¤Þ¤Þ¤Ç¤¹"
+
+#: login-utils/last.c:305
+#, c-format
+msgid ""
+"\n"
+"wtmp begins %s"
+msgstr "\nwtmp ¤Ï %s ¤«¤é»Ï¤Þ¤ê¤Þ¤¹ "
+
+#: login-utils/last.c:367 login-utils/last.c:387 login-utils/last.c:442
+msgid "last: malloc failure.\n"
+msgstr "last: ¥á¥â¥ê³ÎÊݤ˼ºÇÔ¡£\n"
+
+#: login-utils/last.c:416
+msgid "last: gethostname"
+msgstr ""
+
+#: login-utils/last.c:469
+#, c-format
+msgid ""
+"\n"
+"interrupted %10.10s %5.5s \n"
+msgstr ""
+"\n"
+"³ä¤ê¹þ¤ß¤¬Æþ¤ê¤Þ¤·¤¿ %10.10s %5.5s \n"
+
+#: login-utils/login.c:349
+msgid "login: -h for super-user only.\n"
+msgstr "login: -h ¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶ÀìÍѤǤ¹¡£\n"
+
+#: login-utils/login.c:374
+msgid "usage: login [-fp] [username]\n"
+msgstr "»È¤¤Êý: login [-fp] [¥æ¡¼¥¶Ì¾]\n"
+
+#: login-utils/login.c:476
+#, c-format
+msgid "login: PAM Failure, aborting: %s\n"
+msgstr "login: PAM ¼ºÇÔ¡£ÃæÃǤ·¤Þ¤¹: %s\n"
+
+#: login-utils/login.c:478
+#, c-format
+msgid "Couldn't initialize PAM: %s"
+msgstr "PAM ¤Î½é´ü²½¤¬¤Ç¤­¤Þ¤»¤ó: %s"
+
+#: login-utils/login.c:518
+#, c-format
+msgid "FAILED LOGIN %d FROM %s FOR %s, %s"
+msgstr ""
+
+#: login-utils/login.c:520
+msgid ""
+"Login incorrect\n"
+"\n"
+msgstr ""
+"Login ¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹\n"
+"\n"
+
+#: login-utils/login.c:529
+#, c-format
+msgid "TOO MANY LOGIN TRIES (%d) FROM %s FOR %s, %s"
+msgstr ""
+
+#: login-utils/login.c:533
+#, c-format
+msgid "FAILED LOGIN SESSION FROM %s FOR %s, %s"
+msgstr ""
+
+#: login-utils/login.c:536
+msgid ""
+"\n"
+"Login incorrect\n"
+msgstr ""
+"\n"
+"Login ¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹\n"
+
+#: login-utils/login.c:585
+msgid "Illegal username"
+msgstr "ÉÔÀµ¤Ê¥æ¡¼¥¶Ì¾"
+
+#: login-utils/login.c:628
+#, c-format
+msgid "%s login refused on this terminal.\n"
+msgstr "%s ¤Î¥í¥°¥¤¥ó¤Ï¤³¤ÎüËö¤Ç¤ÏµñÈݤµ¤ì¤Þ¤·¤¿¡£\n"
+
+#: login-utils/login.c:633
+#, c-format
+msgid "LOGIN %s REFUSED FROM %s ON TTY %s"
+msgstr ""
+
+#: login-utils/login.c:637
+#, c-format
+msgid "LOGIN %s REFUSED ON TTY %s"
+msgstr ""
+
+#: login-utils/login.c:689
+msgid "Login incorrect\n"
+msgstr "Login ¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹\n"
+
+#: login-utils/login.c:711
+msgid ""
+"Too many users logged on already.\n"
+"Try again later.\n"
+msgstr ""
+"´û¤Ë¥í¥°¥¤¥ó¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼¿ô¤¬Â¿¤¹¤®¤Þ¤¹¡£\n"
+"¤Þ¤¿¸å¤Ç»î¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: login-utils/login.c:715
+msgid "You have too many processes running.\n"
+msgstr "¤¢¤Ê¤¿¤¬¼Â¹Ô¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤¬Â¿¤¹¤®¤Þ¤¹¡£\n"
+
+#: login-utils/login.c:761
+msgid "Warning: no Kerberos tickets issued\n"
+msgstr "·Ù¹ð: Kerberos ¥Á¥±¥Ã¥È¤¬È¯¹Ô¤µ¤ì¤Þ¤»¤ó\n"
+
+#: login-utils/login.c:773
+msgid "Sorry -- your password has expired.\n"
+msgstr "»ÄÇ°¤Ç¤¹¤¬ -- ¤¢¤Ê¤¿¤Î¥Ñ¥¹¥ï¡¼¥É¤Ï´ü¸ÂÀÚ¤ì¤Ç¤¹¡£\n"
+
+#: login-utils/login.c:779
+#, c-format
+msgid "Warning: your password expires on %s %d, %d\n"
+msgstr "·Ù¹ð: ¤¢¤Ê¤¿¤Î¥Ñ¥¹¥ï¡¼¥É¤Ï %s %d, %d ¤Ë´ü¸Â¤¬ÀÚ¤ì¤Þ¤¹\n"
+
+#: login-utils/login.c:787
+msgid "Sorry -- your account has expired.\n"
+msgstr "»ÄÇ°¤Ç¤¹¤¬ -- ¤¢¤Ê¤¿¤Î¥¢¥«¥¦¥ó¥È¤Ï´ü¸ÂÀÚ¤ì¤Ç¤¹¡£\n"
+
+#: login-utils/login.c:793
+#, c-format
+msgid "Warning: your account expires on %s %d, %d\n"
+msgstr "·Ù¹ð: ¤¢¤Ê¤¿¤Î¥¢¥«¥¦¥ó¥È¤Ï %s %d, %d ¤Ë´ü¸Â¤¬ÀÚ¤ì¤Þ¤¹\n"
+
+#: login-utils/login.c:1025
+#, c-format
+msgid "DIALUP AT %s BY %s"
+msgstr ""
+
+#: login-utils/login.c:1032
+#, c-format
+msgid "ROOT LOGIN ON %s FROM %s"
+msgstr ""
+
+#: login-utils/login.c:1035
+#, c-format
+msgid "ROOT LOGIN ON %s"
+msgstr ""
+
+#: login-utils/login.c:1038
+#, c-format
+msgid "LOGIN ON %s BY %s FROM %s"
+msgstr ""
+
+#: login-utils/login.c:1041
+#, c-format
+msgid "LOGIN ON %s BY %s"
+msgstr ""
+
+#: login-utils/login.c:1052
+#, c-format
+msgid "You have %smail.\n"
+msgstr "¤¢¤Ê¤¿¤Ë%d¥á¥¤¥ë¤¬ÆϤ¤¤Æ¤¤¤Þ¤¹¡£\n"
+
+#: login-utils/login.c:1053
+msgid "new "
+msgstr "¿·¤¿¤Ê"
+
+#. error in fork()
+#: login-utils/login.c:1071
+#, c-format
+msgid "login: failure forking: %s"
+msgstr "login: fork ¤Ë¼ºÇÔ: %s"
+
+#: login-utils/login.c:1086
+msgid "setuid() failed"
+msgstr "setuid() ¤Ë¼ºÇÔ"
+
+#: login-utils/login.c:1092
+#, c-format
+msgid "No directory %s!\n"
+msgstr "¥Ç¥£¥ì¥¯¥È¥ê %s ¤¬¤¢¤ê¤Þ¤»¤ó¡ª\n"
+
+#: login-utils/login.c:1096
+msgid "Logging in with home = \"/\".\n"
+msgstr "¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê \"/\" ¤Ç¥í¥°¥¤¥ó¤·¤Þ¤¹¡£\n"
+
+#: login-utils/login.c:1104
+msgid "login: no memory for shell script.\n"
+msgstr "login: ¥·¥§¥ë¥¹¥¯¥ê¥×¥ÈÍѤΥá¥â¥ê¤¬¤¢¤ê¤Þ¤»¤ó¡£\n"
+
+#: login-utils/login.c:1132
+#, c-format
+msgid "login: couldn't exec shell script: %s.\n"
+msgstr "login: ¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿: %s\n"
+
+#: login-utils/login.c:1135
+#, c-format
+msgid "login: no shell: %s.\n"
+msgstr "login: ¥·¥§¥ë¤¬¤¢¤ê¤Þ¤»¤ó: %s.\n"
+
+#: login-utils/login.c:1151
+#, c-format
+msgid ""
+"\n"
+"%s login: "
+msgstr ""
+"\n"
+"%s ¥í¥°¥¤¥ó: "
+
+#: login-utils/login.c:1162
+msgid "login name much too long.\n"
+msgstr "¥í¥°¥¤¥ó̾¤¬Ä¹¤¹¤®¤Þ¤¹¡£\n"
+
+#: login-utils/login.c:1163
+msgid "NAME too long"
+msgstr "̾Á°¤¬Ä¹¤¹¤®¤Þ¤¹"
+
+#: login-utils/login.c:1170
+msgid "login names may not start with '-'.\n"
+msgstr "¥í¥°¥¤¥ó̾¤Ï '-' ¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£\n"
+
+#: login-utils/login.c:1180
+msgid "too many bare linefeeds.\n"
+msgstr "¹ÔÁ÷¤ê(linefeed) ¤¬Â¿¤¹¤®¤Þ¤¹¡£\n"
+
+#: login-utils/login.c:1181
+msgid "EXCESSIVE linefeeds"
+msgstr ""
+
+#: login-utils/login.c:1192
+#, c-format
+msgid "Login timed out after %d seconds\n"
+msgstr "%d Éøå¤Ë¥í¥°¥¤¥ó¤Î»þ´ÖÀÚ¤ì\n"
+
+#: login-utils/login.c:1292
+#, c-format
+msgid "Last login: %.*s "
+msgstr "ºÇ½ª¥í¥°¥¤¥ó: %.*s "
+
+#: login-utils/login.c:1296
+#, c-format
+msgid "from %.*s\n"
+msgstr " %.*s ¤«¤é\n"
+
+#: login-utils/login.c:1299
+#, c-format
+msgid "on %.*s\n"
+msgstr " %.*s ¾å\n"
+
+#: login-utils/login.c:1322
+#, c-format
+msgid "LOGIN FAILURE FROM %s, %s"
+msgstr ""
+
+#: login-utils/login.c:1325
+#, c-format
+msgid "LOGIN FAILURE ON %s, %s"
+msgstr ""
+
+#: login-utils/login.c:1329
+#, c-format
+msgid "%d LOGIN FAILURES FROM %s, %s"
+msgstr ""
+
+#: login-utils/login.c:1332
+#, c-format
+msgid "%d LOGIN FAILURES ON %s, %s"
+msgstr ""
+
+#: login-utils/mesg.c:89
+msgid "is y\n"
+msgstr ""
+
+#: login-utils/mesg.c:92
+msgid "is n\n"
+msgstr ""
+
+#: login-utils/mesg.c:112
+msgid "usage: mesg [y | n]\n"
+msgstr "»È¤¤Êý: mesg [y | n]\n"
+
+#: login-utils/newgrp.c:67
+msgid "newgrp: Who are you?"
+msgstr "newgrp: ¤¢¤ó¤¿Ã¯¡©"
+
+#: login-utils/newgrp.c:75 login-utils/newgrp.c:85
+msgid "newgrp: setgid"
+msgstr "newgrp: setgid"
+
+#: login-utils/newgrp.c:80
+msgid "newgrp: No such group."
+msgstr "newgrp: ¤½¤Î¤è¤¦¤Ê¥°¥ë¡¼¥×¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
+
+#: login-utils/newgrp.c:89
+msgid "newgrp: Permission denied"
+msgstr "newgrp: µö²Ä¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#: login-utils/newgrp.c:96
+msgid "newgrp: setuid"
+msgstr "newgrp: setuid"
+
+#: login-utils/newgrp.c:102
+msgid "No shell"
+msgstr "¥·¥§¥ë¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#: login-utils/passwd.c:163
+msgid "The password must have at least 6 characters, try again.\n"
+msgstr "¥Ñ¥¹¥ï¡¼¥É¤ÏºÇÄã 6 Ê¸»úɬÍפǤ¹¡£¤â¤¦°ìÅÙ¤ä¤êľ¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: login-utils/passwd.c:176
+msgid "The password must contain characters out of two of the following\n"
+msgstr "¥Ñ¥¹¥ï¡¼¥É¤Ï°Ê²¼¤ÎÆâ 2 ¼ïÎà¤Ï´Þ¤Þ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó\n"
+
+#: login-utils/passwd.c:177
+msgid "classes:  upper and lower case letters, digits and non alphanumeric\n"
+msgstr "¼ïÎà: Âçʸ»ú¤È¾®Ê¸»ú¡¢¿ôÃͤÈÈó¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¿ôÃÍ\n"
+
+#: login-utils/passwd.c:178
+msgid "characters. See passwd(1) for more information.\n"
+msgstr "ʸ»ú¡£passwd(1) ¤ò¤ß¤Æ¾ÜºÙ¤òÄ´¤Ù¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: login-utils/passwd.c:183
+msgid "You cannot reuse the old password.\n"
+msgstr "¸Å¤¤¥Ñ¥¹¥ï¡¼¥É¤ÎºÆÍøÍѤϤǤ­¤Þ¤»¤ó¡£\n"
+
+#: login-utils/passwd.c:188
+msgid "Please don't use something like your username as password!\n"
+msgstr "¥æ¡¼¥¶Ì¾¤ÈƱ¤¸¤è¤¦¤Ê¥Ñ¥¹¥ï¡¼¥É¤ò»È¤ï¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡ª\n"
+
+#: login-utils/passwd.c:199 login-utils/passwd.c:206
+msgid "Please don't use something like your realname as password!\n"
+msgstr "¤¢¤Ê¤¿¤Î¼Â̾¤Î¤è¤¦¤Ê¥Ñ¥¹¥ï¡¼¥É¤ò»È¤ï¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡ª\n"
+
+#: login-utils/passwd.c:223
+msgid "Usage: passwd [username [password]]\n"
+msgstr "»È¤¤Êý: passwd [¥æ¡¼¥¶Ì¾ [¥Ñ¥¹¥ï¡¼¥É]]\n"
+
+#: login-utils/passwd.c:224
+msgid "Only root may use the one and two argument forms.\n"
+msgstr "¤½¤Î°ì¤Ä¤Þ¤¿¤ÏÆó¤Ä¤Î°ú¿ô·Á¼°¤Ç¼Â¹Ô¤Ç¤­¤ë¤Î¤Ï root ¤À¤±¤Ç¤¹¡£\n"
+
+#: login-utils/passwd.c:280
+msgid "Usage: passwd [-foqsvV] [user [password]]\n"
+msgstr "»È¤¤Êý: passwd [-foqsvV] [¥æ¡¼¥¶ [¥Ñ¥¹¥ï¡¼¥É]]\n"
+
+#: login-utils/passwd.c:301
+#, c-format
+msgid "Can't exec %s: %s\n"
+msgstr "%s ¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó: %s\n"
+
+#: login-utils/passwd.c:312
+msgid "Cannot find login name"
+msgstr "¥í¥°¥¤¥ó̾¤¬¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó"
+
+#: login-utils/passwd.c:319 login-utils/passwd.c:326
+msgid "Only root can change the password for others.\n"
+msgstr "¾¿Í¤Î¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤Ç¤­¤ë¤Î¤Ï¥ë¡¼¥È¤À¤±¤Ç¤¹¡£\n"
+
+#: login-utils/passwd.c:334
+msgid "Too many arguments.\n"
+msgstr "°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹¡£\n"
+
+#: login-utils/passwd.c:339
+#, c-format
+msgid "Can't find username anywhere. Is `%s' really a user?"
+msgstr "¥æ¡¼¥¶Ì¾¤¬¤É¤³¤Ë¤â¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£`%s' ¤ÏËÜÅö¤Ë¥æ¡¼¥¶¤Ç¤¹¤«¡©"
+
+#: login-utils/passwd.c:343
+msgid "Sorry, I can only change local passwords. Use yppasswd instead."
+msgstr ""
+"»ÄÇ°¤Ê¤¬¤é¡¢¥í¡¼¥«¥ë¤Î¥Ñ¥¹¥ï¡¼¥É¤ÎÊѹ¹¤·¤«¤Ç¤­¤Þ¤»¤ó¡£\n"
+"¤«¤ï¤ê¤Ë yppasswd ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: login-utils/passwd.c:349
+msgid "UID and username does not match, imposter!"
+msgstr "¥æ¡¼¥¶ID ÈÖ¹æ¤È¥æ¡¼¥¶Ì¾¤¬°ìÃפ·¤Þ¤»¤ó¡£º¾¾Î¤À¡ª"
+
+#: login-utils/passwd.c:354
+#, c-format
+msgid "Changing password for %s\n"
+msgstr "%s ¤Î¥Ñ¥¹¥ï¡¼¥É¤òÊѹ¹¤·¤Þ¤¹\n"
+
+#: login-utils/passwd.c:358
+msgid "Enter old password: "
+msgstr "µå¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤: "
+
+#: login-utils/passwd.c:360
+msgid "Illegal password, imposter."
+msgstr "ÉÔÀµ¤Ê¥Ñ¥¹¥ï¡¼¥É¡¢º¾¾Î¤Ç¤¹¡£"
+
+#: login-utils/passwd.c:372
+msgid "Enter new password: "
+msgstr "¿·¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: login-utils/passwd.c:374
+msgid "Password not changed."
+msgstr "¥Ñ¥¹¥ï¡¼¥É¤ÏÊѹ¹¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£"
+
+#: login-utils/passwd.c:384
+msgid "Re-type new password: "
+msgstr "¿·¥Ñ¥¹¥ï¡¼¥É¤ò¤â¤¦°ìÅÙÆþÎϤ·¤Æ¤¯¤À¤µ¤¤: "
+
+#: login-utils/passwd.c:387
+msgid "You misspelled it. Password not changed."
+msgstr "Ä֤꤬°ã¤¤¤Þ¤¹¡£¸å¤Ç¤â¤¦°ìÅٻ¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: login-utils/passwd.c:402
+#, c-format
+msgid "password changed, user %s"
+msgstr "¥Ñ¥¹¥ï¡¼¥É¤ÏÊѹ¹¤µ¤ì¤Þ¤·¤¿¡£¥æ¡¼¥¶ %s"
+
+#: login-utils/passwd.c:405
+msgid "ROOT PASSWORD CHANGED"
+msgstr "* root ¤Î¥Ñ¥¹¥ï¡¼¥É¤¬Êѹ¹¤µ¤ì¤Þ¤·¤¿ *"
+
+#: login-utils/passwd.c:407
+#, c-format
+msgid "password changed by root, user %s"
+msgstr "¥Ñ¥¹¥ï¡¼¥É¤Ï¥ë¡¼¥È¤Ë¤è¤Ã¤ÆÊѹ¹¤µ¤ì¤Þ¤·¤¿¡¢¥æ¡¼¥¶ %s"
+
+#: login-utils/passwd.c:414
+msgid "calling setpwnam to set password.\n"
+msgstr "¥Ñ¥¹¥ï¡¼¥É¤òÀßÄꤹ¤ë¤¿¤á setpwnam ¤ò¸Æ¤Ó½Ð¤·Ãæ¡£\n"
+
+#: login-utils/passwd.c:418
+msgid "Password *NOT* changed.  Try again later.\n"
+msgstr "¥Ñ¥¹¥ï¡¼¥É¤ÏÊѹ¹ *¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿*¡£¸å¤Ç¤â¤¦°ìÅٻ¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: login-utils/passwd.c:424
+msgid "Password changed.\n"
+msgstr "¥Ñ¥¹¥ï¡¼¥É¤ÏÊѹ¹¤µ¤ì¤Þ¤·¤¿¡£\n"
+
+#: login-utils/shutdown.c:85
+msgid "Usage: shutdown [-h|-r] [-fqs] [now|hh:ss|+mins]\n"
+msgstr "»È¤¤Êý: shutdown [-h|-r] [-fqs] [now|hh:ss|+ʬ]\n"
+
+#: login-utils/shutdown.c:103
+msgid "Shutdown process aborted"
+msgstr "¥·¥ã¥Ã¥È¥À¥¦¥ó½èÍý¤ÏÃæÃǤµ¤ì¤Þ¤·¤¿"
+
+#: login-utils/shutdown.c:125
+#, c-format
+msgid "%s: Only root can shut a system down.\n"
+msgstr "%s: ¥ë¡¼¥È¤À¤±¤¬¥·¥¹¥Æ¥à¤ò¥·¥ã¥Ã¥È¥À¥¦¥ó¤Ç¤­¤Þ¤¹¡£\n"
+
+#: login-utils/shutdown.c:219
+msgid "That must be tomorrow, can't you wait till then?\n"
+msgstr "ÌÀÆü¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¤¬¡¢¤½¤ì¤Þ¤ÇÂԤƤʤ¤¤Ç¤·¤ç¡©\n"
+
+#: login-utils/shutdown.c:271
+msgid "for maintenance; bounce, bounce"
+msgstr ""
+
+#: login-utils/shutdown.c:275
+#, c-format
+msgid "timeout = %d, quiet = %d, reboot = %d\n"
+msgstr ""
+
+#: login-utils/shutdown.c:300
+msgid "The system is being shut down within 5 minutes"
+msgstr ""
+
+#: login-utils/shutdown.c:304
+msgid "Login is therefore prohibited."
+msgstr ""
+
+#: login-utils/shutdown.c:325
+#, c-format
+msgid "%s by %s: %s"
+msgstr "%2$s ¤Ë¤è¤ë %1$s: %3$s"
+
+#: login-utils/shutdown.c:326
+msgid "rebooted"
+msgstr "ºÆµ¯Æ°"
+
+#: login-utils/shutdown.c:326
+msgid "halted"
+msgstr "Ää»ß"
+
+#. RB_AUTOBOOT
+#: login-utils/shutdown.c:377
+msgid ""
+"\n"
+"Why am I still alive after reboot?"
+msgstr ""
+"\n"
+"¤Ê¤¼¥ê¥Ö¡¼¥È¤·¤¿¤Î¤Ë¡¢¥·¥ã¥Ã¥È¥À¥¦¥ó¥×¥í¥»¥¹¤¬À¸¤­¤Æ¤¤¤ë¤ó¤À¡©"
+
+#: login-utils/shutdown.c:379
+msgid ""
+"\n"
+"Now you can turn off the power..."
+msgstr ""
+"\n"
+"¤µ¤Æ¡¢ÅŸ»¤òÀڤ뤳¤È¤¬¤Ç¤­¤Þ¤¹¤è..."
+
+#: login-utils/shutdown.c:394
+msgid "Calling kernel power-off facility...\n"
+msgstr "¥«¡¼¥Í¥ë¤Î power-off µ¡Ç½¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤Þ¤¹...\n"
+
+#: login-utils/shutdown.c:397
+#, c-format
+msgid "Error powering off\t%s\n"
+msgstr "ÅŸ»¤òÀÚ¤ëºÝ¤Î¥¨¥é¡¼\t%s\n"
+
+#: login-utils/shutdown.c:405
+#, c-format
+msgid "Executing the program \"%s\" ...\n"
+msgstr "¥×¥í¥°¥é¥à \"%s\" ¤ò¼Â¹Ô¤·¤Æ¤¤¤Þ¤¹...\n"
+
+#: login-utils/shutdown.c:408
+#, c-format
+msgid "Error executing\t%s\n"
+msgstr "¼Â¹Ô¥¨¥é¡¼\t%s\n"
+
+#: login-utils/shutdown.c:431
+#, c-format
+msgid "\aURGENT: broadcast message from %s:"
+msgstr ""
+
+#: login-utils/shutdown.c:437
+msgid "System going down IMMEDIATELY!\n"
+msgstr ""
+
+#: login-utils/shutdown.c:440
+#, c-format
+msgid "System going down in %d hour%s %d minutes"
+msgstr ""
+
+#: login-utils/shutdown.c:441 login-utils/shutdown.c:444
+msgid "s"
+msgstr ""
+
+#: login-utils/shutdown.c:443
+#, c-format
+msgid "System going down in %d minute%s\n"
+msgstr ""
+
+#: login-utils/shutdown.c:449
+#, c-format
+msgid "\t... %s ...\n"
+msgstr ""
+
+#: login-utils/shutdown.c:506
+msgid "Cannot fork for swapoff. Shrug!"
+msgstr "swapoff »Ò¥×¥í¥»¥¹¤òµ¯Æ°¤Ç¤­¤Þ¤»¤ó¡£"
+
+#: login-utils/shutdown.c:514
+msgid "Cannot exec swapoff, hoping umount will do the trick."
+msgstr "swapoff ¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó¤Î¤Ç¡¢¥¢¥ó¥Þ¥¦¥ó¥È¤òÈô¤Ð¤¹¤È¤¤¤¤¤Ç¤·¤ç¤¦¡£"
+
+#: login-utils/shutdown.c:533
+msgid "Cannot fork for umount, trying manually."
+msgstr "umount »Ò¥×¥í¥»¥¹¤òµ¯Æ°¤Ç¤­¤Þ¤»¤ó¡£¼êÆ°¤ò»î¤·¤Æ¤ß¤Þ¤¹¡£"
+
+#: login-utils/shutdown.c:542
+#, c-format
+msgid "Cannot exec %s, trying umount.\n"
+msgstr "%s ¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó¡£¥¢¥ó¥Þ¥¦¥ó¥È¤ò»î¤ß¤Þ¤¹¡£\n"
+
+#: login-utils/shutdown.c:546
+msgid "Cannot exec umount, giving up on umount."
+msgstr "umount ¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó¡£¥¢¥ó¥Þ¥¦¥ó¥È¤òÄü¤á¤Þ¤¹¡£"
+
+#: login-utils/shutdown.c:551
+msgid "Unmounting any remaining filesystems..."
+msgstr "»Ä¤ê¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥¢¥ó¥Þ¥¦¥ó¥È¤·¤Þ¤¹..."
+
+#: login-utils/shutdown.c:587
+#, c-format
+msgid "shutdown: Couldn't umount %s\n"
+msgstr "shutdown: %s ¤ò¥¢¥ó¥Þ¥¦¥ó¥È¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿\n"
+
+#: login-utils/simpleinit.c:79
+msgid "Booting to single user mode.\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:83
+msgid "exec of single user shell failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:87
+msgid "fork of single user shell failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:226
+msgid ""
+"\n"
+"Wrong password.\n"
+msgstr ""
+"\n"
+"´Ö°ã¤Ã¤¿¥Ñ¥¹¥ï¡¼¥É¡£\n"
+
+#: login-utils/simpleinit.c:252
+msgid "exec rc failed\n"
+msgstr "rc ¤Î¼Â¹Ô¤Ë¼ºÇÔ\n"
+
+#: login-utils/simpleinit.c:255
+msgid "open of rc file failed\n"
+msgstr "rc ¥Õ¥¡¥¤¥ë¤Î¥ª¡¼¥×¥ó¤Ë¼ºÇÔ\n"
+
+#: login-utils/simpleinit.c:261
+msgid "fork of rc shell failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:273
+msgid "fork failed\n"
+msgstr "fork ¤¬¼ºÇÔ\n"
+
+#: login-utils/simpleinit.c:302 text-utils/more.c:1548
+msgid "exec failed\n"
+msgstr "¼Â¹Ô¤Ë¼ºÇÔ\n"
+
+#: login-utils/simpleinit.c:324
+msgid "cannot open inittab\n"
+msgstr "inittab ¤ò³«¤±¤Þ¤»¤ó\n"
+
+#: login-utils/simpleinit.c:362
+msgid "no TERM or cannot stat tty\n"
+msgstr ""
+
+#: login-utils/ttymsg.c:81
+msgid "too many iov's (change code in wall/ttymsg.c)"
+msgstr ""
+
+#: login-utils/ttymsg.c:91
+msgid "excessively long line arg"
+msgstr "¹Ô°ú¿ô¤¬Ä¹¤¹¤®¤Þ¤¹"
+
+#: login-utils/ttymsg.c:145
+msgid "cannot fork"
+msgstr "»Ò¥×¥í¥»¥¹¤òµ¯Æ°¤Ç¤­¤Þ¤»¤ó"
+
+#: login-utils/ttymsg.c:149
+#, c-format
+msgid "fork: %s"
+msgstr ""
+
+#: login-utils/ttymsg.c:177
+#, c-format
+msgid "%s: BAD ERROR"
+msgstr ""
+
+#: login-utils/vipw.c:149
+#, c-format
+msgid "%s: the %s file is busy.\n"
+msgstr "%s: ¤½¤Î¥Õ¥¡¥¤¥ë %s ¤Ï»ÈÍÑÃæ¤Ç¤¹¡£\n"
+
+#: login-utils/vipw.c:165
+#, c-format
+msgid "%s: the %s file is busy (%s present)\n"
+msgstr "%s: ¤½¤Î¥Õ¥¡¥¤¥ë %s ¤Ï»ÈÍÑÃæ¤Ç¤¹ (¸½ºß¤Ï %s)\n"
+
+#: login-utils/vipw.c:171
+#, c-format
+msgid "%s: can't link %s: %s\n"
+msgstr "%s: %s ¤ò¥ê¥ó¥¯¤Ç¤­¤Þ¤»¤ó: %s\n"
+
+#: login-utils/vipw.c:193
+#, c-format
+msgid "%s: can't unlock %s: %s (your changes are still in %s)\n"
+msgstr "%s: %s ¤Î¥í¥Ã¥¯¤ò²ò½ü¤Ç¤­¤Þ¤»¤ó: %s (Êѹ¹¤Ï %s ¤Î¤Þ¤Þ¤Ç¤¹)\n"
+
+#: login-utils/vipw.c:217
+#, c-format
+msgid "%s: Cannot fork\n"
+msgstr "%s: »Ò¥×¥í¥»¥¹¤òµ¯Æ°¤Ç¤­¤Þ¤»¤ó\n"
+
+#: login-utils/vipw.c:257
+#, c-format
+msgid "%s: %s unchanged\n"
+msgstr "%s: %s ¤ÏÊѹ¹¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿\n"
+
+#: login-utils/vipw.c:300
+#, c-format
+msgid "%s: no changes made\n"
+msgstr "%s: Êѹ¹¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿\n"
+
+#: login-utils/wall.c:106
+#, c-format
+msgid "usage: %s [file]\n"
+msgstr "»È¤¤Êý: %s [¥Õ¥¡¥¤¥ë]\n"
+
+#: login-utils/wall.c:154
+#, c-format
+msgid "%s: can't open temporary file.\n"
+msgstr "%s: °ì»þ¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: login-utils/wall.c:181
+#, c-format
+msgid "Broadcast Message from %s@%s"
+msgstr "%s@%s ¤«¤éή¤ì¤Æ¤­¤¿¥á¥Ã¥»¡¼¥¸"
+
+#: login-utils/wall.c:191
+#, c-format
+msgid "%s: can't read %s.\n"
+msgstr "%s: %s ¤òÆɤá¤Þ¤»¤ó¡£\n"
+
+#: login-utils/wall.c:216
+#, c-format
+msgid "%s: can't stat temporary file.\n"
+msgstr "%s: °ì»þ¥Õ¥¡¥¤¥ë¤Î¾ðÊó¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: login-utils/wall.c:225
+#, c-format
+msgid "%s: can't read temporary file.\n"
+msgstr "%s: °ì»þ¥Õ¥¡¥¤¥ë¤òÆɤá¤Þ¤»¤ó¡£\n"
+
+#: misc-utils/cal.c:184
+msgid "illegal month value: use 1-12"
+msgstr "ÉÔÀµ¤Ê·î: 1-12 ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤"
+
+#: misc-utils/cal.c:188
+msgid "illegal year value: use 1-9999"
+msgstr "ÉÔÀµ¤Êǯ: 1-9999 ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤"
+
+#: misc-utils/cal.c:484
+msgid "usage: cal [-mjy] [[month] year]\n"
+msgstr "»È¤¤Êý: cal [-mjy] [[·î] Ç¯]\n"
+
+#: misc-utils/ddate.c:184
+#, c-format
+msgid "usage: %s [+format] [day month year]\n"
+msgstr "»È¤¤Êý: %s [+½ñ¼°] [Æü ·î Ç¯]\n"
+
+#. handle St. Tib's Day
+#: misc-utils/ddate.c:230
+msgid "St. Tib's Day"
+msgstr ""
+
+#: misc-utils/kill.c:199
+#, c-format
+msgid "%s: unknown signal %s\n"
+msgstr "%s: Ì¤ÃΤΥ·¥°¥Ê¥ë %s\n"
+
+#: misc-utils/kill.c:261
+#, c-format
+msgid "%s: can't find process \"%s\"\n"
+msgstr "%s: ¥×¥í¥»¥¹ \"%s\" ¤ò¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó\n"
+
+#: misc-utils/kill.c:303
+#, c-format
+msgid "%s: unknown signal %s; valid signals:\n"
+msgstr "%s: Ì¤ÃΤΥ·¥°¥Ê¥ë %s -- Àµ¾ï¤Ê¥·¥°¥Ê¥ë:\n"
+
+#: misc-utils/kill.c:343
+#, c-format
+msgid "usage: %s [ -s signal | -p ] [ -a ] pid ...\n"
+msgstr "»È¤¤Êý: %s [ -s ¥·¥°¥Ê¥ë | -p ] [ -a ] ¥×¥í¥»¥¹ID ...\n"
+
+#: misc-utils/kill.c:344
+#, c-format
+msgid "       %s -l [ signal ]\n"
+msgstr "        %s -l [ ¥·¥°¥Ê¥ë ]\n"
+
+#: misc-utils/logger.c:144
+#, c-format
+msgid "logger: %s: %s.\n"
+msgstr "logger: %s: %s.\n"
+
+#: misc-utils/logger.c:241
+#, c-format
+msgid "logger: unknown facility name: %s.\n"
+msgstr "logger: Ì¤ÃΤÎÍ×ÁÇ: %s.\n"
+
+#: misc-utils/logger.c:253
+#, c-format
+msgid "logger: unknown priority name: %s.\n"
+msgstr "logger: Ì¤ÃΤÎÍ¥ÀèÅÙ: %s.\n"
+
+#: misc-utils/logger.c:280
+msgid ""
+"usage: logger [-is] [-f file] [-p pri] [-t tag] [-u socket] [ message ... ]\n"
+msgstr "»È¤¤Êý: logger [-is] [-f ¥Õ¥¡¥¤¥ë] [-p Í¥ÀèÅÙ] [-t ¥¿¥°] [-u ¥½¥±¥Ã¥È] [ ¥á¥Ã¥»¡¼¥¸ ... ]\n"
+
+#: misc-utils/look.c:170 misc-utils/setterm.c:1153 text-utils/more.c:1862
+#: text-utils/more.c:1873
+msgid "Out of memory"
+msgstr "¥á¥â¥ê¤¬Â­¤ê¤Þ¤»¤ó"
+
+#: misc-utils/look.c:340
+msgid "usage: look [-dfa] [-t char] string [file]\n"
+msgstr "»È¤¤Êý: look [-dfa] [-t ¥­¥ã¥é¥¯¥¿] Ê¸»úÎó [¥Õ¥¡¥¤¥ë]\n"
+
+#: misc-utils/mcookie.c:122 misc-utils/mcookie.c:149
+#, c-format
+msgid "Could not open %s\n"
+msgstr "%s ¤ò¥ª¡¼¥×¥ó¤Ç¤­¤Þ¤»¤ó\n"
+
+#: misc-utils/mcookie.c:126 misc-utils/mcookie.c:145
+#, c-format
+msgid "Got %d bytes from %s\n"
+msgstr "%2$s ¤«¤é %1$d ¥Ð¥¤¥È¼èÆÀ¤·¤Þ¤·¤¿\n"
+
+#: misc-utils/namei.c:107
+#, c-format
+msgid "namei: unable to get current directory - %s\n"
+msgstr "namei: ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤»¤ó -- %s\n"
+
+#: misc-utils/namei.c:118
+#, c-format
+msgid "namei: unable to chdir to %s - %s (%d)\n"
+msgstr "namei: %s \n"
+
+#: misc-utils/namei.c:128
+msgid "usage: namei [-mx] pathname [pathname ...]\n"
+msgstr "usage: namei [-mx] ¥Ñ¥¹Ì¾ [¥Ñ¥¹Ì¾ ...]\n"
+
+#: misc-utils/namei.c:157
+msgid "namei: could not chdir to root!\n"
+msgstr "namei: ¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë°ÜÆ°¤Ç¤­¤Þ¤»¤ó¡ª\n"
+
+#: misc-utils/namei.c:164
+msgid "namei: could not stat root!\n"
+msgstr "namei: ¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Õ¥¡¥¤¥ë¾ðÊó¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó¡ª\n"
+
+#: misc-utils/namei.c:219
+#, c-format
+msgid " ? could not chdir into %s - %s (%d)\n"
+msgstr " ? %s ¥Ç¥£¥ì¥¯¥È¥ê¤Ë°ÜÆ°¤Ç¤­¤Þ¤»¤ó -- %s (%d)\n"
+
+#: misc-utils/namei.c:248
+#, c-format
+msgid " ? problems reading symlink %s - %s (%d)\n"
+msgstr " ? ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯Æɤ߼è¤êÃæ¤ËÌäÂ꤬µ¯¤­¤Þ¤·¤¿ -- %s (%d)\n"
+
+#: misc-utils/namei.c:258
+msgid "  *** EXCEEDED UNIX LIMIT OF SYMLINKS ***"
+msgstr "  *** ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¿ô¤¬ UNIX ¤ÎÀ©¸Â¤ò±Û¤¨¤Þ¤·¤¿ ***"
+
+#: misc-utils/namei.c:294
+#, c-format
+msgid "namei: unknown file type 0%06o on file %s\n"
+msgstr "namei: ¥Õ¥¡¥¤¥ë %2$s ¤Ï¡¢Ì¤ÃΤΥե¡¥¤¥ë¥¿¥¤¥× 0%1$06o ¤Ç¤¹\n"
+
+#: misc-utils/script.c:108
+msgid "usage: script [-a] [file]\n"
+msgstr "»È¤¤Êý: script [-a] [¥Õ¥¡¥¤¥ë]\n"
+
+#: misc-utils/script.c:128
+#, c-format
+msgid "Script started, file is %s\n"
+msgstr "¥¹¥¯¥ê¥×¥È¤ò³«»Ï¤·¤Þ¤·¤¿¡¢¥Õ¥¡¥¤¥ë¤Ï %s ¤Ç¤¹\n"
+
+#: misc-utils/script.c:197
+#, c-format
+msgid "Script started on %s"
+msgstr "¥¹¥¯¥ê¥×¥È¤Ï %s ¤Ë³«»Ï¤·¤Þ¤·¤¿"
+
+#: misc-utils/script.c:263
+#, c-format
+msgid ""
+"\n"
+"Script done on %s"
+msgstr ""
+"\n"
+"¥¹¥¯¥ê¥×¥È¤Ï %s ¤Ë½ªÎ»¤·¤Þ¤·¤¿"
+
+#: misc-utils/script.c:268
+#, c-format
+msgid "Script done, file is %s\n"
+msgstr "¥¹¥¯¥ê¥×¥È¤ò½ªÎ»¤·¤Þ¤·¤¿¡¢¥Õ¥¡¥¤¥ë¤Ï %s ¤Ç¤¹\n"
+
+#: misc-utils/script.c:280
+msgid "openpty failed\n"
+msgstr "openpty ¤¬¼ºÇÔ\n"
+
+#: misc-utils/script.c:314
+msgid "Out of pty's\n"
+msgstr "ÍøÍѤǤ­¤ë pty ¤¬¤¢¤ê¤Þ¤»¤ó\n"
+
+#. Print error message about arguments, and the command's syntax.
+#: misc-utils/setterm.c:745
+#, c-format
+msgid "%s: Argument error, usage\n"
+msgstr "%s: °ú¿ô¥¨¥é¡¼¡¢»È¤¤Êý¤Ï\n"
+
+#: misc-utils/setterm.c:748
+msgid "  [ -term terminal_name ]\n"
+msgstr "  [ -term Ã¼Ëö̾ ]\n"
+
+#: misc-utils/setterm.c:749
+msgid "  [ -reset ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:750
+msgid "  [ -initialize ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:751
+msgid "  [ -cursor [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:753
+msgid "  [ -snow [on|off] ]\n"
+msgstr "  [ -snow [on|off] ]\n"
+
+#: misc-utils/setterm.c:754
+msgid "  [ -softscroll [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:755
+msgid "  [ -keyboard pc|olivetti|dutch|extended ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:757
+msgid "  [ -repeat [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:758
+msgid "  [ -appcursorkeys [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:759
+msgid "  [ -linewrap [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:760
+msgid "  [ -default ]\n"
+msgstr "  [ -default ]\n"
+
+#: misc-utils/setterm.c:761
+msgid "  [ -foreground black|blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:762 misc-utils/setterm.c:764
+msgid "|red|magenta|yellow|white|default ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:763
+msgid "  [ -background black|blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:765
+msgid "  [ -ulcolor black|grey|blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:766 misc-utils/setterm.c:768 misc-utils/setterm.c:770
+#: misc-utils/setterm.c:772
+msgid "|red|magenta|yellow|white ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:767
+msgid "  [ -ulcolor bright blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:769
+msgid "  [ -hbcolor black|grey|blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:771
+msgid "  [ -hbcolor bright blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:774
+msgid "  [ -standout [ attr ] ]\n"
+msgstr "  [ -standout [ attr ] ]\n"
+
+#: misc-utils/setterm.c:776
+msgid "  [ -inversescreen [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:777
+msgid "  [ -bold [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:778
+msgid "  [ -half-bright [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:779
+msgid "  [ -blink [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:780
+msgid "  [ -reverse [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:781
+msgid "  [ -underline [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:782
+msgid "  [ -store ]\n"
+msgstr "  [ -store ]\n"
+
+#: misc-utils/setterm.c:783
+msgid "  [ -clear [all|rest] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:784
+msgid "  [ -tabs [ tab1 tab2 tab3 ... ] ]      (tabn = 1-160)\n"
+msgstr "  [ -tabs [ ¥¿¥Ö1 ¥¿¥Ö2 ¥¿¥Ö3 ... ] ]      (¥¿¥Ö¿ô = 1-160)\n"
+
+#: misc-utils/setterm.c:785
+msgid "  [ -clrtabs [ tab1 tab2 tab3 ... ] ]   (tabn = 1-160)\n"
+msgstr "  [ -clrtabs [ ¥¿¥Ö1 ¥¿¥Ö2 ¥¿¥Ö3 ... ] ]   (¥¿¥Ö¿ô = 1-160)\n"
+
+#: misc-utils/setterm.c:786
+msgid "  [ -regtabs [1-160] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:787
+msgid "  [ -blank [0-60] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:788
+msgid "  [ -dump   [1-NR_CONSOLES] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:789
+msgid "  [ -append [1-NR_CONSOLES] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:790
+msgid "  [ -file dumpfilename ]\n"
+msgstr "  [ -file ¥À¥ó¥×¥Õ¥¡¥¤¥ë̾ ]\n"
+
+#: misc-utils/setterm.c:791
+msgid "  [ -msg [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:792
+msgid "  [ -msglevel [0-8] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:793
+msgid "  [ -powersave [on|vsync|hsync|powerdown|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:794
+msgid "  [ -powerdown [0-60] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:795
+msgid "  [ -blength [0-2000] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:796
+msgid "  [ -bfreq freqnumber ]\n"
+msgstr "  [ -bfreq freqnumber ]\n"
+
+#: misc-utils/setterm.c:841
+msgid "keyboard.pc"
+msgstr ""
+
+#: misc-utils/setterm.c:844
+msgid "keyboard.olivetti"
+msgstr ""
+
+#: misc-utils/setterm.c:847
+msgid "keyboard.dutch"
+msgstr ""
+
+#: misc-utils/setterm.c:850
+msgid "keyboard.extended"
+msgstr ""
+
+#: misc-utils/setterm.c:884
+msgid "snow.on"
+msgstr ""
+
+#: misc-utils/setterm.c:886
+msgid "snow.off"
+msgstr ""
+
+#: misc-utils/setterm.c:892
+msgid "softscroll.on"
+msgstr ""
+
+#: misc-utils/setterm.c:894
+msgid "softscroll.off"
+msgstr ""
+
+#: misc-utils/setterm.c:1069
+msgid "cannot (un)set powersave mode\n"
+msgstr "¥Ñ¥ï¡¼¥»¡¼¥Ö¥â¡¼¥É¤ËÀßÄê(Ëô¤Ï²ò½ü)¤Ç¤­¤Þ¤»¤ó\n"
+
+#: misc-utils/setterm.c:1108 misc-utils/setterm.c:1116
+#, c-format
+msgid "klogctl error: %s\n"
+msgstr "klogctl ¥¨¥é¡¼: %s\n"
+
+#: misc-utils/setterm.c:1157
+#, c-format
+msgid "Error reading %s\n"
+msgstr "%s ¤ÎÆɹþ¤ß¥¨¥é¡¼\n"
+
+#: misc-utils/setterm.c:1172
+msgid "Error writing screendump\n"
+msgstr "¥¹¥¯¥ê¡¼¥ó¥À¥ó¥×½ñ¤­¹þ¤ß¥¨¥é¡¼\n"
+
+#: misc-utils/setterm.c:1186
+#, c-format
+msgid "couldn't read %s, and cannot ioctl dump\n"
+msgstr "%s ¤òÆɤá¤Þ¤»¤ó¡¢¤½¤·¤Æ ioctl ¥À¥ó¥×¤¬¤Ç¤­¤Þ¤»¤ó\n"
+
+#: misc-utils/setterm.c:1251
+#, c-format
+msgid "%s: $TERM is not defined.\n"
+msgstr "%s: $TERM ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£\n"
+
+#: misc-utils/tsort.c:119
+msgid "usage: tsort [ inputfile ]\n"
+msgstr "»È¤¤Êý: tsort [ ÆþÎÏ¥Õ¥¡¥¤¥ë ]\n"
+
+#: misc-utils/tsort.c:156
+msgid "tsort: odd data count.\n"
+msgstr "tsort: ÊѤʥǡ¼¥¿¥«¥¦¥ó¥È¤Ç¤¹¡£\n"
+
+#: misc-utils/tsort.c:321
+msgid "tsort: cycle in data.\n"
+msgstr "tsort: ¥Ç¡¼¥¿¤¬½Û´Ä¤·¤Æ¤¤¤Þ¤¹¡£\n"
+
+#: misc-utils/tsort.c:334
+msgid "tsort: internal error -- could not find cycle.\n"
+msgstr "tsort: ÆâÉô¥¨¥é¡¼ -- ½Û´Ä¤ò¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£\n"
+
+#: misc-utils/whereis.c:158
+msgid "whereis [ -sbmu ] [ -SBM dir ... -f ] name...\n"
+msgstr "whereis [ -sbmu ] [ -SBM ¥Ç¥£¥ì¥¯¥È¥ê ... -f ] Ì¾Á° ...\n"
+
+#: misc-utils/write.c:99
+msgid "write: can't find your tty's name\n"
+msgstr "write: ¤¢¤Ê¤¿¤Î tty ¤Î̾Á°¤ò¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó\n"
+
+#: misc-utils/write.c:110
+msgid "write: you have write permission turned off.\n"
+msgstr "write: ¤¢¤Ê¤¿¤Ï½ñ¤­¹þ¤ß¸¢¸Â¤ò¥ª¥Õ¤Ë¤·¤¿¤Þ¤Þ¤Ç¤¹¡£\n"
+
+#: misc-utils/write.c:131
+#, c-format
+msgid "write: %s is not logged in on %s.\n"
+msgstr "write: %s ¤Ï %s ¤Ë¥í¥°¥¤¥ó¤·¤Æ¤¤¤Þ¤»¤ó¡£\n"
+
+#: misc-utils/write.c:139
+#, c-format
+msgid "write: %s has messages disabled on %s\n"
+msgstr "write %s ¤Ë¤Ï %s ¾å¤Ç¥á¥Ã¥»¡¼¥¸¤ò̵¸ú¤Ë¤·¤Æ¤¤¤Þ¤¹\n"
+
+#: misc-utils/write.c:146
+msgid "usage: write user [tty]\n"
+msgstr "»È¤¤Êý: write ¥æ¡¼¥¶ [tty]\n"
+
+#: misc-utils/write.c:245
+#, c-format
+msgid "write: %s is not logged in\n"
+msgstr "write %s ¤Ï¥í¥°¥¤¥ó¤·¤Æ¤¤¤Þ¤»¤ó\n"
+
+#: misc-utils/write.c:254
+#, c-format
+msgid "write: %s has messages disabled\n"
+msgstr "write: %s ¤Ï¥á¥Ã¥»¡¼¥¸¤ò̵¸ú¤Ë¤·¤Æ¤¤¤Þ¤¹\n"
+
+#: misc-utils/write.c:258
+#, c-format
+msgid "write: %s is logged in more than once; writing to %s\n"
+msgstr "write: %s ¤ÏÊ£¿ô¥í¥°¥¤¥ó¤·¤Æ¤¤¤Þ¤¹ -- %s ¤Ë write ¤·¤Þ¤¹\n"
+
+#: misc-utils/write.c:325
+#, c-format
+msgid "Message from %s@%s on %s at %s ..."
+msgstr ""
+
+#: mount/fstab.c:116
+#, c-format
+msgid "warning: error reading %s: %s"
+msgstr "·Ù¹ð: %s ¤ÎÆɹþ¤ß¥¨¥é¡¼: %s"
+
+#: mount/fstab.c:143 mount/fstab.c:166
+#, c-format
+msgid "warning: can't open %s: %s"
+msgstr "·Ù¹ð: %s ¤¬¥ª¡¼¥×¥ó¤Ç¤­¤Þ¤»¤ó: %s"
+
+#: mount/fstab.c:147
+#, c-format
+msgid "mount: could not open %s - using %s instead\n"
+msgstr "mount: %s ¤ò¥ª¡¼¥×¥ó¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿ -- Âå¤ê¤Ë %s ¤ò»È¤¤¤Þ¤¹\n"
+
+#. linktargetfile does not exist (as a file)
+#. and we cannot create it. Read-only filesystem?
+#. Too many files open in the system? Filesystem full?
+#: mount/fstab.c:358
+#, c-format
+msgid "can't create lock file %s: %s (use -n flag to override)"
+msgstr "¥í¥Ã¥¯¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó: %s (-n ¥Õ¥é¥°¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤)"
+
+#: mount/fstab.c:370
+#, c-format
+msgid "can't link lock file %s: %s (use -n flag to override)"
+msgstr "¥í¥Ã¥¯¥Õ¥¡¥¤¥ë %s ¤ò¥ê¥ó¥¯¤Ç¤­¤Þ¤»¤ó: %s (-n ¥Õ¥é¥°¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤)"
+
+#: mount/fstab.c:382
+#, c-format
+msgid "can't open lock file %s: %s (use -n flag to override)"
+msgstr "¥í¥Ã¥¯¥Õ¥¡¥¤¥ë %s ¤ò³«¤±¤Þ¤»¤ó: %s (-n ¥Õ¥é¥°¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤)"
+
+#: mount/fstab.c:397
+#, c-format
+msgid "Can't lock lock file %s: %s\n"
+msgstr "¥í¥Ã¥¯¥Õ¥¡¥¤¥ë %s ¤ò¥í¥Ã¥¯¤Ç¤­¤Þ¤»¤ó: %s\n"
+
+#: mount/fstab.c:408
+#, c-format
+msgid "can't lock lock file %s: %s"
+msgstr "¥í¥Ã¥¯¥Õ¥¡¥¤¥ë %s ¤ò¥í¥Ã¥¯¤Ç¤­¤Þ¤»¤ó: %s"
+
+#: mount/fstab.c:410
+msgid "timed out"
+msgstr "¥¿¥¤¥à¥¢¥¦¥È"
+
+#: mount/fstab.c:455 mount/fstab.c:463
+#, c-format
+msgid "cannot open %s (%s) - mtab not updated"
+msgstr "%s ¤ò³«¤±¤Þ¤»¤ó (%s) -- mtab ¤Ï¹¹¿·¤µ¤ì¤Þ¤»¤ó"
+
+#: mount/fstab.c:488
+msgid "mount: warning: cannot change mounted device with a remount\n"
+msgstr "mount: ·Ù¹ð: ºÆ¥Þ¥¦¥ó¥È¤Ç¤Î¥Þ¥¦¥ó¥ÈºÑ¥Ç¥Ð¥¤¥¹¤ÎÊѹ¹¤Ï¤Ç¤­¤Þ¤»¤ó\n"
+
+#: mount/fstab.c:493
+msgid "mount: warning: cannot change filesystem type with a remount\n"
+msgstr "mount: ·Ù¹ð: ºÆ¥Þ¥¦¥ó¥È¤Ç¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥×¤ÎÊѹ¹¤Ï¤Ç¤­¤Þ¤»¤ó\n"
+
+#: mount/fstab.c:501 mount/fstab.c:507
+#, c-format
+msgid "error writing %s: %s"
+msgstr "%s ¤Ø¤Î½ñ¤­¹þ¤ß¥¨¥é¡¼: %s"
+
+#: mount/fstab.c:514
+#, c-format
+msgid "error changing mode of %s: %s\n"
+msgstr "%s ¤Î¥â¡¼¥ÉÊѹ¹¥¨¥é¡¼: %s\n"
+
+#: mount/fstab.c:521
+#, c-format
+msgid "can't rename %s to %s: %s\n"
+msgstr "%s ¤Î̾Á°¤ò %s ¤ËÊѹ¹¤Ç¤­¤Þ¤»¤ó: %s\n"
+
+#: mount/lomount.c:78
+#, c-format
+msgid "loop: can't open device %s: %s\n"
+msgstr "loop: ¥Ç¥Ð¥¤¥¹ %s ¤ò¥ª¡¼¥×¥ó¤Ç¤­¤Þ¤»¤ó: %s\n"
+
+#: mount/lomount.c:84
+#, c-format
+msgid "loop: can't get info on device %s: %s\n"
+msgstr "loop: ¥Ç¥Ð¥¤¥¹ %s ¤Î¾ðÊó¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó: %s\n"
+
+#: mount/lomount.c:89 mount/losetup.c:74
+#, c-format
+msgid "%s: [%04x]:%ld (%s) offset %d, %s encryption\n"
+msgstr "%s: [%04x]:%ld (%s) ¥ª¥Õ¥»¥Ã¥È %d, %s encryption\n"
+
+#: mount/lomount.c:143
+msgid "mount: could not find any device /dev/loop#"
+msgstr "mount: /dev/loop# ¤¬Á´¤¯¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+
+#: mount/lomount.c:147
+msgid ""
+"mount: Could not find any loop device.\n"
+"       Maybe /dev/loop# has a wrong major number?"
+msgstr ""
+"mount: /dev/loop# ¤¬Á´¤¯¸«¤Ä¤«¤ê¤Þ¤»¤ó\n"
+"       Â¿Ê¬ /dev/loop# ¤Î¥á¥¸¥ã¡¼Èֹ椬´Ö°ã¤Ã¤Æ¤¤¤ë¤Î¤Ç¤Ï¡©"
+
+#: mount/lomount.c:151
+#, c-format
+msgid ""
+"mount: Could not find any loop device, and, according to %s,\n"
+"       this kernel does not know about the loop device.\n"
+"       (If so, then recompile or `insmod loop.o'.)"
+msgstr ""
+"mount: loop ¥Ç¥Ð¥¤¥¹¤¬Á´¤¯¸«¤Ä¤«¤ê¤Þ¤»¤ó¤·¡¢%s ¤Ë¤â¤¢¤ê¤Þ¤»¤ó¡£\n"
+"       ¤Ç¤¹¤«¤é¡¢¤³¤Î¥«¡¼¥Í¥ë¤Ï loop ¥Ç¥Ð¥¤¥¹¤ò°·¤¨¤Þ¤»¤ó¡£\n"
+"       (¤½¤¦¤À¤È¤¹¤ì¤Ð¡¢ºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤« `insmod loop.o' ¤·¤Æ²¼¤µ¤¤¡£)"
+
+#: mount/lomount.c:156
+msgid ""
+"mount: Could not find any loop device. Maybe this kernel does not know\n"
+"       about the loop device (then recompile or `insmod loop.o'), or\n"
+"       maybe /dev/loop# has the wrong major number?"
+msgstr ""
+"mount: loop ¥Ç¥Ð¥¤¥¹¤¬Á´¤¯¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£Â¿Ê¬¤³¤Î¥«¡¼¥Í¥ë¤Ï loop "
+"¥Ç¥Ð¥¤¥¹¤ò\n"
+"       °·¤¨¤Þ¤»¤ó(¤½¤¦¤À¤È¤·¤¿¤é¡¢ºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤« `insmod loop.o'¤·¤Æ\n"
+"       ¤¯¤À¤µ¤¤)¡£¤¢¤ë¤¤¤Ï¡¢/dev/loop# ¤Î¥á¥¸¥ã¡¼Èֹ椬´Ö°ã¤Ã¤Æ¤¤¤ë¤Î¤«¤â\n"
+"       ÃΤì¤Þ¤»¤ó¡£"
+
+#: mount/lomount.c:160
+msgid "mount: could not find any free loop device"
+msgstr "mount: ¶õ¤¤¤Æ¤¤¤ë loop ¥Ç¥Ð¥¤¥¹¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+
+#: mount/lomount.c:191 mount/losetup.c:106
+#, c-format
+msgid "Unsupported encryption type %s\n"
+msgstr "%s ¥¿¥¤¥×¤Î°Å¹æ²½¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
+
+#: mount/lomount.c:210 mount/losetup.c:125
+msgid "Init (up to 16 hex digits): "
+msgstr "½é´ü²½ (16 ¿Ê¿ô¤ÇºÇÂç 16 Ê¸»ú¤Þ¤Ç): "
+
+#: mount/lomount.c:217 mount/losetup.c:132
+#, c-format
+msgid "Non-hex digit '%c'.\n"
+msgstr "16 ¿Ê¿ô¤Ç¤Ï¤Ê¤¤Ê¸»ú '%c'¡£\n"
+
+#: mount/lomount.c:223 mount/losetup.c:138
+#, c-format
+msgid "Don't know how to get key for encryption system %d\n"
+msgstr "°Å¹æ²½¥·¥¹¥Æ¥à %d ¤Î¸°¼èÆÀÊýË¡¤¬²ò¤ê¤Þ¤»¤ó\n"
+
+#: mount/lomount.c:239
+#, c-format
+msgid "set_loop(%s,%s,%d): success\n"
+msgstr "set_loop(%s,%s,%d): À®¸ù\n"
+
+#: mount/lomount.c:250
+#, c-format
+msgid "loop: can't delete device %s: %s\n"
+msgstr "loop: ¥Ç¥Ð¥¤¥¹ %s ¤òºï½ü¤Ç¤­¤Þ¤»¤ó: %s\n"
+
+#: mount/lomount.c:260
+#, c-format
+msgid "del_loop(%s): success\n"
+msgstr "del_loop(%s): À®¸ù\n"
+
+#: mount/lomount.c:268
+msgid "This mount was compiled without loop support. Please recompile.\n"
+msgstr ""
+"¤³¤Î mount ¤Ï loop ¤Î¥µ¥Ý¡¼¥È¤Ê¤·¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤·¤¿¡£\n"
+"ºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: mount/losetup.c:70
+msgid "Cannot get loop info"
+msgstr "loop ¤Î¾ðÊó¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
+
+#: mount/losetup.c:174
+#, c-format
+msgid ""
+"usage:\n"
+"  %s loop_device                                      # give info\n"
+"  %s -d loop_device                                   # delete\n"
+"  %s [ -e encryption ] [ -o offset ] loop_device file # setup\n"
+msgstr ""
+"»È¤¤Êý:\n"
+"  %s loop¥Ç¥Ð¥¤¥¹                                          # ¾ðÊó¤ò¤ß¤ë\n"
+"  %s -d loop¥Ç¥Ð¥¤¥¹                                       # ºï½ü\n"
+"  %s [ -e °Å¹æ²½ ] [ -o ¥ª¥Õ¥»¥Ã¥È ] loop¥Ç¥Ð¥¤¥¹ ¥Õ¥¡¥¤¥ë # ÀßÄê\n"
+
+#: mount/losetup.c:231
+msgid "No loop support was available at compile time. Please recompile.\n"
+msgstr ""
+"¥³¥ó¥Ñ¥¤¥ë»þ¤Ë loop "
+"¥µ¥Ý¡¼¥È¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤»¤ó¡£ºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: mount/mntent.c:165
+#, c-format
+msgid "[mntent]: warning: no final newline at the end of %s\n"
+msgstr "[mntent]: ·Ù¹ð: %s ¤ÎºÇ¸å¤Ë²þ¹Ô¤¬¤¢¤ê¤Þ¤»¤ó\n"
+
+#: mount/mntent.c:216
+#, c-format
+msgid "[mntent]: line %d in %s is bad%s\n"
+msgstr "[mntent]: %2$s ¤Î %1$d ¹ÔÌܤÏÉÔÀµ¤Ç¤¹%3$s\n"
+
+#: mount/mntent.c:219
+msgid "; rest of file ignored"
+msgstr "-- Ìµ»ë¤·¤Þ¤¹"
+
+#: mount/mount.c:320
+#, c-format
+msgid "mount: according to mtab, %s is already mounted on %s"
+msgstr "mount: mtab ¤Ë¤è¤ë¤È¡¢%s ¤Ï %s ¤Ë¥Þ¥¦¥ó¥ÈºÑ¤Ç¤¹"
+
+#: mount/mount.c:323
+#, c-format
+msgid "mount: according to mtab, %s is mounted on %s"
+msgstr "mount: mtab ¤Ë¤è¤ë¤È¡¢%s ¤Ï %s ¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤Þ¤¹"
+
+#: mount/mount.c:344
+#, c-format
+msgid "mount: can't open %s for writing: %s"
+msgstr "mount: %s ¤ò½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤Ç¤­¤Þ¤»¤ó: %s"
+
+#: mount/mount.c:359 mount/mount.c:608
+#, c-format
+msgid "mount: error writing %s: %s"
+msgstr "mount: %s ¤Î½ñ¤­¹þ¤ß¥¨¥é¡¼: %s"
+
+#: mount/mount.c:366
+#, c-format
+msgid "mount: error changing mode of %s: %s"
+msgstr "mount: %s ¤Î¥â¡¼¥ÉÊѹ¹¥¨¥é¡¼: %s"
+
+#: mount/mount.c:440
+msgid "mount failed"
+msgstr "¥Þ¥¦¥ó¥È¤Ë¼ºÇÔ¤·¤Þ¤·¤¿"
+
+#: mount/mount.c:442
+#, c-format
+msgid "mount: only root can mount %s on %s"
+msgstr "mount: %s ¤ò %s ¤Ë¥Þ¥¦¥ó¥È¤Ç¤­¤ë¤Î¤Ï root ¤À¤±¤Ç¤¹"
+
+#: mount/mount.c:467
+msgid "mount: loop device specified twice"
+msgstr "mount: loop ¥Ç¥Ð¥¤¥¹¤¬ 2 ²ó»ØÄꤵ¤ì¤Þ¤·¤¿"
+
+#: mount/mount.c:473
+msgid "mount: type specified twice"
+msgstr "mount: ¥¿¥¤¥×¤¬ 2 ²ó»ØÄꤵ¤ì¤Þ¤·¤¿"
+
+#: mount/mount.c:485
+msgid "mount: skipping the setup of a loop device\n"
+msgstr "mount: loop ¥Ç¥Ð¥¤¥¹¤ÎÀßÄê¤ò¥¹¥­¥Ã¥×¤·¤Þ¤¹\n"
+
+#: mount/mount.c:494
+#, c-format
+msgid "mount: going to use the loop device %s\n"
+msgstr "mount: loop ¥Ç¥Ð¥¤¥¹ %s ¤ò»È¤¤¤Þ¤¹\n"
+
+#: mount/mount.c:498
+msgid "mount: failed setting up loop device\n"
+msgstr "mount: loop ¥Ç¥Ð¥¤¥¹¤ÎÀßÄê¤Ë¼ºÇÔ¤·¤Þ¤·¤¿\n"
+
+#: mount/mount.c:502
+msgid "mount: setup loop device successfully\n"
+msgstr "mount: loop ¥Ç¥Ð¥¤¥¹¤ÎÀßÄê¤ËÀ®¸ù¤·¤Þ¤·¤¿\n"
+
+#: mount/mount.c:515
+msgid "mount: this version was compiled without support for the type `nfs'"
+msgstr ""
+"mount: ¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï 'nfs' ¥¿¥¤¥×¤Î¥µ¥Ý¡¼¥È¤Ê¤·¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤Þ¤¹"
+
+#: mount/mount.c:565 mount/mount.c:990
+#, c-format
+msgid "mount: cannot fork: %s"
+msgstr "mount: fork ¤Ç¤­¤Þ¤»¤ó: %s"
+
+#: mount/mount.c:603
+#, c-format
+msgid "mount: can't open %s: %s"
+msgstr "mount: %s ¤¬¥ª¡¼¥×¥ó¤Ç¤­¤Þ¤»¤ó: %s"
+
+#: mount/mount.c:631
+msgid "mount: you must specify the filesystem type"
+msgstr "mount: ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥×¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹"
+
+#: mount/mount.c:638 mount/mount.c:673
+#, c-format
+msgid "mount: mount point %s is not a directory"
+msgstr "mount: ¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È %s ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: mount/mount.c:640
+msgid "mount: permission denied"
+msgstr "mount: µö²Ä¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#: mount/mount.c:642
+msgid "mount: must be superuser to use mount"
+msgstr "mount: mount ¤ò»È¤¦¤Ë¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
+
+#. heuristic: if /proc/version exists, then probably proc is mounted
+#. proc mounted?
+#: mount/mount.c:646 mount/mount.c:650
+#, c-format
+msgid "mount: %s is busy"
+msgstr "mount: %s ¤Ï»ÈÍÑÃæ¤Ç¤¹"
+
+#. no
+#. yes, don't mention it
+#: mount/mount.c:652
+msgid "mount: proc already mounted"
+msgstr "mount: proc ¤Ï¥Þ¥¦¥ó¥ÈºÑ¤Ç¤¹"
+
+#: mount/mount.c:654
+#, c-format
+msgid "mount: %s already mounted or %s busy"
+msgstr "mount: %s ¤Ï ¥Þ¥¦¥ó¥ÈºÑ¤« %s ¤¬»ÈÍÑÃæ¤Ç¤¹"
+
+#: mount/mount.c:660
+#, c-format
+msgid "mount: mount point %s does not exist"
+msgstr "mount: ¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È %s ¤¬Â¸ºß¤·¤Þ¤»¤ó"
+
+#: mount/mount.c:662
+#, c-format
+msgid "mount: mount point %s is a symbolic link to nowhere"
+msgstr "mount: ¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È %s ¤Ï¤É¤³¤â¤µ¤·¤Æ¤¤¤Ê¤¤¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤¹"
+
+#: mount/mount.c:665
+#, c-format
+msgid "mount: special device %s does not exist"
+msgstr "mount: ¥¹¥Ú¥·¥ã¥ë¥Ç¥Ð¥¤¥¹ %s ¤¬Â¸ºß¤·¤Þ¤»¤ó"
+
+#: mount/mount.c:675
+#, c-format
+msgid ""
+"mount: special device %s does not exist\n"
+"       (a path prefix is not a directory)\n"
+msgstr ""
+"mount: ¥¹¥Ú¥·¥ã¥ë¥Ç¥Ð¥¤¥¹ %s ¤¬Â¸ºß¤·¤Þ¤»¤ó\n"
+"       (¥Ñ¥¹¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤ê¤Þ¤»¤ó)\n"
+
+#: mount/mount.c:687
+#, c-format
+msgid "mount: %s not mounted already, or bad option"
+msgstr "mount: %s ¤Ï¤Þ¤À¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ÉÔÀµ¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹"
+
+#: mount/mount.c:689
+#, c-format
+msgid ""
+"mount: wrong fs type, bad option, bad superblock on %s,\n"
+"       or too many mounted file systems"
+msgstr ""
+"mount: ´Ö°ã¤Ã¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥×¡¢ÉÔÀµ¤Ê¥ª¥×¥·¥ç¥ó¡¢\n"
+"       %s ¤Î¥¹¡¼¥Ñ¡¼¥Ö¥í¥Ã¥¯¤¬ÉÔÀµ¡¢°¿¤¤¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È\n"
+"       ¤¬Â¿¤¹¤®¤Þ¤¹"
+
+#: mount/mount.c:704
+msgid "mount table full"
+msgstr "¥Þ¥¦¥ó¥È¥Æ¡¼¥Ö¥ë¤¬¤¤¤Ã¤Ñ¤¤¤Ç¤¹"
+
+#: mount/mount.c:706
+#, c-format
+msgid "mount: %s: can't read superblock"
+msgstr "mount: %s: ¥¹¡¼¥Ñ¡¼¥Ö¥í¥Ã¥¯¤òÆɤá¤Þ¤»¤ó"
+
+#: mount/mount.c:709
+#, c-format
+msgid "mount: %s has wrong major or minor number"
+msgstr "mount: %s ¤¬´Ö°ã¤Ã¤¿¥á¥¸¥ã¡¼Ëô¤Ï¥Þ¥¤¥Ê¡¼ÈÖ¹æ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
+
+#: mount/mount.c:714
+#, c-format
+msgid "mount: fs type %s not supported by kernel"
+msgstr "mount: ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥× %s ¤Ï¥«¡¼¥Í¥ë¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó"
+
+#: mount/mount.c:726
+#, c-format
+msgid "mount: probably you meant %s"
+msgstr "mount: ¤ª¤½¤é¤¯¤¢¤Ê¤¿¤Ï %s ¤ò°ÕÌ£¤·¤¿¤«¤Ã¤¿¤Î¤Ç¤·¤ç¤¦"
+
+#: mount/mount.c:728
+msgid "mount: maybe you meant iso9660 ?"
+msgstr "mount: Â¿Ê¬¤¢¤Ê¤¿¤Ï iso9660 ¤ò»ØÄꤷ¤¿¤«¤Ã¤¿¤Î¤Ç¤Ï¡©"
+
+#: mount/mount.c:731
+#, c-format
+msgid "mount: %s has wrong device number or fs type %s not supported"
+msgstr ""
+"mount: %s ¤Ï´Ö°ã¤Ã¤¿¥Ç¥Ð¥¤¥¹ÈÖ¹æ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥×\n"
+"       %s ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+
+#. strange ...
+#: mount/mount.c:736
+#, c-format
+msgid "mount: %s is not a block device, and stat fails?"
+msgstr "mount: %s ¤Ï¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¢¤À¤«¤é stat ¤¬¼ºÇÔ¡©"
+
+#: mount/mount.c:738
+#, c-format
+msgid ""
+"mount: the kernel does not recognize %s as a block device\n"
+"       (maybe `insmod driver'?)"
+msgstr ""
+"mount: ¤³¤Î¥«¡¼¥Í¥ë¤Ï %s ¤ò¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤È¤·¤Æǧ¼±¤·¤Þ¤»¤ó\n"
+"       (¿ʬ¡¢`insmod ¥É¥é¥¤¥Ð' ¤·¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤Î¤Ç¤Ï¡©)"
+
+#: mount/mount.c:741
+#, c-format
+msgid "mount: %s is not a block device (maybe try `-o loop'?)"
+msgstr ""
+"mount: %s ¤Ï¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó (¿ʬ `-o loop' ¤È¤ä¤Ã¤Æ¤ß¤¿¤é¡©)"
+
+#: mount/mount.c:744
+#, c-format
+msgid "mount: %s is not a block device"
+msgstr "mount: %s ¤Ï¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: mount/mount.c:747
+#, c-format
+msgid "mount: %s is not a valid block device"
+msgstr "mount: %s ¤ÏÀµ¾ï¤Ê¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: mount/mount.c:751
+#, c-format
+msgid "mount: block device %s is not permitted on its filesystem"
+msgstr "mount: ¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹ %s ¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Çµö²Ä¤µ¤ì¤Þ¤»¤ó"
+
+#: mount/mount.c:767
+#, c-format
+msgid "mount: %s%s is write-protected, mounting read-only"
+msgstr "mount: %s%s ¤Ï½ñ¤­¹þ¤ß¶Ø»ß¤Ç¤¹¡¢Æɹþ¤ßÀìÍѤǥޥ¦¥ó¥È¤·¤Þ¤¹"
+
+#: mount/mount.c:768
+msgid "block device "
+msgstr "¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹ "
+
+#: mount/mount.c:854
+#, c-format
+msgid "mount: consider mounting %s by %s\n"
+msgstr "mount: %s ¤ò %s ¤Ç¥Þ¥¦¥ó¥È¤¹¤ë¤³¤È¤ò¹Í¤¨¤Æ¤ß¤Æ¤¯¤À¤µ¤¤\n"
+
+#: mount/mount.c:855
+msgid "UUID"
+msgstr ""
+
+#: mount/mount.c:855
+msgid "label"
+msgstr "¥é¥Ù¥ë"
+
+#: mount/mount.c:857 mount/mount.c:1173
+msgid "mount: no such partition found"
+msgstr "mount: ¤½¤Î¤è¤¦¤Ê¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+
+#: mount/mount.c:865
+msgid "mount: no type was given - I'll assume nfs because of the colon\n"
+msgstr "mount: ¥¿¥¤¥×¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Þ¤»¤ó -- ¥³¥í¥ó¤¬¤¢¤ë¤Î¤Ç nfs ¤ÎÍͤǤ¹¤¬\n"
+
+#.
+#. * Retry in the background.
+#.
+#: mount/mount.c:881
+#, c-format
+msgid "mount: backgrounding \"%s\"\n"
+msgstr "mount: ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É \"%s\"\n"
+
+#: mount/mount.c:892
+#, c-format
+msgid "mount: giving up \"%s\"\n"
+msgstr "mount: Äü¤á¤Þ¤·¤¿ \"%s\"\n"
+
+#: mount/mount.c:941
+#, c-format
+msgid "mount: %s already mounted on %s\n"
+msgstr "mount: %s ¤Ï %s ¤Ë¥Þ¥¦¥ó¥ÈºÑ¤Ç¤¹\n"
+
+#: mount/mount.c:1052
+msgid ""
+"Usage: mount [-hV]\n"
+"       mount -a [-nfFrsvw] [-t vfstypes]\n"
+"       mount [-nfrsvw] [-o options] special | node\n"
+"       mount [-nfrsvw] [-t vfstype] [-o options] special node\n"
+"       A special device can be indicated by  -L label  or  -U uuid .\n"
+msgstr ""
+"»È¤¤Êý: mount [-hV]\n"
+"        mount -a [-nfFrsvw] [-t ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à·¿]\n"
+"        mount [-nfrsvw] [-o ¥ª¥×¥·¥ç¥ó] special | node\n"
+"        mount [-nfrsvw] [-t ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à·¿] [-o ¥ª¥×¥·¥ç¥ó] special "
+"node\n"
+"        ¥¹¥Ú¥·¥ã¥ë¥Ç¥Ð¥¤¥¹¤Ï  -L ¥é¥Ù¥ë  Ëô¤Ï  -U uuid ¤Ç»Ø¼¨¤Ç¤­¤Þ¤¹¡£\n"
+
+#: mount/mount.c:1158
+msgid "mount: only root can do that"
+msgstr "mount: root ¤À¤±¤¬¤½¤ì¤ò¹Ô¤Ê¤¨¤Þ¤¹"
+
+#: mount/mount.c:1163
+#, c-format
+msgid "mount: no %s found - creating it..\n"
+msgstr "mount: %s ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó -- ºîÀ®¤·¤Þ¤¹..\n"
+
+#: mount/mount.c:1175
+#, c-format
+msgid "mount: mounting %s\n"
+msgstr "mount: %s ¤ò¥Þ¥¦¥ó¥È¤·¤Þ¤¹\n"
+
+#: mount/mount.c:1184
+msgid "not mounted anything"
+msgstr "²¿¤â¥Þ¥¦¥ó¥È¤·¤Þ¤»¤ó¤Ç¤·¤¿"
+
+#: mount/mount.c:1197
+#, c-format
+msgid "mount: cannot find %s in %s"
+msgstr "mount: %2$s Æâ¤Ë %2$s ¤ò¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó"
+
+#: mount/mount.c:1211
+#, c-format
+msgid "mount: can't find %s in %s or %s"
+msgstr "mount: %2$s ¤ä %3$s Æâ¤Ë %s ¤ò¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó"
+
+#: mount/mount_by_label.c:141
+msgid "mount: bad UUID"
+msgstr ""
+
+#: mount/mount_guess_fstype.c:187
+#, c-format
+msgid "mount: you didn't specify a filesystem type for %s\n"
+msgstr "mount: %s ¤Ø¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥×¤Î»ØÄ꤬¤¢¤ê¤Þ¤»¤ó\n"
+
+#: mount/mount_guess_fstype.c:190
+#, c-format
+msgid "       I will try type %s\n"
+msgstr "       ¥¿¥¤¥× %s ¤ò»î¤·¤Æ¤ß¤Þ¤¹\n"
+
+#: mount/mount_guess_fstype.c:192
+#, c-format
+msgid "       I will try all types mentioned in %s or %s\n"
+msgstr "       %s Ëô¤Ï %s ¤Î¥¿¥¤¥×¤ò»î¤·¤Æ¤ß¤Þ¤¹\n"
+
+#: mount/nfsmount.c:157
+msgid "mount: excessively long host:dir argument\n"
+msgstr "mount: ¶Ëü¤ËŤ¤ ¥Û¥¹¥È:¥Ç¥£¥ì¥¯¥È¥ê °ú¿ô\n"
+
+#: mount/nfsmount.c:170
+msgid "mount: warning: multiple hostnames not supported\n"
+msgstr "mount: ·Ù¹ð: Ê£¿ô¤Î¥Û¥¹¥È̾¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
+
+#: mount/nfsmount.c:174
+msgid "mount: directory to mount not in host:dir format\n"
+msgstr ""
+"mount: ¥Þ¥¦¥ó¥ÈÀè¥Ç¥£¥ì¥¯¥È¥ê¤¬ ¥Û¥¹¥È:¥Ç¥£¥ì¥¯¥È¥ê ·Á¼°¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤»¤ó\n"
+
+#: mount/nfsmount.c:185 mount/nfsmount.c:420
+#, c-format
+msgid "mount: can't get address for %s\n"
+msgstr "mount: %s ¤Î¥¢¥É¥ì¥¹¤¬¼èÆÀ¤Ç¤­¤Þ¤»¤ó\n"
+
+#: mount/nfsmount.c:191
+msgid "mount: got bad hp->h_length\n"
+msgstr "mount: ÉÔÀµ¤Ê hp->h_length Ãͤò¼èÆÀ¤·¤Þ¤·¤¿\n"
+
+#: mount/nfsmount.c:208
+msgid "mount: excessively long option argument\n"
+msgstr "mount: ¥ª¥×¥·¥ç¥ó°ú¿ô¤¬Ä¹¤¹¤®¤Þ¤¹\n"
+
+#: mount/nfsmount.c:299
+msgid "Warning: Unrecognized proto= option.\n"
+msgstr "·Ù¹ð: proto= ¥ª¥×¥·¥ç¥ó¤¬Íý²ò¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: mount/nfsmount.c:306
+msgid "Warning: Option namlen is not supported.\n"
+msgstr "·Ù¹ð: namlen ¥ª¥×¥·¥ç¥ó¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£\n"
+
+#: mount/nfsmount.c:310
+#, c-format
+msgid "unknown nfs mount parameter: %s=%d\n"
+msgstr "̤ÃΤΠnfs ¥Þ¥¦¥ó¥È¥Ñ¥é¥á¡¼¥¿: %s=%d\n"
+
+#: mount/nfsmount.c:345
+msgid "Warning: option nolock is not supported.\n"
+msgstr "·Ù¹ð: nolock ¥ª¥×¥·¥ç¥ó¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£\n"
+
+#: mount/nfsmount.c:348
+#, c-format
+msgid "unknown nfs mount option: %s%s\n"
+msgstr "̤ÃΤΠnfs ¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó: %s%s\n"
+
+#: mount/nfsmount.c:426
+msgid "mount: got bad hp->h_length?\n"
+msgstr "mount: ÉÔÀµ¤Ê hp->h_length Ãͤò¼èÆÀ¡©\n"
+
+#: mount/nfsmount.c:528
+#, c-format
+msgid "mount: %s:%s failed, reason given by server: %s\n"
+msgstr "mount: %s:%s ¤¬¼ºÇÔ¡¢¥µ¡¼¥Ð¡¼¤«¤é¤ÎÍýͳ: %s\n"
+
+#: mount/nfsmount.c:539
+msgid "NFS over TCP is not supported.\n"
+msgstr "TCP ·Ðͳ¤Î NFS ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£\n"
+
+#: mount/nfsmount.c:546
+msgid "nfs socket"
+msgstr ""
+
+#: mount/nfsmount.c:550
+msgid "nfs bindresvport"
+msgstr ""
+
+#: mount/nfsmount.c:561
+msgid "used portmapper to find NFS port\n"
+msgstr "NFS ¥Ý¡¼¥È¤ò¸«¤Ä¤±¤ë¤¿¤á¤Ë portmapper ¤òÍøÍÑ\n"
+
+#: mount/nfsmount.c:565
+#, c-format
+msgid "using port %d for nfs deamon\n"
+msgstr "nfs ¥Ç¡¼¥â¥ó¤Î¤¿¤á¤Ë %d È֥ݡ¼¥È¤òÍøÍÑ\n"
+
+#: mount/nfsmount.c:576
+msgid "nfs connect"
+msgstr ""
+
+#: mount/nfsmount.c:665
+#, c-format
+msgid "unknown nfs status return value: %d"
+msgstr "̤ÃΤΠnfs ¥¹¥Æ¡¼¥¿¥¹ÃͤòÊÖ¤·¤Þ¤·¤¿: %d"
+
+#: mount/sundries.c:40 mount/sundries.c:55
+msgid "not enough memory"
+msgstr "¥á¥â¥ê¤¬ÉÔ½½Ê¬¤Ç¤¹"
+
+#: mount/sundries.c:65
+msgid "bug in xstrndup call"
+msgstr ""
+
+#: mount/swapon.c:51
+#, c-format
+msgid ""
+"usage: %s [-hV]\n"
+"       %s -a [-v]\n"
+"       %s [-v] [-p priority] special ...\n"
+"       %s [-s]\n"
+msgstr ""
+"»È¤¤Êý: %s [-hV]\n"
+"        %s -a [-v]\n"
+"        %s [-v] [-p Í¥ÀèÅÙ] ¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë ...\n"
+"        %s [-s]\n"
+
+#: mount/swapon.c:88
+#, c-format
+msgid "%s on %s\n"
+msgstr "%2$s ¤Ë %1$s\n"
+
+#: mount/swapon.c:93
+#, c-format
+msgid "swapon: cannot stat %s: %s\n"
+msgstr "swapon: %s ¤Î¾õÂÖ¼èÆÀ¤¬¤Ç¤­¤Þ¤»¤ó: %s\n"
+
+#: mount/swapon.c:100
+#, c-format
+msgid "swapon: warning: %s has insecure permissions %04o, 0600 suggested\n"
+msgstr ""
+"swapon: ·Ù¹ð: %s ¤Ï°ÂÁ´¤Ç¤Ê¤¤¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó %04o ¤Ç¤¹ 0600 ¤ò´«¤á¤Þ¤¹\n"
+
+#: mount/swapon.c:108
+#, c-format
+msgid "swapon: Skipping file %s - it appears to have holes.\n"
+msgstr "swapon: ¥Õ¥¡¥¤¥ë %s ¤ò¥¹¥­¥Ã¥× -- ¥Û¡¼¥ë¤ò¸¡½Ð¡£\n"
+
+#: mount/swapon.c:213
+#, c-format
+msgid "%s: cannot open %s: %s\n"
+msgstr "%s: %s ¤ò³«¤±¤Þ¤»¤ó: %s\n"
+
+#: mount/umount.c:65
+msgid "umount: compiled without support for -f\n"
+msgstr "mount: -f ¥ª¥×¥·¥ç¥ó¤Î¥µ¥Ý¡¼¥È̵¤·¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤Þ¤¹\n"
+
+#: mount/umount.c:115
+#, c-format
+msgid "host: %s, directory: %s\n"
+msgstr "¥Û¥¹¥È: %s, ¥Ç¥£¥ì¥¯¥È¥ê: %s\n"
+
+#: mount/umount.c:132
+#, c-format
+msgid "umount: can't get address for %s\n"
+msgstr "umount: %s ¤Î¥¢¥É¥ì¥¹¤¬¼èÆÀ¤Ç¤­¤Þ¤»¤ó\n"
+
+#: mount/umount.c:137
+msgid "umount: got bad hostp->h_length\n"
+msgstr "umount: ÉÔÀµ¤Ê hostp->h_length Ãͤò¼èÆÀ¤·¤Þ¤·¤¿\n"
+
+#: mount/umount.c:175
+#, c-format
+msgid "umount: %s: invalid block device"
+msgstr "umount: %s ¤ÏÉÔÀµ¤Ê¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤¹"
+
+#: mount/umount.c:177
+#, c-format
+msgid "umount: %s: not mounted"
+msgstr "umount: %s: ¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+
+#: mount/umount.c:179
+#, c-format
+msgid "umount: %s: can't write superblock"
+msgstr "umount: %s: ¥¹¡¼¥Ñ¡¼¥Ö¥í¥Ã¥¯¤Ë½ñ¤­¹þ¤á¤Þ¤»¤ó"
+
+#. Let us hope fstab has a line "proc /proc ..."
+#. and not "none /proc ..."
+#: mount/umount.c:183
+#, c-format
+msgid "umount: %s: device is busy"
+msgstr "umount: %s: ¥Ç¥Ð¥¤¥¹¤ò»ÈÍÑÃæ¤Ç¤¹"
+
+#: mount/umount.c:185
+#, c-format
+msgid "umount: %s: not found"
+msgstr "umount: %s: ¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+
+#: mount/umount.c:187
+#, c-format
+msgid "umount: %s: must be superuser to umount"
+msgstr "umount: %s: ¥¢¥ó¥Þ¥¦¥ó¥È¤¹¤ë¤Ë¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
+
+#: mount/umount.c:189
+#, c-format
+msgid "umount: %s: block devices not permitted on fs"
+msgstr "umount: %s: ¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Çµö²Ä¤µ¤ì¤Þ¤»¤ó"
+
+#: mount/umount.c:191
+#, c-format
+msgid "umount: %s: %s"
+msgstr "umount: %s: %s"
+
+#: mount/umount.c:235
+msgid "no umount2, trying umount...\n"
+msgstr "umount2 ¤¬¤¢¤ê¤Þ¤»¤ó¡¢umount ¤·¤Æ¤ß¤Þ¤¹...\n"
+
+#: mount/umount.c:248
+#, c-format
+msgid "could not umount %s - trying %s instead\n"
+msgstr "%s ¤ò¥¢¥ó¥Þ¥¦¥ó¥È¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿ -- Âå¤ê¤Ë %s ¤ò»È¤Ã¤Æ¤ß¤Þ¤¹\n"
+
+#: mount/umount.c:264
+#, c-format
+msgid "umount: %s busy - remounted read-only\n"
+msgstr "umount: %s ¤Ï»ÈÍÑÃæ¤Ç¤¹ -- Æɹþ¤ßÀìÍѤȤ·¤ÆºÆ¥Þ¥¦¥ó¥È¤·¤Þ¤¹\n"
+
+#: mount/umount.c:272
+#, c-format
+msgid "umount: could not remount %s read-only\n"
+msgstr "umount: %s ¤òÆɹþ¤ßÀìÍѤǺƥޥ¦¥ó¥È¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿\n"
+
+#: mount/umount.c:280
+#, c-format
+msgid "%s umounted\n"
+msgstr "%s ¤Ï¥¢¥ó¥Þ¥¦¥ó¥È¤µ¤ì¤Þ¤·¤¿\n"
+
+#: mount/umount.c:363
+msgid "umount: cannot find list of filesystems to unmount"
+msgstr "umount: ¥¢¥ó¥Þ¥¦¥ó¥È¤Î¤¿¤á¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥ê¥¹¥È¤ò¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó"
+
+#: mount/umount.c:392
+msgid ""
+"Usage: umount [-hV]\n"
+"       umount -a [-f] [-r] [-n] [-v] [-t vfstypes]\n"
+"       umount [-f] [-r] [-n] [-v] special | node...\n"
+msgstr ""
+"»È¤¤Êý: umount [-hV]\n"
+"        umount -a [-f] [-r] [-n] [-v] [-t ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥×]\n"
+"        umount [-f] [-r] [-n] [-v] special | node...\n"
+
+#: mount/umount.c:453
+msgid "umount: only root can do that"
+msgstr "umount: ¤½¤ì¤¬½ÐÍè¤ë¤Î¤Ï root ¤À¤±¤Ç¤¹"
+
+#: mount/umount.c:468
+#, c-format
+msgid "Trying to umount %s\n"
+msgstr "%s ¤ò¥¢¥ó¥Þ¥¦¥ó¥È¤·¤Þ¤¹\n"
+
+#: mount/umount.c:472
+#, c-format
+msgid "Could not find %s in mtab\n"
+msgstr "mtab ¤Ë %s ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó\n"
+
+#: mount/umount.c:476
+#, c-format
+msgid "umount: %s is not mounted (according to mtab)"
+msgstr "umount: %s ¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó (mtab ¤Ë¤è¤ë¤È)"
+
+#: mount/umount.c:478
+#, c-format
+msgid "umount: it seems %s is mounted multiple times"
+msgstr "umount: %s ¤ÏÊ£¿ô¥Þ¥¦¥ó¥È¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ç¤¹"
+
+#: mount/umount.c:480
+#, c-format
+msgid "umount: %s is not in the fstab (and you are not root)"
+msgstr ""
+"umount: %s ¤Ï fstab ¤Ë¤¢¤ê¤Þ¤»¤ó (¤µ¤é¤Ë¡¢¤¢¤Ê¤¿¤Ï root ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó)"
+
+#: mount/umount.c:486
+#, c-format
+msgid "umount: %s mount disagrees with the fstab"
+msgstr "umount: %s ¤Ï fstab ¤È°ìÃפ·¤Ê¤¤¥Þ¥¦¥ó¥È¤Ç¤¹"
+
+#: mount/umount.c:505
+#, c-format
+msgid "umount: only root can unmount %s from %s"
+msgstr "umount: %s ¤ò %s ¤«¤é¥¢¥ó¥Þ¥¦¥ó¥È¤Ç¤­¤ë¤Î¤Ï root ¤À¤±¤Ç¤¹"
+
+#: mount/umount.c:515
+#, c-format
+msgid "umount: only %s can unmount %s from %s"
+msgstr "umount: %s ¤ò %s ¤«¤é¥¢¥ó¥Þ¥¦¥ó¥È¤Ç¤­¤ë¤Î¤Ï %s ¤À¤±¤Ç¤¹"
+
+#: sys-utils/ctrlaltdel.c:26
+msgid "You must be root to set the Ctrl-Alt-Del behaviour.\n"
+msgstr ""
+"¤½¤Î Ctrl-Alt-Del ¤Î¿¶¤ëÉñ¤¤¤òÀßÄꤹ¤ë¤Ë¤Ï root ¤Ç̵¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£\n"
+
+#: sys-utils/ctrlaltdel.c:41
+msgid "Usage: ctrlaltdel hard|soft\n"
+msgstr "»È¤¤Êý: ctrlaltdel hard|soft\n"
+
+#: sys-utils/cytune.c:118
+#, c-format
+msgid ""
+"File %s, For threshold value %lu, Maximum characters in fifo were %d,\n"
+"and the maximum transfer rate in characters/second was %f\n"
+msgstr ""
+"¥Õ¥¡¥¤¥ë %s¡¢¤·¤­¤¤ÃÍ %lu¡¢¥Ñ¥¤¥×Æâ¤ÎºÇÂ祭¥ã¥é¥¯¥¿¿ô¤Ï %d ¤Ç¤·¤¿¡£\n"
+"ÉôֺÇÂ祭¥ã¥é¥¯¥¿Å¾Á÷¥ì¡¼¥È¤Ï %f ¤Ç¤·¤¿¡£\n"
+
+#: sys-utils/cytune.c:129
+#, c-format
+msgid ""
+"File %s, For threshold value %lu and timrout value %lu, Maximum characters "
+"in fifo were %d,\n"
+"and the maximum transfer rate in characters/second was %f\n"
+msgstr ""
+"¥Õ¥¡¥¤¥ë %s¡¢¤·¤­¤¤ÃÍ %lu µÚ¤Ó¥¿¥¤¥à¥¢¥¦¥ÈÃÍ %lu¡¢¥Ñ¥¤¥×Æâ¤ÎºÇÂ祭¥ã¥é¥¯¥¿\n"
+"¿ô¤Ï¡¢%d ¤Ç¤·¤¿¡£ÉôֺÇÂ祭¥ã¥é¥¯¥¿Å¾Á÷¥ì¡¼¥È¤Ï %f ¤Ç¤·¤¿¡£\n"
+
+#: sys-utils/cytune.c:196
+#, c-format
+msgid "Invalid interval value: %s\n"
+msgstr "ÉÔÀµ¤ÊÆâÉôÃÍ: %s\n"
+
+#: sys-utils/cytune.c:204
+#, c-format
+msgid "Invalid set value: %s\n"
+msgstr "ÉÔÀµ¤ÊÀßÄêÃÍ: %s\n"
+
+#: sys-utils/cytune.c:212
+#, c-format
+msgid "Invalid default value: %s\n"
+msgstr "ÉÔÀµ¤Ê½é´üÃÍ: %s\n"
+
+#: sys-utils/cytune.c:220
+#, c-format
+msgid "Invalid set time value: %s\n"
+msgstr "ÉÔÀµ¤ÊÀßÄê»þ¹ï: %s\n"
+
+#: sys-utils/cytune.c:228
+#, c-format
+msgid "Invalid default time value: %s\n"
+msgstr "ÉÔÀµ¤Ê½é´ü»þ¹ï: %s\n"
+
+#: sys-utils/cytune.c:245
+#, c-format
+msgid ""
+"Usage: %s [-q [-i interval]] ([-s value]|[-S value]) ([-t value]|[-T value]) "
+"[-g|-G] file [file...]\n"
+msgstr ""
+"»È¤¤Êý: %s [-q [-i ´Ö³Ö]] ([-s ÃÍ]|[-S ÃÍ]) ([-t ÃÍ]|[-T ÃÍ]) [-g|-G] "
+"¥Õ¥¡¥¤¥ë [¥Õ¥¡¥¤¥ë...]\n"
+
+#: sys-utils/cytune.c:257 sys-utils/cytune.c:275 sys-utils/cytune.c:294
+#: sys-utils/cytune.c:342
+#, c-format
+msgid "Can't open %s: %s\n"
+msgstr "%s ¤ò³«¤±¤Þ¤»¤ó: %s\n"
+
+#: sys-utils/cytune.c:264
+#, c-format
+msgid "Can't set %s to threshold %d: %s\n"
+msgstr "%s ¤ò¤·¤­¤¤ÃÍ %s ¤ËÀßÄê¤Ç¤­¤Þ¤»¤ó: %s\n"
+
+#: sys-utils/cytune.c:282
+#, c-format
+msgid "Can't set %s to time threshold %d: %s\n"
+msgstr "%s ¤ò»þ´Ö¤·¤­¤¤ÃÍ %d ¤ËÀßÄê¤Ç¤­¤Þ¤»¤ó: %s\n"
+
+#: sys-utils/cytune.c:299 sys-utils/cytune.c:354 sys-utils/cytune.c:385
+#, c-format
+msgid "Can't get threshold for %s: %s\n"
+msgstr "%s ¤Ø¤Î¤·¤­¤¤Ãͤ¬¼èÆÀ¤Ç¤­¤Þ¤»¤ó: %s\n"
+
+#: sys-utils/cytune.c:305 sys-utils/cytune.c:360 sys-utils/cytune.c:391
+#, c-format
+msgid "Can't get timeout for %s: %s\n"
+msgstr "%s ¤Ø¤Î¥¿¥¤¥à¥¢¥¦¥È¤¬¼èÆÀ¤Ç¤­¤Þ¤»¤ó: %s\n"
+
+#: sys-utils/cytune.c:309
+#, c-format
+msgid "%s: %ld %s threshold and %ld %s timeout\n"
+msgstr "%s: %s ¤·¤­¤¤ÃÍ %ld µÚ¤Ó %s ¥¿¥¤¥à¥¢¥¦¥È %ld\n"
+
+#: sys-utils/cytune.c:311 sys-utils/cytune.c:313
+msgid "current"
+msgstr "¸½ºß"
+
+#: sys-utils/cytune.c:311 sys-utils/cytune.c:313
+msgid "default"
+msgstr "½é´üÃÍ"
+
+#: sys-utils/cytune.c:330
+msgid "Can't set signal handler"
+msgstr "¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤òÀßÄê¤Ç¤­¤Þ¤»¤ó"
+
+#: sys-utils/cytune.c:334 sys-utils/cytune.c:369
+msgid "gettimeofday failed"
+msgstr "gettimeofday ¤¬¼ºÇÔ"
+
+#: sys-utils/cytune.c:347 sys-utils/cytune.c:379
+#, c-format
+msgid "Can't issue CYGETMON on %s: %s\n"
+msgstr "%s ¤Ç CYGETMON ¤¬È¯¹Ô¤Ç¤­¤Þ¤»¤ó: %s\n"
+
+#: sys-utils/cytune.c:421
+#, c-format
+msgid "%s: %lu ints, %lu/%lu chars; "
+msgstr ""
+
+#: sys-utils/cytune.c:422
+#, c-format
+msgid "fifo: %lu thresh, %lu tmout, "
+msgstr ""
+
+#: sys-utils/cytune.c:423
+#, c-format
+msgid "%lu max, %lu now\n"
+msgstr ""
+
+#: sys-utils/cytune.c:428
+#, c-format
+msgid "   %f int/sec; %f rec, %f send (char/sec)\n"
+msgstr "   %f À°¿ô/ÉÃ; %f µ­Ï¿, %f Á÷¿® (¥­¥ã¥é¥¯¥¿/ÉÃ)\n"
+
+#: sys-utils/cytune.c:433
+#, c-format
+msgid ""
+"%s: %lu ints, %lu chars; fifo: %lu thresh, %lu tmout, %lu max, %lu now\n"
+msgstr ""
+"%s: À°¿ô %lu¡¢¥­¥ã¥é¥¯¥¿ %lu -- fifo: ¤·¤­¤¤ÃÍ %lu¡¢¥¿¥¤¥à¥¢¥¦¥È %lu¡¢\n"
+"    ºÇÂç %lu¡¢¸½ºß %lu\n"
+
+#: sys-utils/cytune.c:438
+#, c-format
+msgid "   %f int/sec; %f rec (char/sec)\n"
+msgstr "   %f À°¿ô/Éà-- %f µ­Ï¿ (¥­¥ã¥é¥¯¥¿/ÉÃ)\n"
+
+#: sys-utils/dmesg.c:38
+#, c-format
+msgid "Usage: %s [-c] [-n level] [-s bufsize]\n"
+msgstr "»È¤¤Êý: %s [-c] [-n ¥ì¥Ù¥ë] [-s ¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º]\n"
+
+#: sys-utils/ipcrm.c:46
+#, c-format
+msgid "usage: %s [shm | msg | sem] id\n"
+msgstr "»È¤¤Êý: %s [shm | msg | sem] id\n"
+
+#: sys-utils/ipcrm.c:70
+#, c-format
+msgid "usage: %s [-shm | -msg | -sem] id\n"
+msgstr "\\»È¤¤Êý: %s [-shm | -msg | -sem] id\n"
+
+#: sys-utils/ipcrm.c:73
+msgid "resource deleted\n"
+msgstr "¥ê¥½¡¼¥¹¤òºï½ü¤·¤Þ¤·¤¿\n"
+
+#: sys-utils/ipcs.c:91
+#, c-format
+msgid "usage : %s -asmq -tclup \n"
+msgstr "»È¤¤Êý : %s -asmq -tclup \n"
+
+#: sys-utils/ipcs.c:92
+#, c-format
+msgid "\t%s [-s -m -q] -i id\n"
+msgstr "\t%s [-s -m -q] -i id\n"
+
+#: sys-utils/ipcs.c:93
+#, c-format
+msgid "\t%s -h for help.\n"
+msgstr "\t%s -h ¤Ç¥Ø¥ë¥×¤òɽ¼¨¡£\n"
+
+#: sys-utils/ipcs.c:99
+#, c-format
+msgid "%s provides information on ipc facilities for"
+msgstr "%s ¤Ï¤¢¤Ê¤¿¤¬Æɤ߹þ¤ß¤Ç¤­¤ë ipc ¤Î¥ê¥½¡¼¥¹¾õ¶·¤Ê¤É¤Î¾ðÊó¤òÄ󶡤·¤Þ¤¹¡£"
+
+#: sys-utils/ipcs.c:100
+msgid " which you have read access.\n"
+msgstr " \n"
+
+#: sys-utils/ipcs.c:101
+msgid ""
+"Resource Specification:\n"
+"\t-m : shared_mem\n"
+"\t-q : messages\n"
+msgstr ""
+"¥ê¥½¡¼¥¹»ØÄê:\n"
+"\t-m : ¥·¥§¥¢¡¼¥É¥á¥â¥ê\n"
+"\t-q : ¥á¥Ã¥»¡¼¥¸\n"
+
+#: sys-utils/ipcs.c:102
+msgid ""
+"\t-s : semaphores\n"
+"\t-a : all (default)\n"
+msgstr ""
+"\t-s : ¥»¥Þ¥Õ¥©\n"
+"\t-a : Á´¤Æ (½é´üÃÍ)\n"
+
+#: sys-utils/ipcs.c:103
+msgid ""
+"Output Format:\n"
+"\t-t : time\n"
+"\t-p : pid\n"
+"\t-c : creator\n"
+msgstr ""
+"½ÐÎϽñ¼°:\n"
+"\t-t : »þ´Ö\n"
+"\t-p : ¥×¥í¥»¥¹ID\n"
+"\t-c : ºîÀ®¼Ô\n"
+
+#: sys-utils/ipcs.c:104
+msgid ""
+"\t-l : limits\n"
+"\t-u : summary\n"
+msgstr ""
+"\t-l : À©¸Â\n"
+"\t-u : Í×Ìó\n"
+
+#: sys-utils/ipcs.c:105
+msgid "-i id [-s -q -m] : details on resource identified by id\n"
+msgstr "-i id [-s -q -m] : id ¤Ë¤è¤Ã¤Æ¼±Ê̤µ¤ì¤ë¥ê¥½¡¼¥¹¤Î¾ÜºÙ\n"
+
+#: sys-utils/ipcs.c:237 sys-utils/ipcs.c:439
+msgid "kernel not configured for shared memory\n"
+msgstr "¥«¡¼¥Í¥ë¤Ï¥·¥§¥¢¡¼¥É¥á¥â¥ê¤Î°Ù¤ÎÀßÄ꤬¹Ô¤ï¤ì¤Æ¤¤¤Þ¤»¤ó\n"
+
+#: sys-utils/ipcs.c:243
+msgid "------ Shared Memory Limits --------\n"
+msgstr "------ ¥·¥§¥¢¡¼¥É¥á¥â¥ê¤ÎÀ©¸Â --------\n"
+
+#: sys-utils/ipcs.c:246
+#, c-format
+msgid "max number of segments = %d\n"
+msgstr "¥»¥°¥á¥ó¥È¿ô¤ÎºÇÂçÃÍ = %d\n"
+
+#: sys-utils/ipcs.c:247
+#, c-format
+msgid "max seg size (kbytes) = %d\n"
+msgstr "¥»¥°¥á¥ó¥È¥µ¥¤¥º¤ÎºÇÂç (ñ°Ì:KB) = %d\n"
+
+#: sys-utils/ipcs.c:248
+#, c-format
+msgid "max total shared memory (kbytes) = %d\n"
+msgstr "¹ç·×¥·¥§¥¢¡¼¥É¥á¥â¥ê¤ÎºÇÂç (ñ°Ì:KB) = %d\n"
+
+#: sys-utils/ipcs.c:249
+#, c-format
+msgid "min seg size (bytes) = %d\n"
+msgstr "¥»¥°¥á¥ó¥È¥µ¥¤¥º¤ÎºÇ¾® (ñ°Ì:KB) = %d\n"
+
+#: sys-utils/ipcs.c:253
+msgid "------ Shared Memory Status --------\n"
+msgstr "------ ¥·¥§¥¢¡¼¥É¥á¥â¥ê¤Î¾õÂÖ --------\n"
+
+#: sys-utils/ipcs.c:254
+#, c-format
+msgid "segments allocated %d\n"
+msgstr "³ÎÊݤµ¤ì¤¿¥»¥°¥á¥ó¥È %d\n"
+
+#: sys-utils/ipcs.c:255
+#, c-format
+msgid "pages allocated %ld\n"
+msgstr "³ÎÊݤµ¤ì¤¿¥Ú¡¼¥¸     %ld\n"
+
+#: sys-utils/ipcs.c:256
+#, c-format
+msgid "pages resident  %ld\n"
+msgstr "¸ÇÄꤵ¤ì¤¿¥Ú¡¼¥¸     %ld\n"
+
+#: sys-utils/ipcs.c:257
+#, c-format
+msgid "pages swapped   %ld\n"
+msgstr "¥¹¥ï¥Ã¥×¤µ¤ì¤¿¥Ú¡¼¥¸ %ld\n"
+
+#: sys-utils/ipcs.c:258
+#, c-format
+msgid "Swap performance: %ld attempts\t %ld successes\n"
+msgstr "¥¹¥ï¥Ã¥×¤ÎÆ°ºî: %ld ²ó»î¤ß %ld ²óÀ®¸ù\n"
+
+#: sys-utils/ipcs.c:263
+msgid "------ Shared Memory Segment Creators/Owners --------\n"
+msgstr "------ ¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È ºîÀ®¼Ô/½êÍ­¼Ô --------\n"
+
+#: sys-utils/ipcs.c:264 sys-utils/ipcs.c:370 sys-utils/ipcs.c:462
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s%-10s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:271 sys-utils/ipcs.c:276
+#: sys-utils/ipcs.c:281 sys-utils/ipcs.c:377
+msgid "shmid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:282 sys-utils/ipcs.c:371
+#: sys-utils/ipcs.c:386 sys-utils/ipcs.c:463 sys-utils/ipcs.c:480
+msgid "perms"
+msgstr "¸¢¸Â"
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:371 sys-utils/ipcs.c:463
+msgid "cuid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:371 sys-utils/ipcs.c:463
+msgid "cgid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:371 sys-utils/ipcs.c:463
+msgid "uid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:463
+msgid "gid"
+msgstr ""
+
+#: sys-utils/ipcs.c:269
+msgid "------ Shared Memory Attach/Detach/Change Times --------\n"
+msgstr "------ ¥·¥§¥¢¡¼¥É¥á¥â¥ê ·ë¹ç/ʬΥ/Êѹ¹²ó¿ô --------\n"
+
+#: sys-utils/ipcs.c:270
+#, c-format
+msgid "%-10s%-10s  %-20s%-20s%-20s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:271 sys-utils/ipcs.c:276 sys-utils/ipcs.c:282
+#: sys-utils/ipcs.c:377 sys-utils/ipcs.c:386 sys-utils/ipcs.c:469
+#: sys-utils/ipcs.c:474 sys-utils/ipcs.c:480
+msgid "owner"
+msgstr "½êÍ­¼Ô"
+
+#: sys-utils/ipcs.c:271
+msgid "attached"
+msgstr "·ë¹ç"
+
+#: sys-utils/ipcs.c:271
+msgid "detached"
+msgstr "ʬΥ"
+
+#: sys-utils/ipcs.c:271
+msgid "changed"
+msgstr "Êѹ¹"
+
+#: sys-utils/ipcs.c:275
+msgid "------ Shared Memory Creator/Last-op --------\n"
+msgstr "------ ¥·¥§¥¢¡¼¥É¥á¥â¥ê ºîÀ®¼Ô/ľ¶á¤ÎÌ¿Îá --------\n"
+
+#: sys-utils/ipcs.c:276 sys-utils/ipcs.c:474
+#, c-format
+msgid "%-10s%-10s%-10s%-10s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:276
+msgid "cpid"
+msgstr ""
+
+#: sys-utils/ipcs.c:276
+msgid "lpid"
+msgstr ""
+
+#: sys-utils/ipcs.c:280
+msgid "------ Shared Memory Segments --------\n"
+msgstr "------ ¥·¥§¥¢¡¼¥É¥á¥â¥ê¥»¥°¥á¥ó¥È --------\n"
+
+#: sys-utils/ipcs.c:281
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s%-10s%-12s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:281 sys-utils/ipcs.c:386 sys-utils/ipcs.c:479
+msgid "key"
+msgstr ""
+
+#: sys-utils/ipcs.c:282
+msgid "bytes"
+msgstr "¥Ð¥¤¥È"
+
+#: sys-utils/ipcs.c:282
+msgid "nattch"
+msgstr ""
+
+#: sys-utils/ipcs.c:282 sys-utils/ipcs.c:386
+msgid "status"
+msgstr "¾õÂÖ"
+
+#: sys-utils/ipcs.c:302 sys-utils/ipcs.c:303 sys-utils/ipcs.c:304
+#: sys-utils/ipcs.c:407 sys-utils/ipcs.c:408 sys-utils/ipcs.c:500
+#: sys-utils/ipcs.c:501 sys-utils/ipcs.c:502
+msgid "Not set"
+msgstr "¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+
+#: sys-utils/ipcs.c:324
+msgid "dest"
+msgstr "ÂоÝ"
+
+#: sys-utils/ipcs.c:325
+msgid "locked"
+msgstr "¥í¥Ã¥¯"
+
+#: sys-utils/ipcs.c:345
+msgid "kernel not configured for semaphores\n"
+msgstr "¥«¡¼¥Í¥ë¤¬¥»¥Þ¥Õ¥©¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤è¤¦¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
+
+#: sys-utils/ipcs.c:351
+msgid "------ Semaphore Limits --------\n"
+msgstr "------ ¥»¥Þ¥Õ¥©¤ÎÀ©¸Â --------\n"
+
+#: sys-utils/ipcs.c:355
+#, c-format
+msgid "max number of arrays = %d\n"
+msgstr "ºÇÂçÇÛÎó¿ô = %d\n"
+
+#: sys-utils/ipcs.c:356
+#, c-format
+msgid "max semaphores per array = %d\n"
+msgstr "ÇÛÎóËè¤ÎºÇÂ祻¥Þ¥Õ¥©¿ô = %d\n"
+
+#: sys-utils/ipcs.c:357
+#, c-format
+msgid "max semaphores system wide = %d\n"
+msgstr "¥·¥¹¥Æ¥àÁ´ÂΤκÇÂ祻¥Þ¥Õ¥©¿ô = %d\n"
+
+#: sys-utils/ipcs.c:358
+#, c-format
+msgid "max ops per semop call = %d\n"
+msgstr "semop ¸Æ¤Ó½Ð¤·Ëè¤ÎºÇÂçÌ¿Îá¿ô = %d\n"
+
+#: sys-utils/ipcs.c:359
+#, c-format
+msgid "semaphore max value = %d\n"
+msgstr "¥»¥Þ¥Õ¥©ºÇÂçÃÍ = %d\n"
+
+#: sys-utils/ipcs.c:363
+msgid "------ Semaphore Status --------\n"
+msgstr "------ ¥»¥Þ¥Õ¥©¤Î¾õÂÖ --------\n"
+
+#: sys-utils/ipcs.c:364
+#, c-format
+msgid "used arrays = %d\n"
+msgstr "»ÈÍÑÇÛÎó¿ô = %d\n"
+
+#: sys-utils/ipcs.c:365
+#, c-format
+msgid "allocated semaphores = %d\n"
+msgstr "³ÎÊݤµ¤ì¤¿¥»¥Þ¥Õ¥©¿ô = %d\n"
+
+#: sys-utils/ipcs.c:369
+msgid "------ Semaphore Arrays Creators/Owners --------\n"
+msgstr "------ ¥»¥Þ¥Õ¥©ÇÛÎó ºîÀ®¼Ô/½êÍ­¼Ô --------\n"
+
+#: sys-utils/ipcs.c:371 sys-utils/ipcs.c:386
+msgid "semid"
+msgstr ""
+
+#: sys-utils/ipcs.c:375
+msgid "------ Shared Memory Operation/Change Times --------\n"
+msgstr "------ ¥·¥§¥¢¡¼¥É¥á¥â¥ê Ì¿Îá/Êѹ¹²ó¿ô --------\n"
+
+#: sys-utils/ipcs.c:376
+#, c-format
+msgid "%-8s%-10s  %-26.24s %-26.24s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:377
+msgid "last-op"
+msgstr ""
+
+#: sys-utils/ipcs.c:377
+msgid "last-changed"
+msgstr ""
+
+#: sys-utils/ipcs.c:384
+msgid "------ Semaphore Arrays --------\n"
+msgstr "------ ¥»¥Þ¥Õ¥©ÇÛÎó --------\n"
+
+#: sys-utils/ipcs.c:385
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s%-12s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:386
+msgid "nsems"
+msgstr ""
+
+#: sys-utils/ipcs.c:447
+msgid "------ Messages: Limits --------\n"
+msgstr "------ ¥á¥Ã¥»¡¼¥¸: À©¸Â --------\n"
+
+#: sys-utils/ipcs.c:448
+#, c-format
+msgid "max queues system wide = %d\n"
+msgstr "¥·¥¹¥Æ¥àÁ´ÂΤǤκÇÂ祭¥å¡¼¿ô = %d\n"
+
+#: sys-utils/ipcs.c:449
+#, c-format
+msgid "max size of message (bytes) = %d\n"
+msgstr "ºÇÂç¥á¥Ã¥»¡¼¥¸¥µ¥¤¥º (¥Ð¥¤¥È) = %d\n"
+
+#: sys-utils/ipcs.c:450
+#, c-format
+msgid "default max size of queue (bytes) = %d\n"
+msgstr "¥­¥å¡¼¥µ¥¤¥ººÇÂçÃͤνé´üÃÍ (¥Ð¥¤¥È) = %d\n"
+
+#: sys-utils/ipcs.c:454
+msgid "------ Messages: Status --------\n"
+msgstr "------ ¥á¥Ã¥»¡¼¥¸: ¾õÂÖ --------\n"
+
+#: sys-utils/ipcs.c:455
+#, c-format
+msgid "allocated queues = %d\n"
+msgstr "³ÎÊݺѤߥ­¥å¡¼¿ô = %d\n"
+
+#: sys-utils/ipcs.c:456
+#, c-format
+msgid "used headers = %d\n"
+msgstr "»ÈÍѺѥإåÀ = %d\n"
+
+#: sys-utils/ipcs.c:457
+#, c-format
+msgid "used space = %d bytes\n"
+msgstr "»ÈÍѺѶõ´Ö = %d ¥Ð¥¤¥È\n"
+
+#: sys-utils/ipcs.c:461
+msgid "------ Message Queues: Creators/Owners --------\n"
+msgstr "------ ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼: ºîÀ®¼Ô/½êÍ­¼Ô --------\n"
+
+#: sys-utils/ipcs.c:463 sys-utils/ipcs.c:469 sys-utils/ipcs.c:474
+#: sys-utils/ipcs.c:479
+msgid "msqid"
+msgstr ""
+
+#: sys-utils/ipcs.c:467
+msgid "------ Message Queues Send/Recv/Change Times --------\n"
+msgstr "------ ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼ Á÷¿®/¼õ¿®/Êѹ¹²ó¿ô --------\n"
+
+#: sys-utils/ipcs.c:468
+#, c-format
+msgid "%-8s%-10s  %-20s%-20s%-20s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:469
+msgid "send"
+msgstr "Á÷¿®"
+
+#: sys-utils/ipcs.c:469
+msgid "recv"
+msgstr "¼õ¿®"
+
+#: sys-utils/ipcs.c:469
+msgid "change"
+msgstr "Êѹ¹"
+
+#: sys-utils/ipcs.c:473
+msgid "------ Message Queues PIDs --------\n"
+msgstr "------ ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼ PIDs --------\n"
+
+#: sys-utils/ipcs.c:474
+msgid "lspid"
+msgstr ""
+
+#: sys-utils/ipcs.c:474
+msgid "lrpid"
+msgstr ""
+
+#: sys-utils/ipcs.c:478
+msgid "------ Message Queues --------\n"
+msgstr "------ ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼ --------\n"
+
+#: sys-utils/ipcs.c:479
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-12s%-12s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:480
+msgid "used-bytes"
+msgstr "»ÈÍѥХ¤¥È¿ô"
+
+#: sys-utils/ipcs.c:480
+msgid "messages"
+msgstr "¥á¥Ã¥»¡¼¥¸"
+
+#: sys-utils/ipcs.c:539
+#, c-format
+msgid ""
+"\n"
+"Shared memory Segment shmid=%d\n"
+msgstr ""
+"\n"
+"¥·¥§¥¢¡¼¥É¥á¥â¥ê¥»¥°¥á¥ó¥È shmid=%d\n"
+
+#: sys-utils/ipcs.c:540
+#, c-format
+msgid "uid=%d\tgid=%d\tcuid=%d\tcgid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:542
+#, c-format
+msgid "mode=%#o\taccess_perms=%#o\n"
+msgstr "¥â¡¼¥É=%#o\t¥¢¥¯¥»¥¹¸¢=%#o\n"
+
+#: sys-utils/ipcs.c:543
+#, c-format
+msgid "bytes=%d\tlpid=%d\tcpid=%d\tnattch=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:546
+#, c-format
+msgid "att_time=%s"
+msgstr ""
+
+#: sys-utils/ipcs.c:547 sys-utils/ipcs.c:549 sys-utils/ipcs.c:598
+msgid "Not set\n"
+msgstr "¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
+
+#: sys-utils/ipcs.c:548
+#, c-format
+msgid "det_time=%s"
+msgstr ""
+
+#: sys-utils/ipcs.c:550
+#, c-format
+msgid "change_time=%s"
+msgstr "Êѹ¹²ó¿ô=%s"
+
+#: sys-utils/ipcs.c:566
+#, c-format
+msgid ""
+"\n"
+"Message Queue msqid=%d\n"
+msgstr ""
+"\n"
+"¥á¥Ã¥»¡¼¥¸¥­¥å¡¼ msqid=%d\n"
+
+#: sys-utils/ipcs.c:567
+#, c-format
+msgid "uid=%d\tgid=%d\tcuid=%d\tcgid=%d\tmode=%#o\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:569
+#, c-format
+msgid "cbytes=%d\tqbytes=%d\tqnum=%d\tlspid=%d\tlrpid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:572
+#, c-format
+msgid "send_time=%srcv_time=%schange_time=%s"
+msgstr "Á÷¿®²ó¿ô=%s¼õ¿®²ó¿ô=%sÊѹ¹²ó¿ô=%s"
+
+#: sys-utils/ipcs.c:573 sys-utils/ipcs.c:574 sys-utils/ipcs.c:575
+msgid "Not Set\n"
+msgstr "¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
+
+#: sys-utils/ipcs.c:592
+#, c-format
+msgid ""
+"\n"
+"Semaphore Array semid=%d\n"
+msgstr ""
+"\n"
+"¥»¥Þ¥Õ¥©ÇÛÎó semid=%d\n"
+
+#: sys-utils/ipcs.c:593
+#, c-format
+msgid "uid=%d\t gid=%d\t cuid=%d\t cgid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:595
+#, c-format
+msgid "mode=%#o, access_perms=%#o\n"
+msgstr "¥â¡¼¥É=%#o, ¥¢¥¯¥»¥¹¸¢=%#o\n"
+
+#: sys-utils/ipcs.c:596
+#, c-format
+msgid "nsems = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:597
+#, c-format
+msgid "otime = %s"
+msgstr ""
+
+#: sys-utils/ipcs.c:599
+#, c-format
+msgid "ctime = %s"
+msgstr ""
+
+#: sys-utils/ipcs.c:601
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:601
+msgid "semnum"
+msgstr ""
+
+#: sys-utils/ipcs.c:601
+msgid "value"
+msgstr "ÃÍ"
+
+#: sys-utils/ipcs.c:601
+msgid "ncount"
+msgstr ""
+
+#: sys-utils/ipcs.c:602
+msgid "zcount"
+msgstr ""
+
+#: sys-utils/ipcs.c:602
+msgid "pid"
+msgstr ""
+
+#: sys-utils/rdev.c:68
+msgid "usage: rdev [ -rsv ] [ -o OFFSET ] [ IMAGE [ VALUE [ OFFSET ] ] ]"
+msgstr ""
+
+#: sys-utils/rdev.c:69
+msgid ""
+"  rdev /dev/fd0  (or rdev /linux, etc.) displays the current ROOT device"
+msgstr ""
+
+#: sys-utils/rdev.c:70
+msgid "  rdev /dev/fd0 /dev/hda2         sets ROOT to /dev/hda2"
+msgstr ""
+
+#: sys-utils/rdev.c:71
+msgid "  rdev -R /dev/fd0 1              set the ROOTFLAGS (readonly status)"
+msgstr ""
+
+#: sys-utils/rdev.c:72
+msgid "  rdev -s /dev/fd0 /dev/hda2      set the SWAP device"
+msgstr ""
+
+#: sys-utils/rdev.c:73
+msgid "  rdev -r /dev/fd0 627            set the RAMDISK size"
+msgstr ""
+
+#: sys-utils/rdev.c:74
+msgid "  rdev -v /dev/fd0 1              set the bootup VIDEOMODE"
+msgstr ""
+
+#: sys-utils/rdev.c:75
+msgid "  rdev -o N ...                   use the byte offset N"
+msgstr ""
+
+#: sys-utils/rdev.c:76
+msgid "  rootflags ...                   same as rdev -R"
+msgstr ""
+
+#: sys-utils/rdev.c:77
+msgid "  swapdev ...                     same as rdev -s"
+msgstr ""
+
+#: sys-utils/rdev.c:78
+msgid "  ramsize ...                     same as rdev -r"
+msgstr ""
+
+#: sys-utils/rdev.c:79
+msgid "  vidmode ...                     same as rdev -v"
+msgstr ""
+
+#: sys-utils/rdev.c:80
+msgid ""
+"Note: video modes are: -3=Ask, -2=Extended, -1=NormalVga, 1=key1, 2=key2,..."
+msgstr ""
+
+#: sys-utils/rdev.c:81
+msgid "      use -R 1 to mount root readonly, -R 0 for read/write."
+msgstr ""
+
+#: sys-utils/readprofile.c:50
+#, c-format
+msgid ""
+"%s: Usage: \"%s [options]\n"
+"\t -m <mapfile>  (default = \"%s\")\n"
+"\t -p <pro-file> (default = \"%s\")\n"
+"\t -i            print only info about the sampling step\n"
+"\t -v            print verbose data\n"
+"\t -a            print all symbols, even if count is 0\n"
+"\t -r            reset all the counters (root only)\n"
+"\t -V            print version and exit\n"
+msgstr ""
+"%s: »È¤¤Êý: \"%s [¥ª¥×¥·¥ç¥ó]\n"
+"\t -m <¥Þ¥Ã¥×¥Õ¥¡¥¤¥ë>  (½é´üÃÍ = \"%s\")\n"
+"\t -p <¥×¥í¥Õ¥¡¥¤¥ë>    (½é´üÃÍ = \"%s\")\n"
+"\t -i                   ¥µ¥ó¥×¥ê¥ó¥°¥¹¥Æ¥Ã¥×¤Î¾ðÊó¤Ë¤Ä¤¤¤Æ¤Î¤ßɽ¼¨\n"
+"\t -v                   ¾ÜºÙ¾ðÊó¤òɽ¼¨\n"
+"\t -a                   ¥«¥¦¥ó¥È¤¬ 0 ¤Ç¤â¡¢¤¹¤Ù¤Æ¤Î¥·¥ó¥Ü¥ë¤òɽ¼¨\n"
+"\t -r                   ¤¹¤Ù¤Æ¤Î¥«¥¦¥ó¥¿¤ò¥ê¥»¥Ã¥È¤¹¤ë (root ¤Î¤ß)\n"
+"\t -V                   ¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë\n"
+
+#: sys-utils/readprofile.c:113
+#, c-format
+msgid "%s Version %s\n"
+msgstr "%s ¥Ð¡¼¥¸¥ç¥ó %s\n"
+
+#: sys-utils/readprofile.c:125
+msgid "anything\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:154
+#, c-format
+msgid "Sampling_step: %i\n"
+msgstr "¥µ¥ó¥×¥ê¥ó¥°¥¹¥Æ¥Ã¥×: %i\n"
+
+#: sys-utils/readprofile.c:167 sys-utils/readprofile.c:193
+#, c-format
+msgid "%s: %s(%i): wrong map line\n"
+msgstr "%s: %s(%i): ´Ö°ã¤Ã¤¿¥Þ¥Ã¥×¹Ô\n"
+
+#: sys-utils/readprofile.c:180
+#, c-format
+msgid "%s: can't find \"_stext\" in %s\n"
+msgstr "%s: %s ¤Ë \"_stext\" ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó\n"
+
+#: sys-utils/readprofile.c:221
+msgid "total"
+msgstr "¹ç·×"
+
+#: sys-utils/renice.c:67
+msgid ""
+"usage: renice priority [ [ -p ] pids ] [ [ -g ] pgrps ] [ [ -u ] users ]\n"
+msgstr "»È¤¤Êý: renice Í¥ÀèÅÙ [ [ -p ] ¥×¥í¥»¥¹ID ] [ [ -g ] ¥×¥í¥»¥¹¥°¥ë¡¼¥×] [ [ -u ¥æ¡¼¥¶ ]\n"
+
+#: sys-utils/renice.c:94
+#, c-format
+msgid "renice: %s: unknown user\n"
+msgstr "renice: %s: ÃΤé¤Ê¤¤¥æ¡¼¥¶¤Ç¤¹\n"
+
+#: sys-utils/renice.c:102
+#, c-format
+msgid "renice: %s: bad value\n"
+msgstr "renice: %s: ÉÔÀµ¤ÊÃͤǤ¹\n"
+
+#: sys-utils/renice.c:121
+msgid "getpriority"
+msgstr ""
+
+#: sys-utils/renice.c:126
+msgid "setpriority"
+msgstr ""
+
+#: sys-utils/renice.c:129
+#, c-format
+msgid "%d: old priority %d, new priority %d\n"
+msgstr "%d: ¸Å¤¤Í¥ÀèÅ٤Ϡ%d¡¢¿·¤¿¤ÊÍ¥ÀèÅ٤Ϡ%d ¤Ç¤¹\n"
+
+#: sys-utils/setsid.c:23
+#, c-format
+msgid "usage: %s program [arg ...]\n"
+msgstr "»È¤¤Êý: %s ¥×¥í¥°¥é¥à [ °ú¿ô ...]\n"
+
+#: sys-utils/tunelp.c:76
+#, c-format
+msgid ""
+"Usage: %s <device> [ -i <IRQ> | -t <TIME> | -c <CHARS> | -w <WAIT> | \n"
+"          -a [on|off] | -o [on|off] | -C [on|off] | -q [on|off] | -s | \n"
+"          -T [on|off] ]\n"
+msgstr ""
+"»È¤¤Êý: %s <device> [ -i <IRQ> | -t <TIME> | -c <CHARS> | -w <WAIT> | \n"
+"           -a [on|off] | -o [on|off] | -C [on|off] | -q [on|off] | -s | \n"
+"           -T [on|off] ]\n"
+
+#: sys-utils/tunelp.c:92
+msgid "malloc error"
+msgstr "malloc ¥¨¥é¡¼"
+
+#: sys-utils/tunelp.c:103
+msgid "sscanf error"
+msgstr "sscanf ¥¨¥é¡¼"
+
+#: sys-utils/tunelp.c:236
+#, c-format
+msgid "%s: %s not an lp device.\n"
+msgstr "%s: %s ¤Ï lp ¥Ç¥Ð¥¤¥¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£\n"
+
+#: sys-utils/tunelp.c:257
+#, c-format
+msgid "%s status is %d"
+msgstr "%s ¤Î¾õÂ֤Ϡ%d ¤Ç¤¹"
+
+#: sys-utils/tunelp.c:258
+msgid ", busy"
+msgstr ", ¥Ó¥¸¡¼"
+
+#: sys-utils/tunelp.c:259
+msgid ", ready"
+msgstr ", ½àÈ÷¤Ç¤­¤Æ¤¤¤Þ¤¹"
+
+#: sys-utils/tunelp.c:260
+msgid ", out of paper"
+msgstr ", Íѻ椬¤¢¤ê¤Þ¤»¤ó"
+
+#: sys-utils/tunelp.c:261
+msgid ", on-line"
+msgstr ", ¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤Þ¤¹"
+
+#: sys-utils/tunelp.c:262
+msgid ", error"
+msgstr ", ¥¨¥é¡¼"
+
+#: sys-utils/tunelp.c:279
+msgid "LPGETIRQ error"
+msgstr ""
+
+#: sys-utils/tunelp.c:285
+#, c-format
+msgid "%s using IRQ %d\n"
+msgstr "%s ¤Ï IRQ %d ¤ò»È¤¤¤Þ¤¹\n"
+
+#: sys-utils/tunelp.c:287
+#, c-format
+msgid "%s using polling\n"
+msgstr "%s ¤Ï¥Ý¡¼¥ê¥ó¥°¤ò¹Ô¤¤¤Þ¤¹\n"
+
+#: text-utils/col.c:150
+#, c-format
+msgid "col: bad -l argument %s.\n"
+msgstr "col: ÉÔÀµ¤Ê -l ¤Î°ú¿ô %s ¤Ç¤¹¡£\n"
+
+#: text-utils/col.c:511
+msgid "usage: col [-bfx] [-l nline]\n"
+msgstr "»È¤¤Êý: col [-bfx] [-l ¹Ô¿ô]\n"
+
+#: text-utils/col.c:517
+msgid "col: write error.\n"
+msgstr "col: ½ñ¤­¹þ¤ß¥¨¥é¡¼¡£\n"
+
+#: text-utils/col.c:524
+#, c-format
+msgid "col: warning: can't back up %s.\n"
+msgstr "col: ·Ù¹ð: %s¥Ð¥Ã¥¯¥¢¥Ã¥×¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: text-utils/col.c:525
+msgid "past first line"
+msgstr "ºÇ½é¤Î¹Ô°ÊÁ°¤ò"
+
+#: text-utils/col.c:525
+msgid "-- line already flushed"
+msgstr "¹Ô¤Ï´û¤Ë½ñ¤­¹þ¤Þ¤ì¤¿¤Î¤Ç"
+
+#: text-utils/colcrt.c:93
+#, c-format
+msgid "usage: %s [ - ] [ -2 ] [ file ... ]\n"
+msgstr "»È¤¤Êý: %s [ - ] [ -2 ] [ ¥Õ¥¡¥¤¥ë ... ]\n"
+
+#: text-utils/column.c:276
+msgid "line too long"
+msgstr "¹Ô¤¬Ä¹¤¹¤®¤Þ¤¹"
+
+#: text-utils/column.c:311
+msgid "usage: column [-tx] [-c columns] [file ...]\n"
+msgstr "»È¤¤Êý: column [-tx] [-c ¥«¥é¥à¿ô] [¥Õ¥¡¥¤¥ë ...]\n"
+
+#: text-utils/hexsyntax.c:80
+msgid "hexdump: bad length value.\n"
+msgstr "hexdump: ÉÔÀµ¤ÊŤµ¤ÎÃÍ¡£\n"
+
+#: text-utils/hexsyntax.c:91
+msgid "hexdump: bad skip value.\n"
+msgstr "hexdump: ÉÔÀµ¤Ê¥¹¥­¥Ã¥×ÃͤǤ¹¡£\n"
+
+#: text-utils/hexsyntax.c:129
+msgid ""
+"hexdump: [-bcdovx] [-e fmt] [-f fmt_file] [-n length] [-s skip] [file ...]\n"
+msgstr ""
+"hexdump: [-bcdovx] [-e fmt] [-f fmt_file] [-n length] [-s skip] [file ...]\n"
+
+#: text-utils/more.c:328
+#, c-format
+msgid "usage: %s [-dfln] [+linenum | +/pattern] name1 name2 ...\n"
+msgstr "»È¤¤Êý: %s [-dfln] [+¹ÔÈÖ¹æ | +/¥Ñ¥¿¡¼¥ó] Ì¾Á°1 Ì¾Á°2 ...\n"
+
+#: text-utils/more.c:503
+#, c-format
+msgid ""
+"\n"
+"*** %s: directory ***\n"
+"\n"
+msgstr ""
+"\n"
+"*** %s: ¥Ç¥£¥ì¥¯¥È¥ê ***\n"
+"\n"
+
+#. simple ELF detection
+#: text-utils/more.c:542
+#, c-format
+msgid ""
+"\n"
+"******** %s: Not a text file ********\n"
+"\n"
+msgstr ""
+"\n"
+"******** %s: ¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó ********\n"
+"\n"
+
+#: text-utils/more.c:646
+msgid "[Use q or Q to quit]"
+msgstr "[½ªÎ»¤¹¤ë¤Ë¤Ï q ¤« Q ¤ò²¡¤·¤Æ²¼¤µ¤¤]"
+
+#: text-utils/more.c:832
+msgid "--More--"
+msgstr "--³¤±¤ë--"
+
+#: text-utils/more.c:834
+#, c-format
+msgid "(Next file: %s)"
+msgstr "(¼¡¤Î¥Õ¥¡¥¤¥ë: %s)"
+
+#: text-utils/more.c:840
+msgid "[Press space to continue, 'q' to quit.]"
+msgstr "[¥¹¥Ú¡¼¥¹¥­¡¼¤ò²¡¤¹¤È³¤­¡¢'q' ¤Ç½ªÎ»¡£]"
+
+#: text-utils/more.c:1138
+#, c-format
+msgid "...back %d page"
+msgstr "... %d ¥Ú¡¼¥¸Ìá¤ê¤Þ¤¹"
+
+#: text-utils/more.c:1184
+#, c-format
+msgid "...skipping %d line"
+msgstr "...%d ¹ÔÈô¤Ð¤·¤Þ¤¹"
+
+#: text-utils/more.c:1225
+msgid ""
+"\n"
+"***Back***\n"
+"\n"
+msgstr ""
+
+#: text-utils/more.c:1263
+msgid "Can't open help file"
+msgstr "¥Ø¥ë¥×¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó"
+
+#: text-utils/more.c:1284 text-utils/more.c:1288
+msgid "[Press 'h' for instructions.]"
+msgstr ""
+
+#: text-utils/more.c:1323
+#, c-format
+msgid "\"%s\" line %d"
+msgstr "\"%s\" %d ¹Ô"
+
+#: text-utils/more.c:1325
+#, c-format
+msgid "[Not a file] line %d"
+msgstr "[Èó¥Õ¥¡¥¤¥ë] %d ¹Ô"
+
+#: text-utils/more.c:1409
+msgid "  Overflow\n"
+msgstr ""
+
+#: text-utils/more.c:1456
+msgid "...skipping\n"
+msgstr "...Èô¤Ð¤·¤Æ¤¤¤Þ¤¹\n"
+
+#: text-utils/more.c:1486
+msgid "Regular expression botch"
+msgstr ""
+
+#: text-utils/more.c:1498
+msgid ""
+"\n"
+"Pattern not found\n"
+msgstr ""
+
+#: text-utils/more.c:1501
+msgid "Pattern not found"
+msgstr ""
+
+#: text-utils/more.c:1562
+msgid "can't fork\n"
+msgstr "»Ò¥×¥í¥»¥¹¤òµ¯Æ°¤Ç¤­¤Þ¤»¤ó\n"
+
+#: text-utils/more.c:1601
+msgid ""
+"\n"
+"...Skipping "
+msgstr ""
+"\n"
+"...Èô¤Ð¤·¤Æ¤¤¤Þ¤¹ "
+
+#: text-utils/more.c:1605
+msgid "...Skipping "
+msgstr "...Èô¤Ð¤·¤Æ¤¤¤Þ¤¹"
+
+#: text-utils/more.c:1606
+msgid "to file "
+msgstr "¼¡¤Î¥Õ¥¡¥¤¥ë "
+
+#: text-utils/more.c:1606
+msgid "back to file "
+msgstr "Á°¤Î¥Õ¥¡¥¤¥ë "
+
+#: text-utils/more.c:1845
+msgid "Line too long"
+msgstr "¹Ô¤¬Ä¹¤¹¤®¤Þ¤¹"
+
+#: text-utils/more.c:1889
+msgid "No previous command to substitute for"
+msgstr ""
+
+#: text-utils/odsyntax.c:133
+msgid "od: od(1) has been deprecated for hexdump(1).\n"
+msgstr "od: od(1) ¤Ï hexdump(1) ¤Ë¼è¤Ã¤ÆÂå¤ï¤é¤ì¤Þ¤·¤¿¡£\n"
+
+#: text-utils/odsyntax.c:136
+#, c-format
+msgid "od: hexdump(1) compatibility doesn't support the -%c option%s\n"
+msgstr "od: hexdump(1) ¸ß´¹¤Ï -%c ¥ª¥×¥·¥ç¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó%s\n"
+
+#: text-utils/odsyntax.c:137
+msgid "; see strings(1)."
+msgstr " -- string(1) ¤ò»²¾È¡£"
+
+#: text-utils/parse.c:63
+#, c-format
+msgid "hexdump: can't read %s.\n"
+msgstr "hexdump: %s ¤òÆɤá¤Þ¤»¤ó¡£\n"
+
+#: text-utils/parse.c:68
+msgid "hexdump: line too long.\n"
+msgstr "hexdump: ¹Ô¤¬Ä¹¤¹¤®¤Þ¤¹¡£\n"
+
+#: text-utils/parse.c:406
+msgid "hexdump: byte count with multiple conversion characters.\n"
+msgstr "hexdump: Ê£¿ô¤Îʸ»ú¤Î¥Ð¥¤¥È¿ô¥«¥¦¥ó¥È\n"
+
+#: text-utils/parse.c:490
+#, c-format
+msgid "hexdump: bad byte count for conversion character %s.\n"
+msgstr ""
+"hexdump: Ê¸»ú %s ¤ÎÊÑ´¹¤Ë¤Ä¤¤¤ÆÉÔÀµ¤Ê¥Ð¥¤¥È¿ô¤Î¥«¥¦¥ó¥È¤ò¹Ô¤¤¤Þ¤·¤¿¡£\n"
+
+#: text-utils/parse.c:497
+msgid "hexdump: %%s requires a precision or a byte count.\n"
+msgstr "hexdump: %%s ¤ÏÀºÅÙ¤«¡¢¥Ð¥¤¥È¿ô¤òÍ׵ᤷ¤Þ¤¹¡£\n"
+
+#: text-utils/parse.c:503
+#, c-format
+msgid "hexdump: bad format {%s}\n"
+msgstr "hexdump: ÉÔÀµ¤Ê½ñ¼° {%s}\n"
+
+#: text-utils/parse.c:509
+msgid "hexdump: bad conversion character %%%s.\n"
+msgstr "hexdump: ÉÔÀµ¤ÊÊÑ´¹¥­¥ã¥é¥¯¥¿ %%%s¡£\n"
+
+#: text-utils/rev.c:109
+msgid "Unable to allocate bufferspace\n"
+msgstr "¥Ð¥Ã¥Õ¥¡¶õ´Ö¤ò³ÎÊݤǤ­¤Þ¤»¤ó\n"
+
+#: text-utils/rev.c:167
+msgid "usage: rev [file ...]\n"
+msgstr "»È¤¤Êý: rev [ ¥Õ¥¡¥¤¥ë ...]\n"
+
+#: text-utils/ul.c:125
+#, c-format
+msgid "usage: %s [ -i ] [ -tTerm ] file...\n"
+msgstr "»È¤¤Êý: %s [ -i ] [ -tüËö ] ¥Õ¥¡¥¤¥ë...\n"
+
+#: text-utils/ul.c:136
+msgid "trouble reading terminfo"
+msgstr "terminfo ¤ÎÆɤ߹þ¤ßÃæ¤Ë¥È¥é¥Ö¥ëȯÀ¸"
+
+#: text-utils/ul.c:223
+#, c-format
+msgid "Unknown escape sequence in input: %o, %o\n"
+msgstr "̤ÃΤΥ¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤¬ÆþÎϤµ¤ì¤Þ¤·¤¿: %o, %o\n"
+
+#: text-utils/ul.c:372
+msgid "Unable to allocate buffer.\n"
+msgstr "¥Ð¥Ã¥Õ¥¡¤Î³ÎÊݤ¬¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: text-utils/ul.c:529
+msgid "Input line too long.\n"
+msgstr "ÆþÎϹԤ¬Ä¹¤¹¤®¤Þ¤¹¡£\n"
+
+#: text-utils/ul.c:542
+msgid "Out of memory when growing buffer.\n"
+msgstr "¥Ð¥Ã¥Õ¥¡¤ò³ÈÂ礹¤ë¤È¤­¤Ë¥á¥â¥ê¤¬Â­¤ê¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¡£\n"
+
+#: kbd/kbdrate.c:139 kbd/kbdrate.c:271
+#, c-format
+msgid "Typematic Rate set to %.1f cps (delay = %d ms)\n"
+msgstr "¥­¡¼¥ê¥Ô¡¼¥È®ÅÙ¤ò %.1f cps ¤Ë¥»¥Ã¥È¤·¤Þ¤·¤¿ (¥¦¥§¥¤¥È¤Ï %d ms)\n"
+
+#: kbd/kbdrate.c:247
+msgid "Cannot open /dev/port"
+msgstr "/dev/port ¤ò³«¤±¤Þ¤»¤ó"
diff --git a/po/nl.po b/po/nl.po
new file mode 100644 (file)
index 0000000..a22da60
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,7562 @@
+# nl.po - onvolledig testfragment voor util-linux
+# aeb@cwi.nl
+#
+# This is placed in the public domain
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: util-linux 2.9n\n"
+"POT-Creation-Date: 1999-03-20 12:27-0300\n"
+"PO-Revision-Date: 1999-02-25 20:46+0100\n"
+"Last-Translator: Andries Brouwer <aeb@cwi.nl>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: ENCODING\n"
+
+#: disk-utils/fdformat.c:33
+msgid "Formatting ... "
+msgstr "Aan het formatteren ... "
+
+#: disk-utils/fdformat.c:51 disk-utils/fdformat.c:86
+msgid "done\n"
+msgstr "klaar\n"
+
+#: disk-utils/fdformat.c:62
+msgid "Verifying ... "
+msgstr "Controle ... "
+
+#: disk-utils/fdformat.c:73
+msgid "Read: "
+msgstr "Lezen: "
+
+#: disk-utils/fdformat.c:75
+#, c-format
+msgid "Problem reading cylinder %d, expected %d, read %d\n"
+msgstr "Probleem bij het lezen van cylinder %d, verwacht %d, gelezen %d\n"
+
+#: disk-utils/fdformat.c:81
+#, c-format
+msgid ""
+"bad data in cyl %d\n"
+"Continuing ... "
+msgstr ""
+"rotte gegevens in cyl %d\n"
+"Ik ga verder ... "
+
+#: disk-utils/fdformat.c:96
+#, c-format
+msgid "usage: %s [ -n ] device\n"
+msgstr "aanroep: %s [ -n ] apparaat\n"
+
+#: disk-utils/fdformat.c:122
+#, c-format
+msgid "%s: not a floppy device\n"
+msgstr "%s: dit apparaat is geen floppy\n"
+
+#: disk-utils/fdformat.c:128
+msgid "Could not determine current format type"
+msgstr "Kon niet bepalen wat het huidige formaat is"
+
+#: disk-utils/fdformat.c:129
+#, c-format
+msgid "%s-sided, %d tracks, %d sec/track. Total capacity %d kB.\n"
+msgstr "%szijdig, %d sporen, %d sectoren/spoor. Totale capaciteit %d kB.\n"
+
+#: disk-utils/fdformat.c:130
+msgid "Double"
+msgstr "Dubbel"
+
+#: disk-utils/fdformat.c:130
+msgid "Single"
+msgstr "Enkel"
+
+#: disk-utils/fsck.minix.c:288
+#, c-format
+msgid "%s is mounted.\t "
+msgstr "%s is gemount.\t "
+
+#: disk-utils/fsck.minix.c:290
+msgid "Do you really want to continue"
+msgstr "Wilt u echt doorgaan"
+
+#: disk-utils/fsck.minix.c:294
+msgid "check aborted.\n"
+msgstr "controle afgebroken.\n"
+
+#: disk-utils/fsck.minix.c:311 disk-utils/fsck.minix.c:331
+msgid "Zone nr < FIRSTZONE in file `"
+msgstr "Zone nr < EERSTEZONE in het bestand `"
+
+#: disk-utils/fsck.minix.c:313 disk-utils/fsck.minix.c:333
+msgid "Zone nr >= ZONES in file `"
+msgstr "Zone nr >= ZONES in het bestand `"
+
+#: disk-utils/fsck.minix.c:318 disk-utils/fsck.minix.c:338
+msgid "Remove block"
+msgstr "Blok verwijderen"
+
+#: disk-utils/fsck.minix.c:356
+msgid "Read error: unable to seek to block in file '"
+msgstr "Leesfout: ik kan niet positioneren in bestand '"
+
+#: disk-utils/fsck.minix.c:362
+msgid "Read error: bad block in file '"
+msgstr "Leesfout: slecht blok in bestand '"
+
+#: disk-utils/fsck.minix.c:378
+msgid ""
+"Internal error: trying to write bad block\n"
+"Write request ignored\n"
+msgstr ""
+"Interne fout: probeer een slecht blok te beschrijven\n"
+"Schrijfopdracht genegeerd\n"
+
+#: disk-utils/fsck.minix.c:386
+msgid "Write error: bad block in file '"
+msgstr "Schrijffout: slecht blok in bestand '"
+
+#: disk-utils/fsck.minix.c:607
+msgid "Warning: Firstzone != Norm_firstzone\n"
+msgstr "Waarschuwing: Eerstezone != Norm_eerstezone\n"
+
+#: disk-utils/fsck.minix.c:612 disk-utils/mkfs.minix.c:528
+#, c-format
+msgid "%ld inodes\n"
+msgstr "%ld inodes\n"
+
+#: disk-utils/fsck.minix.c:613 disk-utils/mkfs.minix.c:529
+#, c-format
+msgid "%ld blocks\n"
+msgstr "%ld blokken\n"
+
+#: disk-utils/fsck.minix.c:614 disk-utils/mkfs.minix.c:530
+#, c-format
+msgid "Firstdatazone=%ld (%ld)\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:615 disk-utils/mkfs.minix.c:531
+#, c-format
+msgid "Zonesize=%d\n"
+msgstr "Zonegrootte=%d\n"
+
+#: disk-utils/fsck.minix.c:616
+#, c-format
+msgid "Maxsize=%ld\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:617
+#, c-format
+msgid "Filesystem state=%d\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:618
+#, c-format
+msgid ""
+"namelen=%d\n"
+"\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:632 disk-utils/fsck.minix.c:684
+#, c-format
+msgid "Inode %d marked not used, but used for file '"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:637 disk-utils/fsck.minix.c:688
+msgid "Mark in use"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:659 disk-utils/fsck.minix.c:708
+#, c-format
+msgid " has mode %05o\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:665 disk-utils/fsck.minix.c:713
+msgid "Warning: inode count too big.\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:749 disk-utils/fsck.minix.c:783
+msgid "Block has been used before. Now in file `"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:752 disk-utils/fsck.minix.c:786
+#: disk-utils/fsck.minix.c:1114 disk-utils/fsck.minix.c:1123
+#: disk-utils/fsck.minix.c:1167 disk-utils/fsck.minix.c:1176
+msgid "Clear"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:761 disk-utils/fsck.minix.c:795
+#, c-format
+msgid "Block %d in file `"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:763 disk-utils/fsck.minix.c:797
+msgid "' is marked not in use."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:764 disk-utils/fsck.minix.c:798
+msgid "Correct"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:948 disk-utils/fsck.minix.c:1012
+msgid " contains a bad inode number for file '"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:950 disk-utils/fsck.minix.c:1014
+msgid " Remove"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:964 disk-utils/fsck.minix.c:1028
+msgid ": bad directory: '.' isn't first\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:971 disk-utils/fsck.minix.c:1036
+msgid ": bad directory: '..' isn't second\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1071
+msgid ": bad directory: size<32"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1090
+msgid ": bad directory: size < 32"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1113 disk-utils/fsck.minix.c:1166
+#, c-format
+msgid "Inode %d mode not cleared."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1122 disk-utils/fsck.minix.c:1175
+#, c-format
+msgid "Inode %d not used, marked used in the bitmap."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1128 disk-utils/fsck.minix.c:1181
+#, c-format
+msgid "Inode %d used, marked unused in the bitmap."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1134 disk-utils/fsck.minix.c:1186
+#, c-format
+msgid "Inode %d (mode = %07o), i_nlinks=%d, counted=%d."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1136 disk-utils/fsck.minix.c:1188
+msgid "Set i_nlinks to count"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1148 disk-utils/fsck.minix.c:1200
+#, c-format
+msgid "Zone %d: marked in use, no file uses it."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1149 disk-utils/fsck.minix.c:1201
+msgid "Unmark"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1153 disk-utils/fsck.minix.c:1205
+#, c-format
+msgid "Zone %d: %sin use, counted=%d\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1154 disk-utils/fsck.minix.c:1206
+msgid "not "
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1182
+msgid "Set"
+msgstr "Zet op 1"
+
+#: disk-utils/fsck.minix.c:1296
+#, c-format
+msgid "%s is clean, no check.\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1300
+#, c-format
+msgid "Forcing filesystem check on %s.\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1302
+#, c-format
+msgid "Filesystem on %s is dirty, needs checking.\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1331
+msgid ""
+"\n"
+"%6ld inodes used (%ld%%)\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1336
+msgid "%6ld zones used (%ld%%)\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1338
+#, c-format
+msgid ""
+"\n"
+"%6d regular files\n"
+"%6d directories\n"
+"%6d character device files\n"
+"%6d block device files\n"
+"%6d links\n"
+"%6d symbolic links\n"
+"------\n"
+"%6d files\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1351
+msgid ""
+"----------------------------\n"
+"FILE SYSTEM HAS BEEN CHANGED\n"
+"----------------------------\n"
+msgstr ""
+
+#: disk-utils/mkfs.c:66
+msgid "Usage: mkfs [-V] [-t fstype] [fs-options] device [size]\n"
+msgstr ""
+
+#: disk-utils/mkfs.c:80 fdisk/cfdisk.c:324 getopt-1.0.3b/getopt.c:85
+#: getopt-1.0.3b/getopt.c:95 login-utils/wall.c:221 mount/sundries.c:192
+#, c-format
+msgid "%s: Out of memory!\n"
+msgstr "%s: Geheugen is vol!\n"
+
+#: disk-utils/mkfs.c:89
+msgid "mkfs version "
+msgstr "mkfs versie "
+
+#: disk-utils/mkfs.minix.c:186
+#, c-format
+msgid "Usage: %s [-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]\n"
+msgstr "Aanroep: %s [-c | -l bestand] [-nXX] [-iXX] /dev/naam [blokkenaantal]\n"
+
+#: disk-utils/mkfs.minix.c:210
+#, c-format
+msgid "%s is mounted; will not make a filesystem here!"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:271
+msgid "seek to boot block failed in write_tables"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:273
+msgid "unable to clear boot sector"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:275
+msgid "seek failed in write_tables"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:277
+msgid "unable to write super-block"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:279
+msgid "unable to write inode map"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:281
+msgid "unable to write zone map"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:283
+msgid "unable to write inodes"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:290
+msgid "seek failed in write_block"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:292
+msgid "write failed in write_block"
+msgstr ""
+
+#. Could make triple indirect block here
+#: disk-utils/mkfs.minix.c:300 disk-utils/mkfs.minix.c:374
+#: disk-utils/mkfs.minix.c:425
+msgid "too many bad blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:308
+msgid "not enough good blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:517
+msgid "unable to allocate buffers for maps"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:526
+msgid "unable to allocate buffer for inodes"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:532
+#, c-format
+msgid ""
+"Maxsize=%ld\n"
+"\n"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:546
+msgid "seek failed during testing of blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:554
+msgid "Weird values in do_check: probably bugs\n"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:585
+msgid "seek failed in check_blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:594
+msgid "bad blocks before data-area: cannot make fs"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:600 disk-utils/mkfs.minix.c:622
+#, c-format
+msgid "%d bad blocks\n"
+msgstr "%ld slechte blokken\n"
+
+#: disk-utils/mkfs.minix.c:602 disk-utils/mkfs.minix.c:624
+msgid "one bad block\n"
+msgstr "1 slecht blok\n"
+
+#: disk-utils/mkfs.minix.c:614
+msgid "can't open file of bad blocks"
+msgstr "kan het slechte-blokken-bestand niet openen"
+
+#: disk-utils/mkfs.minix.c:637 disk-utils/mkfs.minix.c:640
+msgid "bad inode size"
+msgstr "foute inode grootte"
+
+#: disk-utils/mkfs.minix.c:669
+#, c-format
+msgid "%s: not compiled with minix v2 support\n"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:685
+msgid "strtol error: number of blocks not specified"
+msgstr "strtol fout: geen goede specificatie van het aantal blokken"
+
+#: disk-utils/mkfs.minix.c:717
+#, c-format
+msgid "unable to open %s"
+msgstr "kan het bestand '%s' niet openen"
+
+#: disk-utils/mkfs.minix.c:719
+#, c-format
+msgid "unable to stat %s"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:723
+#, c-format
+msgid "will not try to make filesystem on '%s'"
+msgstr ""
+
+#: disk-utils/mkswap.c:99
+#, c-format
+msgid "Assuming pages of size %d\n"
+msgstr ""
+
+#: disk-utils/mkswap.c:191
+#, c-format
+msgid "%d bad page%s\n"
+msgstr ""
+
+#: disk-utils/mkswap.c:191 login-utils/shutdown.c:433
+#: login-utils/shutdown.c:436
+msgid "s"
+msgstr ""
+
+#: disk-utils/mkswap.c:294
+#, c-format
+msgid "%s: error: Nowhere to set up swap on?\n"
+msgstr ""
+
+#: disk-utils/mkswap.c:313
+#, c-format
+msgid "%s: error: unknown version %d\n"
+msgstr ""
+
+#: disk-utils/mkswap.c:319
+#, c-format
+msgid "%s: error: swap area needs to be at least %ldkB\n"
+msgstr ""
+
+#: disk-utils/mkswap.c:326
+#, c-format
+msgid "%s: warning: truncating swap area to %ldkB\n"
+msgstr ""
+
+#: disk-utils/mkswap.c:353
+#, c-format
+msgid ""
+"%s: Device '%s' contains a valid Sun disklabel.\n"
+"This probably means creating v0 swap would destroy your partition table\n"
+"No swap created. If you really want to create swap v0 on that device, use\n"
+"the -f option to force it.\n"
+msgstr ""
+
+#: disk-utils/mkswap.c:378
+#, c-format
+msgid "Setting up swapspace version %d, size = %ld bytes\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:30
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:80
+#, c-format
+msgid "Syntax error: '%s'\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:90
+#, c-format
+msgid "No such parameter set: '%s'\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:100
+#, c-format
+msgid "usage: %s [ -p ] dev name\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:101
+#, c-format
+msgid ""
+"       %s [ -p ] dev size sect heads tracks stretch gap rate spec1 fmt_gap\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:104
+#, c-format
+msgid "       %s [ -c | -y | -n | -d ] dev\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:106
+#, c-format
+msgid "       %s [ -c | -y | -n ] dev\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:349 fdisk/cfdisk.c:1764
+msgid "Unusable"
+msgstr "Onbruikbaar"
+
+#: fdisk/cfdisk.c:351 fdisk/cfdisk.c:1766
+msgid "Free Space"
+msgstr "Vrij"
+
+#: fdisk/cfdisk.c:354
+msgid "Linux ext2"
+msgstr "Linux ext2"
+
+#. also Solaris
+#: fdisk/cfdisk.c:356 fdisk/i386_sys_types.c:53
+msgid "Linux"
+msgstr "Linux"
+
+#: fdisk/cfdisk.c:359
+msgid "OS/2 HPFS"
+msgstr "OS/2 HPFS"
+
+#: fdisk/cfdisk.c:361
+msgid "OS/2 IFS"
+msgstr "OS/2 IFS"
+
+#: fdisk/cfdisk.c:365
+msgid "NTFS"
+msgstr "NTFS"
+
+#: fdisk/cfdisk.c:376
+msgid "Disk has been changed.\n"
+msgstr "De schijfinhoud is gewijzigd.\n"
+
+#: fdisk/cfdisk.c:377
+msgid "Reboot the system to ensure the partition table is correctly updated.\n"
+msgstr ""
+"Herstart het systeem om er zeker van te zijn dat de partitietabel correct "
+"aangepast is\n"
+
+#: fdisk/cfdisk.c:380
+msgid ""
+"\n"
+"WARNING: If you have created or modified any\n"
+"DOS 6.x partitions, please see the cfdisk manual\n"
+"page for additional information.\n"
+msgstr ""
+"\n"
+"WAARSCHUWING: Mocht U DOS 6.x partities hebben aangemaakt of gewijzigd,\n"
+"lees dan de cfdisk man pagina - vaak is nog een dd commando nodig.\n"
+
+#: fdisk/cfdisk.c:475
+msgid "FATAL ERROR"
+msgstr "FATALE FOUT"
+
+#: fdisk/cfdisk.c:484
+msgid "Press any key to exit fdisk"
+msgstr "Druk op een toets om fdisk te verlaten"
+
+#: fdisk/cfdisk.c:520 fdisk/cfdisk.c:528
+msgid "Cannot seek on disk drive"
+msgstr "Positioneeropdracht faalde"
+
+#: fdisk/cfdisk.c:522
+msgid "Cannot read disk drive"
+msgstr "Leesopdracht faalde"
+
+#: fdisk/cfdisk.c:530
+msgid "Cannot write disk drive"
+msgstr "Schrijfopdracht faalde"
+
+#: fdisk/cfdisk.c:767
+msgid "Too many partitions"
+msgstr "Te veel partities"
+
+#: fdisk/cfdisk.c:772
+msgid "Partition begins before sector 0"
+msgstr "Partitie begint voor sector 0"
+
+#: fdisk/cfdisk.c:777
+msgid "Partition ends before sector 0"
+msgstr "Partitie eindigt voor sector 0"
+
+#: fdisk/cfdisk.c:782
+msgid "Partition begins after end-of-disk"
+msgstr "Partitie begint voorbij het einde van de schijf"
+
+#: fdisk/cfdisk.c:787
+msgid "Partition ends after end-of-disk"
+msgstr "Partitie eindigt voorbij het einde van de schijf"
+
+#: fdisk/cfdisk.c:835
+msgid ""
+"!!!! Internal error creating logical drive with no extended partition !!!!"
+msgstr "!!!! Interne cfdisk fout - logische partitie niet in uitgebreide??"
+
+#: fdisk/cfdisk.c:846 fdisk/cfdisk.c:858
+msgid ""
+"Cannot create logical drive here -- would create two extended partitions"
+msgstr ""
+"Ik kan hier geen logische partitie maken -- dan zouden er twee uitgebreide "
+"partities komen"
+
+#: fdisk/cfdisk.c:1002
+msgid "Menu item too long. Menu may look odd."
+msgstr "Menuelement te lang. Misschien ziet het menu er vreemd uit."
+
+#: fdisk/cfdisk.c:1051
+msgid "Menu without direction. Defaulting horizontal."
+msgstr "Menu zonder aangegeven richting. Laat ik horizontaal nemen."
+
+#: fdisk/cfdisk.c:1166
+msgid "Illegal key"
+msgstr "Niet herkende toets"
+
+#: fdisk/cfdisk.c:1189
+msgid "Press a key to continue"
+msgstr "Sla een toets aan om verder te gaan"
+
+#: fdisk/cfdisk.c:1236 fdisk/cfdisk.c:1735 fdisk/cfdisk.c:2261
+#: fdisk/cfdisk.c:2263
+msgid "Primary"
+msgstr "Primaire"
+
+#: fdisk/cfdisk.c:1236
+msgid "Create a new primary partition"
+msgstr "Maak een nieuwe primaire partitie"
+
+#: fdisk/cfdisk.c:1237 fdisk/cfdisk.c:1735 fdisk/cfdisk.c:2260
+#: fdisk/cfdisk.c:2263
+msgid "Logical"
+msgstr "Logische"
+
+#: fdisk/cfdisk.c:1237
+msgid "Create a new logical partition"
+msgstr "Maak een nieuwe logische partitie"
+
+#: fdisk/cfdisk.c:1238 fdisk/cfdisk.c:1291 fdisk/cfdisk.c:1947
+msgid "Cancel"
+msgstr "Breek af"
+
+#: fdisk/cfdisk.c:1238 fdisk/cfdisk.c:1291
+msgid "Don't create a partition"
+msgstr "Maak geen partitie"
+
+#: fdisk/cfdisk.c:1254
+msgid "!!! Internal error !!!"
+msgstr "Interne fout"
+
+#: fdisk/cfdisk.c:1257
+msgid "Size (in MB): "
+msgstr "Grootte (in MB)"
+
+#: fdisk/cfdisk.c:1289
+msgid "Beginning"
+msgstr "Begin"
+
+#: fdisk/cfdisk.c:1289
+msgid "Add partition at beginning of free space"
+msgstr "Zet de partitie aan het begin van de vrije ruimte"
+
+#: fdisk/cfdisk.c:1290
+msgid "End"
+msgstr "Einde"
+
+#: fdisk/cfdisk.c:1290
+msgid "Add partition at end of free space"
+msgstr "Zet de partitie aan het eind van de vrije ruimte"
+
+#: fdisk/cfdisk.c:1308
+msgid "No room to create the extended partition"
+msgstr "Geen ruimte voor een uitgebreide partitie"
+
+#: fdisk/cfdisk.c:1354
+msgid "Cannot open disk drive"
+msgstr "Kan schijf niet openen"
+
+#: fdisk/cfdisk.c:1356 fdisk/cfdisk.c:1546
+msgid "Opened disk read-only - you have no permission to write"
+msgstr "Kan de schijf alleen lezen - heb geen permissie om te schrijven"
+
+#: fdisk/cfdisk.c:1386
+msgid "Cannot read disk drive geometry"
+msgstr "Opvragen van de schijfgeometrie faalde"
+
+#: fdisk/cfdisk.c:1408
+msgid "Bad primary partition"
+msgstr "Slechte primaire partitie"
+
+#: fdisk/cfdisk.c:1438
+msgid "Bad logical partition"
+msgstr "Slechte logische partitie"
+
+#: fdisk/cfdisk.c:1558
+msgid "Warning!!  This may destroy data on your disk!"
+msgstr "Waarschuwing!!  Dit kan gegevens op uw schijf vernietigen!"
+
+#: fdisk/cfdisk.c:1562
+msgid "Are you sure you want write the partition table to disk? (yes or no): "
+msgstr ""
+"Weet U zeker dat de partitietabel weggeschreven moet worden? (ja of nee): "
+
+#: fdisk/cfdisk.c:1571
+msgid "Did not write partition table to disk"
+msgstr "Heb de partitietabel niet naar schijf geschreven"
+
+#: fdisk/cfdisk.c:1579
+msgid "Please enter `yes' or `no'"
+msgstr "Antwoord `ja' of `nee'"
+
+#: fdisk/cfdisk.c:1583
+msgid "Writing partition table to disk..."
+msgstr "Schrijf nu de partitietabel naar schijf..."
+
+#: fdisk/cfdisk.c:1608 fdisk/cfdisk.c:1612
+msgid "Wrote partition table to disk"
+msgstr "Partitietabel is weggeschreven"
+
+#: fdisk/cfdisk.c:1610
+msgid ""
+"Wrote partition table, but re-read table failed.  Reboot to update table."
+msgstr "Partitietabel is weggeschreven, maar het teruglezen faalde. Reboot."
+
+#: fdisk/cfdisk.c:1620
+msgid ""
+"Not precisely one primary partition is bootable. DOS MBR cannot boot this."
+msgstr ""
+"Er is niet precies 1 startbare primaire partitie. DOS MBR kan dit niet "
+"booten."
+
+#: fdisk/cfdisk.c:1678 fdisk/cfdisk.c:1796 fdisk/cfdisk.c:1888
+msgid "Enter filename or press RETURN to display on screen: "
+msgstr "Geef een bestandsnaam of Enter om uitvoer naar het scherm te krijgen"
+
+#: fdisk/cfdisk.c:1686 fdisk/cfdisk.c:1804 fdisk/cfdisk.c:1896
+#, c-format
+msgid "Cannot open file '%s'"
+msgstr "Kan het bestand '%s' niet openen"
+
+#: fdisk/cfdisk.c:1697
+#, c-format
+msgid "Disk Drive: %s\n"
+msgstr "Schijf: %s\n"
+
+#: fdisk/cfdisk.c:1699
+msgid "Sector 0:\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:1706
+#, c-format
+msgid "Sector %d:\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:1726
+msgid "   None   "
+msgstr "   Geen   "
+
+#: fdisk/cfdisk.c:1728
+msgid "   Pri/Log"
+msgstr ""
+
+#: fdisk/cfdisk.c:1730
+msgid "   Primary"
+msgstr "  Primaire"
+
+#: fdisk/cfdisk.c:1732
+msgid "   Logical"
+msgstr "  Logische"
+
+#. odd flag on end
+#. type id
+#. type name
+#: fdisk/cfdisk.c:1770 fdisk/fdisk.c:1045 fdisk/fdisk.c:1194
+#: fdisk/fdisksgilabel.c:224 fdisk/fdisksunlabel.c:644 fdisk/sfdisk.c:551
+msgid "Unknown"
+msgstr "Onbekend"
+
+#: fdisk/cfdisk.c:1776
+#, c-format
+msgid "Boot (%02X)"
+msgstr ""
+
+#: fdisk/cfdisk.c:1778 fdisk/cfdisk.c:2269
+#, c-format
+msgid "Unknown (%02X)"
+msgstr "Onbekend (%02X)"
+
+#: fdisk/cfdisk.c:1780
+#, c-format
+msgid "None (%02X)"
+msgstr "Geen (%02X)"
+
+#: fdisk/cfdisk.c:1815 fdisk/cfdisk.c:1907
+#, c-format
+msgid "Partition Table for %s\n"
+msgstr "Partitietabel voor %s\n"
+
+#: fdisk/cfdisk.c:1817
+msgid "            First    Last\n"
+msgstr "           Eerste  Laatste\n"
+
+#: fdisk/cfdisk.c:1818
+msgid ""
+" # Type     Sector   Sector   Offset  Length   Filesystem Type (ID)   Flags\n"
+msgstr ""
+" # Type     Sector   Sector   Offset  Lengte   Filesysteem type (ID)  "
+"Vlaggen\n"
+
+#: fdisk/cfdisk.c:1819
+msgid ""
+"-- ------- -------- --------- ------ --------- ---------------------- "
+"---------\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:1909
+msgid "         ---Starting---      ----Ending----    Start Number of\n"
+msgstr "         ---Start---         ---End---         Start Aantal\n"
+
+#: fdisk/cfdisk.c:1910
+msgid " # Flags Head Sect Cyl   ID  Head Sect Cyl    Sector  Sectors\n"
+msgstr " # Vlaggen Kop Sect Cyl ID  Kop Sect Cyl     Sector  Sectoren\n"
+
+#: fdisk/cfdisk.c:1911
+msgid "-- ----- ---- ---- ---- ---- ---- ---- ---- -------- ---------\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:1944
+msgid "Raw"
+msgstr "Ruw"
+
+#: fdisk/cfdisk.c:1944
+msgid "Print the table using raw data format"
+msgstr "Geef de tabel in ruw formaat"
+
+#: fdisk/cfdisk.c:1945 fdisk/cfdisk.c:2050
+msgid "Sectors"
+msgstr "Sectoren"
+
+#: fdisk/cfdisk.c:1945
+msgid "Print the table ordered by sectors"
+msgstr "Geef de tabel geordend naar sectoren"
+
+#: fdisk/cfdisk.c:1946
+msgid "Table"
+msgstr "Tabel"
+
+#: fdisk/cfdisk.c:1946
+msgid "Just print the partition table"
+msgstr "Geef alleen de partitietabel"
+
+#: fdisk/cfdisk.c:1947
+msgid "Don't print the table"
+msgstr "Geef geen tabel"
+
+#: fdisk/cfdisk.c:1976
+msgid "Help Screen for cfdisk "
+msgstr "Hulpscherm voor cfdisk"
+
+#: fdisk/cfdisk.c:1978
+msgid "This is cfdisk, a curses based disk partitioning program, which"
+msgstr "Dit is cfdisk, een schijfpartitieprogramma dat U in staat stelt"
+
+#: fdisk/cfdisk.c:1979
+msgid "allows you to create, delete and modify partitions on your hard"
+msgstr "partities te maken, te verwijderen en te veranderen op uw harde"
+
+#: fdisk/cfdisk.c:1980
+msgid "disk drive."
+msgstr "schijf"
+
+#: fdisk/cfdisk.c:1982
+msgid "Copyright (C) 1994-1998 Kevin E. Martin & aeb"
+msgstr ""
+
+#: fdisk/cfdisk.c:1984
+msgid "Command      Meaning"
+msgstr "Commando     Betekenis"
+
+#: fdisk/cfdisk.c:1985
+msgid "-------      -------"
+msgstr ""
+
+#: fdisk/cfdisk.c:1986
+msgid "  b          Toggle bootable flag of the current partition"
+msgstr "  b          Maak de huidige partitie (wel/niet) startbaar"
+
+#: fdisk/cfdisk.c:1987
+msgid "  d          Delete the current partition"
+msgstr "  d          Verwijder de huidige partitie"
+
+#: fdisk/cfdisk.c:1988
+msgid "  g          Change cylinders, heads, sectors-per-track parameters"
+msgstr "  g          Verander het aantal cylinders, koppen, sectoren/spoor"
+
+#: fdisk/cfdisk.c:1989
+msgid "             WARNING: This option should only be used by people who"
+msgstr "             WAARSCHUWING: Dit is alleen voor experts."
+
+#: fdisk/cfdisk.c:1990
+msgid "             know what they are doing."
+msgstr ""
+
+#: fdisk/cfdisk.c:1991
+msgid "  h          Print this screen"
+msgstr ""
+
+#: fdisk/cfdisk.c:1992
+msgid "  m          Maximize disk usage of the current partition"
+msgstr ""
+
+#: fdisk/cfdisk.c:1993
+msgid "             Note: This may make the partition incompatible with"
+msgstr ""
+
+#: fdisk/cfdisk.c:1994
+msgid "             DOS, OS/2, ..."
+msgstr ""
+
+#: fdisk/cfdisk.c:1995
+msgid "  n          Create new partition from free space"
+msgstr ""
+
+#: fdisk/cfdisk.c:1996
+msgid "  p          Print partition table to the screen or to a file"
+msgstr ""
+
+#: fdisk/cfdisk.c:1997
+msgid "             There are several different formats for the partition"
+msgstr ""
+
+#: fdisk/cfdisk.c:1998
+msgid "             that you can choose from:"
+msgstr ""
+
+#: fdisk/cfdisk.c:1999
+msgid "                r - Raw data (exactly what would be written to disk)"
+msgstr ""
+
+#: fdisk/cfdisk.c:2000
+msgid "                s - Table ordered by sectors"
+msgstr ""
+
+#: fdisk/cfdisk.c:2001
+msgid "                t - Table in raw format"
+msgstr ""
+
+#: fdisk/cfdisk.c:2002
+msgid "  q          Quit program without writing partition table"
+msgstr ""
+
+#: fdisk/cfdisk.c:2003
+msgid "  t          Change the filesystem type"
+msgstr ""
+
+#: fdisk/cfdisk.c:2004
+msgid "  u          Change units of the partition size display"
+msgstr ""
+
+#: fdisk/cfdisk.c:2005
+msgid "             Rotates through Mb, sectors and cylinders"
+msgstr ""
+
+#: fdisk/cfdisk.c:2006
+msgid "  W          Write partition table to disk (must enter upper case W)"
+msgstr ""
+
+#: fdisk/cfdisk.c:2007
+msgid "             Since this might destroy data on the disk, you must"
+msgstr ""
+
+#: fdisk/cfdisk.c:2008
+msgid "             either confirm or deny the write by entering `yes' or"
+msgstr ""
+
+#: fdisk/cfdisk.c:2009
+msgid "             `no'"
+msgstr ""
+
+#: fdisk/cfdisk.c:2010
+msgid "Up Arrow     Move cursor to the previous partition"
+msgstr ""
+
+#: fdisk/cfdisk.c:2011
+msgid "Down Arrow   Move cursor to the next partition"
+msgstr ""
+
+#: fdisk/cfdisk.c:2012
+msgid "CTRL-L       Redraws the screen"
+msgstr ""
+
+#: fdisk/cfdisk.c:2013
+msgid "  ?          Print this screen"
+msgstr ""
+
+#: fdisk/cfdisk.c:2015
+msgid "Note: All of the commands can be entered with either upper or lower"
+msgstr ""
+
+#: fdisk/cfdisk.c:2016
+msgid "case letters (except for Writes)."
+msgstr ""
+
+#: fdisk/cfdisk.c:2048 fdisk/cfdisk.c:2350 fdisk/fdisksunlabel.c:305
+#: fdisk/fdisksunlabel.c:307
+msgid "Cylinders"
+msgstr ""
+
+#: fdisk/cfdisk.c:2048
+msgid "Change cylinder geometry"
+msgstr ""
+
+#: fdisk/cfdisk.c:2049 fdisk/fdisksunlabel.c:302
+msgid "Heads"
+msgstr ""
+
+#: fdisk/cfdisk.c:2049
+msgid "Change head geometry"
+msgstr ""
+
+#: fdisk/cfdisk.c:2050
+msgid "Change sector geometry"
+msgstr ""
+
+#: fdisk/cfdisk.c:2051
+msgid "Done"
+msgstr ""
+
+#: fdisk/cfdisk.c:2051
+msgid "Done with changing geometry"
+msgstr ""
+
+#: fdisk/cfdisk.c:2064
+msgid "Enter the number of cylinders: "
+msgstr ""
+
+#: fdisk/cfdisk.c:2071 fdisk/cfdisk.c:2614
+msgid "Illegal cylinders value"
+msgstr ""
+
+#: fdisk/cfdisk.c:2077
+msgid "Enter the number of heads: "
+msgstr ""
+
+#: fdisk/cfdisk.c:2084 fdisk/cfdisk.c:2621
+msgid "Illegal heads value"
+msgstr ""
+
+#: fdisk/cfdisk.c:2090
+msgid "Enter the number of sectors per track: "
+msgstr ""
+
+#: fdisk/cfdisk.c:2097 fdisk/cfdisk.c:2628
+msgid "Illegal sectors value"
+msgstr ""
+
+#: fdisk/cfdisk.c:2196
+msgid "Enter filesystem type: "
+msgstr ""
+
+#: fdisk/cfdisk.c:2214
+msgid "Cannot change FS Type to empty"
+msgstr ""
+
+#: fdisk/cfdisk.c:2216
+msgid "Cannot change FS Type to extended"
+msgstr ""
+
+#: fdisk/cfdisk.c:2238 fdisk/fdisksunlabel.c:44
+msgid "Boot"
+msgstr ""
+
+#: fdisk/cfdisk.c:2240
+#, c-format
+msgid "Unk(%02X)"
+msgstr ""
+
+#: fdisk/cfdisk.c:2243 fdisk/cfdisk.c:2246
+msgid ", NC"
+msgstr ""
+
+#: fdisk/cfdisk.c:2251 fdisk/cfdisk.c:2254
+msgid "NC"
+msgstr ""
+
+#: fdisk/cfdisk.c:2262
+msgid "Pri/Log"
+msgstr ""
+
+#: fdisk/cfdisk.c:2336
+#, c-format
+msgid "Disk Drive: %s"
+msgstr "Schijf: %s"
+
+#: fdisk/cfdisk.c:2338
+#, c-format
+msgid "Heads: %d   Sectors per Track: %d   Cylinders: %d"
+msgstr "%d koppen   %d sectoren/spoor   %d cylinders"
+
+#: fdisk/cfdisk.c:2342
+msgid "Name"
+msgstr "Naam"
+
+#: fdisk/cfdisk.c:2343
+msgid "Flags"
+msgstr "Vlaggen"
+
+#: fdisk/cfdisk.c:2344
+msgid "Part Type"
+msgstr "type"
+
+#: fdisk/cfdisk.c:2345
+msgid "FS Type"
+msgstr "FS type"
+
+#: fdisk/cfdisk.c:2346
+msgid "[Label]"
+msgstr ""
+
+#: fdisk/cfdisk.c:2348
+msgid "  Sectors"
+msgstr "  sectoren"
+
+#: fdisk/cfdisk.c:2352
+msgid "Size (MB)"
+msgstr "Grootte (MB)"
+
+#: fdisk/cfdisk.c:2407
+msgid "Bootable"
+msgstr "Startbaar"
+
+#: fdisk/cfdisk.c:2407
+msgid "Toggle bootable flag of the current partition"
+msgstr ""
+
+#: fdisk/cfdisk.c:2408
+msgid "Delete"
+msgstr ""
+
+#: fdisk/cfdisk.c:2408
+msgid "Delete the current partition"
+msgstr ""
+
+#: fdisk/cfdisk.c:2409
+msgid "Geometry"
+msgstr ""
+
+#: fdisk/cfdisk.c:2409
+msgid "Change disk geometry (experts only)"
+msgstr ""
+
+#: fdisk/cfdisk.c:2410
+msgid "Help"
+msgstr ""
+
+#: fdisk/cfdisk.c:2410
+msgid "Print help screen"
+msgstr ""
+
+#: fdisk/cfdisk.c:2411
+msgid "Maximize"
+msgstr ""
+
+#: fdisk/cfdisk.c:2411
+msgid "Maximize disk usage of the current partition (experts only)"
+msgstr ""
+
+#: fdisk/cfdisk.c:2412
+msgid "New"
+msgstr ""
+
+#: fdisk/cfdisk.c:2412
+msgid "Create new partition from free space"
+msgstr ""
+
+#: fdisk/cfdisk.c:2413
+msgid "Print"
+msgstr ""
+
+#: fdisk/cfdisk.c:2413
+msgid "Print partition table to the screen or to a file"
+msgstr ""
+
+#: fdisk/cfdisk.c:2414
+msgid "Quit"
+msgstr ""
+
+#: fdisk/cfdisk.c:2414
+msgid "Quit program without writing partition table"
+msgstr ""
+
+#: fdisk/cfdisk.c:2415
+msgid "Type"
+msgstr ""
+
+#: fdisk/cfdisk.c:2415
+msgid "Change the filesystem type (DOS, Linux, OS/2 and so on)"
+msgstr ""
+
+#: fdisk/cfdisk.c:2416
+msgid "Units"
+msgstr ""
+
+#: fdisk/cfdisk.c:2416
+msgid "Change units of the partition size display (MB, sect, cyl)"
+msgstr ""
+
+#: fdisk/cfdisk.c:2417
+msgid "Write"
+msgstr ""
+
+#: fdisk/cfdisk.c:2417
+msgid "Write partition table to disk (this might destroy data)"
+msgstr ""
+
+#: fdisk/cfdisk.c:2463
+msgid "Cannot make this partition bootable"
+msgstr ""
+
+#: fdisk/cfdisk.c:2473
+msgid "Cannot delete an empty partition"
+msgstr ""
+
+#: fdisk/cfdisk.c:2493 fdisk/cfdisk.c:2495
+msgid "Cannot maximize this partition"
+msgstr ""
+
+#: fdisk/cfdisk.c:2503
+msgid "This partition is unusable"
+msgstr ""
+
+#: fdisk/cfdisk.c:2505
+msgid "This partition is already in use"
+msgstr ""
+
+#: fdisk/cfdisk.c:2522
+msgid "Cannot change the type of an empty partition"
+msgstr ""
+
+#: fdisk/cfdisk.c:2547 fdisk/cfdisk.c:2553
+msgid "No more partitions"
+msgstr ""
+
+#: fdisk/cfdisk.c:2560
+msgid "Illegal command"
+msgstr ""
+
+#: fdisk/cfdisk.c:2570
+msgid "Copyright (C) 1994-1999 Kevin E. Martin & aeb\n"
+msgstr ""
+
+#. Unfortunately, xgettext does not handle multi-line strings
+#. so, let's use explicit \n's instead
+#: fdisk/cfdisk.c:2577
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+"Print version:\n"
+"        %s -v\n"
+"Print partition table:\n"
+"        %s -P {r|s|t} [options] device\n"
+"Interactive use:\n"
+"        %s [options] device\n"
+"\n"
+"Options:\n"
+"-a: Use arrow instead of highlighting;\n"
+"-z: Start with a zero partition table, instead of reading the pt from disk;\n"
+"-c C -h H -s S: Override the kernel's idea of the number of cylinders,\n"
+"                the number of heads and the number of sectors/track.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisk.c:235
+msgid ""
+"Usage: fdisk [-b SSZ] [-u] [DISK]     Change partition table\n"
+"       fdisk -l [-b SSZ] [-u] [DISK]  List partition table(s)\n"
+"       fdisk -s PARTITION         Give partition size(s) in blocks\n"
+"       fdisk -v                   Give fdisk version\n"
+"Here DISK is something like /dev/hdb or /dev/sda\n"
+"and PARTITION is something like /dev/hda7\n"
+"-u: give Start and End in sector (instead of cylinder) units\n"
+"-b 2048: (for certain MO drives) use 2048-byte sectors\n"
+msgstr ""
+
+#: fdisk/fdisk.c:245
+msgid "A disk block device is needed.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:248
+msgid ""
+"Given name does not refer to a partition,\n"
+"or maybe not even to a block device.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:252
+msgid "Unable to open %s\n"
+msgstr "Kan het bestand '%s' niet openen\n"
+
+#: fdisk/fdisk.c:255
+msgid "Unable to read %s\n"
+msgstr "Kan het bestand '%s' niet lezen\n"
+
+#: fdisk/fdisk.c:258
+msgid "Unable to seek on %s\n"
+msgstr "Kan het bestand '%s' niet positioneren\n"
+
+#: fdisk/fdisk.c:261
+msgid "Unable to write %s\n"
+msgstr "Kan het bestand '%s' niet schrijven\n"
+
+#: fdisk/fdisk.c:264
+msgid "Unable to allocate any more memory\n"
+msgstr "Kan niet meer geheugen krijgen\n"
+
+#: fdisk/fdisk.c:266
+msgid "Fatal error\n"
+msgstr "Fatale fout\n"
+
+#: fdisk/fdisk.c:277 fdisk/fdisk.c:296 fdisk/fdisk.c:314 fdisk/fdisk.c:321
+#: fdisk/fdisk.c:344 fdisk/fdisk.c:362 fdisk/fdiskbsdlabel.c:105
+#, fuzzy
+msgid "Command action"
+msgstr "Commando     Betekenis"
+
+#: fdisk/fdisk.c:278
+msgid "   a   toggle a read only flag"
+msgstr ""
+
+#. sun
+#: fdisk/fdisk.c:279 fdisk/fdisk.c:323
+msgid "   b   edit bsd disklabel"
+msgstr ""
+
+#: fdisk/fdisk.c:280
+msgid "   c   toggle the mountable flag"
+msgstr ""
+
+#. sun
+#: fdisk/fdisk.c:281 fdisk/fdisk.c:300 fdisk/fdisk.c:325
+msgid "   d   delete a partition"
+msgstr "   d          Verwijder partitie"
+
+#: fdisk/fdisk.c:282 fdisk/fdisk.c:301 fdisk/fdisk.c:326
+msgid "   l   list known partition types"
+msgstr "   l   geef alle bekende partitietypen"
+
+#. sun
+#: fdisk/fdisk.c:283 fdisk/fdisk.c:302 fdisk/fdisk.c:315 fdisk/fdisk.c:327
+#: fdisk/fdisk.c:352 fdisk/fdisk.c:369 fdisk/fdiskbsdlabel.c:110
+msgid "   m   print this menu"
+msgstr ""
+
+#: fdisk/fdisk.c:284 fdisk/fdisk.c:303 fdisk/fdisk.c:328
+msgid "   n   add a new partition"
+msgstr "   n   maak een nieuwe partitie"
+
+#: fdisk/fdisk.c:285 fdisk/fdisk.c:304 fdisk/fdisk.c:316 fdisk/fdisk.c:329
+#, fuzzy
+msgid "   o   create a new empty DOS partition table"
+msgstr "Geef alleen de partitietabel"
+
+#: fdisk/fdisk.c:286 fdisk/fdisk.c:305 fdisk/fdisk.c:330 fdisk/fdisk.c:353
+#: fdisk/fdisk.c:370
+#, fuzzy
+msgid "   p   print the partition table"
+msgstr "Geef alleen de partitietabel"
+
+#: fdisk/fdisk.c:287 fdisk/fdisk.c:306 fdisk/fdisk.c:317 fdisk/fdisk.c:331
+#: fdisk/fdisk.c:354 fdisk/fdisk.c:371 fdisk/fdiskbsdlabel.c:113
+msgid "   q   quit without saving changes"
+msgstr ""
+
+#: fdisk/fdisk.c:288 fdisk/fdisk.c:307 fdisk/fdisk.c:318 fdisk/fdisk.c:332
+msgid "   s   create a new empty Sun disklabel"
+msgstr ""
+
+#. sun
+#: fdisk/fdisk.c:289 fdisk/fdisk.c:308 fdisk/fdisk.c:333
+#, fuzzy
+msgid "   t   change a partition's system id"
+msgstr "Geef alleen de partitietabel"
+
+#: fdisk/fdisk.c:290 fdisk/fdisk.c:309 fdisk/fdisk.c:334
+msgid "   u   change display/entry units"
+msgstr ""
+
+#: fdisk/fdisk.c:291 fdisk/fdisk.c:310 fdisk/fdisk.c:335 fdisk/fdisk.c:357
+#: fdisk/fdisk.c:374
+#, fuzzy
+msgid "   v   verify the partition table"
+msgstr "Geef alleen de partitietabel"
+
+#: fdisk/fdisk.c:292 fdisk/fdisk.c:311 fdisk/fdisk.c:336 fdisk/fdisk.c:358
+#: fdisk/fdisk.c:375
+msgid "   w   write table to disk and exit"
+msgstr ""
+
+#: fdisk/fdisk.c:293 fdisk/fdisk.c:337
+msgid "   x   extra functionality (experts only)"
+msgstr ""
+
+#: fdisk/fdisk.c:297
+#, fuzzy
+msgid "   a   select bootable partition"
+msgstr "  d          Verwijder de huidige partitie"
+
+#. sgi flavour
+#: fdisk/fdisk.c:298
+msgid "   b   edit bootfile entry"
+msgstr ""
+
+#. sgi
+#: fdisk/fdisk.c:299
+#, fuzzy
+msgid "   c   select sgi swap partition"
+msgstr "  d          Verwijder de huidige partitie"
+
+#: fdisk/fdisk.c:322
+msgid "   a   toggle a bootable flag"
+msgstr ""
+
+#: fdisk/fdisk.c:324
+msgid "   c   toggle the dos compatibility flag"
+msgstr ""
+
+#: fdisk/fdisk.c:345
+msgid "   a   change number of alternate cylinders"
+msgstr ""
+
+#. sun
+#: fdisk/fdisk.c:346 fdisk/fdisk.c:364
+msgid "   c   change number of cylinders"
+msgstr ""
+
+#: fdisk/fdisk.c:347 fdisk/fdisk.c:365
+#, fuzzy
+msgid "   d   print the raw data in the partition table"
+msgstr "Geef alleen de partitietabel"
+
+#: fdisk/fdisk.c:348
+msgid "   e   change number of extra sectors per cylinder"
+msgstr ""
+
+#. sun
+#: fdisk/fdisk.c:349 fdisk/fdisk.c:368
+msgid "   h   change number of heads"
+msgstr ""
+
+#: fdisk/fdisk.c:350
+msgid "   i   change interleave factor"
+msgstr ""
+
+#. sun
+#: fdisk/fdisk.c:351
+msgid "   o   change rotation speed (rpm)"
+msgstr ""
+
+#: fdisk/fdisk.c:355 fdisk/fdisk.c:372 fdisk/fdiskbsdlabel.c:115
+msgid "   r   return to main menu"
+msgstr ""
+
+#: fdisk/fdisk.c:356 fdisk/fdisk.c:373
+msgid "   s   change number of sectors"
+msgstr ""
+
+#: fdisk/fdisk.c:359
+msgid "   y   change number of physical cylinders"
+msgstr ""
+
+#: fdisk/fdisk.c:363
+msgid "   b   move beginning of data in a partition"
+msgstr ""
+
+#: fdisk/fdisk.c:366
+#, fuzzy
+msgid "   e   list extended partitions"
+msgstr "Geen ruimte voor een uitgebreide partitie"
+
+#. !sun
+#: fdisk/fdisk.c:367
+#, fuzzy
+msgid "   g   create an IRIX partition table"
+msgstr "Geef alleen de partitietabel"
+
+#: fdisk/fdisk.c:463
+msgid "You must set"
+msgstr ""
+
+#: fdisk/fdisk.c:477
+msgid "heads"
+msgstr ""
+
+#: fdisk/fdisk.c:479 fdisk/sfdisk.c:825
+#, fuzzy
+msgid "sectors"
+msgstr "Sectoren"
+
+#: fdisk/fdisk.c:481 fdisk/fdiskbsdlabel.c:441 fdisk/sfdisk.c:825
+#, fuzzy
+msgid "cylinders"
+msgstr "%ld inodes\n"
+
+#: fdisk/fdisk.c:485
+#, c-format
+msgid ""
+"%s%s.\n"
+"You can do this from the extra functions menu.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:486
+msgid " and "
+msgstr ""
+
+#: fdisk/fdisk.c:520
+#, fuzzy
+msgid "Bad offset in primary extended partition\n"
+msgstr "Slechte primaire partitie"
+
+#: fdisk/fdisk.c:524
+#, fuzzy, c-format
+msgid "Warning: deleting partitions after %d\n"
+msgstr "Slechte primaire partitie"
+
+#: fdisk/fdisk.c:545
+#, fuzzy, c-format
+msgid "Warning: extra link pointer in partition table %d\n"
+msgstr "Slechte primaire partitie"
+
+#: fdisk/fdisk.c:553
+#, c-format
+msgid "Warning: ignoring extra data in partition table %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:579
+msgid ""
+"Building a new DOS disklabel. Changes will remain in memory only,\n"
+"until you decide to write them. After that, of course, the previous\n"
+"content won't be recoverable.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisk.c:615
+#, fuzzy
+msgid "You will not be able to write the partition table.\n"
+msgstr "Geef alleen de partitietabel"
+
+#: fdisk/fdisk.c:624
+#, c-format
+msgid "Note: sector size is %d (not %d)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:671
+msgid ""
+"Device contains neither a valid DOS partition table, nor Sun or SGI "
+"disklabel\n"
+msgstr ""
+
+#: fdisk/fdisk.c:687
+#, fuzzy
+msgid "Internal error\n"
+msgstr "Interne fout"
+
+#: fdisk/fdisk.c:697
+#, fuzzy, c-format
+msgid "Ignoring extra extended partition %d\n"
+msgstr "Geen ruimte voor een uitgebreide partitie"
+
+#: fdisk/fdisk.c:704
+#, c-format
+msgid ""
+"Warning: invalid flag 0x%04x of partition table %d will be corrected by "
+"w(rite)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:725
+msgid ""
+"\n"
+"got EOF thrice - exiting..\n"
+msgstr ""
+
+#: fdisk/fdisk.c:762
+msgid "Hex code (type L to list codes): "
+msgstr ""
+
+#: fdisk/fdisk.c:801
+#, c-format
+msgid "%s (%d-%d, default %d): "
+msgstr ""
+
+#: fdisk/fdisk.c:855
+#, c-format
+msgid "Using default value %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:859
+msgid "Value out of range.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:866
+#, fuzzy
+msgid "Partition number"
+msgstr "Partitietabel voor %s\n"
+
+#: fdisk/fdisk.c:874
+#, fuzzy, c-format
+msgid "Warning: partition %d has empty type\n"
+msgstr "Schrijf nu de partitietabel naar schijf..."
+
+#: fdisk/fdisk.c:880
+#, fuzzy
+msgid "cylinder"
+msgstr "%ld inodes\n"
+
+#: fdisk/fdisk.c:880
+#, fuzzy
+msgid "sector"
+msgstr "Sectoren"
+
+#: fdisk/fdisk.c:887
+#, c-format
+msgid "Changing display/entry units to %ss\n"
+msgstr ""
+
+#: fdisk/fdisk.c:897
+#, c-format
+msgid "WARNING: Partition %d is an extended partition\n"
+msgstr ""
+
+#: fdisk/fdisk.c:910
+msgid "DOS Compatibility flag is set\n"
+msgstr ""
+
+#: fdisk/fdisk.c:914
+msgid "DOS Compatibility flag is not set\n"
+msgstr ""
+
+#: fdisk/fdisk.c:999
+#, c-format
+msgid "Partition %d does not exist yet!\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1004
+msgid ""
+"Type 0 means free space to many systems\n"
+"(but not to Linux). Having partitions of\n"
+"type 0 is probably unwise. You can delete\n"
+"a partition using the `d' command.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1013
+msgid ""
+"You cannot change a partition into an extended one or vice versa\n"
+"Delete it first.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1022
+msgid ""
+"Consider leaving partition 3 as Whole disk (5),\n"
+"as SunOS/Solaris expects it and even Linux likes it.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1028
+msgid ""
+"Consider leaving partition 9 as volume header (0),\n"
+"and partition 11 as entire volume (6)as IRIX expects it.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1042
+#, c-format
+msgid "Changed system type of partition %d to %x (%s)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1095
+#, c-format
+msgid "Partition %d has different physical/logical beginnings (non-Linux?):\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1097 fdisk/fdisk.c:1105 fdisk/fdisk.c:1114 fdisk/fdisk.c:1123
+#, c-format
+msgid "     phys=(%d, %d, %d) "
+msgstr ""
+
+#: fdisk/fdisk.c:1098 fdisk/fdisk.c:1106
+#, c-format
+msgid "logical=(%d, %d, %d)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1103
+#, c-format
+msgid "Partition %d has different physical/logical endings:\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1112
+#, c-format
+msgid "Partition %i does not start on cylinder boundary:\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1115
+#, c-format
+msgid "should be (%d, %d, 1)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1121
+#, c-format
+msgid "Partition %i does not end on cylinder boundary:\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1124
+#, c-format
+msgid "should be (%d, %d, %d)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1131
+#, c-format
+msgid ""
+"\n"
+"Disk %s: %d heads, %d sectors, %d cylinders\n"
+"Units = %ss of %d * %d bytes\n"
+"\n"
+msgstr ""
+
+#. FIXME! let's see how this shows up with other languagues
+#. acme@conectiva.com.br
+#: fdisk/fdisk.c:1168
+#, c-format
+msgid "%*s Boot    Start       End    Blocks   Id  System\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1169 fdisk/fdisksgilabel.c:207 fdisk/fdisksunlabel.c:629
+msgid "Device"
+msgstr ""
+
+#: fdisk/fdisk.c:1209
+#, c-format
+msgid ""
+"\n"
+"Disk %s: %d heads, %d sectors, %d cylinders\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1211
+#, fuzzy
+msgid "Nr AF  Hd Sec  Cyl  Hd Sec  Cyl   Start    Size ID\n"
+msgstr " # Vlaggen Kop Sect Cyl ID  Kop Sect Cyl     Sector  Sectoren\n"
+
+#: fdisk/fdisk.c:1250
+#, fuzzy, c-format
+msgid "Warning: partition %d contains sector 0\n"
+msgstr "Schrijf nu de partitietabel naar schijf..."
+
+#: fdisk/fdisk.c:1253
+#, c-format
+msgid "Partition %d: head %d greater than maximum %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1256
+#, c-format
+msgid "Partition %d: sector %d greater than maximum %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1259
+#, c-format
+msgid "Partitions %d: cylinder %d greater than maximum %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1263
+#, c-format
+msgid "Partition %d: previous sectors %d disagrees with total %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1293
+#, fuzzy, c-format
+msgid "Warning: bad start-of-data in partition %d\n"
+msgstr "Slechte primaire partitie"
+
+#: fdisk/fdisk.c:1301
+#, fuzzy, c-format
+msgid "Warning: partition %d overlaps partition %d.\n"
+msgstr "Schrijf nu de partitietabel naar schijf..."
+
+#: fdisk/fdisk.c:1319
+#, fuzzy, c-format
+msgid "Warning: partition %d is empty\n"
+msgstr "Schrijf nu de partitietabel naar schijf..."
+
+#: fdisk/fdisk.c:1324
+#, c-format
+msgid "Logical partition %d not entirely in partition %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1330
+#, c-format
+msgid "Total allocated sectors %d greater than the maximum %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1333
+#, c-format
+msgid "%d unallocated sectors\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1345 fdisk/fdisksgilabel.c:684 fdisk/fdisksunlabel.c:479
+#, c-format
+msgid "Partition %d is already defined.  Delete it before re-adding it.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1366 fdisk/fdiskbsdlabel.c:252 fdisk/fdisksgilabel.c:706
+#: fdisk/fdisksunlabel.c:494
+#, c-format
+msgid "First %s"
+msgstr ""
+
+#: fdisk/fdisk.c:1381 fdisk/fdisksunlabel.c:519
+#, c-format
+msgid "Sector %d is already allocated\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1407
+msgid "No free sectors available\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1417 fdisk/fdiskbsdlabel.c:256 fdisk/fdisksunlabel.c:529
+#, c-format
+msgid "Last %s or +size or +sizeM or +sizeK"
+msgstr ""
+
+#: fdisk/fdisk.c:1447
+#, fuzzy, c-format
+msgid "Warning: partition %d has an odd number of sectors.\n"
+msgstr "Partitie eindigt voorbij het einde van de schijf"
+
+#: fdisk/fdisk.c:1484 fdisk/fdiskbsdlabel.c:590
+msgid "The maximum number of partitions has been created\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1494
+msgid "You must delete some partition and add an extended partition first\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1498
+#, c-format
+msgid ""
+"Command action\n"
+"   %s\n"
+"   p   primary partition (1-4)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1500
+msgid "l   logical (5 or over)"
+msgstr ""
+
+#: fdisk/fdisk.c:1500
+msgid "e   extended"
+msgstr ""
+
+#: fdisk/fdisk.c:1517
+#, c-format
+msgid "Invalid partition number for type `%c'\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1549
+#, fuzzy
+msgid ""
+"The partition table has been altered!\n"
+"\n"
+msgstr "Partitietabel is weggeschreven"
+
+#: fdisk/fdisk.c:1551
+#, fuzzy
+msgid "Calling ioctl() to re-read partition table.\n"
+msgstr "Geef alleen de partitietabel"
+
+#: fdisk/fdisk.c:1568
+msgid "Syncing disks.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1573
+#, fuzzy, c-format
+msgid ""
+"Re-read table failed with error %d: %s.\n"
+"Reboot your system to ensure the partition table is updated.\n"
+msgstr ""
+"Herstart het systeem om er zeker van te zijn dat de partitietabel correct "
+"aangepast is\n"
+
+#: fdisk/fdisk.c:1579
+#, fuzzy
+msgid ""
+"\n"
+"WARNING: If you have created or modified any DOS 6.x\n"
+"partitions, please see the fdisk manual page for additional\n"
+"information.\n"
+msgstr ""
+"\n"
+"WAARSCHUWING: Mocht U DOS 6.x partities hebben aangemaakt of gewijzigd,\n"
+"lees dan de cfdisk man pagina - vaak is nog een dd commando nodig.\n"
+
+#: fdisk/fdisk.c:1610
+#, fuzzy, c-format
+msgid "Device: %s\n"
+msgstr "Schijf: %s\n"
+
+#: fdisk/fdisk.c:1625
+#, fuzzy, c-format
+msgid "Partition %d has no data area\n"
+msgstr "Partitie eindigt voor sector 0"
+
+#: fdisk/fdisk.c:1631
+msgid "New beginning of data"
+msgstr ""
+
+#: fdisk/fdisk.c:1645
+msgid "Expert command (m for help): "
+msgstr ""
+
+#: fdisk/fdisk.c:1656
+#, fuzzy
+msgid "Number of cylinders"
+msgstr "%ld inodes\n"
+
+#: fdisk/fdisk.c:1677
+msgid "Number of heads"
+msgstr ""
+
+#: fdisk/fdisk.c:1702
+#, fuzzy
+msgid "Number of sectors"
+msgstr "  sectoren"
+
+#: fdisk/fdisk.c:1705
+msgid "Warning: setting sector offset for DOS compatiblity\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1767
+#, c-format
+msgid "Disk %s doesn't contain a valid partition table\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1781
+#, fuzzy, c-format
+msgid "Cannot open %s\n"
+msgstr "Kan het bestand '%s' niet openen"
+
+#: fdisk/fdisk.c:1836
+msgid "This kernel finds the sector size itself - -b option ignored\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1839
+msgid ""
+"Warning: the -b (set sector size) option should be used with one specified "
+"device\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1947
+#, fuzzy, c-format
+msgid "Using %s as default device!\n"
+msgstr "%s: dit apparaat is geen floppy\n"
+
+#: fdisk/fdisk.c:1953
+msgid "Command (m for help): "
+msgstr ""
+
+#: fdisk/fdisk.c:1967
+#, c-format
+msgid ""
+"\n"
+"The current boot file is: %s\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1969
+msgid "Please enter the name of the new boot file: "
+msgstr ""
+
+#: fdisk/fdisk.c:1971
+#, fuzzy
+msgid "Boot file unchanged\n"
+msgstr "De schijfinhoud is gewijzigd.\n"
+
+#: fdisk/fdisk.c:2031
+msgid ""
+"\n"
+"\tSorry, no experts menu for SGI partition tables available.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdiskaixlabel.c:29
+msgid ""
+"\n"
+"\tThere is a valid AIX label on this disk.\n"
+"\tUnfortunately Linux cannot handle these\n"
+"\tdisks at the moment.  Nevertheless some\n"
+"\tadvice:\n"
+"\t1. fdisk will destroy its contents on write.\n"
+"\t2. Be sure that this disk is NOT a still vital\n"
+"\t   part of a volume group. (Otherwise you may\n"
+"\t   erase the other disks as well, if unmirrored.)\n"
+"\t3. Before deleting this physical volume be sure\n"
+"\t   to remove the disk logically from your AIX\n"
+"\t   machine.  (Otherwise you become an AIXpert)."
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:97
+#, c-format
+msgid ""
+"\n"
+"BSD label for device: %s\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:106
+#, fuzzy
+msgid "   d   delete a BSD partition"
+msgstr "  d          Verwijder de huidige partitie"
+
+#: fdisk/fdiskbsdlabel.c:107
+msgid "   e   edit drive data"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:108
+msgid "   i   install bootstrap"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:109
+msgid "   l   list known filesystem types"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:111
+#, fuzzy
+msgid "   n   add a new BSD partition"
+msgstr "Maak een nieuwe primaire partitie"
+
+#: fdisk/fdiskbsdlabel.c:112
+#, fuzzy
+msgid "   p   print BSD partition table"
+msgstr "Geef alleen de partitietabel"
+
+#: fdisk/fdiskbsdlabel.c:117
+msgid "   s   show complete disklabel"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:118
+msgid "   t   change a partition's filesystem id"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:119
+msgid "   w   write disklabel to disk"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:121
+msgid "   x   link BSD partition to non-BSD partition"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:146
+#, fuzzy, c-format
+msgid "Partition %s%d has invalid starting sector 0.\n"
+msgstr "Partitie eindigt voor sector 0"
+
+#: fdisk/fdiskbsdlabel.c:150
+#, c-format
+msgid "Reading disklabel of %s%d at sector %d.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:159
+#, fuzzy, c-format
+msgid "There is no *BSD partition on %s.\n"
+msgstr "Heb de partitietabel niet naar schijf geschreven"
+
+#: fdisk/fdiskbsdlabel.c:174
+msgid "BSD disklabel command (m for help): "
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:286
+#, c-format
+msgid "type: %s\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:288
+#, c-format
+msgid "type: %d\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:289
+#, fuzzy, c-format
+msgid "disk: %.*s\n"
+msgstr "Schijf: %s\n"
+
+#: fdisk/fdiskbsdlabel.c:290
+#, c-format
+msgid "label: %.*s\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:291
+#, fuzzy
+msgid "flags:"
+msgstr "Vlaggen"
+
+#: fdisk/fdiskbsdlabel.c:293
+#, fuzzy
+msgid " removable"
+msgstr "Startbaar"
+
+#: fdisk/fdiskbsdlabel.c:295
+msgid " ecc"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:297
+msgid " badsect"
+msgstr ""
+
+#. On various machines the fields of *lp are short/int/long
+#. In order to avoid problems, we cast them all to long.
+#: fdisk/fdiskbsdlabel.c:301
+#, c-format
+msgid "bytes/sector: %ld\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:302
+#, c-format
+msgid "sectors/track: %ld\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:303
+#, c-format
+msgid "tracks/cylinder: %ld\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:304
+#, c-format
+msgid "sectors/cylinder: %ld\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:305
+#, fuzzy, c-format
+msgid "cylinders: %ld\n"
+msgstr "%ld inodes\n"
+
+#: fdisk/fdiskbsdlabel.c:306
+#, c-format
+msgid "rpm: %d\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:307
+#, c-format
+msgid "interleave: %d\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:308
+#, c-format
+msgid "trackskew: %d\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:309
+#, fuzzy, c-format
+msgid "cylinderskew: %d\n"
+msgstr "%ld inodes\n"
+
+#: fdisk/fdiskbsdlabel.c:310
+#, c-format
+msgid "headswitch: %ld\t\t# milliseconds\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:311
+#, c-format
+msgid "track-to-track seek: %ld\t# milliseconds\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:312
+msgid "drivedata: "
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:321
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%d partitions:\n"
+msgstr "Maak geen partitie"
+
+#: fdisk/fdiskbsdlabel.c:322
+msgid "#        size   offset    fstype   [fsize bsize   cpg]\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:378
+#, fuzzy, c-format
+msgid "Writing disklabel to %s%d.\n"
+msgstr "Partitietabel voor %s\n"
+
+#: fdisk/fdiskbsdlabel.c:381
+#, fuzzy, c-format
+msgid "Writing disklabel to %s.\n"
+msgstr "Partitietabel voor %s\n"
+
+#: fdisk/fdiskbsdlabel.c:392
+#, c-format
+msgid "%s%d contains no disklabel.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:395
+#, c-format
+msgid "%s contains no disklabel.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:399
+msgid "Do you want to create a disklabel? (y/n) "
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:438
+#, fuzzy
+msgid "bytes/sector"
+msgstr "Sectoren"
+
+#: fdisk/fdiskbsdlabel.c:439
+#, fuzzy
+msgid "sectors/track"
+msgstr "Sectoren"
+
+#: fdisk/fdiskbsdlabel.c:440
+#, fuzzy
+msgid "tracks/cylinder"
+msgstr "%ld inodes\n"
+
+#: fdisk/fdiskbsdlabel.c:448
+#, fuzzy
+msgid "sectors/cylinder"
+msgstr "%ld inodes\n"
+
+#: fdisk/fdiskbsdlabel.c:452
+msgid "Must be <= sectors/track * tracks/cylinder (default).\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:454
+msgid "rpm"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:455
+msgid "interleave"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:456
+msgid "trackskew"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:457
+#, fuzzy
+msgid "cylinderskew"
+msgstr "%ld inodes\n"
+
+#: fdisk/fdiskbsdlabel.c:458
+msgid "headswitch"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:459
+msgid "track-to-track seek"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:500
+#, c-format
+msgid "Bootstrap: %sboot -> boot%s (%s): "
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:526
+msgid "Bootstrap overlaps with disk label!\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:547
+#, c-format
+msgid "Bootstrap installed on %s%d.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:549
+#, c-format
+msgid "Bootstrap installed on %s.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:570
+#, c-format
+msgid "Partition (a-%c): "
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:601
+#, fuzzy
+msgid "This partition already exists.\n"
+msgstr "Partitietabel is weggeschreven"
+
+#: fdisk/fdiskbsdlabel.c:723
+#, fuzzy, c-format
+msgid "Warning: too many partitions (%d, maximum is %d).\n"
+msgstr "Schrijf nu de partitietabel naar schijf..."
+
+#: fdisk/fdiskbsdlabel.c:769
+msgid ""
+"\n"
+"Syncing disks.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:56
+msgid "SGI volhdr"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:57
+msgid "SGI trkrepl"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:58
+msgid "SGI secrepl"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:59
+msgid "SGI raw"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:60
+msgid "SGI bsd"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:61
+msgid "SGI sysv"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:62
+msgid "SGI volume"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:63
+msgid "SGI efs"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:64
+msgid "SGI lvol"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:65
+msgid "SGI rlvol"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:66
+msgid "SGI xfs"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:67
+msgid "SGI xlvol"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:68
+msgid "SGI rxlvol"
+msgstr ""
+
+#. Minix 1.4b and later
+#: fdisk/fdisksgilabel.c:69 fdisk/fdisksunlabel.c:52 fdisk/i386_sys_types.c:52
+msgid "Linux swap"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:70 fdisk/fdisksunlabel.c:53
+msgid "Linux native"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:143
+msgid ""
+"According to MIPS Computer Systems, Inc the Label must not contain more than "
+"512 bytes\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:162
+msgid "Detected sgi disklabel with wrong checksum.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:186
+#, c-format
+msgid ""
+"\n"
+"Disk %s (SGI disk label): %d heads, %d sectors\n"
+"%d cylinders, %d physical cylinders\n"
+"%d extra sects/cyl, interleave %d:1\n"
+"%s\n"
+"Units = %ss of %d * 512 bytes\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:199
+#, c-format
+msgid ""
+"\n"
+"Disk %s (SGI disk label): %d heads, %d sectors, %d cylinders\n"
+"Units = %ss of %d * 512 bytes\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:205
+#, c-format
+msgid ""
+"----- partitions -----\n"
+"%*s  Info      Start       End   Sectors  Id  System\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:227
+#, c-format
+msgid ""
+"----- bootinfo -----\n"
+"Bootfile: %s\n"
+"----- directory entries -----\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:237
+#, c-format
+msgid "%2d: %-10s sector%5u size%8u\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:298
+msgid ""
+"\n"
+"Invalid Bootfile!\n"
+"\tThe bootfile must be an absolute non-zero pathname,\n"
+"\te.g. \"/unix\" or \"/unix.save\".\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:305
+msgid ""
+"\n"
+"\tName of Bootfile too long:  16 bytes maximum.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:310
+msgid ""
+"\n"
+"\tBootfile must have a fully qualified pathname.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:315
+msgid ""
+"\n"
+"\tBe aware, that the bootfile is not checked for existence.\n"
+"\tSGI's default is \"/unix\" and for backup \"/unix.save\".\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:343
+#, c-format
+msgid ""
+"\n"
+"\tBootfile is changed to \"%s\".\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:448
+msgid "More than one entire disk entry present.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:456 fdisk/fdisksunlabel.c:455
+#, fuzzy
+msgid "No partitions defined\n"
+msgstr "Maak geen partitie"
+
+#: fdisk/fdisksgilabel.c:463
+msgid "IRIX likes when Partition 11 covers the entire disk.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:465
+#, c-format
+msgid ""
+"The entire disk partition should start at block 0,\n"
+"not at diskblock %d.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:469
+#, c-format
+msgid ""
+"The entire disk partition is only %d diskblock large,\n"
+"but the disk is %d diskblocks long.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:476
+msgid "One Partition (#11) should cover the entire disk.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:488
+#, fuzzy, c-format
+msgid "Partition %d does not start on cylinder boundary.\n"
+msgstr "Partitie eindigt voor sector 0"
+
+#: fdisk/fdisksgilabel.c:495
+#, c-format
+msgid "Partition %d does not end on cylinder boundary.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:503
+#, c-format
+msgid "The Partition %d and %d overlap by %d sectors.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:512 fdisk/fdisksgilabel.c:532
+#, c-format
+msgid "Unused gap of %8d sectors - sectors %8d-%d\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:545
+#, fuzzy
+msgid ""
+"\n"
+"The boot partition does not exist.\n"
+msgstr "Partitietabel is weggeschreven"
+
+#: fdisk/fdisksgilabel.c:549
+#, fuzzy
+msgid ""
+"\n"
+"The swap partition does not exist.\n"
+msgstr "Partitietabel is weggeschreven"
+
+#: fdisk/fdisksgilabel.c:554
+msgid ""
+"\n"
+"The swap partition has no swap type.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:558
+msgid "\tYou have chosen an unusual boot file name.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:569
+msgid "Sorry You may change the Tag of non-empty partitions.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:576
+msgid ""
+"It is highly recommended that the partition at offset 0\n"
+"is of type \"SGI volhdr\", the IRIX system will rely on it to\n"
+"retrieve from its directory standalone tools like sash and fx.\n"
+"Only the \"SGI volume\" entire disk section may violate this.\n"
+"Type YES if you are sure about tagging this partition differently.\n"
+msgstr ""
+
+#. rebuild freelist
+#: fdisk/fdisksgilabel.c:621
+msgid "Do You know, You got a partition overlap on the disk?\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:691
+msgid "Attempting to generate entire disk entry automatically.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:698
+msgid "The entire disk is already covered with partitions.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:703
+msgid "You got a partition overlap on the disk. Fix it first!\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:712 fdisk/fdisksgilabel.c:741
+msgid ""
+"It is highly recommended that eleventh partition\n"
+"covers the entire disk and is of type `SGI volume'\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:728
+msgid "You will get a partition overlap on the disk. Fix it first!\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:733
+#, c-format
+msgid " Last %s"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:756
+msgid ""
+"Building a new SGI disklabel. Changes will remain in memory only,\n"
+"until you decide to write them. After that, of course, the previous\n"
+"content will be unrecoverable lost.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:784
+#, c-format
+msgid "Trying to keep parameters of partition %d.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:786
+#, c-format
+msgid "ID=%02x\tSTART=%d\tLENGTH=%d\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:43 fdisk/i386_sys_types.c:6
+msgid "Empty"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:45
+msgid "SunOS root"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:46
+msgid "SunOS swap"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:47
+msgid "SunOS usr"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:48
+msgid "Whole disk"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:49
+msgid "SunOS stand"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:50
+msgid "SunOS var"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:51
+msgid "SunOS home"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:122
+msgid ""
+"Detected sun disklabel with wrong checksum.\n"
+"Probably you'll have to set all the values,\n"
+"e.g. heads, sectors, cylinders and partitions\n"
+"or force a fresh label (s command in main menu)\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:215
+#, c-format
+msgid "Autoconfigure found a %s%s%s\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:242
+msgid ""
+"Building a new sun disklabel. Changes will remain in memory only,\n"
+"until you decide to write them. After that, of course, the previous\n"
+"content won't be recoverable.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:253
+msgid ""
+"Drive type\n"
+"   ?   auto configure\n"
+"   0   custom (with hardware detected defaults)"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:263
+msgid "Select type (? for auto, 0 for custom): "
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:275
+msgid "Autoconfigure failed.\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:303
+#, fuzzy
+msgid "Sectors/track"
+msgstr "Sectoren"
+
+#: fdisk/fdisksunlabel.c:310
+#, fuzzy
+msgid "Alternate cylinders"
+msgstr "%ld inodes\n"
+
+#: fdisk/fdisksunlabel.c:313
+#, fuzzy
+msgid "Physical cylinders"
+msgstr "%ld inodes\n"
+
+#: fdisk/fdisksunlabel.c:316 fdisk/fdisksunlabel.c:679
+msgid "Rotation speed (rpm)"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:318 fdisk/fdisksunlabel.c:672
+msgid "Interleave factor"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:321 fdisk/fdisksunlabel.c:665
+#, fuzzy
+msgid "Extra sectors per cylinder"
+msgstr "%ld inodes\n"
+
+#: fdisk/fdisksunlabel.c:334
+msgid "You may change all the disk params from the x menu"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:337
+msgid "3,5\" floppy"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:337
+msgid "Linux custom"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:418
+#, c-format
+msgid "Partition %d doesn't end on cylinder boundary\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:438
+#, fuzzy, c-format
+msgid "Partition %d overlaps with others in sectors %d-%d\n"
+msgstr "Partitie eindigt voor sector 0"
+
+#: fdisk/fdisksunlabel.c:460
+#, c-format
+msgid "Unused gap - sectors 0-%d\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:462 fdisk/fdisksunlabel.c:466
+#, c-format
+msgid "Unused gap - sectors %d-%d\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:489
+msgid ""
+"Other partitions already cover the whole disk.\n"
+"Delete some/shrink them before retry.\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:547
+#, c-format
+msgid ""
+"You haven't covered whole disk with 3rd partition, but your value\n"
+"%d %s covers some other partition. Your entry have been changed\n"
+"to %d %s\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:565
+#, c-format
+msgid ""
+"If you want to maintain SunOS/Solaris compatibility, consider leaving this\n"
+"partition as Whole disk (5), starting at 0, with %u sectors\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:578
+msgid ""
+"It is highly recommended that the partition at offset 0\n"
+"is UFS, EXT2FS filesystem or SunOS swap. Putting Linux swap\n"
+"there may destroy your partition table and bootblock.\n"
+"Type YES if you're very sure you would like that partition\n"
+"tagged with 82 (Linux swap): "
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:609
+#, c-format
+msgid ""
+"\n"
+"Disk %s (Sun disk label): %d heads, %d sectors, %d rpm\n"
+"%d cylinders, %d alternate cylinders, %d physical cylinders\n"
+"%d extra sects/cyl, interleave %d:1\n"
+"%s\n"
+"Units = %ss of %d * 512 bytes\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:623
+#, c-format
+msgid ""
+"\n"
+"Disk %s (Sun disk label): %d heads, %d sectors, %d cylinders\n"
+"Units = %ss of %d * 512 bytes\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:628
+#, c-format
+msgid "%*s Flag    Start       End    Blocks   Id  System\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:653
+msgid "Number of alternate cylinders"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:686
+msgid "Number of physical cylinders"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:7
+msgid "FAT12"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:8
+msgid "XENIX root"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:9
+msgid "XENIX usr"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:10
+msgid "FAT16 <32M"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:11
+msgid "Extended"
+msgstr ""
+
+#. DOS 3.3+ extended partition
+#: fdisk/i386_sys_types.c:12
+msgid "FAT16"
+msgstr ""
+
+#. DOS 16-bit >=32M
+#: fdisk/i386_sys_types.c:13
+msgid "HPFS/NTFS"
+msgstr ""
+
+#. OS/2 IFS, eg, HPFS or NTFS or QNX
+#: fdisk/i386_sys_types.c:14
+msgid "AIX"
+msgstr ""
+
+#. AIX boot (AIX -- PS/2 port) or SplitDrive
+#: fdisk/i386_sys_types.c:15
+#, fuzzy
+msgid "AIX bootable"
+msgstr "Startbaar"
+
+#. AIX data or Coherent
+#: fdisk/i386_sys_types.c:16
+msgid "OS/2 Boot Manager"
+msgstr ""
+
+#. OS/2 Boot Manager
+#: fdisk/i386_sys_types.c:17
+msgid "Win95 FAT32"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:18
+msgid "Win95 FAT32 (LBA)"
+msgstr ""
+
+#. LBA really is `Extended Int 13h'
+#: fdisk/i386_sys_types.c:19
+msgid "Win95 FAT16 (LBA)"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:20
+msgid "Win95 Ext'd (LBA)"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:21
+msgid "OPUS"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:22
+msgid "Hidden FAT12"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:23
+msgid "Compaq diagnostics"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:24
+msgid "Hidden FAT16 <32M"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:25
+msgid "Hidden FAT16"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:26
+msgid "Hidden HPFS/NTFS"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:27
+msgid "AST Windows swapfile"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:28
+msgid "NEC DOS"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:29
+#, fuzzy
+msgid "PartitionMagic recovery"
+msgstr "Partitie begint voor sector 0"
+
+#: fdisk/i386_sys_types.c:30
+msgid "Venix 80286"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:31
+msgid "PPC PReP Boot"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:32
+msgid "SFS"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:33
+msgid "QNX4.x"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:34
+msgid "QNX4.x 2nd part"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:35
+msgid "QNX4.x 3rd part"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:36
+msgid "OnTrack DM"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:37
+msgid "OnTrack DM6 Aux1"
+msgstr ""
+
+#. (or Novell)
+#: fdisk/i386_sys_types.c:38
+msgid "CP/M"
+msgstr ""
+
+#. CP/M or Microport SysV/AT
+#: fdisk/i386_sys_types.c:39
+msgid "OnTrack DM6 Aux3"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:40
+msgid "OnTrackDM6"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:41
+msgid "EZ-Drive"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:42
+msgid "Golden Bow"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:43
+msgid "Priam Edisk"
+msgstr ""
+
+#. DOS R/O or SpeedStor
+#: fdisk/i386_sys_types.c:44 fdisk/i386_sys_types.c:73
+#: fdisk/i386_sys_types.c:75 fdisk/i386_sys_types.c:76
+#, fuzzy
+msgid "SpeedStor"
+msgstr "Sectoren"
+
+#: fdisk/i386_sys_types.c:45
+msgid "GNU HURD or SysV"
+msgstr ""
+
+#. GNU HURD or Mach or Sys V/386 (such as ISC UNIX)
+#: fdisk/i386_sys_types.c:46
+msgid "Novell Netware 286"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:47
+msgid "Novell Netware 386"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:48
+msgid "DiskSecure Multi-Boot"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:49
+msgid "PC/IX"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:50
+msgid "Old Minix"
+msgstr ""
+
+#. Minix 1.4a and earlier
+#: fdisk/i386_sys_types.c:51
+msgid "Minix / old Linux"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:54
+msgid "OS/2 hidden C: drive"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:55
+msgid "Linux extended"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:56 fdisk/i386_sys_types.c:57
+msgid "NTFS volume set"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:58
+msgid "Amoeba"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:59
+msgid "Amoeba BBT"
+msgstr ""
+
+#. (bad block table)
+#: fdisk/i386_sys_types.c:60
+msgid "IBM Thinkpad hibernation"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:61
+msgid "BSD/386"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:62
+msgid "OpenBSD"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:63
+msgid "NeXTSTEP"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:64
+msgid "BSDI fs"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:65
+msgid "BSDI swap"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:66
+msgid "DRDOS/sec (FAT-12)"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:67
+msgid "DRDOS/sec (FAT-16 < 32M)"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:68
+msgid "DRDOS/sec (FAT-16)"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:69
+msgid "Syrinx"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:70
+msgid "CP/M / CTOS / ..."
+msgstr ""
+
+#. CP/M or Concurrent CP/M or Concurrent DOS or CTOS
+#: fdisk/i386_sys_types.c:71
+msgid "DOS access"
+msgstr ""
+
+#. DOS access or SpeedStor 12-bit FAT extended partition
+#: fdisk/i386_sys_types.c:72
+msgid "DOS R/O"
+msgstr ""
+
+#. SpeedStor 16-bit FAT extended partition < 1024 cyl.
+#: fdisk/i386_sys_types.c:74
+msgid "BeOS fs"
+msgstr ""
+
+#. SpeedStor large partition
+#: fdisk/i386_sys_types.c:77
+msgid "DOS secondary"
+msgstr ""
+
+#. DOS 3.3+ secondary
+#: fdisk/i386_sys_types.c:78
+msgid "LANstep"
+msgstr ""
+
+#. SpeedStor >1024 cyl. or LANstep
+#: fdisk/i386_sys_types.c:79
+msgid "BBT"
+msgstr ""
+
+#: fdisk/sfdisk.c:148
+#, c-format
+msgid "seek error on %s - cannot seek to %lu\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:153
+#, c-format
+msgid "seek error: wanted 0x%08x%08x, got 0x%08x%08x\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:199
+msgid "out of memory - giving up\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:203 fdisk/sfdisk.c:286
+#, c-format
+msgid "read error on %s - cannot read sector %lu\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:219
+#, c-format
+msgid "ERROR: sector %lu does not have an msdos signature\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:236
+#, c-format
+msgid "write error on %s - cannot write sector %lu\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:274
+#, c-format
+msgid "cannot open partition sector save file (%s)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:292
+#, c-format
+msgid "write error on %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:310
+#, c-format
+msgid "cannot stat partition restore file (%s)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:315
+msgid "partition restore file has wrong size - not restoring\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:319
+msgid "out of memory?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:325
+#, c-format
+msgid "cannot open partition restore file (%s)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:331
+#, c-format
+msgid "error reading %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:338
+#, fuzzy, c-format
+msgid "cannot open device %s for writing\n"
+msgstr "Kan schijf niet openen"
+
+#: fdisk/sfdisk.c:350
+#, c-format
+msgid "error writing sector %lu on %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:407
+#, c-format
+msgid ""
+"Warning: start=%d - this looks like a partition rather than\n"
+"the entire disk. Using fdisk on it is probably meaningless.\n"
+"[Use the --force option if you really want this]\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:413
+#, c-format
+msgid "Warning: HDIO_GETGEO says that there are %d heads\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:416
+#, c-format
+msgid "Warning: HDIO_GETGEO says that there are %d sectors\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:419
+#, c-format
+msgid "Warning: HDIO_GETGEO says that there are %d cylinders\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:423
+#, c-format
+msgid "Disk %s: cannot get geometry\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:425
+#, c-format
+msgid ""
+"Warning: unlikely number of sectors (%d) - usually at most 63\n"
+"This will give problems with all software that uses C/H/S addressing.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:429
+#, c-format
+msgid ""
+"\n"
+"Disk %s: %lu heads, %lu sectors, %lu cylinders\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:509
+#, c-format
+msgid ""
+"%s of partition %s has impossible value for head: %d (should be in 0-%d)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:514
+#, c-format
+msgid ""
+"%s of partition %s has impossible value for sector: %d (should be in 1-%d)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:519
+#, c-format
+msgid ""
+"%s of partition %s has impossible value for cylinders: %d (should be in "
+"0-%d)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:558
+msgid ""
+"Id  Name\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:703
+#, fuzzy
+msgid "Re-reading the partition table ...\n"
+msgstr "Geef alleen de partitietabel"
+
+#: fdisk/sfdisk.c:709
+msgid ""
+"The command to re-read the partition table failed\n"
+"Reboot your system now, before using mkfs\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:714
+#, c-format
+msgid "Error closing %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:752
+#, fuzzy, c-format
+msgid "%s: no such partition\n"
+msgstr "Slechte logische partitie"
+
+#: fdisk/sfdisk.c:775
+msgid "unrecognized format - using sectors\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:813
+#, fuzzy, c-format
+msgid "# partition table of %s\n"
+msgstr "Partitietabel voor %s\n"
+
+#: fdisk/sfdisk.c:814
+msgid ""
+"unit: sectors\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:824
+#, c-format
+msgid "unimplemented format - using %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:828
+#, c-format
+msgid ""
+"Units = cylinders of %lu bytes, blocks of 1024 bytes, counting from %d\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:831
+msgid "   Device Boot Start     End   #cyls   #blocks   Id  System\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:836
+#, c-format
+msgid ""
+"Units = sectors of 512 bytes, counting from %d\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:838
+msgid "   Device Boot    Start       End  #sectors  Id  System\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:841
+#, c-format
+msgid ""
+"Units = blocks of 1024 bytes, counting from %d\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:843
+msgid "   Device Boot   Start       End   #blocks   Id  System\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:846
+#, c-format
+msgid ""
+"Units = megabytes of 1048576 bytes, blocks of 1024 bytes, counting from %d\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:848
+msgid "   Device Boot Start   End     MB   #blocks   Id  System\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:903
+#, c-format
+msgid " start=%9lu"
+msgstr ""
+
+#: fdisk/sfdisk.c:904
+#, c-format
+msgid ", size=%8lu"
+msgstr ""
+
+#: fdisk/sfdisk.c:906
+#, c-format
+msgid ", Id=%2x"
+msgstr ""
+
+#: fdisk/sfdisk.c:908
+#, fuzzy
+msgid ", bootable"
+msgstr "Startbaar"
+
+#: fdisk/sfdisk.c:969
+#, c-format
+msgid "\t\tstart: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:976
+#, c-format
+msgid "\t\tend: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:979
+#, c-format
+msgid "partition ends on cylinder %ld, beyond the end of the disk\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:989
+msgid "No partitions found\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1034
+#, fuzzy
+msgid "no partition table present.\n"
+msgstr "Partitietabel is weggeschreven"
+
+#: fdisk/sfdisk.c:1036
+#, c-format
+msgid "strange, only %d partitions defined.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1045
+#, c-format
+msgid "Warning: partition %s has size 0 but is not marked Empty\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1048
+#, c-format
+msgid "Warning: partition %s has size 0 and is bootable\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1051
+#, c-format
+msgid "Warning: partition %s has size 0 and nonzero start\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1062
+#, fuzzy, c-format
+msgid "Warning: partition %s "
+msgstr "Schrijf nu de partitietabel naar schijf..."
+
+#: fdisk/sfdisk.c:1063
+#, c-format
+msgid "is not contained in partition %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1074
+#, c-format
+msgid "Warning: partitions %s "
+msgstr ""
+
+#: fdisk/sfdisk.c:1075
+#, c-format
+msgid "and %s overlap\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1086
+#, fuzzy, c-format
+msgid "Warning: partition %s contains part of "
+msgstr "Schrijf nu de partitietabel naar schijf..."
+
+#: fdisk/sfdisk.c:1087
+#, fuzzy, c-format
+msgid "the partition table (sector %lu),\n"
+msgstr "Partitietabel is weggeschreven"
+
+#: fdisk/sfdisk.c:1088
+msgid "and will destroy it when filled\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1097
+#, c-format
+msgid "Warning: partition %s starts at sector 0\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1101
+#, fuzzy, c-format
+msgid "Warning: partition %s extends past end of disk\n"
+msgstr "Partitie eindigt voorbij het einde van de schijf"
+
+#: fdisk/sfdisk.c:1115
+msgid "Among the primary partitions, at most one can be extended\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1116
+msgid " (although this is not a problem under Linux)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1133
+#, c-format
+msgid "Warning: partition %s does not start at a cylinder boundary\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1139
+#, c-format
+msgid "Warning: partition %s does not end at a cylinder boundary\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1157
+msgid ""
+"Warning: more than one primary partition is marked bootable (active)\n"
+"This does not matter for LILO, but the DOS MBR will not boot this disk.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1164
+msgid ""
+"Warning: usually one can boot from primary partitions only\n"
+"LILO disregards the `bootable' flag.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1170
+msgid ""
+"Warning: no primary partition is marked bootable (active)\n"
+"This does not matter for LILO, but the DOS MBR will not boot this disk.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1187
+#, c-format
+msgid ""
+"partition %s: start: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1196
+#, c-format
+msgid "partition %s: end: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1199
+#, c-format
+msgid "partition %s ends on cylinder %ld, beyond the end of the disk\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1232 fdisk/sfdisk.c:1309
+#, c-format
+msgid "too many partitions - ignoring those past nr (%d)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1247
+#, fuzzy
+msgid "tree of partitions?\n"
+msgstr "Maak geen partitie"
+
+#: fdisk/sfdisk.c:1351
+msgid "detected Disk Manager - unable to handle that\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1358
+msgid "DM6 signature found - giving up\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1378
+msgid "strange..., an extended partition of size 0?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1385
+msgid "strange..., a BSD partition of size 0?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1417
+#, c-format
+msgid " %s: unrecognized partition\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1429
+msgid "-n flag was given: Nothing changed\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1442
+msgid "Failed saving the old sectors - aborting\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1447
+#, fuzzy, c-format
+msgid "Failed writing the partition on %s\n"
+msgstr "Heb de partitietabel niet naar schijf geschreven"
+
+#: fdisk/sfdisk.c:1524
+msgid "long or incomplete input line - quitting\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1560
+#, c-format
+msgid "input error: `=' expected after %s field\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1567
+#, c-format
+msgid "input error: unexpected character %c after %s field\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1573
+#, c-format
+msgid "unrecognized input: %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1605
+msgid "number too big\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1609
+msgid "trailing junk after number\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1725
+msgid "no room for partition descriptor\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1758
+msgid "cannot build surrounding extended partition\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1809
+msgid "too many input fields\n"
+msgstr ""
+
+#. no free blocks left - don't read any further
+#: fdisk/sfdisk.c:1843
+msgid "No room for more\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1862
+#, fuzzy
+msgid "Illegal type\n"
+msgstr "Niet herkende toets"
+
+#: fdisk/sfdisk.c:1894
+#, c-format
+msgid "Warning: exceeds max allowable size (%lu)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1899
+#, fuzzy
+msgid "Warning: empty partition\n"
+msgstr "Slechte primaire partitie"
+
+#: fdisk/sfdisk.c:1913
+#, c-format
+msgid "Warning: bad partition start (earliest %lu)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1926
+msgid "unrecognized bootable flag - choose - or *\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1943 fdisk/sfdisk.c:1956
+msgid "partial c,h,s specification?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1967
+#, fuzzy
+msgid "Extended partition not where expected\n"
+msgstr "Zet de partitie aan het eind van de vrije ruimte"
+
+#: fdisk/sfdisk.c:1999
+msgid "bad input\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2021
+#, fuzzy
+msgid "too many partitions\n"
+msgstr "Slechte primaire partitie"
+
+#: fdisk/sfdisk.c:2054
+msgid ""
+"Input in the following format; absent fields get a default value.\n"
+"<start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s>\n"
+"Usually you only need to specify <start> and <size> (and perhaps <type>).\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2074
+msgid "version"
+msgstr ""
+
+#: fdisk/sfdisk.c:2080
+#, fuzzy, c-format
+msgid "Usage: %s [options] device ...\n"
+msgstr "aanroep: %s [ -n ] apparaat\n"
+
+#: fdisk/sfdisk.c:2081
+msgid "device: something like /dev/hda or /dev/sda"
+msgstr ""
+
+#: fdisk/sfdisk.c:2082
+msgid "useful options:"
+msgstr ""
+
+#: fdisk/sfdisk.c:2083
+msgid "    -s [or --show-size]: list size of a partition"
+msgstr ""
+
+#: fdisk/sfdisk.c:2084
+msgid "    -c [or --id]:        print or change partition Id"
+msgstr ""
+
+#: fdisk/sfdisk.c:2085
+msgid "    -l [or --list]:      list partitions of each device"
+msgstr ""
+
+#: fdisk/sfdisk.c:2086
+msgid "    -d [or --dump]:      idem, but in a format suitable for later input"
+msgstr ""
+
+#: fdisk/sfdisk.c:2087
+msgid "    -i [or --increment]: number cylinders etc. from 1 instead of from 0"
+msgstr ""
+
+#: fdisk/sfdisk.c:2088
+msgid ""
+"    -uS, -uB, -uC, -uM:  accept/report in units of "
+"sectors/blocks/cylinders/MB"
+msgstr ""
+
+#: fdisk/sfdisk.c:2089
+msgid "    -T [or --list-types]:list the known partition types"
+msgstr ""
+
+#: fdisk/sfdisk.c:2090
+msgid "    -D [or --DOS]:       for DOS-compatibility: waste a little space"
+msgstr ""
+
+#: fdisk/sfdisk.c:2091
+msgid "    -R [or --re-read]:   make kernel reread partition table"
+msgstr ""
+
+#: fdisk/sfdisk.c:2092
+msgid "    -N# :                change only the partition with number #"
+msgstr ""
+
+#: fdisk/sfdisk.c:2093
+msgid "    -n :                 do not actually write to disk"
+msgstr ""
+
+#: fdisk/sfdisk.c:2094
+msgid ""
+"    -O file :            save the sectors that will be overwritten to file"
+msgstr ""
+
+#: fdisk/sfdisk.c:2095
+msgid "    -I file :            restore these sectors again"
+msgstr ""
+
+#: fdisk/sfdisk.c:2096
+msgid "    -v [or --version]:   print version"
+msgstr ""
+
+#: fdisk/sfdisk.c:2097
+msgid "    -? [or --help]:      print this message"
+msgstr ""
+
+#: fdisk/sfdisk.c:2098
+msgid "dangerous options:"
+msgstr ""
+
+#: fdisk/sfdisk.c:2099
+msgid "    -g [or --show-geometry]: print the kernel's idea of the geometry"
+msgstr ""
+
+#: fdisk/sfdisk.c:2100
+msgid ""
+"    -x [or --show-extended]: also list extended partitions on output\n"
+"                             or expect descriptors for them on input"
+msgstr ""
+
+#: fdisk/sfdisk.c:2102
+msgid ""
+"    -L  [or --Linux]:      do not complain about things irrelevant for Linux"
+msgstr ""
+
+#: fdisk/sfdisk.c:2103
+msgid "    -q  [or --quiet]:      suppress warning messages"
+msgstr ""
+
+#: fdisk/sfdisk.c:2104
+msgid "    You can override the detected geometry using:"
+msgstr ""
+
+#: fdisk/sfdisk.c:2105
+msgid "    -C# [or --cylinders #]:set the number of cylinders to use"
+msgstr ""
+
+#: fdisk/sfdisk.c:2106
+msgid "    -H# [or --heads #]:    set the number of heads to use"
+msgstr ""
+
+#: fdisk/sfdisk.c:2107
+msgid "    -S# [or --sectors #]:  set the number of sectors to use"
+msgstr ""
+
+#: fdisk/sfdisk.c:2108
+msgid "You can disable all consistency checking with:"
+msgstr ""
+
+#: fdisk/sfdisk.c:2109
+msgid "    -f  [or --force]:      do what I say, even if it is stupid"
+msgstr ""
+
+#: fdisk/sfdisk.c:2115
+msgid "Usage:"
+msgstr ""
+
+#: fdisk/sfdisk.c:2116
+#, c-format
+msgid "%s device\t\t list active partitions on device\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2117
+#, c-format
+msgid "%s device n1 n2 ... activate partitions n1 ..., inactivate the rest\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2118
+#, c-format
+msgid "%s -An device\t activate partition n, inactivate the other ones\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2237
+msgid "no command?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2360
+#, fuzzy, c-format
+msgid "total: %d blocks\n"
+msgstr "%ld blokken\n"
+
+#: fdisk/sfdisk.c:2397
+msgid "usage: sfdisk --print-id device partition-number\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2399
+msgid "usage: sfdisk --change-id device partition-number Id\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2401
+msgid "usage: sfdisk --id device partition-number [Id]\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2408
+msgid "can specify only one device (except with -l or -s)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2433
+#, fuzzy, c-format
+msgid "cannot open %s %s\n"
+msgstr "Kan het bestand '%s' niet openen"
+
+#: fdisk/sfdisk.c:2433
+msgid "read-write"
+msgstr ""
+
+#: fdisk/sfdisk.c:2433
+msgid "for reading"
+msgstr ""
+
+#: fdisk/sfdisk.c:2458
+#, c-format
+msgid "%s: OK\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2475
+#, c-format
+msgid "%s: %d cylinders, %d heads, %d sectors/track\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2478
+#, c-format
+msgid "%s: unknown geometry\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2493
+#, c-format
+msgid "BLKGETSIZE ioctl failed for %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2570
+#, c-format
+msgid "bad active byte: 0x%x instead of 0x80\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2587 fdisk/sfdisk.c:2640 fdisk/sfdisk.c:2670
+msgid ""
+"Done\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2596
+#, c-format
+msgid ""
+"You have %d active primary partitions. This does not matter for LILO,\n"
+"but the DOS MBR will only boot a disk with 1 active partition.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2610
+#, c-format
+msgid "partition %s has id %x and is not hidden\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2666
+#, c-format
+msgid "Bad Id %x\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2681
+msgid "This disk is currently in use.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2698
+#, c-format
+msgid "Fatal error: cannot find %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2701
+#, fuzzy, c-format
+msgid "Warning: %s is not a block device\n"
+msgstr "%s: dit apparaat is geen floppy\n"
+
+#: fdisk/sfdisk.c:2706
+msgid "Checking that no-one is using this disk right now ...\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2708
+msgid ""
+"\n"
+"This disk is currently in use - repartitioning is probably a bad idea.Umount "
+"all file systems, and swapoff all swap partitions on this disk.Use the "
+"--no-reread flag to suppress this check.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2712
+msgid "Use the --force flag to overrule all checks.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2716
+msgid "OK"
+msgstr ""
+
+#: fdisk/sfdisk.c:2725
+msgid "Old situation:\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2729
+#, c-format
+msgid "Partition %d does not exist, cannot change it\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2737
+msgid "New situation:\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2742
+msgid ""
+"I don't like these partitions - nothing changed.\n"
+"(If you really want this, use the --force option.)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2745
+msgid "I don't like this - probably you should answer No\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2750
+msgid "Are you satisfied with this? [ynq] "
+msgstr ""
+
+#: fdisk/sfdisk.c:2752
+msgid "Do you want to write this to disk? [ynq] "
+msgstr ""
+
+#: fdisk/sfdisk.c:2757
+msgid ""
+"\n"
+"sfdisk: premature end of input\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2759
+msgid "Quitting - nothing changed\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2765
+#, fuzzy
+msgid "Please answer one of y,n,q\n"
+msgstr "Antwoord `ja' of `nee'"
+
+#: fdisk/sfdisk.c:2773
+#, fuzzy
+msgid ""
+"Successfully wrote the new partition table\n"
+"\n"
+msgstr "Geef alleen de partitietabel"
+
+#: fdisk/sfdisk.c:2779
+msgid ""
+"If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)\n"
+"to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1\n"
+"(See fdisk(8).)\n"
+msgstr ""
+
+#: games/banner.c:1051
+msgid "usage: banner [-w width]\n"
+msgstr ""
+
+#: games/banner.c:1071
+msgid "Message: "
+msgstr ""
+
+#: games/banner.c:1105
+#, c-format
+msgid "The character '%c' is not in my character set"
+msgstr ""
+
+#: games/banner.c:1113
+#, c-format
+msgid "Message '%s' is OK\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:229
+msgid "Try `getopt --help' for more information.\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:295
+msgid "empty long option after -l or --long argument"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:315
+msgid "unknown shell after -s or --shell argument"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:320
+msgid "Usage: getopt optstring parameters\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:321
+msgid "       getopt [options] [--] optstring parameters\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:322
+msgid "       getopt [options] -o|--options optstring [options] [--]\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:323
+msgid "              parameters\n"
+msgstr "              parameters\n"
+
+#: getopt-1.0.3b/getopt.c:324
+msgid ""
+"  -a, --alternative            Allow long options starting with single -\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:325
+msgid "  -h, --help                   This small usage guide\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:326
+msgid "  -l, --longoptions=longopts   Long options to be recognized\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:327
+msgid ""
+"  -n, --name=progname          The name under which errors are reported\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:328
+msgid "  -o, --options=optstring      Short options to be recognized\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:329
+msgid "  -q, --quiet                  Disable error reporting by getopt(3)\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:330
+msgid "  -Q, --quiet-output           No normal output\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:331
+msgid "  -s, --shell=shell            Set shell quoting conventions\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:332
+msgid "  -T, --test                   Test for getopt(1) version\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:333
+msgid "  -V, --version                Output version information\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:387 getopt-1.0.3b/getopt.c:445
+msgid "missing optstring argument"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:433
+msgid "getopt (enhanced) 1.0.3\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:439
+msgid "internal error, contact the author."
+msgstr ""
+
+#: login-utils/agetty.c:300
+msgid "calling open_tty\n"
+msgstr ""
+
+#. Initialize the termio settings (raw mode, eight-bit, blocking i/o).
+#: login-utils/agetty.c:313
+msgid "calling termio_init\n"
+msgstr ""
+
+#: login-utils/agetty.c:318
+msgid "writing init string\n"
+msgstr ""
+
+#. Optionally detect the baud rate from the modem status message.
+#: login-utils/agetty.c:328
+msgid "before autobaud\n"
+msgstr ""
+
+#: login-utils/agetty.c:340
+msgid "waiting for cr-lf\n"
+msgstr ""
+
+#: login-utils/agetty.c:344
+#, c-format
+msgid "read %c\n"
+msgstr ""
+
+#. Read the login name.
+#: login-utils/agetty.c:353
+msgid "reading login name\n"
+msgstr ""
+
+#: login-utils/agetty.c:374
+#, c-format
+msgid "%s: can't exec %s: %m"
+msgstr ""
+
+#: login-utils/agetty.c:394
+msgid "can't malloc initstring"
+msgstr ""
+
+#: login-utils/agetty.c:456
+#, c-format
+msgid "bad timeout value: %s"
+msgstr ""
+
+#: login-utils/agetty.c:465
+msgid "after getopt loop\n"
+msgstr ""
+
+#: login-utils/agetty.c:483
+msgid "exiting parseargs\n"
+msgstr ""
+
+#: login-utils/agetty.c:496
+msgid "entered parse_speeds\n"
+msgstr ""
+
+#: login-utils/agetty.c:499
+#, c-format
+msgid "bad speed: %s"
+msgstr ""
+
+#: login-utils/agetty.c:501
+msgid "too many alternate speeds"
+msgstr ""
+
+#: login-utils/agetty.c:503
+msgid "exiting parsespeeds\n"
+msgstr ""
+
+#: login-utils/agetty.c:576
+#, c-format
+msgid "%s: open for update: %m"
+msgstr ""
+
+#: login-utils/agetty.c:592
+#, c-format
+msgid "%s: no utmp entry"
+msgstr ""
+
+#: login-utils/agetty.c:621
+#, c-format
+msgid "/dev: chdir() failed: %m"
+msgstr ""
+
+#: login-utils/agetty.c:625
+#, c-format
+msgid "/dev/%s: not a character device"
+msgstr ""
+
+#. ignore close(2) errors
+#: login-utils/agetty.c:632
+msgid "open(2)\n"
+msgstr ""
+
+#: login-utils/agetty.c:634
+#, c-format
+msgid "/dev/%s: cannot open as standard input: %m"
+msgstr ""
+
+#: login-utils/agetty.c:644
+#, c-format
+msgid "%s: not open for read/write"
+msgstr ""
+
+#. Set up standard output and standard error file descriptors.
+#: login-utils/agetty.c:648
+msgid "duping\n"
+msgstr ""
+
+#. set up stdout and stderr
+#: login-utils/agetty.c:650
+#, c-format
+msgid "%s: dup problem: %m"
+msgstr ""
+
+#: login-utils/agetty.c:712
+msgid "term_io 2\n"
+msgstr ""
+
+#: login-utils/agetty.c:894
+msgid "user"
+msgstr ""
+
+#: login-utils/agetty.c:894
+msgid "users"
+msgstr ""
+
+#: login-utils/agetty.c:982
+#, c-format
+msgid "%s: read: %m"
+msgstr ""
+
+#: login-utils/agetty.c:1028
+#, c-format
+msgid "%s: input overrun"
+msgstr ""
+
+#: login-utils/agetty.c:1152
+#, c-format
+msgid ""
+"Usage: %s [-hiLmw] [-l login_program] [-t timeout] [-I initstring] "
+"baud_rate,... line [termtype]\n"
+"or\t[-hiLmw] [-l login_program] [-t timeout] [-I initstring] line "
+"baud_rate,... [termtype]\n"
+msgstr ""
+
+#: login-utils/checktty.c:46
+#, c-format
+msgid "badlogin: %s\n"
+msgstr ""
+
+#: login-utils/checktty.c:52
+#, c-format
+msgid "sleepexit %d\n"
+msgstr ""
+
+#: login-utils/checktty.c:108 login-utils/checktty.c:130
+msgid "login: memory low, login may fail\n"
+msgstr ""
+
+#: login-utils/checktty.c:109
+msgid "can't malloc for ttyclass"
+msgstr ""
+
+#: login-utils/checktty.c:131
+msgid "can't malloc for grplist"
+msgstr ""
+
+#. there was a default rule, but user didn't match, reject!
+#: login-utils/checktty.c:424
+#, c-format
+msgid "Login on %s from %s denied by default.\n"
+msgstr ""
+
+#. if we get here, /etc/usertty exists, there's a line
+#. matching our username, but it doesn't contain the
+#. name of the tty where the user is trying to log in.
+#. So deny access!
+#: login-utils/checktty.c:435
+#, c-format
+msgid "Login on %s from %s denied.\n"
+msgstr ""
+
+#: login-utils/chfn.c:139 login-utils/chsh.c:118
+#, c-format
+msgid "%s: you (user %d) don't exist.\n"
+msgstr ""
+
+#: login-utils/chfn.c:146 login-utils/chsh.c:125
+#, c-format
+msgid "%s: user \"%s\" does not exist.\n"
+msgstr ""
+
+#: login-utils/chfn.c:151 login-utils/chsh.c:130
+#, c-format
+msgid "%s: can only change local entries; use yp%s instead.\n"
+msgstr ""
+
+#: login-utils/chfn.c:163
+#, c-format
+msgid "Changing finger information for %s.\n"
+msgstr ""
+
+#: login-utils/chfn.c:169 login-utils/chfn.c:173 login-utils/chfn.c:180
+#: login-utils/chfn.c:184 login-utils/chsh.c:154 login-utils/chsh.c:158
+#: login-utils/chsh.c:165 login-utils/chsh.c:169
+msgid "Password error."
+msgstr ""
+
+#: login-utils/chfn.c:193 login-utils/chsh.c:178 login-utils/login.c:650
+#: login-utils/newgrp.c:47 login-utils/simpleinit.c:219 mount/lomount.c:196
+#: mount/lomount.c:202 mount/losetup.c:115 mount/losetup.c:121
+msgid "Password: "
+msgstr ""
+
+#: login-utils/chfn.c:196 login-utils/chsh.c:181
+msgid "Incorrect password."
+msgstr ""
+
+#: login-utils/chfn.c:207
+msgid "Finger information not changed.\n"
+msgstr ""
+
+#: login-utils/chfn.c:310
+#, c-format
+msgid "Usage: %s [ -f full-name ] [ -o office ] "
+msgstr ""
+
+#: login-utils/chfn.c:311
+msgid ""
+"[ -p office-phone ]\n"
+"\t[ -h home-phone ] "
+msgstr ""
+
+#: login-utils/chfn.c:312
+msgid "[ --help ] [ --version ]\n"
+msgstr ""
+
+#: login-utils/chfn.c:381 login-utils/chsh.c:294
+msgid ""
+"\n"
+"Aborted.\n"
+msgstr ""
+
+#: login-utils/chfn.c:414
+msgid "field is too long.\n"
+msgstr ""
+
+#: login-utils/chfn.c:422
+#, c-format
+msgid "'%c' is not allowed.\n"
+msgstr ""
+
+#: login-utils/chfn.c:427
+msgid "Control characters are not allowed.\n"
+msgstr ""
+
+#: login-utils/chfn.c:492
+msgid "Finger information *NOT* changed.  Try again later.\n"
+msgstr ""
+
+#: login-utils/chfn.c:495
+msgid "Finger information changed.\n"
+msgstr ""
+
+#: login-utils/chfn.c:509 login-utils/chsh.c:412 sys-utils/cytune.c:315
+msgid "malloc failed"
+msgstr ""
+
+#: login-utils/chsh.c:141
+#, c-format
+msgid "%s: Your shell is not in /etc/shells, shell change denied\n"
+msgstr ""
+
+#: login-utils/chsh.c:148
+#, c-format
+msgid "Changing shell for %s.\n"
+msgstr ""
+
+#: login-utils/chsh.c:189
+msgid "New shell"
+msgstr ""
+
+#: login-utils/chsh.c:196
+msgid "Shell not changed.\n"
+msgstr "Shell ongewijzigd.\n"
+
+#: login-utils/chsh.c:203
+msgid "Shell *NOT* changed.  Try again later.\n"
+msgstr "Shell *NIET* gewijzigd.  Probeer later nog eens.\n"
+
+#: login-utils/chsh.c:206
+msgid "Shell changed.\n"
+msgstr "Shell gewijzigd.\n"
+
+#: login-utils/chsh.c:274
+#, c-format
+msgid "Usage: %s [ -s shell ] "
+msgstr ""
+
+#: login-utils/chsh.c:275
+msgid "[ --list-shells ] [ --help ] [ --version ]\n"
+msgstr ""
+
+#: login-utils/chsh.c:276
+msgid "       [ username ]\n"
+msgstr ""
+
+#: login-utils/chsh.c:320
+#, c-format
+msgid "%s: shell must be a full path name.\n"
+msgstr ""
+
+#: login-utils/chsh.c:324
+#, c-format
+msgid "%s: \"%s\" does not exist.\n"
+msgstr ""
+
+#: login-utils/chsh.c:328
+#, c-format
+msgid "%s: \"%s\" is not executable.\n"
+msgstr ""
+
+#: login-utils/chsh.c:335
+#, c-format
+msgid "%s: '%c' is not allowed.\n"
+msgstr ""
+
+#: login-utils/chsh.c:339
+#, c-format
+msgid "%s: Control characters are not allowed.\n"
+msgstr ""
+
+#: login-utils/chsh.c:346
+#, c-format
+msgid "Warning: \"%s\" is not listed in /etc/shells\n"
+msgstr ""
+
+#: login-utils/chsh.c:348
+#, c-format
+msgid "%s: \"%s\" is not listed in /etc/shells.\n"
+msgstr ""
+
+#: login-utils/chsh.c:350
+#, c-format
+msgid "%s: use -l option to see list\n"
+msgstr ""
+
+#: login-utils/chsh.c:356
+#, c-format
+msgid "Warning: \"%s\" is not listed in /etc/shells.\n"
+msgstr ""
+
+#: login-utils/chsh.c:357
+#, c-format
+msgid "Use %s -l to see list.\n"
+msgstr ""
+
+#: login-utils/chsh.c:378
+msgid "No known shells.\n"
+msgstr ""
+
+#: login-utils/cryptocard.c:70
+msgid "couldn't open /dev/urandom"
+msgstr ""
+
+#: login-utils/cryptocard.c:75
+msgid "couldn't read random data from /dev/urandom"
+msgstr ""
+
+#: login-utils/cryptocard.c:98
+#, c-format
+msgid "can't open %s for reading"
+msgstr ""
+
+#: login-utils/cryptocard.c:102
+#, c-format
+msgid "can't stat(%s)"
+msgstr ""
+
+#: login-utils/cryptocard.c:108
+#, c-format
+msgid "%s doesn't have the correct filemodes"
+msgstr ""
+
+#: login-utils/cryptocard.c:113
+#, c-format
+msgid "can't read data from %s"
+msgstr ""
+
+#: login-utils/islocal.c:36
+#, c-format
+msgid "Can't read %s, exiting."
+msgstr ""
+
+#: login-utils/last.c:138
+msgid "usage: last [-#] [-f file] [-t tty] [-h hostname] [user ...]\n"
+msgstr ""
+
+#: login-utils/last.c:215
+#, c-format
+msgid "last: %s: "
+msgstr ""
+
+#: login-utils/last.c:270
+msgid "  still logged in"
+msgstr ""
+
+#: login-utils/last.c:291
+#, c-format
+msgid ""
+"\n"
+"wtmp begins %10.10s %5.5s \n"
+msgstr ""
+
+#: login-utils/last.c:352 login-utils/last.c:372 login-utils/last.c:427
+msgid "last: malloc failure.\n"
+msgstr ""
+
+#: login-utils/last.c:401
+msgid "last: gethostname"
+msgstr ""
+
+#: login-utils/last.c:454
+#, c-format
+msgid ""
+"\n"
+"interrupted %10.10s %5.5s \n"
+msgstr ""
+
+#: login-utils/login.c:349
+msgid "login: -h for super-user only.\n"
+msgstr ""
+
+#: login-utils/login.c:374
+msgid "usage: login [-fp] [username]\n"
+msgstr ""
+
+#: login-utils/login.c:476
+#, c-format
+msgid "login: PAM Failure, aborting: %s\n"
+msgstr ""
+
+#: login-utils/login.c:478
+#, c-format
+msgid "Couldn't initialize PAM: %s"
+msgstr ""
+
+#: login-utils/login.c:518
+#, c-format
+msgid "FAILED LOGIN %d FROM %s FOR %s, %s"
+msgstr ""
+
+#: login-utils/login.c:520
+msgid ""
+"Login incorrect\n"
+"\n"
+msgstr ""
+
+#: login-utils/login.c:529
+#, c-format
+msgid "TOO MANY LOGIN TRIES (%d) FROM %s FOR %s, %s"
+msgstr ""
+
+#: login-utils/login.c:533
+#, c-format
+msgid "FAILED LOGIN SESSION FROM %s FOR %s, %s"
+msgstr ""
+
+#: login-utils/login.c:536
+msgid ""
+"\n"
+"Login incorrect\n"
+msgstr ""
+
+#: login-utils/login.c:585
+msgid "Illegal username"
+msgstr "Niet-toegestane gebruikersnaam"
+
+#: login-utils/login.c:628
+#, c-format
+msgid "%s login refused on this terminal.\n"
+msgstr ""
+
+#: login-utils/login.c:633
+#, c-format
+msgid "LOGIN %s REFUSED FROM %s ON TTY %s"
+msgstr ""
+
+#: login-utils/login.c:637
+#, c-format
+msgid "LOGIN %s REFUSED ON TTY %s"
+msgstr ""
+
+#: login-utils/login.c:689
+msgid "Login incorrect\n"
+msgstr ""
+
+#: login-utils/login.c:711
+msgid ""
+"Too many users logged on already.\n"
+"Try again later.\n"
+msgstr ""
+
+#: login-utils/login.c:715
+msgid "You have too many processes running.\n"
+msgstr ""
+
+#: login-utils/login.c:761
+msgid "Warning: no Kerberos tickets issued\n"
+msgstr ""
+
+#: login-utils/login.c:773
+msgid "Sorry -- your password has expired.\n"
+msgstr ""
+
+#: login-utils/login.c:779
+#, c-format
+msgid "Warning: your password expires on %s %d, %d\n"
+msgstr ""
+
+#: login-utils/login.c:787
+msgid "Sorry -- your account has expired.\n"
+msgstr ""
+
+#: login-utils/login.c:793
+#, c-format
+msgid "Warning: your account expires on %s %d, %d\n"
+msgstr ""
+
+#: login-utils/login.c:1012
+#, c-format
+msgid "DIALUP AT %s BY %s"
+msgstr ""
+
+#: login-utils/login.c:1019
+#, c-format
+msgid "ROOT LOGIN ON %s FROM %s"
+msgstr ""
+
+#: login-utils/login.c:1022
+#, c-format
+msgid "ROOT LOGIN ON %s"
+msgstr ""
+
+#: login-utils/login.c:1025
+#, c-format
+msgid "LOGIN ON %s BY %s FROM %s"
+msgstr ""
+
+#: login-utils/login.c:1028
+#, c-format
+msgid "LOGIN ON %s BY %s"
+msgstr ""
+
+#: login-utils/login.c:1039
+#, c-format
+msgid "You have %smail.\n"
+msgstr ""
+
+#: login-utils/login.c:1040
+msgid "new "
+msgstr ""
+
+#. error in fork()
+#: login-utils/login.c:1057
+#, c-format
+msgid "login: failure forking: %s"
+msgstr ""
+
+#: login-utils/login.c:1072
+msgid "setuid() failed"
+msgstr ""
+
+#: login-utils/login.c:1078
+#, c-format
+msgid "No directory %s!\n"
+msgstr ""
+
+#: login-utils/login.c:1082
+msgid "Logging in with home = \"/\".\n"
+msgstr ""
+
+#: login-utils/login.c:1090
+msgid "login: no memory for shell script.\n"
+msgstr ""
+
+#: login-utils/login.c:1116
+#, c-format
+msgid "login: couldn't exec shell script: %s.\n"
+msgstr ""
+
+#: login-utils/login.c:1119
+#, c-format
+msgid "login: no shell: %s.\n"
+msgstr ""
+
+#: login-utils/login.c:1135
+#, c-format
+msgid ""
+"\n"
+"%s login: "
+msgstr ""
+
+#: login-utils/login.c:1146
+msgid "login name much too long.\n"
+msgstr ""
+
+#: login-utils/login.c:1147
+msgid "NAME too long"
+msgstr ""
+
+#: login-utils/login.c:1154
+msgid "login names may not start with '-'.\n"
+msgstr ""
+
+#: login-utils/login.c:1164
+msgid "too many bare linefeeds.\n"
+msgstr ""
+
+#: login-utils/login.c:1165
+msgid "EXCESSIVE linefeeds"
+msgstr ""
+
+#: login-utils/login.c:1176
+#, c-format
+msgid "Login timed out after %d seconds\n"
+msgstr ""
+
+#: login-utils/login.c:1276
+#, c-format
+msgid "Last login: %.*s "
+msgstr ""
+
+#: login-utils/login.c:1280
+#, c-format
+msgid "from %.*s\n"
+msgstr ""
+
+#: login-utils/login.c:1283
+#, c-format
+msgid "on %.*s\n"
+msgstr ""
+
+#: login-utils/login.c:1306
+#, c-format
+msgid "LOGIN FAILURE FROM %s, %s"
+msgstr ""
+
+#: login-utils/login.c:1309
+#, c-format
+msgid "LOGIN FAILURE ON %s, %s"
+msgstr ""
+
+#: login-utils/login.c:1313
+#, c-format
+msgid "%d LOGIN FAILURES FROM %s, %s"
+msgstr ""
+
+#: login-utils/login.c:1316
+#, c-format
+msgid "%d LOGIN FAILURES ON %s, %s"
+msgstr ""
+
+#: login-utils/mesg.c:89
+msgid "is y\n"
+msgstr ""
+
+#: login-utils/mesg.c:92
+msgid "is n\n"
+msgstr ""
+
+#: login-utils/mesg.c:112
+msgid "usage: mesg [y | n]\n"
+msgstr ""
+
+#: login-utils/newgrp.c:67
+msgid "newgrp: Who are you?"
+msgstr ""
+
+#: login-utils/newgrp.c:75 login-utils/newgrp.c:85
+msgid "newgrp: setgid"
+msgstr ""
+
+#: login-utils/newgrp.c:80
+msgid "newgrp: No such group."
+msgstr ""
+
+#: login-utils/newgrp.c:89
+msgid "newgrp: Permission denied"
+msgstr ""
+
+#: login-utils/newgrp.c:96
+msgid "newgrp: setuid"
+msgstr ""
+
+#: login-utils/newgrp.c:102
+msgid "No shell"
+msgstr ""
+
+#: login-utils/passwd.c:165
+msgid "The password must have at least 6 characters, try again.\n"
+msgstr ""
+
+#: login-utils/passwd.c:178
+msgid "The password must contain characters out of two of the following\n"
+msgstr ""
+
+#: login-utils/passwd.c:179
+msgid "classes:  upper and lower case letters, digits and non alphanumeric\n"
+msgstr ""
+
+#: login-utils/passwd.c:180
+msgid "characters. See passwd(1) for more information.\n"
+msgstr ""
+
+#: login-utils/passwd.c:185
+msgid "You cannot reuse the old password.\n"
+msgstr ""
+
+#: login-utils/passwd.c:190
+msgid "Please don't use something like your username as password!\n"
+msgstr ""
+
+#: login-utils/passwd.c:201 login-utils/passwd.c:208
+msgid "Please don't use something like your realname as password!\n"
+msgstr ""
+
+#: login-utils/passwd.c:225
+msgid "Usage: passwd [username [password]]\n"
+msgstr ""
+
+#: login-utils/passwd.c:226
+msgid "Only root may use the one and two argument forms.\n"
+msgstr ""
+
+#: login-utils/passwd.c:282
+msgid "Usage: passwd [-foqsvV] [user [password]]\n"
+msgstr ""
+
+#: login-utils/passwd.c:302
+#, c-format
+msgid "Can't exec %s: %s\n"
+msgstr ""
+
+#: login-utils/passwd.c:313
+msgid "Cannot find login name"
+msgstr ""
+
+#: login-utils/passwd.c:320 login-utils/passwd.c:327
+msgid "Only root can change the password for others.\n"
+msgstr ""
+
+#: login-utils/passwd.c:335
+msgid "Too many arguments.\n"
+msgstr ""
+
+#: login-utils/passwd.c:340
+#, c-format
+msgid "Can't find username anywhere. Is `%s' really a user?"
+msgstr ""
+
+#: login-utils/passwd.c:344
+msgid "Sorry, I can only change local passwords. Use yppasswd instead."
+msgstr ""
+
+#: login-utils/passwd.c:350
+msgid "UID and username does not match, imposter!"
+msgstr ""
+
+#: login-utils/passwd.c:355
+#, c-format
+msgid "Changing password for %s\n"
+msgstr ""
+
+#: login-utils/passwd.c:359
+msgid "Enter old password: "
+msgstr ""
+
+#: login-utils/passwd.c:361
+msgid "Illegal password, imposter."
+msgstr ""
+
+#: login-utils/passwd.c:373
+msgid "Enter new password: "
+msgstr ""
+
+#: login-utils/passwd.c:375
+msgid "Password not changed."
+msgstr ""
+
+#: login-utils/passwd.c:385
+msgid "Re-type new password: "
+msgstr ""
+
+#: login-utils/passwd.c:388
+msgid "You misspelled it. Password not changed."
+msgstr ""
+
+#: login-utils/passwd.c:403
+#, c-format
+msgid "password changed, user %s"
+msgstr ""
+
+#: login-utils/passwd.c:406
+msgid "ROOT PASSWORD CHANGED"
+msgstr ""
+
+#: login-utils/passwd.c:408
+#, c-format
+msgid "password changed by root, user %s"
+msgstr ""
+
+#: login-utils/passwd.c:415
+msgid "calling setpwnam to set password.\n"
+msgstr ""
+
+#: login-utils/passwd.c:419
+msgid "Password *NOT* changed.  Try again later.\n"
+msgstr ""
+
+#: login-utils/passwd.c:425
+msgid "Password changed.\n"
+msgstr ""
+
+#: login-utils/shutdown.c:85
+msgid "Usage: shutdown [-h|-r] [-fqs] [now|hh:ss|+mins]\n"
+msgstr ""
+
+#: login-utils/shutdown.c:103
+msgid "Shutdown process aborted"
+msgstr ""
+
+#: login-utils/shutdown.c:125
+#, c-format
+msgid "%s: Only root can shut a system down.\n"
+msgstr ""
+
+#: login-utils/shutdown.c:219
+msgid "That must be tomorrow, "
+msgstr ""
+
+#: login-utils/shutdown.c:220
+msgid "can't you wait till then?\n"
+msgstr ""
+
+#: login-utils/shutdown.c:271
+msgid "for maintenance; bounce, bounce"
+msgstr ""
+
+#: login-utils/shutdown.c:275
+#, c-format
+msgid "timeout = %d, quiet = %d, reboot = %d\n"
+msgstr ""
+
+#: login-utils/shutdown.c:300
+msgid "The system is being shut down within 5 minutes"
+msgstr ""
+
+#: login-utils/shutdown.c:304
+msgid "Login is therefore prohibited."
+msgstr ""
+
+#: login-utils/shutdown.c:325
+#, c-format
+msgid "%s by %s: %s"
+msgstr ""
+
+#: login-utils/shutdown.c:326
+msgid "rebooted"
+msgstr ""
+
+#: login-utils/shutdown.c:326
+msgid "halted"
+msgstr ""
+
+#. RB_AUTOBOOT
+#: login-utils/shutdown.c:369
+msgid ""
+"\n"
+"Why am I still alive after reboot?"
+msgstr ""
+
+#: login-utils/shutdown.c:371
+msgid ""
+"\n"
+"Now you can turn off the power..."
+msgstr ""
+
+#: login-utils/shutdown.c:386
+msgid "Calling kernel power-off facility...\n"
+msgstr ""
+
+#: login-utils/shutdown.c:389
+#, c-format
+msgid "Error powering off\t%s\n"
+msgstr ""
+
+#: login-utils/shutdown.c:397
+#, c-format
+msgid "Executing the program \"%s\" ...\n"
+msgstr ""
+
+#: login-utils/shutdown.c:400
+#, c-format
+msgid "Error executing\t%s\n"
+msgstr ""
+
+#: login-utils/shutdown.c:423
+#, c-format
+msgid "\aURGENT: broadcast message from %s:"
+msgstr ""
+
+#: login-utils/shutdown.c:429
+msgid "System going down IMMEDIATELY!\n"
+msgstr ""
+
+#: login-utils/shutdown.c:432
+#, c-format
+msgid "System going down in %d hour%s %d minutes"
+msgstr ""
+
+#: login-utils/shutdown.c:435
+#, c-format
+msgid "System going down in %d minute%s\n"
+msgstr ""
+
+#: login-utils/shutdown.c:441
+#, c-format
+msgid "\t... %s ...\n"
+msgstr ""
+
+#: login-utils/shutdown.c:498
+msgid "Cannot fork for swapoff. Shrug!"
+msgstr ""
+
+#: login-utils/shutdown.c:506
+msgid "Cannot exec swapoff, "
+msgstr ""
+
+#: login-utils/shutdown.c:507
+msgid "hoping umount will do the trick."
+msgstr ""
+
+#: login-utils/shutdown.c:525
+msgid "Cannot fork for umount, trying manually."
+msgstr ""
+
+#: login-utils/shutdown.c:531
+msgid "Cannot exec "
+msgstr ""
+
+#: login-utils/shutdown.c:531
+msgid ", trying umount."
+msgstr ""
+
+#: login-utils/shutdown.c:533
+msgid "Cannot exec umount, giving up on umount."
+msgstr ""
+
+#: login-utils/shutdown.c:538
+msgid "Unmounting any remaining filesystems..."
+msgstr ""
+
+#: login-utils/shutdown.c:574
+#, c-format
+msgid "shutdown: Couldn't umount %s\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:79
+msgid "Booting to single user mode.\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:83
+msgid "exec of single user shell failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:87
+msgid "fork of single user shell failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:226
+msgid ""
+"\n"
+"Wrong password.\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:252
+msgid "exec rc failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:255
+msgid "open of rc file failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:261
+msgid "fork of rc shell failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:273
+msgid "fork failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:302 text-utils/more.c:1469
+msgid "exec failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:324
+#, fuzzy
+msgid "cannot open inittab\n"
+msgstr "Kan schijf niet openen"
+
+#: login-utils/simpleinit.c:362
+msgid "no TERM or cannot stat tty\n"
+msgstr ""
+
+#: login-utils/ttymsg.c:79
+msgid "too many iov's (change code in wall/ttymsg.c)"
+msgstr ""
+
+#. A slash is an attempt to break security...
+#: login-utils/ttymsg.c:83
+#, c-format
+msgid "'/' in \"%s\""
+msgstr ""
+
+#: login-utils/ttymsg.c:88
+msgid "excessively long line arg"
+msgstr ""
+
+#: login-utils/ttymsg.c:142
+msgid "cannot fork"
+msgstr ""
+
+#: login-utils/ttymsg.c:145
+#, c-format
+msgid "fork: %s"
+msgstr ""
+
+#: login-utils/ttymsg.c:172
+#, c-format
+msgid "%s: BAD ERROR"
+msgstr ""
+
+#: login-utils/vipw.c:147
+#, c-format
+msgid "%s: the %s file is busy.\n"
+msgstr ""
+
+#: login-utils/vipw.c:163
+#, c-format
+msgid "%s: the %s file is busy (%s present)\n"
+msgstr ""
+
+#: login-utils/vipw.c:168
+#, c-format
+msgid "%s: can't link %s: %s\n"
+msgstr ""
+
+#: login-utils/vipw.c:188
+#, c-format
+msgid "%s: can't unlock %s: %s (your changes are still in %s)\n"
+msgstr ""
+
+#: login-utils/vipw.c:212
+#, c-format
+msgid "%s: Cannot fork\n"
+msgstr ""
+
+#: login-utils/vipw.c:252
+#, fuzzy, c-format
+msgid "%s: %s unchanged\n"
+msgstr "De schijfinhoud is gewijzigd.\n"
+
+#: login-utils/vipw.c:295
+#, c-format
+msgid "%s: no changes made\n"
+msgstr ""
+
+#: login-utils/wall.c:104
+msgid "usage: wall [file]\n"
+msgstr ""
+
+#: login-utils/wall.c:115
+#, c-format
+msgid "wall: cannot read %s.\n"
+msgstr ""
+
+#: login-utils/wall.c:132
+#, c-format
+msgid "wall: %s\n"
+msgstr ""
+
+#: login-utils/wall.c:154
+msgid "wall: can't open temporary file.\n"
+msgstr ""
+
+#: login-utils/wall.c:181
+#, c-format
+msgid "Broadcast Message from %s@%s"
+msgstr ""
+
+#: login-utils/wall.c:191
+#, c-format
+msgid "wall: can't read %s.\n"
+msgstr ""
+
+#: login-utils/wall.c:216
+msgid "wall: can't stat temporary file.\n"
+msgstr ""
+
+#: login-utils/wall.c:225
+msgid "wall: can't read temporary file.\n"
+msgstr ""
+
+#: misc-utils/cal.c:198
+msgid "illegal month value: use 1-12"
+msgstr ""
+
+#: misc-utils/cal.c:202
+msgid "illegal year value: use 1-9999"
+msgstr ""
+
+#: misc-utils/cal.c:498
+msgid "usage: cal [-mjy] [[month] year]\n"
+msgstr ""
+
+#: misc-utils/ddate.c:184
+#, c-format
+msgid "usage: %s [+format] [day month year]\n"
+msgstr ""
+
+#. handle St. Tib's Day
+#: misc-utils/ddate.c:230
+msgid "St. Tib's Day"
+msgstr ""
+
+#: misc-utils/kill.c:199
+#, c-format
+msgid "%s: unknown signal %s\n"
+msgstr ""
+
+#: misc-utils/kill.c:261
+#, c-format
+msgid "%s: can't find process \"%s\"\n"
+msgstr ""
+
+#: misc-utils/kill.c:303
+#, c-format
+msgid "%s: unknown signal %s; valid signals:\n"
+msgstr ""
+
+#: misc-utils/kill.c:343
+#, c-format
+msgid "usage: %s [ -s signal | -p ] [ -a ] pid ...\n"
+msgstr ""
+
+#: misc-utils/kill.c:344
+#, c-format
+msgid "       %s -l [ signal ]\n"
+msgstr ""
+
+#: misc-utils/logger.c:135
+#, c-format
+msgid "logger: %s: %s.\n"
+msgstr ""
+
+#: misc-utils/logger.c:232
+#, c-format
+msgid "logger: unknown facility name: %s.\n"
+msgstr ""
+
+#: misc-utils/logger.c:244
+#, c-format
+msgid "logger: unknown priority name: %s.\n"
+msgstr ""
+
+#: misc-utils/logger.c:271
+msgid "logger: [-is] [-f file] [-p pri] [-t tag] [-u socket] [ message ... ]\n"
+msgstr ""
+
+#: misc-utils/look.c:170 misc-utils/setterm.c:1153 text-utils/more.c:1782
+#: text-utils/more.c:1793
+msgid "Out of memory"
+msgstr ""
+
+#: misc-utils/look.c:340
+msgid "usage: look [-dfa] [-t char] string [file]\n"
+msgstr ""
+
+#: misc-utils/look.c:365
+msgid "look: "
+msgstr ""
+
+#: misc-utils/mcookie.c:95 misc-utils/mcookie.c:120
+#, fuzzy, c-format
+msgid "Could not open %s\n"
+msgstr "Kan het bestand '%s' niet openen"
+
+#: misc-utils/mcookie.c:103 misc-utils/mcookie.c:117
+#, c-format
+msgid "Got %d bytes from %s\n"
+msgstr ""
+
+#: misc-utils/namei.c:107
+#, c-format
+msgid "namei: unable to get current directory - %s\n"
+msgstr ""
+
+#: misc-utils/namei.c:118
+#, c-format
+msgid "namei: unable to chdir to %s - %s (%d)\n"
+msgstr ""
+
+#: misc-utils/namei.c:128
+msgid "usage: namei [-mx] pathname [pathname ...]\n"
+msgstr ""
+
+#: misc-utils/namei.c:157
+msgid "namei: could not chdir to root!\n"
+msgstr ""
+
+#: misc-utils/namei.c:164
+msgid "namei: could not stat root!\n"
+msgstr ""
+
+#: misc-utils/namei.c:219
+#, c-format
+msgid " ? could not chdir into %s - %s (%d)\n"
+msgstr ""
+
+#: misc-utils/namei.c:248
+#, c-format
+msgid " ? problems reading symlink %s - %s (%d)\n"
+msgstr ""
+
+#: misc-utils/namei.c:258
+msgid "  *** EXCEEDED UNIX LIMIT OF SYMLINKS ***"
+msgstr ""
+
+#: misc-utils/namei.c:294
+#, c-format
+msgid "namei: unknown file type 0%06o on file %s\n"
+msgstr ""
+
+#: misc-utils/script.c:108
+msgid "usage: script [-a] [file]\n"
+msgstr ""
+
+#: misc-utils/script.c:128
+#, c-format
+msgid "Script started, file is %s\n"
+msgstr ""
+
+#: misc-utils/script.c:197
+#, c-format
+msgid "Script started on %s"
+msgstr ""
+
+#: misc-utils/script.c:263
+#, c-format
+msgid ""
+"\n"
+"Script done on %s"
+msgstr ""
+
+#: misc-utils/script.c:268
+#, c-format
+msgid "Script done, file is %s\n"
+msgstr ""
+
+#: misc-utils/script.c:280
+msgid "openpty failed\n"
+msgstr ""
+
+#: misc-utils/script.c:314
+msgid "Out of pty's\n"
+msgstr ""
+
+#. Print error message about arguments, and the command's syntax.
+#: misc-utils/setterm.c:745
+#, c-format
+msgid "%s: Argument error, usage\n"
+msgstr ""
+
+#: misc-utils/setterm.c:747
+#, c-format
+msgid "%s\n"
+msgstr ""
+
+#: misc-utils/setterm.c:748
+msgid "  [ -term terminal_name ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:749
+msgid "  [ -reset ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:750
+msgid "  [ -initialize ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:751
+msgid "  [ -cursor [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:753
+msgid "  [ -snow [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:754
+msgid "  [ -softscroll [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:755
+msgid "  [ -keyboard pc|olivetti|dutch|extended ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:757
+msgid "  [ -repeat [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:758
+msgid "  [ -appcursorkeys [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:759
+msgid "  [ -linewrap [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:760
+msgid "  [ -default ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:761
+msgid "  [ -foreground black|blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:762 misc-utils/setterm.c:764
+msgid "|red|magenta|yellow|white|default ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:763
+msgid "  [ -background black|blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:765
+msgid "  [ -ulcolor black|grey|blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:766 misc-utils/setterm.c:768 misc-utils/setterm.c:770
+#: misc-utils/setterm.c:772
+msgid "|red|magenta|yellow|white ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:767
+msgid "  [ -ulcolor bright blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:769
+msgid "  [ -hbcolor black|grey|blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:771
+msgid "  [ -hbcolor bright blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:774
+msgid "  [ -standout [ attr ] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:776
+msgid "  [ -inversescreen [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:777
+msgid "  [ -bold [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:778
+msgid "  [ -half-bright [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:779
+msgid "  [ -blink [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:780
+msgid "  [ -reverse [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:781
+msgid "  [ -underline [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:782
+msgid "  [ -store ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:783
+msgid "  [ -clear [all|rest] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:784
+msgid "  [ -tabs [ tab1 tab2 tab3 ... ] ]      (tabn = 1-160)\n"
+msgstr ""
+
+#: misc-utils/setterm.c:785
+msgid "  [ -clrtabs [ tab1 tab2 tab3 ... ] ]   (tabn = 1-160)\n"
+msgstr ""
+
+#: misc-utils/setterm.c:786
+msgid "  [ -regtabs [1-160] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:787
+msgid "  [ -blank [0-60] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:788
+msgid "  [ -dump   [1-NR_CONSOLES] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:789
+msgid "  [ -append [1-NR_CONSOLES] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:790
+msgid "  [ -file dumpfilename ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:791
+msgid "  [ -msg [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:792
+msgid "  [ -msglevel [0-8] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:793
+msgid "  [ -powersave [on|vsync|hsync|powerdown|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:794
+msgid "  [ -powerdown [0-60] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:795
+msgid "  [ -blength [0-2000] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:796
+msgid "  [ -bfreq freqnumber ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:841
+msgid "keyboard.pc"
+msgstr ""
+
+#: misc-utils/setterm.c:844
+msgid "keyboard.olivetti"
+msgstr ""
+
+#: misc-utils/setterm.c:847
+msgid "keyboard.dutch"
+msgstr ""
+
+#: misc-utils/setterm.c:850
+msgid "keyboard.extended"
+msgstr ""
+
+#: misc-utils/setterm.c:884
+msgid "snow.on"
+msgstr ""
+
+#: misc-utils/setterm.c:886
+msgid "snow.off"
+msgstr ""
+
+#: misc-utils/setterm.c:892
+msgid "softscroll.on"
+msgstr ""
+
+#: misc-utils/setterm.c:894
+msgid "softscroll.off"
+msgstr ""
+
+#: misc-utils/setterm.c:1069
+msgid "cannot (un)set powersave mode\n"
+msgstr ""
+
+#: misc-utils/setterm.c:1108 misc-utils/setterm.c:1116
+#, c-format
+msgid "klogctl error: %s\n"
+msgstr ""
+
+#: misc-utils/setterm.c:1157
+#, c-format
+msgid "Error reading %s\n"
+msgstr ""
+
+#: misc-utils/setterm.c:1172
+msgid "Error writing screendump\n"
+msgstr ""
+
+#: misc-utils/setterm.c:1186
+#, c-format
+msgid "couldn't read %s, and cannot ioctl dump\n"
+msgstr ""
+
+#: misc-utils/setterm.c:1251
+#, c-format
+msgid "%s: $TERM is not defined.\n"
+msgstr ""
+
+#: misc-utils/tsort.c:119
+msgid "usage: tsort [ inputfile ]\n"
+msgstr ""
+
+#: misc-utils/tsort.c:156
+msgid "tsort: odd data count.\n"
+msgstr ""
+
+#: misc-utils/tsort.c:321
+msgid "tsort: cycle in data.\n"
+msgstr ""
+
+#: misc-utils/tsort.c:334
+msgid "tsort: internal error -- could not find cycle.\n"
+msgstr ""
+
+#: misc-utils/whereis.c:158
+msgid "whereis [ -sbmu ] [ -SBM dir ... -f ] name...\n"
+msgstr ""
+
+#: misc-utils/write.c:101
+msgid "write: can't find your tty's name\n"
+msgstr ""
+
+#: misc-utils/write.c:112
+msgid "write: you have write permission turned off.\n"
+msgstr ""
+
+#: misc-utils/write.c:133
+#, c-format
+msgid "write: %s is not logged in on %s.\n"
+msgstr ""
+
+#: misc-utils/write.c:141
+#, c-format
+msgid "write: %s has messages disabled on %s\n"
+msgstr ""
+
+#: misc-utils/write.c:148
+msgid "usage: write user [tty]\n"
+msgstr ""
+
+#: misc-utils/write.c:247
+#, c-format
+msgid "write: %s is not logged in\n"
+msgstr ""
+
+#: misc-utils/write.c:256
+#, c-format
+msgid "write: %s has messages disabled\n"
+msgstr ""
+
+#: misc-utils/write.c:260
+#, c-format
+msgid "write: %s is logged in more than once; writing to %s\n"
+msgstr ""
+
+#: misc-utils/write.c:327
+#, c-format
+msgid "Message from %s@%s on %s at %s ..."
+msgstr ""
+
+#: mount/fstab.c:113
+#, c-format
+msgid "warning: error reading %s: %s"
+msgstr ""
+
+#: mount/fstab.c:140 mount/fstab.c:162
+#, c-format
+msgid "warning: can't open %s: %s"
+msgstr ""
+
+#: mount/fstab.c:144
+#, c-format
+msgid "mount: could not open %s - using %s instead\n"
+msgstr ""
+
+#. MOUNTLOCK_LINKTARGET does not exist (as a file)
+#. and we cannot create it. Read-only filesystem?
+#. Too many files open in the system? Filesystem full?
+#: mount/fstab.c:346
+#, c-format
+msgid "can't create lock file %s: %s (use -n flag to override)"
+msgstr ""
+
+#: mount/fstab.c:358
+#, c-format
+msgid "can't link lock file %s: %s (use -n flag to override)"
+msgstr ""
+
+#: mount/fstab.c:369
+#, c-format
+msgid "can't open lock file %s: %s (use -n flag to override)"
+msgstr ""
+
+#: mount/fstab.c:383
+#, c-format
+msgid "Can't lock lock file %s: %s\n"
+msgstr ""
+
+#: mount/fstab.c:392
+#, c-format
+msgid "can't lock lock file %s: %s"
+msgstr ""
+
+#: mount/fstab.c:394
+msgid "timed out"
+msgstr ""
+
+#: mount/fstab.c:438
+#, c-format
+msgid "cannot open %s (%s) - mtab not updated"
+msgstr ""
+
+#: mount/fstab.c:445
+#, c-format
+msgid "can't open %s (%s) - mtab not updated"
+msgstr ""
+
+#: mount/fstab.c:470
+msgid "mount: warning: cannot change mounted device with a remount\n"
+msgstr ""
+
+#: mount/fstab.c:475
+msgid "mount: warning: cannot change filesystem type with a remount\n"
+msgstr ""
+
+#: mount/fstab.c:482 mount/fstab.c:486
+#, c-format
+msgid "error writing %s: %s"
+msgstr ""
+
+#: mount/fstab.c:491
+#, c-format
+msgid "error changing mode of %s: %s\n"
+msgstr ""
+
+#: mount/fstab.c:496
+#, c-format
+msgid "can't rename %s to %s: %s\n"
+msgstr ""
+
+#: mount/lomount.c:75
+#, c-format
+msgid "loop: can't open device %s: %s\n"
+msgstr ""
+
+#: mount/lomount.c:80
+#, c-format
+msgid "loop: can't get info on device %s: %s\n"
+msgstr ""
+
+#: mount/lomount.c:85 mount/losetup.c:74
+#, c-format
+msgid "%s: [%04x]:%ld (%s) offset %d, %s encryption\n"
+msgstr ""
+
+#: mount/lomount.c:139
+msgid "mount: could not find any device /dev/loop#"
+msgstr ""
+
+#: mount/lomount.c:143
+msgid ""
+"mount: Could not find any loop device.\n"
+"       Maybe /dev/loop# has a wrong major number?"
+msgstr ""
+
+#: mount/lomount.c:147
+#, c-format
+msgid ""
+"mount: Could not find any loop device, and, according to %s,\n"
+"       this kernel does not know about the loop device.\n"
+"       (If so, then recompile or `insmod loop.o'.)"
+msgstr ""
+
+#: mount/lomount.c:152
+msgid ""
+"mount: Could not find any loop device. Maybe this kernel does not know\n"
+"       about the loop device (then recompile or `insmod loop.o'), or\n"
+"       maybe /dev/loop# has the wrong major number?"
+msgstr ""
+
+#: mount/lomount.c:156
+msgid "mount: could not find any free loop device"
+msgstr ""
+
+#: mount/lomount.c:187 mount/losetup.c:106
+#, c-format
+msgid "Unsupported encryption type %s\n"
+msgstr ""
+
+#: mount/lomount.c:206 mount/losetup.c:125
+msgid "Init (up to 16 hex digits): "
+msgstr ""
+
+#: mount/lomount.c:213 mount/losetup.c:132
+#, c-format
+msgid "Non-hex digit '%c'.\n"
+msgstr ""
+
+#: mount/lomount.c:219 mount/losetup.c:138
+#, c-format
+msgid "Don't know how to get key for encryption system %d\n"
+msgstr ""
+
+#: mount/lomount.c:235
+#, c-format
+msgid "set_loop(%s,%s,%d): success\n"
+msgstr ""
+
+#: mount/lomount.c:245
+#, c-format
+msgid "loop: can't delete device %s: %s\n"
+msgstr ""
+
+#: mount/lomount.c:255
+#, c-format
+msgid "del_loop(%s): success\n"
+msgstr ""
+
+#: mount/lomount.c:263
+msgid "This mount was compiled without loop support. Please recompile.\n"
+msgstr ""
+
+#: mount/losetup.c:70
+msgid "Cannot get loop info"
+msgstr ""
+
+#: mount/losetup.c:174
+#, c-format
+msgid ""
+"usage:\n"
+"  %s loop_device                                      # give info\n"
+"  %s -d loop_device                                   # delete\n"
+"  %s [ -e encryption ] [ -o offset ] loop_device file # setup\n"
+msgstr ""
+
+#: mount/losetup.c:231
+msgid "No loop support was available at compile time. Please recompile.\n"
+msgstr ""
+
+#: mount/mntent.c:165
+#, c-format
+msgid "[mntent]: warning: no final newline at the end of %s\n"
+msgstr ""
+
+#: mount/mntent.c:214
+#, c-format
+msgid "[mntent]: line %d in %s is bad%s\n"
+msgstr ""
+
+#: mount/mntent.c:217
+msgid "; rest of file ignored"
+msgstr ""
+
+#: mount/mount.c:319
+#, c-format
+msgid "mount: according to mtab, %s is already mounted on %s"
+msgstr ""
+
+#: mount/mount.c:322
+#, c-format
+msgid "mount: according to mtab, %s is mounted on %s"
+msgstr ""
+
+#: mount/mount.c:342
+#, c-format
+msgid "mount: can't open %s for writing: %s"
+msgstr ""
+
+#: mount/mount.c:355 mount/mount.c:597
+#, c-format
+msgid "mount: error writing %s: %s"
+msgstr ""
+
+#: mount/mount.c:360
+#, c-format
+msgid "mount: error changing mode of %s: %s"
+msgstr ""
+
+#: mount/mount.c:434
+msgid "mount failed"
+msgstr ""
+
+#: mount/mount.c:436
+#, c-format
+msgid "mount: only root can mount %s on %s"
+msgstr ""
+
+#: mount/mount.c:461
+msgid "mount: loop device specified twice"
+msgstr ""
+
+#: mount/mount.c:467
+msgid "mount: type specified twice"
+msgstr ""
+
+#: mount/mount.c:479
+msgid "mount: skipping the setup of a loop device\n"
+msgstr ""
+
+#: mount/mount.c:488
+#, c-format
+msgid "mount: going to use the loop device %s\n"
+msgstr ""
+
+#: mount/mount.c:492
+msgid "mount: failed setting up loop device\n"
+msgstr ""
+
+#: mount/mount.c:496
+msgid "mount: setup loop device successfully\n"
+msgstr ""
+
+#: mount/mount.c:509
+msgid "mount: this version was compiled without support for the type `nfs'"
+msgstr ""
+
+#: mount/mount.c:557 mount/mount.c:969
+#, c-format
+msgid "mount: cannot fork: %s"
+msgstr ""
+
+#: mount/mount.c:593
+#, c-format
+msgid "mount: can't open %s: %s"
+msgstr ""
+
+#: mount/mount.c:619
+msgid "mount: you must specify the filesystem type"
+msgstr ""
+
+#: mount/mount.c:626 mount/mount.c:660
+#, c-format
+msgid "mount: mount point %s is not a directory"
+msgstr ""
+
+#: mount/mount.c:628
+msgid "mount: permission denied"
+msgstr ""
+
+#: mount/mount.c:630
+msgid "mount: must be superuser to use mount"
+msgstr ""
+
+#. heuristic: if /proc/version exists, then probably proc is mounted
+#. proc mounted?
+#: mount/mount.c:634 mount/mount.c:638
+#, c-format
+msgid "mount: %s is busy"
+msgstr ""
+
+#. no
+#. yes, don't mention it
+#: mount/mount.c:640
+msgid "mount: proc already mounted"
+msgstr ""
+
+#: mount/mount.c:642
+#, c-format
+msgid "mount: %s already mounted or %s busy"
+msgstr ""
+
+#: mount/mount.c:648
+#, c-format
+msgid "mount: mount point %s does not exist"
+msgstr ""
+
+#: mount/mount.c:650
+#, c-format
+msgid "mount: mount point %s is a symbolic link to nowhere"
+msgstr ""
+
+#: mount/mount.c:653
+#, c-format
+msgid "mount: special device %s does not exist"
+msgstr ""
+
+#: mount/mount.c:666
+#, c-format
+msgid "mount: %s not mounted already, or bad option"
+msgstr ""
+
+#: mount/mount.c:668
+#, c-format
+msgid ""
+"mount: wrong fs type, bad option, bad superblock on %s,\n"
+"       or too many mounted file systems"
+msgstr ""
+
+#: mount/mount.c:683
+msgid "mount table full"
+msgstr ""
+
+#: mount/mount.c:685
+#, c-format
+msgid "mount: %s: can't read superblock"
+msgstr ""
+
+#: mount/mount.c:688
+#, c-format
+msgid "mount: %s has wrong major or minor number"
+msgstr ""
+
+#: mount/mount.c:693
+#, c-format
+msgid "mount: fs type %s not supported by kernel"
+msgstr ""
+
+#: mount/mount.c:705
+#, c-format
+msgid "mount: probably you meant %s"
+msgstr ""
+
+#: mount/mount.c:707
+msgid "mount: maybe you meant iso9660 ?"
+msgstr ""
+
+#: mount/mount.c:710
+#, c-format
+msgid "mount: %s has wrong device number or fs type %s not supported"
+msgstr ""
+
+#. strange ...
+#: mount/mount.c:715
+#, c-format
+msgid "mount: %s is not a block device, and stat fails?"
+msgstr ""
+
+#: mount/mount.c:717
+#, c-format
+msgid ""
+"mount: the kernel does not recognize %s as a block device\n"
+"       (maybe `insmod driver'?)"
+msgstr ""
+
+#: mount/mount.c:720
+#, c-format
+msgid "mount: %s is not a block device (maybe try `-o loop'?)"
+msgstr ""
+
+#: mount/mount.c:723
+#, c-format
+msgid "mount: %s is not a block device"
+msgstr ""
+
+#: mount/mount.c:726
+#, c-format
+msgid "mount: %s is not a valid block device"
+msgstr ""
+
+#: mount/mount.c:730
+#, c-format
+msgid "mount: block device %s is not permitted on its filesystem"
+msgstr ""
+
+#: mount/mount.c:747
+#, c-format
+msgid "mount: %s%s is write-protected, mounting read-only"
+msgstr ""
+
+#: mount/mount.c:748
+msgid "block device "
+msgstr ""
+
+#: mount/mount.c:834
+#, c-format
+msgid "mount: consider mounting %s by %s\n"
+msgstr ""
+
+#: mount/mount.c:835
+msgid "UUID"
+msgstr ""
+
+#: mount/mount.c:835
+#, fuzzy
+msgid "label"
+msgstr "Tabel"
+
+#: mount/mount.c:837 mount/mount.c:1151
+msgid "mount: no such partition found"
+msgstr ""
+
+#: mount/mount.c:845
+msgid "mount: no type was given - I'll assume nfs because of the colon\n"
+msgstr ""
+
+#.
+#. * Retry in the background.
+#.
+#: mount/mount.c:861
+#, c-format
+msgid "mount: backgrounding \"%s\"\n"
+msgstr ""
+
+#: mount/mount.c:872
+#, c-format
+msgid "mount: giving up \"%s\"\n"
+msgstr ""
+
+#: mount/mount.c:921
+#, c-format
+msgid "mount: %s already mounted on %s\n"
+msgstr ""
+
+#: mount/mount.c:1030
+msgid ""
+"Usage: mount [-hV]\n"
+"       mount -a [-nfFrsvw] [-t vfstypes]\n"
+"       mount [-nfrsvw] [-o options] special | node\n"
+"       mount [-nfrsvw] [-t vfstype] [-o options] special node\n"
+"       A special device can be indicated by  -L label  or  -U uuid ."
+msgstr ""
+
+#: mount/mount.c:1136
+msgid "mount: only root can do that"
+msgstr ""
+
+#: mount/mount.c:1141
+#, c-format
+msgid "mount: no %s found - creating it..\n"
+msgstr ""
+
+#: mount/mount.c:1153
+#, c-format
+msgid "mount: mounting %s\n"
+msgstr ""
+
+#: mount/mount.c:1162
+msgid "not mounted anything"
+msgstr ""
+
+#: mount/mount.c:1175
+#, c-format
+msgid "mount: cannot find %s in %s"
+msgstr ""
+
+#: mount/mount.c:1189
+#, c-format
+msgid "mount: can't find %s in %s or %s"
+msgstr ""
+
+#: mount/mount_by_label.c:141
+msgid "mount: bad UUID"
+msgstr ""
+
+#: mount/mount_guess_fstype.c:186
+#, c-format
+msgid "mount: you didn't specify a filesystem type for %s\n"
+msgstr ""
+
+#: mount/mount_guess_fstype.c:189
+#, c-format
+msgid "       I will try type %s\n"
+msgstr ""
+
+#: mount/mount_guess_fstype.c:191
+#, c-format
+msgid "       I will try all types mentioned in %s or %s\n"
+msgstr ""
+
+#: mount/nfsmount.c:157
+msgid "mount: excessively long host:dir argument\n"
+msgstr ""
+
+#: mount/nfsmount.c:170
+msgid "mount: warning: multiple hostnames not supported\n"
+msgstr ""
+
+#: mount/nfsmount.c:174
+msgid "mount: directory to mount not in host:dir format\n"
+msgstr ""
+
+#: mount/nfsmount.c:185 mount/nfsmount.c:420
+#, c-format
+msgid "mount: can't get address for %s\n"
+msgstr ""
+
+#: mount/nfsmount.c:191
+msgid "mount: got bad hp->h_length\n"
+msgstr ""
+
+#: mount/nfsmount.c:208
+msgid "mount: excessively long option argument\n"
+msgstr ""
+
+#: mount/nfsmount.c:299
+msgid "Warning: Unrecognized proto= option.\n"
+msgstr ""
+
+#: mount/nfsmount.c:306
+msgid "Warning: Option namlen is not supported.\n"
+msgstr ""
+
+#: mount/nfsmount.c:310
+#, c-format
+msgid "unknown nfs mount parameter: %s=%d\n"
+msgstr ""
+
+#: mount/nfsmount.c:345
+msgid "Warning: option nolock is not supported.\n"
+msgstr ""
+
+#: mount/nfsmount.c:348
+#, c-format
+msgid "unknown nfs mount option: %s%s\n"
+msgstr ""
+
+#: mount/nfsmount.c:349
+msgid "no"
+msgstr ""
+
+#: mount/nfsmount.c:426
+msgid "mount: got bad hp->h_length?\n"
+msgstr ""
+
+#: mount/nfsmount.c:528
+#, c-format
+msgid "mount: %s:%s failed, reason given by server: %s\n"
+msgstr ""
+
+#: mount/nfsmount.c:539
+msgid "NFS over TCP is not supported.\n"
+msgstr ""
+
+#: mount/nfsmount.c:546
+msgid "nfs socket"
+msgstr ""
+
+#: mount/nfsmount.c:550
+msgid "nfs bindresvport"
+msgstr ""
+
+#: mount/nfsmount.c:561
+msgid "used portmapper to find NFS port\n"
+msgstr ""
+
+#: mount/nfsmount.c:565
+#, c-format
+msgid "using port %d for nfs deamon\n"
+msgstr ""
+
+#: mount/nfsmount.c:576
+msgid "nfs connect"
+msgstr ""
+
+#: mount/nfsmount.c:665
+#, c-format
+msgid "unknown nfs status return value: %d"
+msgstr ""
+
+#: mount/sundries.c:40 mount/sundries.c:55
+msgid "not enough memory"
+msgstr ""
+
+#: mount/sundries.c:65
+msgid "bug in xstrndup call"
+msgstr ""
+
+#: mount/swapon.c:49
+#, c-format
+msgid ""
+"usage: %s [-hV]\n"
+"       %s -a [-v]\n"
+"       %s [-v] [-p priority] special ...\n"
+"       %s [-s]\n"
+msgstr ""
+
+#: mount/swapon.c:86
+#, c-format
+msgid "%s on %s\n"
+msgstr ""
+
+#: mount/swapon.c:90
+#, c-format
+msgid "swapon: cannot stat %s: %s\n"
+msgstr ""
+
+#: mount/swapon.c:95
+#, c-format
+msgid "swapon: warning: %s has insecure permissions %04o, 0600 suggested\n"
+msgstr ""
+
+#: mount/swapon.c:103
+#, c-format
+msgid "swapon: Skipping file %s - it appears to have holes.\n"
+msgstr ""
+
+#: mount/swapon.c:204
+#, fuzzy, c-format
+msgid "%s: cannot open %s: %s\n"
+msgstr "Kan het bestand '%s' niet openen"
+
+#: mount/umount.c:65
+msgid "umount: compiled without support for -f\n"
+msgstr ""
+
+#: mount/umount.c:115
+#, c-format
+msgid "host: %s, directory: %s\n"
+msgstr ""
+
+#: mount/umount.c:132
+#, c-format
+msgid "umount: can't get address for %s\n"
+msgstr ""
+
+#: mount/umount.c:137
+msgid "umount: got bad hostp->h_length\n"
+msgstr ""
+
+#: mount/umount.c:175
+#, c-format
+msgid "umount: %s: invalid block device"
+msgstr ""
+
+#: mount/umount.c:177
+#, c-format
+msgid "umount: %s: not mounted"
+msgstr ""
+
+#: mount/umount.c:179
+#, c-format
+msgid "umount: %s: can't write superblock"
+msgstr ""
+
+#. Let us hope fstab has a line "proc /proc ..."
+#. and not "none /proc ..."
+#: mount/umount.c:183
+#, c-format
+msgid "umount: %s: device is busy"
+msgstr ""
+
+#: mount/umount.c:185
+#, c-format
+msgid "umount: %s: not found"
+msgstr ""
+
+#: mount/umount.c:187
+#, c-format
+msgid "umount: %s: must be superuser to umount"
+msgstr ""
+
+#: mount/umount.c:189
+#, c-format
+msgid "umount: %s: block devices not permitted on fs"
+msgstr ""
+
+#: mount/umount.c:191
+#, c-format
+msgid "umount: %s: %s"
+msgstr ""
+
+#: mount/umount.c:235
+msgid "no umount2, trying umount...\n"
+msgstr ""
+
+#: mount/umount.c:248
+#, c-format
+msgid "could not umount %s - trying %s instead\n"
+msgstr ""
+
+#: mount/umount.c:264
+#, c-format
+msgid "umount: %s busy - remounted read-only\n"
+msgstr ""
+
+#: mount/umount.c:272
+#, c-format
+msgid "umount: could not remount %s read-only\n"
+msgstr ""
+
+#: mount/umount.c:280
+#, c-format
+msgid "%s umounted\n"
+msgstr ""
+
+#: mount/umount.c:363
+msgid "umount: cannot find list of filesystems to unmount"
+msgstr ""
+
+#: mount/umount.c:392
+msgid ""
+"Usage: umount [-hV]\n"
+"       umount -a [-f] [-r] [-n] [-v] [-t vfstypes]\n"
+"       umount [-f] [-r] [-n] [-v] special | node...\n"
+msgstr ""
+
+#: mount/umount.c:453
+msgid "umount: only root can do that"
+msgstr ""
+
+#: mount/umount.c:468
+#, c-format
+msgid "Trying to umount %s\n"
+msgstr ""
+
+#: mount/umount.c:472
+#, c-format
+msgid "Could not find %s in mtab\n"
+msgstr ""
+
+#: mount/umount.c:476
+#, c-format
+msgid "umount: %s is not mounted (according to mtab)"
+msgstr ""
+
+#: mount/umount.c:478
+#, c-format
+msgid "umount: it seems %s is mounted multiple times"
+msgstr ""
+
+#: mount/umount.c:480
+#, c-format
+msgid "umount: %s is not in the fstab (and you are not root)"
+msgstr ""
+
+#: mount/umount.c:486
+#, c-format
+msgid "umount: %s mount disagrees with the fstab"
+msgstr ""
+
+#: mount/umount.c:505
+#, c-format
+msgid "umount: only root can unmount %s from %s"
+msgstr ""
+
+#: mount/umount.c:515
+#, c-format
+msgid "umount: only %s can unmount %s from %s"
+msgstr ""
+
+#: sys-utils/ctrlaltdel.c:26
+msgid "You must be root to set the Ctrl-Alt-Del behaviour.\n"
+msgstr ""
+
+#: sys-utils/ctrlaltdel.c:41
+msgid "Usage: ctrlaltdel hard|soft\n"
+msgstr ""
+
+#: sys-utils/cytune.c:116
+#, c-format
+msgid ""
+"File %s, For threshold value %lu, Maximum characters in fifo were %d,\n"
+"and the maximum transfer rate in characters/second was %f\n"
+msgstr ""
+
+#: sys-utils/cytune.c:127
+#, c-format
+msgid ""
+"File %s, For threshold value %lu and timrout value %lu, Maximum characters "
+"in fifo were %d,\n"
+"and the maximum transfer rate in characters/second was %f\n"
+msgstr ""
+
+#: sys-utils/cytune.c:194
+#, c-format
+msgid "Invalid interval value: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:202
+#, c-format
+msgid "Invalid set value: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:210
+#, c-format
+msgid "Invalid default value: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:218
+#, c-format
+msgid "Invalid set time value: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:226
+#, c-format
+msgid "Invalid default time value: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:243
+#, c-format
+msgid ""
+"Usage: %s [-q [-i interval]] ([-s value]|[-S value]) ([-t value]|[-T value]) "
+"[-g|-G] file [file...]\n"
+msgstr ""
+
+#: sys-utils/cytune.c:254 sys-utils/cytune.c:270 sys-utils/cytune.c:287
+#: sys-utils/cytune.c:332
+#, fuzzy, c-format
+msgid "Can't open %s: %s\n"
+msgstr "Kan het bestand '%s' niet openen"
+
+#: sys-utils/cytune.c:260
+#, c-format
+msgid "Can't set %s to threshold %d: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:276
+#, c-format
+msgid "Can't set %s to time threshold %d: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:291 sys-utils/cytune.c:342 sys-utils/cytune.c:370
+#, c-format
+msgid "Can't get threshold for %s: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:296 sys-utils/cytune.c:347 sys-utils/cytune.c:375
+#, c-format
+msgid "Can't get timeout for %s: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:300
+#, c-format
+msgid "%s: %ld %s threshold and %ld %s timeout\n"
+msgstr ""
+
+#: sys-utils/cytune.c:302 sys-utils/cytune.c:304
+msgid "current"
+msgstr ""
+
+#: sys-utils/cytune.c:302 sys-utils/cytune.c:304
+msgid "default"
+msgstr ""
+
+#: sys-utils/cytune.c:321
+msgid "Can't set signal handler"
+msgstr ""
+
+#: sys-utils/cytune.c:325 sys-utils/cytune.c:356
+msgid "gettimeofday failed"
+msgstr ""
+
+#: sys-utils/cytune.c:336 sys-utils/cytune.c:365
+#, c-format
+msgid "Can't issue CYGETMON on %s: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:405
+#, c-format
+msgid "%s: %lu ints, %lu/%lu chars; "
+msgstr ""
+
+#: sys-utils/cytune.c:406
+#, c-format
+msgid "fifo: %lu thresh, %lu tmout, "
+msgstr ""
+
+#: sys-utils/cytune.c:407
+#, c-format
+msgid "%lu max, %lu now\n"
+msgstr ""
+
+#: sys-utils/cytune.c:412
+#, c-format
+msgid "   %f int/sec; %f rec, %f send (char/sec)\n"
+msgstr ""
+
+#: sys-utils/cytune.c:417
+#, c-format
+msgid ""
+"%s: %lu ints, %lu chars; fifo: %lu thresh, %lu tmout, %lu max, %lu now\n"
+msgstr ""
+
+#: sys-utils/cytune.c:422
+#, c-format
+msgid "   %f int/sec; %f rec (char/sec)\n"
+msgstr ""
+
+#: sys-utils/dmesg.c:38
+#, c-format
+msgid "Usage: %s [-c] [-n level] [-s bufsize]\n"
+msgstr ""
+
+#: sys-utils/ipcrm.c:46
+#, c-format
+msgid "usage: %s [shm | msg | sem] id\n"
+msgstr ""
+
+#: sys-utils/ipcrm.c:70
+#, c-format
+msgid "usage: %s [-shm | -msg | -sem] id\n"
+msgstr ""
+
+#: sys-utils/ipcrm.c:73
+msgid "resource deleted\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:91
+#, c-format
+msgid "usage : %s -asmq -tclup \n"
+msgstr ""
+
+#: sys-utils/ipcs.c:92
+#, c-format
+msgid "\t%s [-s -m -q] -i id\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:93
+#, c-format
+msgid "\t%s -h for help.\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:99
+#, c-format
+msgid "%s provides information on ipc facilities for"
+msgstr ""
+
+#: sys-utils/ipcs.c:100
+msgid " which you have read access.\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:101
+msgid ""
+"Resource Specification:\n"
+"\t-m : shared_mem\n"
+"\t-q : messages\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:102
+msgid ""
+"\t-s : semaphores\n"
+"\t-a : all (default)\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:103
+msgid ""
+"Output Format:\n"
+"\t-t : time\n"
+"\t-p : pid\n"
+"\t-c : creator\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:104
+msgid ""
+"\t-l : limits\n"
+"\t-u : summary\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:105
+msgid "-i id [-s -q -m] : details on resource identified by id\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:237 sys-utils/ipcs.c:439
+msgid "kernel not configured for shared memory\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:243
+msgid "------ Shared Memory Limits --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:246
+#, c-format
+msgid "max number of segments = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:247
+#, c-format
+msgid "max seg size (kbytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:248
+#, c-format
+msgid "max total shared memory (kbytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:249
+#, c-format
+msgid "min seg size (bytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:253
+msgid "------ Shared Memory Status --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:254
+#, c-format
+msgid "segments allocated %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:255
+#, c-format
+msgid "pages allocated %ld\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:256
+#, c-format
+msgid "pages resident  %ld\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:257
+#, c-format
+msgid "pages swapped   %ld\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:258
+#, c-format
+msgid "Swap performance: %ld attempts\t %ld successes\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:263
+msgid "------ Shared Memory Segment Creators/Owners --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:264 sys-utils/ipcs.c:370 sys-utils/ipcs.c:462
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s%-10s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:271 sys-utils/ipcs.c:276
+#: sys-utils/ipcs.c:281 sys-utils/ipcs.c:377
+msgid "shmid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:282 sys-utils/ipcs.c:371
+#: sys-utils/ipcs.c:386 sys-utils/ipcs.c:463 sys-utils/ipcs.c:480
+msgid "perms"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:371 sys-utils/ipcs.c:463
+msgid "cuid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:371 sys-utils/ipcs.c:463
+msgid "cgid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:371 sys-utils/ipcs.c:463
+msgid "uid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:463
+msgid "gid"
+msgstr ""
+
+#: sys-utils/ipcs.c:269
+msgid "------ Shared Memory Attach/Detach/Change Times --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:270
+#, c-format
+msgid "%-10s%-10s  %-20s%-20s%-20s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:271 sys-utils/ipcs.c:276 sys-utils/ipcs.c:282
+#: sys-utils/ipcs.c:377 sys-utils/ipcs.c:386 sys-utils/ipcs.c:469
+#: sys-utils/ipcs.c:474 sys-utils/ipcs.c:480
+msgid "owner"
+msgstr ""
+
+#: sys-utils/ipcs.c:271
+msgid "attached"
+msgstr ""
+
+#: sys-utils/ipcs.c:271
+msgid "detached"
+msgstr ""
+
+#: sys-utils/ipcs.c:271
+msgid "changed"
+msgstr ""
+
+#: sys-utils/ipcs.c:275
+msgid "------ Shared Memory Creator/Last-op --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:276 sys-utils/ipcs.c:474
+#, c-format
+msgid "%-10s%-10s%-10s%-10s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:276
+msgid "cpid"
+msgstr ""
+
+#: sys-utils/ipcs.c:276
+msgid "lpid"
+msgstr ""
+
+#: sys-utils/ipcs.c:280
+msgid "------ Shared Memory Segments --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:281
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s%-10s%-12s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:281 sys-utils/ipcs.c:386 sys-utils/ipcs.c:479
+msgid "key"
+msgstr ""
+
+#: sys-utils/ipcs.c:282
+msgid "bytes"
+msgstr ""
+
+#: sys-utils/ipcs.c:282
+msgid "nattch"
+msgstr ""
+
+#: sys-utils/ipcs.c:282 sys-utils/ipcs.c:386
+msgid "status"
+msgstr ""
+
+#: sys-utils/ipcs.c:302 sys-utils/ipcs.c:303 sys-utils/ipcs.c:304
+#: sys-utils/ipcs.c:407 sys-utils/ipcs.c:408 sys-utils/ipcs.c:500
+#: sys-utils/ipcs.c:501 sys-utils/ipcs.c:502
+msgid "Not set"
+msgstr ""
+
+#: sys-utils/ipcs.c:324
+msgid "dest"
+msgstr ""
+
+#: sys-utils/ipcs.c:325
+msgid "locked"
+msgstr ""
+
+#: sys-utils/ipcs.c:345
+msgid "kernel not configured for semaphores\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:351
+msgid "------ Semaphore Limits --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:355
+#, c-format
+msgid "max number of arrays = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:356
+#, c-format
+msgid "max semaphores per array = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:357
+#, c-format
+msgid "max semaphores system wide = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:358
+#, c-format
+msgid "max ops per semop call = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:359
+#, c-format
+msgid "semaphore max value = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:363
+msgid "------ Semaphore Status --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:364
+#, c-format
+msgid "used arrays = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:365
+#, c-format
+msgid "allocated semaphores = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:369
+msgid "------ Semaphore Arrays Creators/Owners --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:371 sys-utils/ipcs.c:386
+msgid "semid"
+msgstr ""
+
+#: sys-utils/ipcs.c:375
+msgid "------ Shared Memory Operation/Change Times --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:376
+#, c-format
+msgid "%-8s%-10s  %-26.24s %-26.24s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:377
+msgid "last-op"
+msgstr ""
+
+#: sys-utils/ipcs.c:377
+msgid "last-changed"
+msgstr ""
+
+#: sys-utils/ipcs.c:384
+msgid "------ Semaphore Arrays --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:385
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s%-12s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:386
+msgid "nsems"
+msgstr ""
+
+#: sys-utils/ipcs.c:447
+msgid "------ Messages: Limits --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:448
+#, c-format
+msgid "max queues system wide = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:449
+#, c-format
+msgid "max size of message (bytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:450
+#, c-format
+msgid "default max size of queue (bytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:454
+msgid "------ Messages: Status --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:455
+#, c-format
+msgid "allocated queues = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:456
+#, c-format
+msgid "used headers = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:457
+#, c-format
+msgid "used space = %d bytes\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:461
+msgid "------ Message Queues: Creators/Owners --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:463 sys-utils/ipcs.c:469 sys-utils/ipcs.c:474
+#: sys-utils/ipcs.c:479
+msgid "msqid"
+msgstr ""
+
+#: sys-utils/ipcs.c:467
+msgid "------ Message Queues Send/Recv/Change Times --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:468
+#, c-format
+msgid "%-8s%-10s  %-20s%-20s%-20s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:469
+msgid "send"
+msgstr ""
+
+#: sys-utils/ipcs.c:469
+msgid "recv"
+msgstr ""
+
+#: sys-utils/ipcs.c:469
+msgid "change"
+msgstr ""
+
+#: sys-utils/ipcs.c:473
+msgid "------ Message Queues PIDs --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:474
+msgid "lspid"
+msgstr ""
+
+#: sys-utils/ipcs.c:474
+msgid "lrpid"
+msgstr ""
+
+#: sys-utils/ipcs.c:478
+msgid "------ Message Queues --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:479
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-12s%-12s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:480
+msgid "used-bytes"
+msgstr ""
+
+#: sys-utils/ipcs.c:480
+msgid "messages"
+msgstr ""
+
+#: sys-utils/ipcs.c:539
+#, c-format
+msgid ""
+"\n"
+"Shared memory Segment shmid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:540
+#, c-format
+msgid "uid=%d\tgid=%d\tcuid=%d\tcgid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:542
+#, c-format
+msgid "mode=%#o\taccess_perms=%#o\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:543
+#, c-format
+msgid "bytes=%d\tlpid=%d\tcpid=%d\tnattch=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:546
+#, c-format
+msgid "att_time=%s"
+msgstr ""
+
+#: sys-utils/ipcs.c:547 sys-utils/ipcs.c:549 sys-utils/ipcs.c:598
+msgid "Not set\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:548
+#, c-format
+msgid "det_time=%s"
+msgstr ""
+
+#: sys-utils/ipcs.c:550
+#, c-format
+msgid "change_time=%s"
+msgstr ""
+
+#: sys-utils/ipcs.c:566
+#, c-format
+msgid ""
+"\n"
+"Message Queue msqid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:567
+#, c-format
+msgid "uid=%d\tgid=%d\tcuid=%d\tcgid=%d\tmode=%#o\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:569
+#, c-format
+msgid "cbytes=%d\tqbytes=%d\tqnum=%d\tlspid=%d\tlrpid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:572
+#, c-format
+msgid "send_time=%srcv_time=%schange_time=%s"
+msgstr ""
+
+#: sys-utils/ipcs.c:573 sys-utils/ipcs.c:574 sys-utils/ipcs.c:575
+msgid "Not Set\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:592
+#, c-format
+msgid ""
+"\n"
+"Semaphore Array semid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:593
+#, c-format
+msgid "uid=%d\t gid=%d\t cuid=%d\t cgid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:595
+#, c-format
+msgid "mode=%#o, access_perms=%#o\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:596
+#, c-format
+msgid "nsems = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:597
+#, c-format
+msgid "otime = %s"
+msgstr ""
+
+#: sys-utils/ipcs.c:599
+#, c-format
+msgid "ctime = %s"
+msgstr ""
+
+#: sys-utils/ipcs.c:601
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:601
+msgid "semnum"
+msgstr ""
+
+#: sys-utils/ipcs.c:601
+#, fuzzy
+msgid "value"
+msgstr "Tabel"
+
+#: sys-utils/ipcs.c:601
+msgid "ncount"
+msgstr ""
+
+#: sys-utils/ipcs.c:602
+msgid "zcount"
+msgstr ""
+
+#: sys-utils/ipcs.c:602
+msgid "pid"
+msgstr ""
+
+#: sys-utils/kbdrate.c:126
+#, c-format
+msgid "util-linux kbdrate %s \n"
+msgstr ""
+
+#: sys-utils/kbdrate.c:159 sys-utils/kbdrate.c:206
+#, c-format
+msgid "Typematic Rate set to %.1f cps (delay = %d mS)\n"
+msgstr ""
+
+#: sys-utils/kbdrate.c:182
+#, fuzzy
+msgid "Cannot open /dev/port"
+msgstr "Kan schijf niet openen"
+
+#: sys-utils/rdev.c:68
+msgid "usage: rdev [ -rsv ] [ -o OFFSET ] [ IMAGE [ VALUE [ OFFSET ] ] ]"
+msgstr ""
+
+#: sys-utils/rdev.c:69
+msgid ""
+"  rdev /dev/fd0  (or rdev /linux, etc.) displays the current ROOT device"
+msgstr ""
+
+#: sys-utils/rdev.c:70
+msgid "  rdev /dev/fd0 /dev/hda2         sets ROOT to /dev/hda2"
+msgstr ""
+
+#: sys-utils/rdev.c:71
+msgid "  rdev -R /dev/fd0 1              set the ROOTFLAGS (readonly status)"
+msgstr ""
+
+#: sys-utils/rdev.c:72
+msgid "  rdev -s /dev/fd0 /dev/hda2      set the SWAP device"
+msgstr ""
+
+#: sys-utils/rdev.c:73
+msgid "  rdev -r /dev/fd0 627            set the RAMDISK size"
+msgstr ""
+
+#: sys-utils/rdev.c:74
+msgid "  rdev -v /dev/fd0 1              set the bootup VIDEOMODE"
+msgstr ""
+
+#: sys-utils/rdev.c:75
+msgid "  rdev -o N ...                   use the byte offset N"
+msgstr ""
+
+#: sys-utils/rdev.c:76
+msgid "  rootflags ...                   same as rdev -R"
+msgstr ""
+
+#: sys-utils/rdev.c:77
+msgid "  swapdev ...                     same as rdev -s"
+msgstr ""
+
+#: sys-utils/rdev.c:78
+msgid "  ramsize ...                     same as rdev -r"
+msgstr ""
+
+#: sys-utils/rdev.c:79
+msgid "  vidmode ...                     same as rdev -v"
+msgstr ""
+
+#: sys-utils/rdev.c:80
+msgid ""
+"Note: video modes are: -3=Ask, -2=Extended, -1=NormalVga, 1=key1, 2=key2,..."
+msgstr ""
+
+#: sys-utils/rdev.c:81
+msgid "      use -R 1 to mount root readonly, -R 0 for read/write."
+msgstr ""
+
+#: sys-utils/readprofile.c:50
+#, c-format
+msgid ""
+"%s: Usage: \"%s [options]\n"
+"\t -m <mapfile>  (default = \"%s\")\n"
+"\t -p <pro-file> (default = \"%s\")\n"
+"\t -i            print only info about the sampling step\n"
+"\t -v            print verbose data\n"
+"\t -a            print all symbols, even if count is 0\n"
+"\t -r            reset all the counters (root only)\n"
+"\t -V            print version and exit\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:113
+#, c-format
+msgid "%s Version %s\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:125
+msgid "anything\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:154
+#, c-format
+msgid "Sampling_step: %i\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:167 sys-utils/readprofile.c:193
+#, c-format
+msgid "%s: %s(%i): wrong map line\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:180
+#, c-format
+msgid "%s: can't find \"_stext\" in %s\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:221
+#, fuzzy
+msgid "total"
+msgstr "Startbaar"
+
+#: sys-utils/renice.c:66
+msgid "usage: renice priority [ [ -p ] pids ] "
+msgstr ""
+
+#: sys-utils/renice.c:67
+msgid "[ [ -g ] pgrps ] [ [ -u ] users ]\n"
+msgstr ""
+
+#: sys-utils/renice.c:93
+#, c-format
+msgid "renice: %s: unknown user\n"
+msgstr ""
+
+#: sys-utils/renice.c:101
+#, c-format
+msgid "renice: %s: bad value\n"
+msgstr ""
+
+#: sys-utils/renice.c:121
+msgid "getpriority"
+msgstr ""
+
+#: sys-utils/renice.c:126
+msgid "setpriority"
+msgstr ""
+
+#: sys-utils/renice.c:129
+#, c-format
+msgid "%d: old priority %d, new priority %d\n"
+msgstr ""
+
+#: sys-utils/setsid.c:23
+#, c-format
+msgid "usage: %s program [arg ...]\n"
+msgstr ""
+
+#: sys-utils/tunelp.c:77
+#, c-format
+msgid ""
+"Usage: %s <device> [ -i <IRQ> | -t <TIME> | -c <CHARS> | -w <WAIT> | \n"
+"          -a [on|off] | -o [on|off] | -C [on|off] | -q [on|off] | -s ]\n"
+msgstr ""
+
+#: sys-utils/tunelp.c:89
+msgid "malloc error"
+msgstr ""
+
+#: sys-utils/tunelp.c:100
+msgid "sscanf error"
+msgstr ""
+
+#: sys-utils/tunelp.c:140
+#, c-format
+msgid "%s: %s not an lp device.\n"
+msgstr ""
+
+#: sys-utils/tunelp.c:239
+#, c-format
+msgid "%s status is %d"
+msgstr ""
+
+#: sys-utils/tunelp.c:240
+msgid ", busy"
+msgstr ""
+
+#: sys-utils/tunelp.c:241
+msgid ", ready"
+msgstr ""
+
+#: sys-utils/tunelp.c:242
+msgid ", out of paper"
+msgstr ""
+
+#: sys-utils/tunelp.c:243
+msgid ", on-line"
+msgstr ""
+
+#: sys-utils/tunelp.c:244
+msgid ", error"
+msgstr ""
+
+#: sys-utils/tunelp.c:261
+msgid "LPGETIRQ error"
+msgstr ""
+
+#: sys-utils/tunelp.c:267
+#, c-format
+msgid "%s using IRQ %d\n"
+msgstr ""
+
+#: sys-utils/tunelp.c:269
+#, c-format
+msgid "%s using polling\n"
+msgstr ""
+
+#: text-utils/col.c:154
+#, c-format
+msgid "col: bad -l argument %s.\n"
+msgstr ""
+
+#: text-utils/col.c:515
+msgid "usage: col [-bfx] [-l nline]\n"
+msgstr ""
+
+#: text-utils/col.c:521
+msgid "col: write error.\n"
+msgstr ""
+
+#: text-utils/col.c:528
+#, c-format
+msgid "col: warning: can't back up %s.\n"
+msgstr ""
+
+#: text-utils/col.c:529
+msgid "past first line"
+msgstr ""
+
+#: text-utils/col.c:529
+msgid "-- line already flushed"
+msgstr ""
+
+#: text-utils/colcrt.c:93
+#, c-format
+msgid "usage: %s [ - ] [ -2 ] [ file ... ]\n"
+msgstr ""
+
+#: text-utils/column.c:276
+msgid "line too long"
+msgstr ""
+
+#: text-utils/column.c:311
+msgid "usage: column [-tx] [-c columns] [file ...]\n"
+msgstr ""
+
+#: text-utils/hexsyntax.c:80
+msgid "hexdump: bad length value.\n"
+msgstr ""
+
+#: text-utils/hexsyntax.c:91
+msgid "hexdump: bad skip value.\n"
+msgstr ""
+
+#: text-utils/hexsyntax.c:129
+msgid ""
+"hexdump: [-bcdovx] [-e fmt] [-f fmt_file] [-n length] [-s skip] [file ...]\n"
+msgstr ""
+
+#: text-utils/more.c:247
+msgid "usage: "
+msgstr ""
+
+#: text-utils/more.c:249
+msgid " [-dfln] [+linenum | +/pattern] name1 name2 ...\n"
+msgstr ""
+
+#: text-utils/more.c:423
+#, c-format
+msgid ""
+"\n"
+"*** %s: directory ***\n"
+"\n"
+msgstr ""
+
+#. simple ELF detection
+#: text-utils/more.c:462
+#, c-format
+msgid ""
+"\n"
+"******** %s: Not a text file ********\n"
+"\n"
+msgstr ""
+
+#: text-utils/more.c:566
+msgid "[Use q or Q to quit]"
+msgstr ""
+
+#: text-utils/more.c:752
+msgid "--More--"
+msgstr ""
+
+#: text-utils/more.c:754
+#, c-format
+msgid "(Next file: %s)"
+msgstr ""
+
+#: text-utils/more.c:760
+#, fuzzy
+msgid "[Press space to continue, 'q' to quit.]"
+msgstr "Sla een toets aan om verder te gaan"
+
+#: text-utils/more.c:1058
+#, c-format
+msgid "...back %d page"
+msgstr ""
+
+#: text-utils/more.c:1104
+#, c-format
+msgid "...skipping %d line"
+msgstr ""
+
+#: text-utils/more.c:1145
+msgid ""
+"\n"
+"***Back***\n"
+"\n"
+msgstr ""
+
+#: text-utils/more.c:1183
+#, fuzzy
+msgid "Can't open help file"
+msgstr "Kan het bestand '%s' niet openen"
+
+#: text-utils/more.c:1204 text-utils/more.c:1208
+msgid "[Press 'h' for instructions.]"
+msgstr ""
+
+#: text-utils/more.c:1243
+#, c-format
+msgid "\"%s\" line %d"
+msgstr ""
+
+#: text-utils/more.c:1245
+#, c-format
+msgid "[Not a file] line %d"
+msgstr ""
+
+#: text-utils/more.c:1329
+msgid "  Overflow\n"
+msgstr ""
+
+#: text-utils/more.c:1376
+msgid "...skipping\n"
+msgstr ""
+
+#: text-utils/more.c:1406
+msgid "Regular expression botch"
+msgstr ""
+
+#: text-utils/more.c:1418
+msgid ""
+"\n"
+"Pattern not found\n"
+msgstr ""
+
+#: text-utils/more.c:1421
+msgid "Pattern not found"
+msgstr ""
+
+#: text-utils/more.c:1483
+msgid "can't fork\n"
+msgstr ""
+
+#: text-utils/more.c:1522
+msgid ""
+"\n"
+"...Skipping "
+msgstr ""
+
+#: text-utils/more.c:1526
+msgid "...Skipping "
+msgstr ""
+
+#: text-utils/more.c:1527
+msgid "to file "
+msgstr ""
+
+#: text-utils/more.c:1527
+msgid "back to file "
+msgstr ""
+
+#: text-utils/more.c:1765
+msgid "Line too long"
+msgstr ""
+
+#: text-utils/more.c:1809
+msgid "No previous command to substitute for"
+msgstr ""
+
+#: text-utils/odsyntax.c:133
+msgid "od: od(1) has been deprecated for hexdump(1).\n"
+msgstr ""
+
+#: text-utils/odsyntax.c:136
+#, c-format
+msgid "od: hexdump(1) compatibility doesn't support the -%c option%s\n"
+msgstr ""
+
+#: text-utils/odsyntax.c:137
+msgid "; see strings(1)."
+msgstr ""
+
+#: text-utils/parse.c:63
+#, c-format
+msgid "hexdump: can't read %s.\n"
+msgstr ""
+
+#: text-utils/parse.c:68
+msgid "hexdump: line too long.\n"
+msgstr ""
+
+#: text-utils/parse.c:406
+msgid "hexdump: byte count with multiple conversion characters.\n"
+msgstr ""
+
+#: text-utils/parse.c:490
+#, c-format
+msgid "hexdump: bad byte count for conversion character %s.\n"
+msgstr ""
+
+#: text-utils/parse.c:497
+msgid "hexdump: %%s requires a precision or a byte count.\n"
+msgstr ""
+
+#: text-utils/parse.c:503
+#, c-format
+msgid "hexdump: bad format {%s}\n"
+msgstr ""
+
+#: text-utils/parse.c:509
+msgid "hexdump: bad conversion character %%%s.\n"
+msgstr ""
+
+#: text-utils/rev.c:109
+msgid "Unable to allocate bufferspace\n"
+msgstr ""
+
+#: text-utils/rev.c:167
+msgid "usage: rev [file ...]\n"
+msgstr ""
+
+#: text-utils/ul.c:125
+#, c-format
+msgid "usage: %s [ -i ] [ -tTerm ] file...\n"
+msgstr ""
+
+#: text-utils/ul.c:136
+msgid "trouble reading terminfo"
+msgstr ""
+
+#: text-utils/ul.c:223
+#, c-format
+msgid "Unknown escape sequence in input: %o, %o\n"
+msgstr ""
+
+#: text-utils/ul.c:372
+msgid "Unable to allocate buffer.\n"
+msgstr ""
+
+#: text-utils/ul.c:529
+msgid "Input line too long.\n"
+msgstr ""
+
+#: text-utils/ul.c:542
+msgid "Out of memory when growing buffer.\n"
+msgstr ""
diff --git a/po/po2tbl.sed b/po/po2tbl.sed
new file mode 100644 (file)
index 0000000..b3bcca4
--- /dev/null
@@ -0,0 +1,102 @@
+# po2tbl.sed - Convert Uniforum style .po file to lookup table for catgets
+# Copyright (C) 1995 Free Software Foundation, Inc.
+# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+1 {
+  i\
+/* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot.  */\
+\
+#if HAVE_CONFIG_H\
+# include <config.h>\
+#endif\
+\
+#include "libgettext.h"\
+\
+const struct _msg_ent _msg_tbl[] = {
+  h
+  s/.*/0/
+  x
+}
+#
+# Write msgid entries in C array form.
+#
+/^msgid/ {
+  s/msgid[     ]*\(".*"\)/  {\1/
+  tb
+# Append the next line
+  :b
+  N
+# Look whether second part is continuation line.
+  s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/
+# Yes, then branch.
+  ta
+# Because we assume that the input file correctly formed the line
+# just read cannot be again be a msgid line.  So it's safe to ignore
+# it.
+  s/\(.*\)\n.*/\1/
+  bc
+# We found a continuation line.  But before printing insert '\'.
+  :a
+  s/\(.*\)\(\n.*\)/\1\\\2/
+  P
+# We cannot use D here.
+  s/.*\n\(.*\)/\1/
+# Some buggy seds do not clear the `successful substitution since last ``t'''
+# flag on `N', so we do a `t' here to clear it.
+  tb
+# Not reached
+  :c
+  x
+# The following nice solution is by
+# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
+  td
+# Increment a decimal number in pattern space.
+# First hide trailing `9' digits.
+  :d
+  s/9\(_*\)$/_\1/
+  td
+# Assure at least one digit is available.
+  s/^\(_*\)$/0\1/
+# Increment the last digit.
+  s/8\(_*\)$/9\1/
+  s/7\(_*\)$/8\1/
+  s/6\(_*\)$/7\1/
+  s/5\(_*\)$/6\1/
+  s/4\(_*\)$/5\1/
+  s/3\(_*\)$/4\1/
+  s/2\(_*\)$/3\1/
+  s/1\(_*\)$/2\1/
+  s/0\(_*\)$/1\1/
+# Convert the hidden `9' digits to `0's.
+  s/_/0/g
+  x
+  G
+  s/\(.*\)\n\([0-9]*\)/\1, \2},/
+  s/\(.*\)"$/\1/
+  p
+}
+#
+# Last line.
+#
+$ {
+  i\
+};\
+
+  g
+  s/0*\(.*\)/int _msg_tbl_length = \1;/p
+}
+d
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100644 (file)
index 0000000..f423be7
--- /dev/null
@@ -0,0 +1,7519 @@
+# util-linux 2.9h translation to brazilian portuguese (pt_BR)
+# Copyright (C) 1999 Free Software Foundation, Inc.
+# Arnaldo Carvalho de Melo <acme@conectiva.com.br>, 1999.
+# Ricardo Stefani <ricardos@francanet.com.br>, 1999
+# Marcus Moreira <marcusms@frb.br>
+# Paulo Henrique R Pinheiro <nulo@sul.com.br>
+#
+# Free redistribution is permitted.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: util-linux 2.9h\n"
+"POT-Creation-Date: 1999-03-20 12:27-0300\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Arnaldo Carvalho de Melo <acme@conectiva.com.br>\n"
+"Language-Team: pt_BR <pt@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: mime\n"
+
+#: disk-utils/fdformat.c:33
+msgid "Formatting ... "
+msgstr "Formatando... "
+
+#: disk-utils/fdformat.c:51 disk-utils/fdformat.c:86
+msgid "done\n"
+msgstr "feito\n"
+
+#: disk-utils/fdformat.c:62
+msgid "Verifying ... "
+msgstr "Verificando... "
+
+#: disk-utils/fdformat.c:73
+msgid "Read: "
+msgstr ""
+
+#: disk-utils/fdformat.c:75
+#, c-format
+msgid "Problem reading cylinder %d, expected %d, read %d\n"
+msgstr ""
+
+#: disk-utils/fdformat.c:81
+#, c-format
+msgid ""
+"bad data in cyl %d\n"
+"Continuing ... "
+msgstr ""
+
+#: disk-utils/fdformat.c:96
+#, c-format
+msgid "usage: %s [ -n ] device\n"
+msgstr "Uso: %s [ -n ] dispositivo ...\n"
+
+#: disk-utils/fdformat.c:122
+#, c-format
+msgid "%s: not a floppy device\n"
+msgstr "%s: não é um dispositivo de disco flexível\n"
+
+#: disk-utils/fdformat.c:128
+msgid "Could not determine current format type"
+msgstr "Não foi possível determinar o tipo corrente do formato"
+
+#: disk-utils/fdformat.c:129
+#, c-format
+msgid "%s-sided, %d tracks, %d sec/track. Total capacity %d kB.\n"
+msgstr "%s, %d trilhas, %d setores/trilha. Capacidade total: %d Kb.\n"
+
+#: disk-utils/fdformat.c:130
+msgid "Double"
+msgstr "Dupla face"
+
+#: disk-utils/fdformat.c:130
+msgid "Single"
+msgstr "Face única"
+
+#: disk-utils/fsck.minix.c:288
+#, c-format
+msgid "%s is mounted.\t "
+msgstr "%s está montado.\t "
+
+#: disk-utils/fsck.minix.c:290
+msgid "Do you really want to continue"
+msgstr "Você quer realmente continuar"
+
+#: disk-utils/fsck.minix.c:294
+msgid "check aborted.\n"
+msgstr "verificação abortada.\n"
+
+#: disk-utils/fsck.minix.c:311 disk-utils/fsck.minix.c:331
+msgid "Zone nr < FIRSTZONE in file `"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:313 disk-utils/fsck.minix.c:333
+msgid "Zone nr >= ZONES in file `"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:318 disk-utils/fsck.minix.c:338
+msgid "Remove block"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:356
+msgid "Read error: unable to seek to block in file '"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:362
+msgid "Read error: bad block in file '"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:378
+msgid ""
+"Internal error: trying to write bad block\n"
+"Write request ignored\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:386
+msgid "Write error: bad block in file '"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:607
+msgid "Warning: Firstzone != Norm_firstzone\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:612 disk-utils/mkfs.minix.c:528
+#, c-format
+msgid "%ld inodes\n"
+msgstr "%ld inodos\n"
+
+#: disk-utils/fsck.minix.c:613 disk-utils/mkfs.minix.c:529
+#, c-format
+msgid "%ld blocks\n"
+msgstr "%ld blocos\n"
+
+#: disk-utils/fsck.minix.c:614 disk-utils/mkfs.minix.c:530
+#, c-format
+msgid "Firstdatazone=%ld (%ld)\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:615 disk-utils/mkfs.minix.c:531
+#, c-format
+msgid "Zonesize=%d\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:616
+#, c-format
+msgid "Maxsize=%ld\n"
+msgstr "TamMáximo=%ld\n"
+
+#: disk-utils/fsck.minix.c:617
+#, c-format
+msgid "Filesystem state=%d\n"
+msgstr "Estado do sistema de arquivos=%d\n"
+
+#: disk-utils/fsck.minix.c:618
+#, c-format
+msgid ""
+"namelen=%d\n"
+"\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:632 disk-utils/fsck.minix.c:684
+#, c-format
+msgid "Inode %d marked not used, but used for file '"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:637 disk-utils/fsck.minix.c:688
+msgid "Mark in use"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:659 disk-utils/fsck.minix.c:708
+#, c-format
+msgid " has mode %05o\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:665 disk-utils/fsck.minix.c:713
+msgid "Warning: inode count too big.\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:749 disk-utils/fsck.minix.c:783
+msgid "Block has been used before. Now in file `"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:752 disk-utils/fsck.minix.c:786
+#: disk-utils/fsck.minix.c:1114 disk-utils/fsck.minix.c:1123
+#: disk-utils/fsck.minix.c:1167 disk-utils/fsck.minix.c:1176
+msgid "Clear"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:761 disk-utils/fsck.minix.c:795
+#, c-format
+msgid "Block %d in file `"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:763 disk-utils/fsck.minix.c:797
+msgid "' is marked not in use."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:764 disk-utils/fsck.minix.c:798
+msgid "Correct"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:948 disk-utils/fsck.minix.c:1012
+msgid " contains a bad inode number for file '"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:950 disk-utils/fsck.minix.c:1014
+msgid " Remove"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:964 disk-utils/fsck.minix.c:1028
+msgid ": bad directory: '.' isn't first\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:971 disk-utils/fsck.minix.c:1036
+msgid ": bad directory: '..' isn't second\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1071
+msgid ": bad directory: size<32"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1090
+msgid ": bad directory: size < 32"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1113 disk-utils/fsck.minix.c:1166
+#, c-format
+msgid "Inode %d mode not cleared."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1122 disk-utils/fsck.minix.c:1175
+#, c-format
+msgid "Inode %d not used, marked used in the bitmap."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1128 disk-utils/fsck.minix.c:1181
+#, c-format
+msgid "Inode %d used, marked unused in the bitmap."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1134 disk-utils/fsck.minix.c:1186
+#, c-format
+msgid "Inode %d (mode = %07o), i_nlinks=%d, counted=%d."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1136 disk-utils/fsck.minix.c:1188
+msgid "Set i_nlinks to count"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1148 disk-utils/fsck.minix.c:1200
+#, c-format
+msgid "Zone %d: marked in use, no file uses it."
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1149 disk-utils/fsck.minix.c:1201
+msgid "Unmark"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1153 disk-utils/fsck.minix.c:1205
+#, c-format
+msgid "Zone %d: %sin use, counted=%d\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1154 disk-utils/fsck.minix.c:1206
+msgid "not "
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1182
+msgid "Set"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1296
+#, c-format
+msgid "%s is clean, no check.\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1300
+#, c-format
+msgid "Forcing filesystem check on %s.\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1302
+#, c-format
+msgid "Filesystem on %s is dirty, needs checking.\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1331
+msgid ""
+"\n"
+"%6ld inodes used (%ld%%)\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1336
+msgid "%6ld zones used (%ld%%)\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1338
+#, c-format
+msgid ""
+"\n"
+"%6d regular files\n"
+"%6d directories\n"
+"%6d character device files\n"
+"%6d block device files\n"
+"%6d links\n"
+"%6d symbolic links\n"
+"------\n"
+"%6d files\n"
+msgstr ""
+
+#: disk-utils/fsck.minix.c:1351
+msgid ""
+"----------------------------\n"
+"FILE SYSTEM HAS BEEN CHANGED\n"
+"----------------------------\n"
+msgstr ""
+
+#: disk-utils/mkfs.c:66
+msgid "Usage: mkfs [-V] [-t fstype] [fs-options] device [size]\n"
+msgstr ""
+"Uso: mkfs [-V] [-t tipoSistArq] [opções-sistArq] dispositivo [tamanho]\n"
+
+#: disk-utils/mkfs.c:80 fdisk/cfdisk.c:324 getopt-1.0.3b/getopt.c:85
+#: getopt-1.0.3b/getopt.c:95 login-utils/wall.c:221 mount/sundries.c:192
+#, c-format
+msgid "%s: Out of memory!\n"
+msgstr "%s: faltou memória!\n"
+
+#: disk-utils/mkfs.c:89
+msgid "mkfs version "
+msgstr "mkfs versão "
+
+#: disk-utils/mkfs.minix.c:186
+#, c-format
+msgid "Usage: %s [-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]\n"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:210
+#, c-format
+msgid "%s is mounted; will not make a filesystem here!"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:271
+msgid "seek to boot block failed in write_tables"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:273
+msgid "unable to clear boot sector"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:275
+msgid "seek failed in write_tables"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:277
+msgid "unable to write super-block"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:279
+msgid "unable to write inode map"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:281
+msgid "unable to write zone map"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:283
+msgid "unable to write inodes"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:290
+msgid "seek failed in write_block"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:292
+msgid "write failed in write_block"
+msgstr ""
+
+#. Could make triple indirect block here
+#: disk-utils/mkfs.minix.c:300 disk-utils/mkfs.minix.c:374
+#: disk-utils/mkfs.minix.c:425
+msgid "too many bad blocks"
+msgstr "número excessivo de blocos ruins"
+
+#: disk-utils/mkfs.minix.c:308
+msgid "not enough good blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:517
+msgid "unable to allocate buffers for maps"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:526
+msgid "unable to allocate buffer for inodes"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:532
+#, c-format
+msgid ""
+"Maxsize=%ld\n"
+"\n"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:546
+msgid "seek failed during testing of blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:554
+msgid "Weird values in do_check: probably bugs\n"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:585
+msgid "seek failed in check_blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:594
+msgid "bad blocks before data-area: cannot make fs"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:600 disk-utils/mkfs.minix.c:622
+#, c-format
+msgid "%d bad blocks\n"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:602 disk-utils/mkfs.minix.c:624
+msgid "one bad block\n"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:614
+msgid "can't open file of bad blocks"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:637 disk-utils/mkfs.minix.c:640
+msgid "bad inode size"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:669
+#, c-format
+msgid "%s: not compiled with minix v2 support\n"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:685
+msgid "strtol error: number of blocks not specified"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:717
+#, c-format
+msgid "unable to open %s"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:719
+#, c-format
+msgid "unable to stat %s"
+msgstr ""
+
+#: disk-utils/mkfs.minix.c:723
+#, c-format
+msgid "will not try to make filesystem on '%s'"
+msgstr ""
+
+#: disk-utils/mkswap.c:99
+#, c-format
+msgid "Assuming pages of size %d\n"
+msgstr ""
+
+#: disk-utils/mkswap.c:191
+#, c-format
+msgid "%d bad page%s\n"
+msgstr "%d páginas inválida%s\n"
+
+#: disk-utils/mkswap.c:191 login-utils/shutdown.c:433
+#: login-utils/shutdown.c:436
+msgid "s"
+msgstr ""
+
+#: disk-utils/mkswap.c:294
+#, c-format
+msgid "%s: error: Nowhere to set up swap on?\n"
+msgstr ""
+
+#: disk-utils/mkswap.c:313
+#, c-format
+msgid "%s: error: unknown version %d\n"
+msgstr ""
+
+#: disk-utils/mkswap.c:319
+#, c-format
+msgid "%s: error: swap area needs to be at least %ldkB\n"
+msgstr ""
+
+#: disk-utils/mkswap.c:326
+#, c-format
+msgid "%s: warning: truncating swap area to %ldkB\n"
+msgstr ""
+
+#: disk-utils/mkswap.c:353
+#, c-format
+msgid ""
+"%s: Device '%s' contains a valid Sun disklabel.\n"
+"This probably means creating v0 swap would destroy your partition table\n"
+"No swap created. If you really want to create swap v0 on that device, use\n"
+"the -f option to force it.\n"
+msgstr ""
+
+#: disk-utils/mkswap.c:378
+#, c-format
+msgid "Setting up swapspace version %d, size = %ld bytes\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:30
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:80
+#, c-format
+msgid "Syntax error: '%s'\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:90
+#, c-format
+msgid "No such parameter set: '%s'\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:100
+#, c-format
+msgid "usage: %s [ -p ] dev name\n"
+msgstr "Uso: %s [ -p ] dispositivo\n"
+
+#: disk-utils/setfdprm.c:101
+#, c-format
+msgid ""
+"       %s [ -p ] dev size sect heads tracks stretch gap rate spec1 fmt_gap\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:104
+#, c-format
+msgid "       %s [ -c | -y | -n | -d ] dev\n"
+msgstr ""
+
+#: disk-utils/setfdprm.c:106
+#, c-format
+msgid "       %s [ -c | -y | -n ] dev\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:349 fdisk/cfdisk.c:1764
+msgid "Unusable"
+msgstr ""
+
+#: fdisk/cfdisk.c:351 fdisk/cfdisk.c:1766
+msgid "Free Space"
+msgstr "Espaço Livre"
+
+#: fdisk/cfdisk.c:354
+msgid "Linux ext2"
+msgstr ""
+
+#. also Solaris
+#: fdisk/cfdisk.c:356 fdisk/i386_sys_types.c:53
+msgid "Linux"
+msgstr ""
+
+#: fdisk/cfdisk.c:359
+msgid "OS/2 HPFS"
+msgstr ""
+
+#: fdisk/cfdisk.c:361
+msgid "OS/2 IFS"
+msgstr ""
+
+#: fdisk/cfdisk.c:365
+msgid "NTFS"
+msgstr ""
+
+#: fdisk/cfdisk.c:376
+msgid "Disk has been changed.\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:377
+msgid "Reboot the system to ensure the partition table is correctly updated.\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:380
+msgid ""
+"\n"
+"WARNING: If you have created or modified any\n"
+"DOS 6.x partitions, please see the cfdisk manual\n"
+"page for additional information.\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:475
+msgid "FATAL ERROR"
+msgstr ""
+
+#: fdisk/cfdisk.c:484
+msgid "Press any key to exit fdisk"
+msgstr ""
+
+#: fdisk/cfdisk.c:520 fdisk/cfdisk.c:528
+msgid "Cannot seek on disk drive"
+msgstr ""
+
+#: fdisk/cfdisk.c:522
+msgid "Cannot read disk drive"
+msgstr ""
+
+#: fdisk/cfdisk.c:530
+msgid "Cannot write disk drive"
+msgstr ""
+
+#: fdisk/cfdisk.c:767
+msgid "Too many parts"
+msgstr "Número excessivo de partições"
+
+#: fdisk/cfdisk.c:772
+msgid "Partition begins before sector 0"
+msgstr ""
+
+#: fdisk/cfdisk.c:777
+msgid "Partition ends before sector 0"
+msgstr ""
+
+#: fdisk/cfdisk.c:782
+msgid "Partition begins after end-of-disk"
+msgstr "A partição começa depois do fim do disco"
+
+#: fdisk/cfdisk.c:787
+msgid "Partition ends after end-of-disk"
+msgstr "A partição se estende até depois do fim do disco"
+
+#: fdisk/cfdisk.c:835
+msgid ""
+"!!!! Internal error creating logical drive with no extended partition !!!!"
+msgstr ""
+
+#: fdisk/cfdisk.c:846 fdisk/cfdisk.c:858
+msgid ""
+"Cannot create logical drive here -- would create two extended partitions"
+msgstr ""
+
+#: fdisk/cfdisk.c:1002
+msgid "Menu item too long. Menu may look odd."
+msgstr ""
+
+#: fdisk/cfdisk.c:1051
+msgid "Menu without direction. Defaulting horizontal."
+msgstr ""
+
+#: fdisk/cfdisk.c:1166
+msgid "Illegal key"
+msgstr ""
+
+#: fdisk/cfdisk.c:1189
+msgid "Press a key to continue"
+msgstr "Pressione uma tecla para continuar"
+
+#: fdisk/cfdisk.c:1236 fdisk/cfdisk.c:1735 fdisk/cfdisk.c:2261
+#: fdisk/cfdisk.c:2263
+msgid "Primary"
+msgstr "Primária"
+
+#: fdisk/cfdisk.c:1236
+msgid "Create a new primary partition"
+msgstr "Cria uma nova partição primária"
+
+#: fdisk/cfdisk.c:1237 fdisk/cfdisk.c:1735 fdisk/cfdisk.c:2260
+#: fdisk/cfdisk.c:2263
+msgid "Logical"
+msgstr "Lógica"
+
+#: fdisk/cfdisk.c:1237
+msgid "Create a new logical partition"
+msgstr "Cria uma nova partição lógica"
+
+#: fdisk/cfdisk.c:1238 fdisk/cfdisk.c:1291 fdisk/cfdisk.c:1947
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: fdisk/cfdisk.c:1238 fdisk/cfdisk.c:1291
+msgid "Don't create a partition"
+msgstr "Não crie a partição"
+
+#: fdisk/cfdisk.c:1254
+msgid "!!! Internal error !!!"
+msgstr "!!! Erro interno !!!"
+
+#: fdisk/cfdisk.c:1257
+msgid "Size (in MB): "
+msgstr "Tamanho (em MB): "
+
+#: fdisk/cfdisk.c:1289
+msgid "Beginning"
+msgstr "Início"
+
+#: fdisk/cfdisk.c:1289
+msgid "Add partition at beginning of free space"
+msgstr "Adicionar uma partição no início do espaço livre"
+
+#: fdisk/cfdisk.c:1290
+msgid "End"
+msgstr "Fim"
+
+#: fdisk/cfdisk.c:1290
+msgid "Add partition at end of free space"
+msgstr ""
+
+#: fdisk/cfdisk.c:1308
+msgid "No room to create the extended partition"
+msgstr "Espaço insuficiente para criação de partição estendida"
+
+#: fdisk/cfdisk.c:1354
+msgid "Cannot open disk drive"
+msgstr ""
+
+#: fdisk/cfdisk.c:1356 fdisk/cfdisk.c:1546
+msgid "Opened disk read-only - you have no permission to write"
+msgstr ""
+
+#: fdisk/cfdisk.c:1386
+msgid "Cannot read disk drive geometry"
+msgstr "Não foi possível ler a geometria do disco"
+
+#: fdisk/cfdisk.c:1408
+msgid "Bad primary partition"
+msgstr "Partição primária inválida"
+
+#: fdisk/cfdisk.c:1438
+msgid "Bad logical partition"
+msgstr "Partição lógica inválida"
+
+#: fdisk/cfdisk.c:1558
+msgid "Warning!!  This may destroy data on your disk!"
+msgstr ""
+
+#: fdisk/cfdisk.c:1562
+msgid "Are you sure you want write the partition table to disk? (yes or no): "
+msgstr ""
+
+#: fdisk/cfdisk.c:1571
+msgid "Did not write partition table to disk"
+msgstr "A tabela de partições NÃO foi gravada no disco"
+
+#: fdisk/cfdisk.c:1579
+msgid "Please enter `yes' or `no'"
+msgstr ""
+
+#: fdisk/cfdisk.c:1583
+msgid "Writing partition table to disk..."
+msgstr "Gravando tabela de partições no disco..."
+
+#: fdisk/cfdisk.c:1608 fdisk/cfdisk.c:1612
+msgid "Wrote partition table to disk"
+msgstr "A tabela de partições foi gravada no disco"
+
+#: fdisk/cfdisk.c:1610
+msgid ""
+"Wrote partition table, but re-read table failed.  Reboot to update table."
+msgstr ""
+
+#: fdisk/cfdisk.c:1620
+msgid ""
+"Not precisely one primary partition is bootable. DOS MBR cannot boot this."
+msgstr ""
+
+#: fdisk/cfdisk.c:1678 fdisk/cfdisk.c:1796 fdisk/cfdisk.c:1888
+msgid "Enter filename or press RETURN to display on screen: "
+msgstr ""
+
+#: fdisk/cfdisk.c:1686 fdisk/cfdisk.c:1804 fdisk/cfdisk.c:1896
+#, c-format
+msgid "Cannot open file '%s'"
+msgstr ""
+
+#: fdisk/cfdisk.c:1697
+#, c-format
+msgid "Disk Drive: %s\n"
+msgstr "Disco: %s\n"
+
+#: fdisk/cfdisk.c:1699
+msgid "Sector 0:\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:1706
+#, c-format
+msgid "Sector %d:\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:1726
+msgid "   None   "
+msgstr ""
+
+#: fdisk/cfdisk.c:1728
+msgid "   Pri/Log"
+msgstr ""
+
+#: fdisk/cfdisk.c:1730
+msgid "   Primary"
+msgstr ""
+
+#: fdisk/cfdisk.c:1732
+msgid "   Logical"
+msgstr ""
+
+#. odd flag on end
+#. type id
+#. type name
+#: fdisk/cfdisk.c:1770 fdisk/fdisk.c:1045 fdisk/fdisk.c:1194
+#: fdisk/fdisksgilabel.c:224 fdisk/fdisksunlabel.c:644 fdisk/sfdisk.c:551
+msgid "Unknown"
+msgstr ""
+
+#: fdisk/cfdisk.c:1776
+#, c-format
+msgid "Boot (%02X)"
+msgstr ""
+
+#: fdisk/cfdisk.c:1778 fdisk/cfdisk.c:2269
+#, c-format
+msgid "Unknown (%02X)"
+msgstr ""
+
+#: fdisk/cfdisk.c:1780
+#, c-format
+msgid "None (%02X)"
+msgstr ""
+
+#: fdisk/cfdisk.c:1815 fdisk/cfdisk.c:1907
+#, c-format
+msgid "Partition Table for %s\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:1817
+msgid "            First    Last\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:1818
+msgid ""
+" # Type     Sector   Sector   Offset  Length   Filesystem Type (ID)   Flags\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:1819
+msgid ""
+"-- ------- -------- --------- ------ --------- ---------------------- "
+"---------\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:1909
+msgid "         ---Starting---      ----Ending----    Start Number of\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:1910
+msgid " # Flags Head Sect Cyl   ID  Head Sect Cyl    Sector  Sectors\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:1911
+msgid "-- ----- ---- ---- ---- ---- ---- ---- ---- -------- ---------\n"
+msgstr ""
+
+#: fdisk/cfdisk.c:1944
+msgid "Raw"
+msgstr ""
+
+#: fdisk/cfdisk.c:1944
+msgid "Print the table using raw data format"
+msgstr ""
+
+#: fdisk/cfdisk.c:1945 fdisk/cfdisk.c:2050
+msgid "Sectors"
+msgstr ""
+
+#: fdisk/cfdisk.c:1945
+msgid "Print the table ordered by sectors"
+msgstr ""
+
+#: fdisk/cfdisk.c:1946
+msgid "Table"
+msgstr ""
+
+#: fdisk/cfdisk.c:1946
+msgid "Just print the partition table"
+msgstr ""
+
+#: fdisk/cfdisk.c:1947
+msgid "Don't print the table"
+msgstr ""
+
+#: fdisk/cfdisk.c:1976
+msgid "Help Screen for cfdisk "
+msgstr ""
+
+#: fdisk/cfdisk.c:1978
+msgid "This is cfdisk, a curses based disk partitioning program, which"
+msgstr ""
+
+#: fdisk/cfdisk.c:1979
+msgid "allows you to create, delete and modify partitions on your hard"
+msgstr ""
+
+#: fdisk/cfdisk.c:1980
+msgid "disk drive."
+msgstr ""
+
+#: fdisk/cfdisk.c:1982
+msgid "Copyright (C) 1994-1998 Kevin E. Martin & aeb"
+msgstr ""
+
+#: fdisk/cfdisk.c:1984
+msgid "Command      Meaning"
+msgstr ""
+
+#: fdisk/cfdisk.c:1985
+msgid "-------      -------"
+msgstr ""
+
+#: fdisk/cfdisk.c:1986
+msgid "  b          Toggle bootable flag of the current partition"
+msgstr ""
+
+#: fdisk/cfdisk.c:1987
+msgid "  d          Delete the current partition"
+msgstr ""
+
+#: fdisk/cfdisk.c:1988
+msgid "  g          Change cylinders, heads, sectors-per-track parameters"
+msgstr ""
+
+#: fdisk/cfdisk.c:1989
+msgid "             WARNING: This option should only be used by people who"
+msgstr ""
+
+#: fdisk/cfdisk.c:1990
+msgid "             know what they are doing."
+msgstr ""
+
+#: fdisk/cfdisk.c:1991
+msgid "  h          Print this screen"
+msgstr ""
+
+#: fdisk/cfdisk.c:1992
+msgid "  m          Maximize disk usage of the current partition"
+msgstr ""
+
+#: fdisk/cfdisk.c:1993
+msgid "             Note: This may make the partition incompatible with"
+msgstr ""
+
+#: fdisk/cfdisk.c:1994
+msgid "             DOS, OS/2, ..."
+msgstr ""
+
+#: fdisk/cfdisk.c:1995
+msgid "  n          Create new partition from free space"
+msgstr ""
+
+#: fdisk/cfdisk.c:1996
+msgid "  p          Print partition table to the screen or to a file"
+msgstr ""
+
+#: fdisk/cfdisk.c:1997
+msgid "             There are several different formats for the partition"
+msgstr ""
+
+#: fdisk/cfdisk.c:1998
+msgid "             that you can choose from:"
+msgstr ""
+
+#: fdisk/cfdisk.c:1999
+msgid "                r - Raw data (exactly what would be written to disk)"
+msgstr ""
+
+#: fdisk/cfdisk.c:2000
+msgid "                s - Table ordered by sectors"
+msgstr ""
+
+#: fdisk/cfdisk.c:2001
+msgid "                t - Table in raw format"
+msgstr ""
+
+#: fdisk/cfdisk.c:2002
+msgid "  q          Quit program without writing partition table"
+msgstr ""
+
+#: fdisk/cfdisk.c:2003
+msgid "  t          Change the filesystem type"
+msgstr ""
+
+#: fdisk/cfdisk.c:2004
+msgid "  u          Change units of the partition size display"
+msgstr ""
+
+#: fdisk/cfdisk.c:2005
+msgid "             Rotates through Mb, sectors and cylinders"
+msgstr ""
+
+#: fdisk/cfdisk.c:2006
+msgid "  W          Write partition table to disk (must enter upper case W)"
+msgstr ""
+
+#: fdisk/cfdisk.c:2007
+msgid "             Since this might destroy data on the disk, you must"
+msgstr ""
+
+#: fdisk/cfdisk.c:2008
+msgid "             either confirm or deny the write by entering `yes' or"
+msgstr ""
+
+#: fdisk/cfdisk.c:2009
+msgid "             `no'"
+msgstr ""
+
+#: fdisk/cfdisk.c:2010
+msgid "Up Arrow     Move cursor to the previous partition"
+msgstr ""
+
+#: fdisk/cfdisk.c:2011
+msgid "Down Arrow   Move cursor to the next partition"
+msgstr ""
+
+#: fdisk/cfdisk.c:2012
+msgid "CTRL-L       Redraws the screen"
+msgstr ""
+
+#: fdisk/cfdisk.c:2013
+msgid "  ?          Print this screen"
+msgstr ""
+
+#: fdisk/cfdisk.c:2015
+msgid "Note: All of the commands can be entered with either upper or lower"
+msgstr ""
+
+#: fdisk/cfdisk.c:2016
+msgid "case letters (except for Writes)."
+msgstr ""
+
+#: fdisk/cfdisk.c:2048 fdisk/cfdisk.c:2350 fdisk/fdisksunlabel.c:305
+#: fdisk/fdisksunlabel.c:307
+msgid "Cylinders"
+msgstr "Cilindros"
+
+#: fdisk/cfdisk.c:2048
+msgid "Change cylinder geometry"
+msgstr "Mudar geometria dos cilindros"
+
+#: fdisk/cfdisk.c:2049 fdisk/fdisksunlabel.c:302
+msgid "Heads"
+msgstr "Cabeças"
+
+#: fdisk/cfdisk.c:2049
+msgid "Change head geometry"
+msgstr "Mudar geometria dos cilindros"
+
+#: fdisk/cfdisk.c:2050
+msgid "Change sector geometry"
+msgstr "Mudar geometria dos setores"
+
+#: fdisk/cfdisk.c:2051
+msgid "Done"
+msgstr "Feito"
+
+#: fdisk/cfdisk.c:2051
+msgid "Done with changing geometry"
+msgstr "A mudança da geometria foi feita"
+
+#: fdisk/cfdisk.c:2064
+msgid "Enter the number of cylinders: "
+msgstr "Informe o número de cilindros: "
+
+#: fdisk/cfdisk.c:2071 fdisk/cfdisk.c:2614
+msgid "Illegal cylinders value"
+msgstr ""
+
+#: fdisk/cfdisk.c:2077
+msgid "Enter the number of heads: "
+msgstr "Informe o número de cabeças: "
+
+#: fdisk/cfdisk.c:2084 fdisk/cfdisk.c:2621
+msgid "Illegal heads value"
+msgstr ""
+
+#: fdisk/cfdisk.c:2090
+msgid "Enter the number of sectors per track: "
+msgstr "Informe o número de setores por trilha: "
+
+#: fdisk/cfdisk.c:2097 fdisk/cfdisk.c:2628
+msgid "Illegal sectors value"
+msgstr "Valor de setores inválido"
+
+#: fdisk/cfdisk.c:2196
+msgid "Enter filesystem type: "
+msgstr "Informe o tipo do sistema de arquivos: "
+
+#: fdisk/cfdisk.c:2214
+msgid "Cannot change FS Type to empty"
+msgstr "Não foi possível mudar o tipo de SA para vazio"
+
+#: fdisk/cfdisk.c:2216
+msgid "Cannot change FS Type to extended"
+msgstr ""
+
+#: fdisk/cfdisk.c:2238 fdisk/fdisksunlabel.c:44
+msgid "Boot"
+msgstr "Inicial."
+
+#: fdisk/cfdisk.c:2240
+#, c-format
+msgid "Unk(%02X)"
+msgstr "Desc(%02X)"
+
+#: fdisk/cfdisk.c:2243 fdisk/cfdisk.c:2246
+msgid ", NC"
+msgstr ""
+
+#: fdisk/cfdisk.c:2251 fdisk/cfdisk.c:2254
+msgid "NC"
+msgstr ""
+
+#: fdisk/cfdisk.c:2262
+msgid "Pri/Log"
+msgstr "Pri/Lóg"
+
+#: fdisk/cfdisk.c:2336
+#, c-format
+msgid "Disk Drive: %s"
+msgstr "Disco: %s"
+
+#: fdisk/cfdisk.c:2338
+#, c-format
+msgid "Heads: %d   Sectors per Track: %d   Cylinders: %d"
+msgstr "Cabeças: %d  Setores por Trilha: %d  Cilindros: %d"
+
+#: fdisk/cfdisk.c:2342
+msgid "Name"
+msgstr "Nome"
+
+#: fdisk/cfdisk.c:2343
+msgid "Flags"
+msgstr "Opções"
+
+#: fdisk/cfdisk.c:2344
+msgid "Part Type"
+msgstr "Tipo Part."
+
+#: fdisk/cfdisk.c:2345
+msgid "FS Type"
+msgstr "Tipo SA"
+
+#: fdisk/cfdisk.c:2346
+msgid "[Label]"
+msgstr "[Rótulo]"
+
+#: fdisk/cfdisk.c:2348
+msgid "  Sectors"
+msgstr "  Setores"
+
+#: fdisk/cfdisk.c:2352
+msgid "Size (MB)"
+msgstr "Tam. (MB)"
+
+#: fdisk/cfdisk.c:2407
+msgid "Bootable"
+msgstr "Inicial."
+
+#: fdisk/cfdisk.c:2407
+msgid "Toggle bootable flag of the current partition"
+msgstr "Configura a partição corrente como inicializável"
+
+#: fdisk/cfdisk.c:2408
+msgid "Delete"
+msgstr "Remova"
+
+#: fdisk/cfdisk.c:2408
+msgid "Delete the current partition"
+msgstr "Remover partição corrente"
+
+#: fdisk/cfdisk.c:2409
+msgid "Geometry"
+msgstr "Geometria"
+
+#: fdisk/cfdisk.c:2409
+msgid "Change disk geometry (experts only)"
+msgstr "Mudar geometria do disco (somente para experts)"
+
+#: fdisk/cfdisk.c:2410
+msgid "Help"
+msgstr "Ajuda"
+
+#: fdisk/cfdisk.c:2410
+msgid "Print help screen"
+msgstr "Mostrar tela de ajuda"
+
+#: fdisk/cfdisk.c:2411
+msgid "Maximize"
+msgstr "Maximize"
+
+#: fdisk/cfdisk.c:2411
+msgid "Maximize disk usage of the current partition (experts only)"
+msgstr ""
+"Maximizar o uso de disco para a partição corrente (somente para experts)"
+
+#: fdisk/cfdisk.c:2412
+msgid "New"
+msgstr "Nova"
+
+#: fdisk/cfdisk.c:2412
+msgid "Create new partition from free space"
+msgstr "Criar nova partição a partir do espaço livre"
+
+#: fdisk/cfdisk.c:2413
+msgid "Print"
+msgstr "Mostre"
+
+#: fdisk/cfdisk.c:2413
+msgid "Print partition table to the screen or to a file"
+msgstr "Mostrar tabela de particões na tela ou para um arquivo"
+
+#: fdisk/cfdisk.c:2414
+msgid "Quit"
+msgstr "Saia"
+
+#: fdisk/cfdisk.c:2414
+msgid "Quit program without writing partition table"
+msgstr "Sair do programa sem gravar a tabela de partições"
+
+#: fdisk/cfdisk.c:2415
+msgid "Type"
+msgstr "Tipo"
+
+#: fdisk/cfdisk.c:2415
+msgid "Change the filesystem type (DOS, Linux, OS/2 and so on)"
+msgstr "Mudar o tipo do sistema de arquivos (DOS, Linux, OS/2 e outros)"
+
+#: fdisk/cfdisk.c:2416
+msgid "Units"
+msgstr "Unidades"
+
+#: fdisk/cfdisk.c:2416
+msgid "Change units of the partition size display (MB, sect, cyl)"
+msgstr ""
+"Mudar unidades mostradas para o tamanho das partições (MB, setores, "
+"cilindros)"
+
+#: fdisk/cfdisk.c:2417
+msgid "Write"
+msgstr "Grave"
+
+#: fdisk/cfdisk.c:2417
+msgid "Write partition table to disk (this might destroy data)"
+msgstr "Gravar tabela de partições no disco (isto poderá destruir dados)"
+
+#: fdisk/cfdisk.c:2463
+msgid "Cannot make this partition bootable"
+msgstr ""
+
+#: fdisk/cfdisk.c:2473
+msgid "Cannot delete an empty partition"
+msgstr "Não foi possível remover uma partição vazia"
+
+#: fdisk/cfdisk.c:2493 fdisk/cfdisk.c:2495
+msgid "Cannot maximize this partition"
+msgstr "Não foi possível maximizar esta partição"
+
+#: fdisk/cfdisk.c:2503
+msgid "This partition is unusable"
+msgstr ""
+
+#: fdisk/cfdisk.c:2505
+msgid "This partition is already in use"
+msgstr ""
+
+#: fdisk/cfdisk.c:2522
+msgid "Cannot change the type of an empty partition"
+msgstr ""
+
+#: fdisk/cfdisk.c:2547 fdisk/cfdisk.c:2553
+msgid "No more partitions"
+msgstr "Sem mais partições"
+
+#: fdisk/cfdisk.c:2560
+msgid "Illegal command"
+msgstr "Comando inválido"
+
+#: fdisk/cfdisk.c:2570
+msgid "Copyright (C) 1994-1999 Kevin E. Martin & aeb\n"
+msgstr "Copyright (C) 1994-1999 Kevin E. Martin & aeb\n"
+
+#. Unfortunately, xgettext does not handle multi-line strings
+#. so, let's use explicit \n's instead
+#: fdisk/cfdisk.c:2577
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+"Print version:\n"
+"        %s -v\n"
+"Print partition table:\n"
+"        %s -P {r|s|t} [options] device\n"
+"Interactive use:\n"
+"        %s [options] device\n"
+"\n"
+"Options:\n"
+"-a: Use arrow instead of highlighting;\n"
+"-z: Start with a zero partition table, instead of reading the pt from disk;\n"
+"-c C -h H -s S: Override the kernel's idea of the number of cylinders,\n"
+"                the number of heads and the number of sectors/track.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisk.c:235
+msgid ""
+"Usage: fdisk [-b SSZ] [-u] [DISK]     Change partition table\n"
+"       fdisk -l [-b SSZ] [-u] [DISK]  List partition table(s)\n"
+"       fdisk -s PARTITION         Give partition size(s) in blocks\n"
+"       fdisk -v                   Give fdisk version\n"
+"Here DISK is something like /dev/hdb or /dev/sda\n"
+"and PARTITION is something like /dev/hda7\n"
+"-u: give Start and End in sector (instead of cylinder) units\n"
+"-b 2048: (for certain MO drives) use 2048-byte sectors\n"
+msgstr ""
+
+#: fdisk/fdisk.c:245
+msgid "A disk block device is needed.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:248
+msgid ""
+"Given name does not refer to a partition,\n"
+"or maybe not even to a block device.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:252
+#, c-format
+msgid "Unable to open %s\n"
+msgstr ""
+
+#: fdisk/fdisk.c:255
+#, c-format
+msgid "Unable to read %s\n"
+msgstr ""
+
+#: fdisk/fdisk.c:258
+#, c-format
+msgid "Unable to seek on %s\n"
+msgstr ""
+
+#: fdisk/fdisk.c:261
+#, c-format
+msgid "Unable to write %s\n"
+msgstr ""
+
+#: fdisk/fdisk.c:264
+msgid "Unable to allocate any more memory\n"
+msgstr ""
+
+#: fdisk/fdisk.c:266
+msgid "Fatal error\n"
+msgstr ""
+
+#: fdisk/fdisk.c:277 fdisk/fdisk.c:296 fdisk/fdisk.c:314 fdisk/fdisk.c:321
+#: fdisk/fdisk.c:344 fdisk/fdisk.c:362 fdisk/fdiskbsdlabel.c:105
+msgid "Command action"
+msgstr "Comando - ação"
+
+#: fdisk/fdisk.c:278
+msgid "   a   toggle a read only flag"
+msgstr "   a   configura a opção de somente leitura"
+
+#. sun
+#: fdisk/fdisk.c:279 fdisk/fdisk.c:323
+msgid "   b   edit bsd disklabel"
+msgstr "   b   edita rótulo BSD no disco"
+
+#: fdisk/fdisk.c:280
+msgid "   c   toggle the mountable flag"
+msgstr "   c   configura a opção \"montável\""
+
+#. sun
+#: fdisk/fdisk.c:281 fdisk/fdisk.c:300 fdisk/fdisk.c:325
+msgid "   d   delete a partition"
+msgstr "   d   remova uma partição"
+
+#: fdisk/fdisk.c:282 fdisk/fdisk.c:301 fdisk/fdisk.c:326
+msgid "   l   list known partition types"
+msgstr "   l   lista os tipos de partição conhecidos"
+
+#. sun
+#: fdisk/fdisk.c:283 fdisk/fdisk.c:302 fdisk/fdisk.c:315 fdisk/fdisk.c:327
+#: fdisk/fdisk.c:352 fdisk/fdisk.c:369 fdisk/fdiskbsdlabel.c:110
+msgid "   m   print this menu"
+msgstr "   m   mostra este menu"
+
+#: fdisk/fdisk.c:284 fdisk/fdisk.c:303 fdisk/fdisk.c:328
+msgid "   n   add a new partition"
+msgstr "   n   cria uma nova partição"
+
+#: fdisk/fdisk.c:285 fdisk/fdisk.c:304 fdisk/fdisk.c:316 fdisk/fdisk.c:329
+msgid "   o   create a new empty DOS partition table"
+msgstr "   o   cria uma nova tabela de partições DOS vazia"
+
+#: fdisk/fdisk.c:286 fdisk/fdisk.c:305 fdisk/fdisk.c:330 fdisk/fdisk.c:353
+#: fdisk/fdisk.c:370
+msgid "   p   print the partition table"
+msgstr "   p   mostra a tabela de partições"
+
+#: fdisk/fdisk.c:287 fdisk/fdisk.c:306 fdisk/fdisk.c:317 fdisk/fdisk.c:331
+#: fdisk/fdisk.c:354 fdisk/fdisk.c:371 fdisk/fdiskbsdlabel.c:113
+msgid "   q   quit without saving changes"
+msgstr "   q   sai sem salvar as mudanças"
+
+#: fdisk/fdisk.c:288 fdisk/fdisk.c:307 fdisk/fdisk.c:318 fdisk/fdisk.c:332
+msgid "   s   create a new empty Sun disklabel"
+msgstr "   s   cria um novo rotúlo de disco Sun vazio"
+
+#. sun
+#: fdisk/fdisk.c:289 fdisk/fdisk.c:308 fdisk/fdisk.c:333
+msgid "   t   change a partition's system id"
+msgstr "   t   muda a identificação da partição para o sistema"
+
+#: fdisk/fdisk.c:290 fdisk/fdisk.c:309 fdisk/fdisk.c:334
+msgid "   u   change display/entry units"
+msgstr "   u   muda as unidades das entradas mostradas"
+
+#: fdisk/fdisk.c:291 fdisk/fdisk.c:310 fdisk/fdisk.c:335 fdisk/fdisk.c:357
+#: fdisk/fdisk.c:374
+msgid "   v   verify the partition table"
+msgstr "   v   verifica a tabela de partições"
+
+#: fdisk/fdisk.c:292 fdisk/fdisk.c:311 fdisk/fdisk.c:336 fdisk/fdisk.c:358
+#: fdisk/fdisk.c:375
+msgid "   w   write table to disk and exit"
+msgstr "   w   grava a tabela para o disco e sai"
+
+#: fdisk/fdisk.c:293 fdisk/fdisk.c:337
+msgid "   x   extra functionality (experts only)"
+msgstr "   x   funcionalidade adicional (somente para experts)"
+
+#: fdisk/fdisk.c:297
+msgid "   a   select bootable partition"
+msgstr "   a   torna a partição inicializável"
+
+#. sgi flavour
+#: fdisk/fdisk.c:298
+msgid "   b   edit bootfile entry"
+msgstr "   b   edita uma entrada de arquivo de inicialização"
+
+#. sgi
+#: fdisk/fdisk.c:299
+msgid "   c   select sgi swap partition"
+msgstr "   c   seleciona uma partição de troca sgi"
+
+#: fdisk/fdisk.c:322
+msgid "   a   toggle a bootable flag"
+msgstr "   a   configura a opção \"inicializável\""
+
+#: fdisk/fdisk.c:324
+msgid "   c   toggle the dos compatibility flag"
+msgstr ""
+
+# DÚVIDA!!!!
+#: fdisk/fdisk.c:345
+msgid "   a   change number of alternate cylinders"
+msgstr "   a   mudar número de cilindros alternativos"
+
+#                                        ^^^^^^^^^^^^
+#. sun
+#: fdisk/fdisk.c:346 fdisk/fdisk.c:364
+msgid "   c   change number of cylinders"
+msgstr "   c   mudar número de cilindros"
+
+#: fdisk/fdisk.c:347 fdisk/fdisk.c:365
+msgid "   d   print the raw data in the partition table"
+msgstr "   d   mostre os dados brutos (sem formatação) da tabela de partições"
+
+#: fdisk/fdisk.c:348
+msgid "   e   change number of extra sectors per cylinder"
+msgstr "   e   mudar número de setores extras por cilindro"
+
+#. sun
+#: fdisk/fdisk.c:349 fdisk/fdisk.c:368
+msgid "   h   change number of heads"
+msgstr "   h   mudar número de cabeças"
+
+#: fdisk/fdisk.c:350
+msgid "   i   change interleave factor"
+msgstr "   i   mudar fator de \"interleave\""
+
+#. sun
+#: fdisk/fdisk.c:351
+msgid "   o   change rotation speed (rpm)"
+msgstr "   o   mudar velocidade rotacional (rpm)"
+
+#: fdisk/fdisk.c:355 fdisk/fdisk.c:372 fdisk/fdiskbsdlabel.c:115
+msgid "   r   return to main menu"
+msgstr "   r   voltar ao menu principal"
+
+#: fdisk/fdisk.c:356 fdisk/fdisk.c:373
+msgid "   s   change number of sectors"
+msgstr "   s   mudar número de setores"
+
+#: fdisk/fdisk.c:359
+msgid "   y   change number of physical cylinders"
+msgstr "   y   mudar número de cilindros físicos"
+
+#: fdisk/fdisk.c:363
+msgid "   b   move beginning of data in a partition"
+msgstr "   b   mover inicio dos dados em uma partição"
+
+#: fdisk/fdisk.c:366
+msgid "   e   list extended partitions"
+msgstr "   e   listar partições estendidas"
+
+#. !sun
+#: fdisk/fdisk.c:367
+msgid "   g   create an IRIX partition table"
+msgstr "   g   criar uma tabela de partições IRIX"
+
+#: fdisk/fdisk.c:463
+msgid "You must set"
+msgstr ""
+
+#: fdisk/fdisk.c:477
+msgid "heads"
+msgstr "cabeças"
+
+#: fdisk/fdisk.c:479 fdisk/sfdisk.c:825
+msgid "sectors"
+msgstr "setores"
+
+#: fdisk/fdisk.c:481 fdisk/fdiskbsdlabel.c:441 fdisk/sfdisk.c:825
+msgid "cylinders"
+msgstr "cilindros"
+
+#: fdisk/fdisk.c:485
+#, c-format
+msgid ""
+"%s%s.\n"
+"You can do this from the extra functions menu.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:486
+msgid " and "
+msgstr ""
+
+#: fdisk/fdisk.c:520
+msgid "Bad offset in primary extended partition\n"
+msgstr "Deslocamento (offset) inválido em uma partição primária estendida\n"
+
+#: fdisk/fdisk.c:524
+#, c-format
+msgid "Warning: deleting partitions after %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:545
+#, c-format
+msgid "Warning: extra link pointer in partition table %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:553
+#, c-format
+msgid "Warning: ignoring extra data in partition table %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:579
+msgid ""
+"Building a new DOS disklabel. Changes will remain in memory only,\n"
+"until you decide to write them. After that, of course, the previous\n"
+"content won't be recoverable.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisk.c:615
+msgid "You will not be able to write the partition table.\n"
+msgstr "Você não poderá gravar a tabela de partições.\n"
+
+#: fdisk/fdisk.c:624
+#, c-format
+msgid "Note: sector size is %d (not %d)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:671
+msgid ""
+"Device contains neither a valid DOS partition table, nor Sun or SGI "
+"disklabel\n"
+msgstr ""
+
+#: fdisk/fdisk.c:687
+msgid "Internal error\n"
+msgstr "Erro interno\n"
+
+#: fdisk/fdisk.c:697
+#, c-format
+msgid "Ignoring extra extended partition %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:704
+#, c-format
+msgid ""
+"Warning: invalid flag 0x%04x of partition table %d will be corrected by "
+"w(rite)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:725
+msgid ""
+"\n"
+"got EOF thrice - exiting..\n"
+msgstr ""
+
+#: fdisk/fdisk.c:762
+msgid "Hex code (type L to list codes): "
+msgstr ""
+
+#: fdisk/fdisk.c:801
+#, c-format
+msgid "%s (%d-%d, default %d): "
+msgstr ""
+
+#: fdisk/fdisk.c:855
+#, c-format
+msgid "Using default value %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:859
+msgid "Value out of range.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:866
+msgid "Partition number"
+msgstr ""
+
+#: fdisk/fdisk.c:874
+#, c-format
+msgid "Warning: partition %d has empty type\n"
+msgstr ""
+
+#: fdisk/fdisk.c:880
+msgid "cylinder"
+msgstr "cilindro"
+
+#: fdisk/fdisk.c:880
+msgid "sector"
+msgstr "setor"
+
+#: fdisk/fdisk.c:887
+#, c-format
+msgid "Changing display/entry units to %ss\n"
+msgstr ""
+
+#: fdisk/fdisk.c:897
+#, c-format
+msgid "WARNING: Partition %d is an extended partition\n"
+msgstr ""
+
+#: fdisk/fdisk.c:910
+msgid "DOS Compatibility flag is set\n"
+msgstr ""
+
+#: fdisk/fdisk.c:914
+msgid "DOS Compatibility flag is not set\n"
+msgstr ""
+
+#: fdisk/fdisk.c:999
+#, c-format
+msgid "Partition %d does not exist yet!\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1004
+msgid ""
+"Type 0 means free space to many systems\n"
+"(but not to Linux). Having partitions of\n"
+"type 0 is probably unwise. You can delete\n"
+"a partition using the `d' command.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1013
+msgid ""
+"You cannot change a partition into an extended one or vice versa\n"
+"Delete it first.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1022
+msgid ""
+"Consider leaving partition 3 as Whole disk (5),\n"
+"as SunOS/Solaris expects it and even Linux likes it.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1028
+msgid ""
+"Consider leaving partition 9 as volume header (0),\n"
+"and partition 11 as entire volume (6)as IRIX expects it.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1042
+#, c-format
+msgid "Changed system type of partition %d to %x (%s)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1095
+#, c-format
+msgid "Partition %d has different physical/logical beginnings (non-Linux?):\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1097 fdisk/fdisk.c:1105 fdisk/fdisk.c:1114 fdisk/fdisk.c:1123
+#, c-format
+msgid "     phys=(%d, %d, %d) "
+msgstr ""
+
+#: fdisk/fdisk.c:1098 fdisk/fdisk.c:1106
+#, c-format
+msgid "logical=(%d, %d, %d)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1103
+#, c-format
+msgid "Partition %d has different physical/logical endings:\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1112
+#, c-format
+msgid "Partition %i does not start on cylinder boundary:\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1115
+#, c-format
+msgid "should be (%d, %d, 1)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1121
+#, c-format
+msgid "Partition %i does not end on cylinder boundary:\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1124
+#, c-format
+msgid "should be (%d, %d, %d)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1131
+#, c-format
+msgid ""
+"\n"
+"Disk %s: %d heads, %d sectors, %d cylinders\n"
+"Units = %ss of %d * %d bytes\n"
+"\n"
+msgstr ""
+
+#. FIXME! let's see how this shows up with other languagues
+#. acme@conectiva.com.br
+#: fdisk/fdisk.c:1168
+#, c-format
+msgid "%*s Boot    Start       End    Blocks   Id  System\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1169 fdisk/fdisksgilabel.c:207 fdisk/fdisksunlabel.c:629
+msgid "Device"
+msgstr ""
+
+#: fdisk/fdisk.c:1209
+#, c-format
+msgid ""
+"\n"
+"Disk %s: %d heads, %d sectors, %d cylinders\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1211
+msgid "Nr AF  Hd Sec  Cyl  Hd Sec  Cyl   Start    Size ID\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1250
+#, c-format
+msgid "Warning: partition %d contains sector 0\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1253
+#, c-format
+msgid "Partition %d: head %d greater than maximum %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1256
+#, c-format
+msgid "Partition %d: sector %d greater than maximum %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1259
+#, c-format
+msgid "Partitions %d: cylinder %d greater than maximum %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1263
+#, c-format
+msgid "Partition %d: previous sectors %d disagrees with total %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1293
+#, c-format
+msgid "Warning: bad start-of-data in partition %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1301
+#, c-format
+msgid "Warning: partition %d overlaps partition %d.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1319
+#, c-format
+msgid "Warning: partition %d is empty\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1324
+#, c-format
+msgid "Logical partition %d not entirely in partition %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1330
+#, c-format
+msgid "Total allocated sectors %d greater than the maximum %d\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1333
+#, c-format
+msgid "%d unallocated sectors\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1345 fdisk/fdisksgilabel.c:684 fdisk/fdisksunlabel.c:479
+#, c-format
+msgid "Partition %d is already defined.  Delete it before re-adding it.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1366 fdisk/fdiskbsdlabel.c:252 fdisk/fdisksgilabel.c:706
+#: fdisk/fdisksunlabel.c:494
+#, c-format
+msgid "First %s"
+msgstr ""
+
+#: fdisk/fdisk.c:1381 fdisk/fdisksunlabel.c:519
+#, c-format
+msgid "Sector %d is already allocated\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1407
+msgid "No free sectors available\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1417 fdisk/fdiskbsdlabel.c:256 fdisk/fdisksunlabel.c:529
+#, c-format
+msgid "Last %s or +size or +sizeM or +sizeK"
+msgstr ""
+
+#: fdisk/fdisk.c:1447
+#, c-format
+msgid "Warning: partition %d has an odd number of sectors.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1484 fdisk/fdiskbsdlabel.c:590
+msgid "The maximum number of partitions has been created\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1494
+msgid "You must delete some partition and add an extended partition first\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1498
+#, c-format
+msgid ""
+"Command action\n"
+"   %s\n"
+"   p   primary partition (1-4)\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1500
+msgid "l   logical (5 or over)"
+msgstr ""
+
+#: fdisk/fdisk.c:1500
+msgid "e   extended"
+msgstr "e   estendida"
+
+#: fdisk/fdisk.c:1517
+#, c-format
+msgid "Invalid partition number for type `%c'\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1549
+msgid ""
+"The partition table has been altered!\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1551
+msgid "Calling ioctl() to re-read partition table.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1568
+msgid "Syncing disks.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1573
+#, c-format
+msgid ""
+"Re-read table failed with error %d: %s.\n"
+"Reboot your system to ensure the partition table is updated.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1579
+msgid ""
+"\n"
+"WARNING: If you have created or modified any DOS 6.x\n"
+"partitions, please see the fdisk manual page for additional\n"
+"information.\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1610
+#, c-format
+msgid "Device: %s\n"
+msgstr "Dispositivo: %s\n"
+
+#: fdisk/fdisk.c:1625
+#, c-format
+msgid "Partition %d has no data area\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1631
+msgid "New beginning of data"
+msgstr ""
+
+#: fdisk/fdisk.c:1645
+msgid "Expert command (m for help): "
+msgstr ""
+
+#: fdisk/fdisk.c:1656
+msgid "Number of cylinders"
+msgstr "Número de cilindros"
+
+#: fdisk/fdisk.c:1677
+msgid "Number of heads"
+msgstr "Número de cabeças"
+
+#: fdisk/fdisk.c:1702
+msgid "Number of sectors"
+msgstr "Número de setores"
+
+#: fdisk/fdisk.c:1705
+msgid "Warning: setting sector offset for DOS compatiblity\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1767
+#, c-format
+msgid "Disk %s doesn't contain a valid partition table\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1781
+#, c-format
+msgid "Cannot open %s\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1836
+msgid "This kernel finds the sector size itself - -b option ignored\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1839
+msgid ""
+"Warning: the -b (set sector size) option should be used with one specified "
+"device\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1947
+#, c-format
+msgid "Using %s as default device!\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1953
+msgid "Command (m for help): "
+msgstr "Comando (tecle m para obter ajuda): "
+
+#: fdisk/fdisk.c:1967
+#, c-format
+msgid ""
+"\n"
+"The current boot file is: %s\n"
+msgstr ""
+
+#: fdisk/fdisk.c:1969
+msgid "Please enter the name of the new boot file: "
+msgstr ""
+
+#: fdisk/fdisk.c:1971
+msgid "Boot file unchanged\n"
+msgstr ""
+
+#: fdisk/fdisk.c:2031
+msgid ""
+"\n"
+"\tSorry, no experts menu for SGI partition tables available.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdiskaixlabel.c:29
+msgid ""
+"\n"
+"\tThere is a valid AIX label on this disk.\n"
+"\tUnfortunately Linux cannot handle these\n"
+"\tdisks at the moment.  Nevertheless some\n"
+"\tadvice:\n"
+"\t1. fdisk will destroy its contents on write.\n"
+"\t2. Be sure that this disk is NOT a still vital\n"
+"\t   part of a volume group. (Otherwise you may\n"
+"\t   erase the other disks as well, if unmirrored.)\n"
+"\t3. Before deleting this physical volume be sure\n"
+"\t   to remove the disk logically from your AIX\n"
+"\t   machine.  (Otherwise you become an AIXpert)."
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:97
+#, c-format
+msgid ""
+"\n"
+"BSD label for device: %s\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:106
+msgid "   d   delete a BSD partition"
+msgstr "   d   remova uma partição BSD"
+
+#: fdisk/fdiskbsdlabel.c:107
+msgid "   e   edit drive data"
+msgstr "   e   edita dados do disco"
+
+#: fdisk/fdiskbsdlabel.c:108
+msgid "   i   install bootstrap"
+msgstr "   i   instala código de inicialização (bootstrap)"
+
+#: fdisk/fdiskbsdlabel.c:109
+msgid "   l   list known filesystem types"
+msgstr "   l   lista os tipos de sistemas de arquivos conhecidos"
+
+#: fdisk/fdiskbsdlabel.c:111
+msgid "   n   add a new BSD partition"
+msgstr "   n   cria uma nova partição BSD"
+
+#: fdisk/fdiskbsdlabel.c:112
+msgid "   p   print BSD partition table"
+msgstr "   p   mostra a tabela de partições BSD"
+
+#: fdisk/fdiskbsdlabel.c:117
+msgid "   s   show complete disklabel"
+msgstr "   s   mostra rótulo (disklabel) completo do disco"
+
+#: fdisk/fdiskbsdlabel.c:118
+msgid "   t   change a partition's filesystem id"
+msgstr "   t   muda a identificação do sistema de arquivos"
+
+#: fdisk/fdiskbsdlabel.c:119
+msgid "   w   write disklabel to disk"
+msgstr "   w   grava o rótulo do disco para o disco"
+
+#: fdisk/fdiskbsdlabel.c:121
+msgid "   x   link BSD partition to non-BSD partition"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:146
+#, c-format
+msgid "Partition %s%d has invalid starting sector 0.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:150
+#, c-format
+msgid "Reading disklabel of %s%d at sector %d.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:159
+#, c-format
+msgid "There is no *BSD partition on %s.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:174
+msgid "BSD disklabel command (m for help): "
+msgstr "Comando para rótulo de disco BSD (tecle m para obter ajuda): "
+
+#: fdisk/fdiskbsdlabel.c:286
+#, c-format
+msgid "type: %s\n"
+msgstr "tipo: %s\n"
+
+#: fdisk/fdiskbsdlabel.c:288
+#, c-format
+msgid "type: %d\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:289
+#, c-format
+msgid "disk: %.*s\n"
+msgstr "disco: %.*s\n"
+
+#: fdisk/fdiskbsdlabel.c:290
+#, c-format
+msgid "label: %.*s\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:291
+msgid "flags:"
+msgstr "opções:"
+
+#: fdisk/fdiskbsdlabel.c:293
+msgid " removable"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:295
+msgid " ecc"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:297
+msgid " badsect"
+msgstr ""
+
+#. On various machines the fields of *lp are short/int/long
+#. In order to avoid problems, we cast them all to long.
+#: fdisk/fdiskbsdlabel.c:301
+#, c-format
+msgid "bytes/sector: %ld\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:302
+#, c-format
+msgid "sectors/track: %ld\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:303
+#, c-format
+msgid "tracks/cylinder: %ld\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:304
+#, c-format
+msgid "sectors/cylinder: %ld\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:305
+#, c-format
+msgid "cylinders: %ld\n"
+msgstr "cilindros: %ld\n"
+
+#: fdisk/fdiskbsdlabel.c:306
+#, c-format
+msgid "rpm: %d\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:307
+#, c-format
+msgid "interleave: %d\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:308
+#, c-format
+msgid "trackskew: %d\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:309
+#, c-format
+msgid "cylinderskew: %d\n"
+msgstr "cylinderskew: %d\n"
+
+#: fdisk/fdiskbsdlabel.c:310
+#, c-format
+msgid "headswitch: %ld\t\t# milliseconds\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:311
+#, c-format
+msgid "track-to-track seek: %ld\t# milliseconds\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:312
+msgid "drivedata: "
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:321
+#, c-format
+msgid ""
+"\n"
+"%d partitions:\n"
+msgstr ""
+"\n"
+"%d partições:\n"
+
+#: fdisk/fdiskbsdlabel.c:322
+msgid "#        size   offset    fstype   [fsize bsize   cpg]\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:378
+#, c-format
+msgid "Writing disklabel to %s%d.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:381
+#, c-format
+msgid "Writing disklabel to %s.\n"
+msgstr "Gravando rótulo de disco para %s.\n"
+
+#: fdisk/fdiskbsdlabel.c:392
+#, c-format
+msgid "%s%d contains no disklabel.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:395
+#, c-format
+msgid "%s contains no disklabel.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:399
+msgid "Do you want to create a disklabel? (y/n) "
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:438
+msgid "bytes/sector"
+msgstr "bytes/setor"
+
+#: fdisk/fdiskbsdlabel.c:439
+msgid "sectors/track"
+msgstr "setores/trilha"
+
+#: fdisk/fdiskbsdlabel.c:440
+msgid "tracks/cylinder"
+msgstr "trilhas/cilindro"
+
+#: fdisk/fdiskbsdlabel.c:448
+msgid "sectors/cylinder"
+msgstr "setores/cilindro"
+
+#: fdisk/fdiskbsdlabel.c:452
+msgid "Must be <= sectors/track * tracks/cylinder (default).\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:454
+msgid "rpm"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:455
+msgid "interleave"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:456
+msgid "trackskew"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:457
+msgid "cylinderskew"
+msgstr "cylinderskew"
+
+#: fdisk/fdiskbsdlabel.c:458
+msgid "headswitch"
+msgstr "headswitch"
+
+#: fdisk/fdiskbsdlabel.c:459
+msgid "track-to-track seek"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:500
+#, c-format
+msgid "Bootstrap: %sboot -> boot%s (%s): "
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:526
+msgid "Bootstrap overlaps with disk label!\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:547
+#, c-format
+msgid "Bootstrap installed on %s%d.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:549
+#, c-format
+msgid "Bootstrap installed on %s.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:570
+#, c-format
+msgid "Partition (a-%c): "
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:601
+msgid "This partition already exists.\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:723
+#, c-format
+msgid "Warning: too many partitions (%d, maximum is %d).\n"
+msgstr ""
+
+#: fdisk/fdiskbsdlabel.c:769
+msgid ""
+"\n"
+"Syncing disks.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:56
+msgid "SGI volhdr"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:57
+msgid "SGI trkrepl"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:58
+msgid "SGI secrepl"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:59
+msgid "SGI raw"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:60
+msgid "SGI bsd"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:61
+msgid "SGI sysv"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:62
+msgid "SGI volume"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:63
+msgid "SGI efs"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:64
+msgid "SGI lvol"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:65
+msgid "SGI rlvol"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:66
+msgid "SGI xfs"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:67
+msgid "SGI xlvol"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:68
+msgid "SGI rxlvol"
+msgstr ""
+
+#. Minix 1.4b and later
+#: fdisk/fdisksgilabel.c:69 fdisk/fdisksunlabel.c:52 fdisk/i386_sys_types.c:52
+msgid "Linux swap"
+msgstr "Linux swap"
+
+#: fdisk/fdisksgilabel.c:70 fdisk/fdisksunlabel.c:53
+msgid "Linux native"
+msgstr "Linux nativa"
+
+#: fdisk/fdisksgilabel.c:143
+msgid ""
+"According to MIPS Computer Systems, Inc the Label must not contain more than "
+"512 bytes\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:162
+msgid "Detected sgi disklabel with wrong checksum.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:186
+#, c-format
+msgid ""
+"\n"
+"Disk %s (SGI disk label): %d heads, %d sectors\n"
+"%d cylinders, %d physical cylinders\n"
+"%d extra sects/cyl, interleave %d:1\n"
+"%s\n"
+"Units = %ss of %d * 512 bytes\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:199
+#, c-format
+msgid ""
+"\n"
+"Disk %s (SGI disk label): %d heads, %d sectors, %d cylinders\n"
+"Units = %ss of %d * 512 bytes\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:205
+#, c-format
+msgid ""
+"----- partitions -----\n"
+"%*s  Info      Start       End   Sectors  Id  System\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:227
+#, c-format
+msgid ""
+"----- bootinfo -----\n"
+"Bootfile: %s\n"
+"----- directory entries -----\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:237
+#, c-format
+msgid "%2d: %-10s sector%5u size%8u\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:298
+msgid ""
+"\n"
+"Invalid Bootfile!\n"
+"\tThe bootfile must be an absolute non-zero pathname,\n"
+"\te.g. \"/unix\" or \"/unix.save\".\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:305
+msgid ""
+"\n"
+"\tName of Bootfile too long:  16 bytes maximum.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:310
+msgid ""
+"\n"
+"\tBootfile must have a fully qualified pathname.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:315
+msgid ""
+"\n"
+"\tBe aware, that the bootfile is not checked for existence.\n"
+"\tSGI's default is \"/unix\" and for backup \"/unix.save\".\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:343
+#, c-format
+msgid ""
+"\n"
+"\tBootfile is changed to \"%s\".\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:448
+msgid "More than one entire disk entry present.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:456 fdisk/fdisksunlabel.c:455
+msgid "No partitions defined\n"
+msgstr "Nenhuma partição definida\n"
+
+#: fdisk/fdisksgilabel.c:463
+msgid "IRIX likes when Partition 11 covers the entire disk.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:465
+#, c-format
+msgid ""
+"The entire disk partition should start at block 0,\n"
+"not at diskblock %d.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:469
+#, c-format
+msgid ""
+"The entire disk partition is only %d diskblock large,\n"
+"but the disk is %d diskblocks long.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:476
+msgid "One Partition (#11) should cover the entire disk.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:488
+#, c-format
+msgid "Partition %d does not start on cylinder boundary.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:495
+#, c-format
+msgid "Partition %d does not end on cylinder boundary.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:503
+#, c-format
+msgid "The Partition %d and %d overlap by %d sectors.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:512 fdisk/fdisksgilabel.c:532
+#, c-format
+msgid "Unused gap of %8d sectors - sectors %8d-%d\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:545
+msgid ""
+"\n"
+"The boot partition does not exist.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:549
+msgid ""
+"\n"
+"The swap partition does not exist.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:554
+msgid ""
+"\n"
+"The swap partition has no swap type.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:558
+msgid "\tYou have chosen an unusual boot file name.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:569
+msgid "Sorry You may change the Tag of non-empty partitions.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:576
+msgid ""
+"It is highly recommended that the partition at offset 0\n"
+"is of type \"SGI volhdr\", the IRIX system will rely on it to\n"
+"retrieve from its directory standalone tools like sash and fx.\n"
+"Only the \"SGI volume\" entire disk section may violate this.\n"
+"Type YES if you are sure about tagging this partition differently.\n"
+msgstr ""
+
+#. rebuild freelist
+#: fdisk/fdisksgilabel.c:621
+msgid "Do You know, You got a partition overlap on the disk?\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:691
+msgid "Attempting to generate entire disk entry automatically.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:698
+msgid "The entire disk is already covered with partitions.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:703
+msgid "You got a partition overlap on the disk. Fix it first!\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:712 fdisk/fdisksgilabel.c:741
+msgid ""
+"It is highly recommended that eleventh partition\n"
+"covers the entire disk and is of type `SGI volume'\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:728
+msgid "You will get a partition overlap on the disk. Fix it first!\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:733
+#, c-format
+msgid " Last %s"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:756
+msgid ""
+"Building a new SGI disklabel. Changes will remain in memory only,\n"
+"until you decide to write them. After that, of course, the previous\n"
+"content will be unrecoverable lost.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:784
+#, c-format
+msgid "Trying to keep parameters of partition %d.\n"
+msgstr ""
+
+#: fdisk/fdisksgilabel.c:786
+#, c-format
+msgid "ID=%02x\tSTART=%d\tLENGTH=%d\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:43 fdisk/i386_sys_types.c:6
+msgid "Empty"
+msgstr "Vazia"
+
+#: fdisk/fdisksunlabel.c:45
+msgid "SunOS root"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:46
+msgid "SunOS swap"
+msgstr "SunOS swap"
+
+#: fdisk/fdisksunlabel.c:47
+msgid "SunOS usr"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:48
+msgid "Whole disk"
+msgstr "Disco inteiro"
+
+#: fdisk/fdisksunlabel.c:49
+msgid "SunOS stand"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:50
+msgid "SunOS var"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:51
+msgid "SunOS home"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:122
+msgid ""
+"Detected sun disklabel with wrong checksum.\n"
+"Probably you'll have to set all the values,\n"
+"e.g. heads, sectors, cylinders and partitions\n"
+"or force a fresh label (s command in main menu)\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:215
+#, c-format
+msgid "Autoconfigure found a %s%s%s\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:242
+msgid ""
+"Building a new sun disklabel. Changes will remain in memory only,\n"
+"until you decide to write them. After that, of course, the previous\n"
+"content won't be recoverable.\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:253
+msgid ""
+"Drive type\n"
+"   ?   auto configure\n"
+"   0   custom (with hardware detected defaults)"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:263
+msgid "Select type (? for auto, 0 for custom): "
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:275
+msgid "Autoconfigure failed.\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:303
+msgid "Sectors/track"
+msgstr "Setores/trilha"
+
+#: fdisk/fdisksunlabel.c:310
+msgid "Alternate cylinders"
+msgstr "Cilindros Alternativos"
+
+#: fdisk/fdisksunlabel.c:313
+msgid "Physical cylinders"
+msgstr "Cilindros físicos"
+
+#: fdisk/fdisksunlabel.c:316 fdisk/fdisksunlabel.c:679
+msgid "Rotation speed (rpm)"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:318 fdisk/fdisksunlabel.c:672
+msgid "Interleave factor"
+msgstr "Fator de \"Interleave\""
+
+#: fdisk/fdisksunlabel.c:321 fdisk/fdisksunlabel.c:665
+msgid "Extra sectors per cylinder"
+msgstr "Setores extras por cilindro: "
+
+#: fdisk/fdisksunlabel.c:334
+msgid "You may change all the disk params from the x menu"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:337
+msgid "3,5\" floppy"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:337
+msgid "Linux custom"
+msgstr "Linux personalizado"
+
+#: fdisk/fdisksunlabel.c:418
+#, c-format
+msgid "Partition %d doesn't end on cylinder boundary\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:438
+#, c-format
+msgid "Partition %d overlaps with others in sectors %d-%d\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:460
+#, c-format
+msgid "Unused gap - sectors 0-%d\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:462 fdisk/fdisksunlabel.c:466
+#, c-format
+msgid "Unused gap - sectors %d-%d\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:489
+msgid ""
+"Other partitions already cover the whole disk.\n"
+"Delete some/shrink them before retry.\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:547
+#, c-format
+msgid ""
+"You haven't covered whole disk with 3rd partition, but your value\n"
+"%d %s covers some other partition. Your entry have been changed\n"
+"to %d %s\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:565
+#, c-format
+msgid ""
+"If you want to maintain SunOS/Solaris compatibility, consider leaving this\n"
+"partition as Whole disk (5), starting at 0, with %u sectors\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:578
+msgid ""
+"It is highly recommended that the partition at offset 0\n"
+"is UFS, EXT2FS filesystem or SunOS swap. Putting Linux swap\n"
+"there may destroy your partition table and bootblock.\n"
+"Type YES if you're very sure you would like that partition\n"
+"tagged with 82 (Linux swap): "
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:609
+#, c-format
+msgid ""
+"\n"
+"Disk %s (Sun disk label): %d heads, %d sectors, %d rpm\n"
+"%d cylinders, %d alternate cylinders, %d physical cylinders\n"
+"%d extra sects/cyl, interleave %d:1\n"
+"%s\n"
+"Units = %ss of %d * 512 bytes\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:623
+#, c-format
+msgid ""
+"\n"
+"Disk %s (Sun disk label): %d heads, %d sectors, %d cylinders\n"
+"Units = %ss of %d * 512 bytes\n"
+"\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:628
+#, c-format
+msgid "%*s Flag    Start       End    Blocks   Id  System\n"
+msgstr ""
+
+#: fdisk/fdisksunlabel.c:653
+msgid "Number of alternate cylinders"
+msgstr "Informe o número de cilindros alternativos: "
+
+#: fdisk/fdisksunlabel.c:686
+msgid "Number of physical cylinders"
+msgstr "Número de cilindros físicos"
+
+#: fdisk/i386_sys_types.c:7
+msgid "FAT12"
+msgstr "FAT12"
+
+#: fdisk/i386_sys_types.c:8
+msgid "XENIX root"
+msgstr "root XENIX"
+
+#: fdisk/i386_sys_types.c:9
+msgid "XENIX usr"
+msgstr "usr XENIX"
+
+#: fdisk/i386_sys_types.c:10
+msgid "FAT16 <32M"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:11
+msgid "Extended"
+msgstr "Estendida"
+
+#. DOS 3.3+ extended partition
+#: fdisk/i386_sys_types.c:12
+msgid "FAT16"
+msgstr "FAT16"
+
+#. DOS 16-bit >=32M
+#: fdisk/i386_sys_types.c:13
+msgid "HPFS/NTFS"
+msgstr "HPFS ou NTFS"
+
+#. OS/2 IFS, eg, HPFS or NTFS or QNX
+#: fdisk/i386_sys_types.c:14
+msgid "AIX"
+msgstr "AIX"
+
+#. AIX boot (AIX -- PS/2 port) or SplitDrive
+#: fdisk/i386_sys_types.c:15
+msgid "AIX bootable"
+msgstr "AIX Inicializável"
+
+#. AIX data or Coherent
+#: fdisk/i386_sys_types.c:16
+msgid "OS/2 Boot Manager"
+msgstr "Gerenc.Inicializ.OS/2"
+
+#. OS/2 Boot Manager
+#: fdisk/i386_sys_types.c:17
+msgid "Win95 FAT32"
+msgstr "FAT32 Win95"
+
+#: fdisk/i386_sys_types.c:18
+msgid "Win95 FAT32 (LBA)"
+msgstr "FAT32 Win95 (LBA)"
+
+#. LBA really is `Extended Int 13h'
+#: fdisk/i386_sys_types.c:19
+msgid "Win95 FAT16 (LBA)"
+msgstr "FAT16 Win95 (LBA)"
+
+#: fdisk/i386_sys_types.c:20
+msgid "Win95 Ext'd (LBA)"
+msgstr "Estendida Win95 (LBA)"
+
+#: fdisk/i386_sys_types.c:21
+msgid "OPUS"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:22
+msgid "Hidden FAT12"
+msgstr "FAT12 Escondida"
+
+#: fdisk/i386_sys_types.c:23
+msgid "Compaq diagnostics"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:24
+msgid "Hidden FAT16 <32M"
+msgstr "FAT16 Escondida <32M"
+
+#: fdisk/i386_sys_types.c:25
+msgid "Hidden FAT16"
+msgstr "FAT16 Escondida"
+
+#: fdisk/i386_sys_types.c:26
+msgid "Hidden HPFS/NTFS"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:27
+msgid "AST Windows swapfile"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:28
+msgid "NEC DOS"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:29
+msgid "PartitionMagic recovery"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:30
+msgid "Venix 80286"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:31
+msgid "PPC PReP Boot"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:32
+msgid "SFS"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:33
+msgid "QNX4.x"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:34
+msgid "QNX4.x 2nd part"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:35
+msgid "QNX4.x 3rd part"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:36
+msgid "OnTrack DM"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:37
+msgid "OnTrack DM6 Aux1"
+msgstr ""
+
+#. (or Novell)
+#: fdisk/i386_sys_types.c:38
+msgid "CP/M"
+msgstr ""
+
+#. CP/M or Microport SysV/AT
+#: fdisk/i386_sys_types.c:39
+msgid "OnTrack DM6 Aux3"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:40
+msgid "OnTrackDM6"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:41
+msgid "EZ-Drive"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:42
+msgid "Golden Bow"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:43
+msgid "Priam Edisk"
+msgstr ""
+
+#. DOS R/O or SpeedStor
+#: fdisk/i386_sys_types.c:44 fdisk/i386_sys_types.c:73
+#: fdisk/i386_sys_types.c:75 fdisk/i386_sys_types.c:76
+msgid "SpeedStor"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:45
+msgid "GNU HURD or SysV"
+msgstr ""
+
+#. GNU HURD or Mach or Sys V/386 (such as ISC UNIX)
+#: fdisk/i386_sys_types.c:46
+msgid "Novell Netware 286"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:47
+msgid "Novell Netware 386"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:48
+msgid "DiskSecure Multi-Boot"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:49
+msgid "PC/IX"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:50
+msgid "Old Minix"
+msgstr ""
+
+#. Minix 1.4a and earlier
+#: fdisk/i386_sys_types.c:51
+msgid "Minix / old Linux"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:54
+msgid "OS/2 hidden C: drive"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:55
+msgid "Linux extended"
+msgstr "Estendida Linux"
+
+#: fdisk/i386_sys_types.c:56 fdisk/i386_sys_types.c:57
+msgid "NTFS volume set"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:58
+msgid "Amoeba"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:59
+msgid "Amoeba BBT"
+msgstr ""
+
+#. (bad block table)
+#: fdisk/i386_sys_types.c:60
+msgid "IBM Thinkpad hibernation"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:61
+msgid "BSD/386"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:62
+msgid "OpenBSD"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:63
+msgid "NeXTSTEP"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:64
+msgid "BSDI fs"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:65
+msgid "BSDI swap"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:66
+msgid "DRDOS/sec (FAT-12)"
+msgstr "DRDOS/sec (FAT12)"
+
+#: fdisk/i386_sys_types.c:67
+msgid "DRDOS/sec (FAT-16 < 32M)"
+msgstr "DRDOS/sec (FAT16 < 32M)"
+
+#: fdisk/i386_sys_types.c:68
+msgid "DRDOS/sec (FAT-16)"
+msgstr "DRDOS/sec (FAT16)"
+
+#: fdisk/i386_sys_types.c:69
+msgid "Syrinx"
+msgstr ""
+
+#: fdisk/i386_sys_types.c:70
+msgid "CP/M / CTOS / ..."
+msgstr ""
+
+#. CP/M or Concurrent CP/M or Concurrent DOS or CTOS
+#: fdisk/i386_sys_types.c:71
+msgid "DOS access"
+msgstr ""
+
+#. DOS access or SpeedStor 12-bit FAT extended partition
+#: fdisk/i386_sys_types.c:72
+msgid "DOS R/O"
+msgstr ""
+
+#. SpeedStor 16-bit FAT extended partition < 1024 cyl.
+#: fdisk/i386_sys_types.c:74
+msgid "BeOS fs"
+msgstr ""
+
+#. SpeedStor large partition
+#: fdisk/i386_sys_types.c:77
+msgid "DOS secondary"
+msgstr ""
+
+#. DOS 3.3+ secondary
+#: fdisk/i386_sys_types.c:78
+msgid "LANstep"
+msgstr ""
+
+#. SpeedStor >1024 cyl. or LANstep
+#: fdisk/i386_sys_types.c:79
+msgid "BBT"
+msgstr ""
+
+#: fdisk/sfdisk.c:148
+#, c-format
+msgid "seek error on %s - cannot seek to %lu\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:153
+#, c-format
+msgid "seek error: wanted 0x%08x%08x, got 0x%08x%08x\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:199
+msgid "out of memory - giving up\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:203 fdisk/sfdisk.c:286
+#, c-format
+msgid "read error on %s - cannot read sector %lu\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:219
+#, c-format
+msgid "ERROR: sector %lu does not have an msdos signature\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:236
+#, c-format
+msgid "write error on %s - cannot write sector %lu\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:274
+#, c-format
+msgid "cannot open partition sector save file (%s)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:292
+#, c-format
+msgid "write error on %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:310
+#, c-format
+msgid "cannot stat partition restore file (%s)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:315
+msgid "partition restore file has wrong size - not restoring\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:319
+msgid "out of memory?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:325
+#, c-format
+msgid "cannot open partition restore file (%s)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:331
+#, c-format
+msgid "error reading %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:338
+#, c-format
+msgid "cannot open device %s for writing\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:350
+#, c-format
+msgid "error writing sector %lu on %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:407
+#, c-format
+msgid ""
+"Warning: start=%d - this looks like a partition rather than\n"
+"the entire disk. Using fdisk on it is probably meaningless.\n"
+"[Use the --force option if you really want this]\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:413
+#, c-format
+msgid "Warning: HDIO_GETGEO says that there are %d heads\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:416
+#, c-format
+msgid "Warning: HDIO_GETGEO says that there are %d sectors\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:419
+#, c-format
+msgid "Warning: HDIO_GETGEO says that there are %d cylinders\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:423
+#, c-format
+msgid "Disk %s: cannot get geometry\n"
+msgstr "Disco %s: não foi possível obter a geometria\n"
+
+#: fdisk/sfdisk.c:425
+#, c-format
+msgid ""
+"Warning: unlikely number of sectors (%d) - usually at most 63\n"
+"This will give problems with all software that uses C/H/S addressing.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:429
+#, c-format
+msgid ""
+"\n"
+"Disk %s: %lu heads, %lu sectors, %lu cylinders\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:509
+#, c-format
+msgid ""
+"%s of partition %s has impossible value for head: %d (should be in 0-%d)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:514
+#, c-format
+msgid ""
+"%s of partition %s has impossible value for sector: %d (should be in 1-%d)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:519
+#, c-format
+msgid ""
+"%s of partition %s has impossible value for cylinders: %d (should be in "
+"0-%d)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:558
+msgid ""
+"Id  Name\n"
+"\n"
+msgstr ""
+"Id  Nome\n"
+"\n"
+
+#: fdisk/sfdisk.c:703
+msgid "Re-reading the partition table ...\n"
+msgstr "Relendo tabela de partições...\n"
+
+#: fdisk/sfdisk.c:709
+msgid ""
+"The command to re-read the partition table failed\n"
+"Reboot your system now, before using mkfs\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:714
+#, c-format
+msgid "Error closing %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:752
+#, c-format
+msgid "%s: no such partition\n"
+msgstr "%s: partição não existente\n"
+
+#: fdisk/sfdisk.c:775
+msgid "unrecognized format - using sectors\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:813
+#, c-format
+msgid "# partition table of %s\n"
+msgstr "# tabela de partições de %s\n"
+
+#: fdisk/sfdisk.c:814
+msgid ""
+"unit: sectors\n"
+"\n"
+msgstr ""
+"unidade: setores\n"
+"\n"
+
+#: fdisk/sfdisk.c:824
+#, c-format
+msgid "unimplemented format - using %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:828
+#, c-format
+msgid ""
+"Units = cylinders of %lu bytes, blocks of 1024 bytes, counting from %d\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:831
+msgid "   Device Boot Start     End   #cyls   #blocks   Id  System\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:836
+#, c-format
+msgid ""
+"Units = sectors of 512 bytes, counting from %d\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:838
+msgid "   Device Boot    Start       End  #sectors  Id  System\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:841
+#, c-format
+msgid ""
+"Units = blocks of 1024 bytes, counting from %d\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:843
+msgid "   Device Boot   Start       End   #blocks   Id  System\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:846
+#, c-format
+msgid ""
+"Units = megabytes of 1048576 bytes, blocks of 1024 bytes, counting from %d\n"
+"\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:848
+msgid "   Device Boot Start   End     MB   #blocks   Id  System\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:903
+#, c-format
+msgid " start=%9lu"
+msgstr ""
+
+#: fdisk/sfdisk.c:904
+#, c-format
+msgid ", size=%8lu"
+msgstr ""
+
+#: fdisk/sfdisk.c:906
+#, c-format
+msgid ", Id=%2x"
+msgstr ""
+
+#: fdisk/sfdisk.c:908
+msgid ", bootable"
+msgstr ", inicializável"
+
+#: fdisk/sfdisk.c:969
+#, c-format
+msgid "\t\tstart: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:976
+#, c-format
+msgid "\t\tend: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:979
+#, c-format
+msgid "partition ends on cylinder %ld, beyond the end of the disk\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:989
+msgid "No partitions found\n"
+msgstr "Sem mais partições\n"
+
+#: fdisk/sfdisk.c:1034
+msgid "no partition table present.\n"
+msgstr "nenhuma tabela de partições presente.\n"
+
+#: fdisk/sfdisk.c:1036
+#, c-format
+msgid "strange, only %d partitions defined.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1045
+#, c-format
+msgid "Warning: partition %s has size 0 but is not marked Empty\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1048
+#, c-format
+msgid "Warning: partition %s has size 0 and is bootable\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1051
+#, c-format
+msgid "Warning: partition %s has size 0 and nonzero start\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1062
+#, c-format
+msgid "Warning: partition %s "
+msgstr "Atenção: partição %s "
+
+#: fdisk/sfdisk.c:1063
+#, c-format
+msgid "is not contained in partition %s\n"
+msgstr "não está contida na partição %s\n"
+
+#: fdisk/sfdisk.c:1074
+#, c-format
+msgid "Warning: partitions %s "
+msgstr ""
+
+#: fdisk/sfdisk.c:1075
+#, c-format
+msgid "and %s overlap\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1086
+#, c-format
+msgid "Warning: partition %s contains part of "
+msgstr "Atenção: a partição %s contém parte da "
+
+#: fdisk/sfdisk.c:1087
+#, c-format
+msgid "the partition table (sector %lu),\n"
+msgstr "tabela de partições (setor %lu),\n"
+
+#: fdisk/sfdisk.c:1088
+msgid "and will destroy it when filled\n"
+msgstr "e a destruirá quando preenchida\n"
+
+#: fdisk/sfdisk.c:1097
+#, c-format
+msgid "Warning: partition %s starts at sector 0\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1101
+#, c-format
+msgid "Warning: partition %s extends past end of disk\n"
+msgstr "Atenção: a partição %s se estende até depois do fim do disco\n"
+
+#: fdisk/sfdisk.c:1115
+msgid "Among the primary partitions, at most one can be extended\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1116
+msgid " (although this is not a problem under Linux)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1133
+#, c-format
+msgid "Warning: partition %s does not start at a cylinder boundary\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1139
+#, c-format
+msgid "Warning: partition %s does not end at a cylinder boundary\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1157
+msgid ""
+"Warning: more than one primary partition is marked bootable (active)\n"
+"This does not matter for LILO, but the DOS MBR will not boot this disk.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1164
+msgid ""
+"Warning: usually one can boot from primary partitions only\n"
+"LILO disregards the `bootable' flag.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1170
+msgid ""
+"Warning: no primary partition is marked bootable (active)\n"
+"This does not matter for LILO, but the DOS MBR will not boot this disk.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1187
+#, c-format
+msgid ""
+"partition %s: start: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1196
+#, c-format
+msgid "partition %s: end: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1199
+#, c-format
+msgid "partition %s ends on cylinder %ld, beyond the end of the disk\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1232 fdisk/sfdisk.c:1309
+#, c-format
+msgid "too many partitions - ignoring those past nr (%d)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1247
+msgid "tree of partitions?\n"
+msgstr "árvore de partições?\n"
+
+#: fdisk/sfdisk.c:1351
+msgid "detected Disk Manager - unable to handle that\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1358
+msgid "DM6 signature found - giving up\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1378
+msgid "strange..., an extended partition of size 0?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1385
+msgid "strange..., a BSD partition of size 0?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1417
+#, c-format
+msgid " %s: unrecognized partition\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1429
+msgid "-n flag was given: Nothing changed\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1442
+msgid "Failed saving the old sectors - aborting\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1447
+#, c-format
+msgid "Failed writing the partition on %s\n"
+msgstr "Falha na gravação da partição em %s\n"
+
+#: fdisk/sfdisk.c:1524
+msgid "long or incomplete input line - quitting\n"
+msgstr "linha de entrada longa ou incompleta - terminando\n"
+
+#: fdisk/sfdisk.c:1560
+#, c-format
+msgid "input error: `=' expected after %s field\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1567
+#, c-format
+msgid "input error: unexpected character %c after %s field\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1573
+#, c-format
+msgid "unrecognized input: %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1605
+msgid "number too big\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1609
+msgid "trailing junk after number\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1725
+msgid "no room for partition descriptor\n"
+msgstr "sem espaço para o descritor da partição\n"
+
+#: fdisk/sfdisk.c:1758
+msgid "cannot build surrounding extended partition\n"
+msgstr "não foi possível criar a partição estendida envoltória\n"
+
+#: fdisk/sfdisk.c:1809
+msgid "too many input fields\n"
+msgstr ""
+
+#. no free blocks left - don't read any further
+#: fdisk/sfdisk.c:1843
+msgid "No room for more\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1862
+msgid "Illegal type\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1894
+#, c-format
+msgid "Warning: exceeds max allowable size (%lu)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1899
+msgid "Warning: empty partition\n"
+msgstr "Atenção: partição vazia\n"
+
+#: fdisk/sfdisk.c:1913
+#, c-format
+msgid "Warning: bad partition start (earliest %lu)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1926
+msgid "unrecognized bootable flag - choose - or *\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1943 fdisk/sfdisk.c:1956
+msgid "partial c,h,s specification?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:1967
+msgid "Extended partition not where expected\n"
+msgstr "Partição estentida não está no lugar esperado\n"
+
+#: fdisk/sfdisk.c:1999
+msgid "bad input\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2021
+msgid "too many partitions\n"
+msgstr "Número excessivo de partições\n"
+
+#: fdisk/sfdisk.c:2054
+msgid ""
+"Input in the following format; absent fields get a default value.\n"
+"<start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s>\n"
+"Usually you only need to specify <start> and <size> (and perhaps <type>).\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2074
+msgid "version"
+msgstr "versão"
+
+#: fdisk/sfdisk.c:2080
+#, c-format
+msgid "Usage: %s [options] device ...\n"
+msgstr "Uso: %s [opções] dispositivo ...\n"
+
+#: fdisk/sfdisk.c:2081
+msgid "device: something like /dev/hda or /dev/sda"
+msgstr ""
+
+#: fdisk/sfdisk.c:2082
+msgid "useful options:"
+msgstr "opções úteis:"
+
+#: fdisk/sfdisk.c:2083
+msgid "    -s [or --show-size]: list size of a partition"
+msgstr "    -s [ou --show-size]: lista o tamanho de uma partição"
+
+#: fdisk/sfdisk.c:2084
+msgid "    -c [or --id]:        print or change partition Id"
+msgstr ""
+
+#: fdisk/sfdisk.c:2085
+msgid "    -l [or --list]:      list partitions of each device"
+msgstr ""
+
+#: fdisk/sfdisk.c:2086
+msgid "    -d [or --dump]:      idem, but in a format suitable for later input"
+msgstr ""
+
+#: fdisk/sfdisk.c:2087
+msgid "    -i [or --increment]: number cylinders etc. from 1 instead of from 0"
+msgstr ""
+
+#: fdisk/sfdisk.c:2088
+msgid ""
+"    -uS, -uB, -uC, -uM:  accept/report in units of "
+"sectors/blocks/cylinders/MB"
+msgstr ""
+
+#: fdisk/sfdisk.c:2089
+msgid "    -T [or --list-types]:list the known partition types"
+msgstr "    -T [ou --list-types]:lista os tipos de partição conhecidos"
+
+#: fdisk/sfdisk.c:2090
+msgid "    -D [or --DOS]:       for DOS-compatibility: waste a little space"
+msgstr ""
+
+#: fdisk/sfdisk.c:2091
+msgid "    -R [or --re-read]:   make kernel reread partition table"
+msgstr "    -R [ou --re-read]:   faz o kernel reler a tabela de partições"
+
+#: fdisk/sfdisk.c:2092
+msgid "    -N# :                change only the partition with number #"
+msgstr ""
+
+#: fdisk/sfdisk.c:2093
+msgid "    -n :                 do not actually write to disk"
+msgstr ""
+
+#: fdisk/sfdisk.c:2094
+msgid ""
+"    -O file :            save the sectors that will be overwritten to file"
+msgstr ""
+
+#: fdisk/sfdisk.c:2095
+msgid "    -I file :            restore these sectors again"
+msgstr ""
+
+#: fdisk/sfdisk.c:2096
+msgid "    -v [or --version]:   print version"
+msgstr ""
+
+#: fdisk/sfdisk.c:2097
+msgid "    -? [or --help]:      print this message"
+msgstr ""
+
+#: fdisk/sfdisk.c:2098
+msgid "dangerous options:"
+msgstr ""
+
+#: fdisk/sfdisk.c:2099
+msgid "    -g [or --show-geometry]: print the kernel's idea of the geometry"
+msgstr ""
+
+#: fdisk/sfdisk.c:2100
+msgid ""
+"    -x [or --show-extended]: also list extended partitions on output\n"
+"                             or expect descriptors for them on input"
+msgstr ""
+
+#: fdisk/sfdisk.c:2102
+msgid ""
+"    -L  [or --Linux]:      do not complain about things irrelevant for Linux"
+msgstr ""
+
+#: fdisk/sfdisk.c:2103
+msgid "    -q  [or --quiet]:      suppress warning messages"
+msgstr ""
+
+#: fdisk/sfdisk.c:2104
+msgid "    You can override the detected geometry using:"
+msgstr ""
+
+#: fdisk/sfdisk.c:2105
+msgid "    -C# [or --cylinders #]:set the number of cylinders to use"
+msgstr ""
+"    -C# [ou --cylinders #]:configura o número de cilindros a serem usados"
+
+#: fdisk/sfdisk.c:2106
+msgid "    -H# [or --heads #]:    set the number of heads to use"
+msgstr ""
+"    -H# [ou --heads #]:    configura o número de cabeças a serem usadas"
+
+#: fdisk/sfdisk.c:2107
+msgid "    -S# [or --sectors #]:  set the number of sectors to use"
+msgstr ""
+"    -S# [ou --sectors #]:  configura o número de setores a serem usados"
+
+#: fdisk/sfdisk.c:2108
+msgid "You can disable all consistency checking with:"
+msgstr ""
+
+#: fdisk/sfdisk.c:2109
+msgid "    -f  [or --force]:      do what I say, even if it is stupid"
+msgstr ""
+
+#: fdisk/sfdisk.c:2115
+msgid "Usage:"
+msgstr "Uso:"
+
+#: fdisk/sfdisk.c:2116
+#, c-format
+msgid "%s device\t\t list active partitions on device\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2117
+#, c-format
+msgid "%s device n1 n2 ... activate partitions n1 ..., inactivate the rest\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2118
+#, c-format
+msgid "%s -An device\t activate partition n, inactivate the other ones\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2237
+msgid "no command?\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2360
+#, c-format
+msgid "total: %d blocks\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2397
+msgid "usage: sfdisk --print-id device partition-number\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2399
+msgid "usage: sfdisk --change-id device partition-number Id\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2401
+msgid "usage: sfdisk --id device partition-number [Id]\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2408
+msgid "can specify only one device (except with -l or -s)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2433
+#, c-format
+msgid "cannot open %s %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2433
+msgid "read-write"
+msgstr ""
+
+#: fdisk/sfdisk.c:2433
+msgid "for reading"
+msgstr ""
+
+#: fdisk/sfdisk.c:2458
+#, c-format
+msgid "%s: OK\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2475
+#, c-format
+msgid "%s: %d cylinders, %d heads, %d sectors/track\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2478
+#, c-format
+msgid "%s: unknown geometry\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2493
+#, c-format
+msgid "BLKGETSIZE ioctl failed for %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2570
+#, c-format
+msgid "bad active byte: 0x%x instead of 0x80\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2587 fdisk/sfdisk.c:2640 fdisk/sfdisk.c:2670
+msgid ""
+"Done\n"
+"\n"
+msgstr ""
+"Feito\n"
+"\n"
+
+#: fdisk/sfdisk.c:2596
+#, c-format
+msgid ""
+"You have %d active primary partitions. This does not matter for LILO,\n"
+"but the DOS MBR will only boot a disk with 1 active partition.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2610
+#, c-format
+msgid "partition %s has id %x and is not hidden\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2666
+#, c-format
+msgid "Bad Id %x\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2681
+msgid "This disk is currently in use.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2698
+#, c-format
+msgid "Fatal error: cannot find %s\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2701
+#, c-format
+msgid "Warning: %s is not a block device\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2706
+msgid "Checking that no-one is using this disk right now ...\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2708
+msgid ""
+"\n"
+"This disk is currently in use - repartitioning is probably a bad idea.Umount "
+"all file systems, and swapoff all swap partitions on this disk.Use the "
+"--no-reread flag to suppress this check.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2712
+msgid "Use the --force flag to overrule all checks.\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2716
+msgid "OK"
+msgstr ""
+
+#: fdisk/sfdisk.c:2725
+msgid "Old situation:\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2729
+#, c-format
+msgid "Partition %d does not exist, cannot change it\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2737
+msgid "New situation:\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2742
+msgid ""
+"I don't like these partitions - nothing changed.\n"
+"(If you really want this, use the --force option.)\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2745
+msgid "I don't like this - probably you should answer No\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2750
+msgid "Are you satisfied with this? [ynq] "
+msgstr ""
+
+#: fdisk/sfdisk.c:2752
+msgid "Do you want to write this to disk? [ynq] "
+msgstr "Deseja gravar isto no disco? [ynq] "
+
+#: fdisk/sfdisk.c:2757
+msgid ""
+"\n"
+"sfdisk: premature end of input\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2759
+msgid "Quitting - nothing changed\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2765
+msgid "Please answer one of y,n,q\n"
+msgstr ""
+
+#: fdisk/sfdisk.c:2773
+msgid ""
+"Successfully wrote the new partition table\n"
+"\n"
+msgstr ""
+"Tabela de partições gravada com sucesso\n"
+"\n"
+
+#: fdisk/sfdisk.c:2779
+msgid ""
+"If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)\n"
+"to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1\n"
+"(See fdisk(8).)\n"
+msgstr ""
+
+#: games/banner.c:1051
+msgid "usage: banner [-w width]\n"
+msgstr ""
+
+#: games/banner.c:1071
+msgid "Message: "
+msgstr "Mensagem: "
+
+#: games/banner.c:1105
+#, c-format
+msgid "The character '%c' is not in my character set"
+msgstr ""
+
+#: games/banner.c:1113
+#, c-format
+msgid "Message '%s' is OK\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:229
+msgid "Try `getopt --help' for more information.\n"
+msgstr "Tente `getopt --help' para maiores informações.\n"
+
+#: getopt-1.0.3b/getopt.c:295
+msgid "empty long option after -l or --long argument"
+msgstr "opção longa vazia depois de argumento -l ou --long"
+
+#: getopt-1.0.3b/getopt.c:315
+msgid "unknown shell after -s or --shell argument"
+msgstr "interpretador de comandos desconhecido após argumento -s ou --shell"
+
+#: getopt-1.0.3b/getopt.c:320
+msgid "Usage: getopt optstring parameters\n"
+msgstr "Uso: getopt texto_opções parâmetros\n"
+
+#: getopt-1.0.3b/getopt.c:321
+msgid "       getopt [options] [--] optstring parameters\n"
+msgstr "       getopt [opções] [--] texto_opções parâmetros\n"
+
+#: getopt-1.0.3b/getopt.c:322
+msgid "       getopt [options] -o|--options optstring [options] [--]\n"
+msgstr "       getopt [opções] -o|--opções texto_opções [opções] [--]\n"
+
+#: getopt-1.0.3b/getopt.c:323
+msgid "              parameters\n"
+msgstr "              parâmetros\n"
+
+#: getopt-1.0.3b/getopt.c:324
+msgid ""
+"  -a, --alternative            Allow long options starting with single -\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:325
+msgid "  -h, --help                   This small usage guide\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:326
+msgid "  -l, --longoptions=longopts   Long options to be recognized\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:327
+msgid ""
+"  -n, --name=progname          The name under which errors are reported\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:328
+msgid "  -o, --options=optstring      Short options to be recognized\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:329
+msgid "  -q, --quiet                  Disable error reporting by getopt(3)\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:330
+msgid "  -Q, --quiet-output           No normal output\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:331
+msgid "  -s, --shell=shell            Set shell quoting conventions\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:332
+msgid "  -T, --test                   Test for getopt(1) version\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:333
+msgid "  -V, --version                Output version information\n"
+msgstr ""
+
+#: getopt-1.0.3b/getopt.c:387 getopt-1.0.3b/getopt.c:445
+msgid "missing optstring argument"
+msgstr "faltou o argumento texto_opções"
+
+#: getopt-1.0.3b/getopt.c:433
+msgid "getopt (enhanced) 1.0.3\n"
+msgstr "getopt (melhorado) 1.0.3)\n"
+
+#: getopt-1.0.3b/getopt.c:439
+msgid "internal error, contact the author."
+msgstr "erro interno, contacte o autor."
+
+#: login-utils/agetty.c:300
+msgid "calling open_tty\n"
+msgstr ""
+
+#. Initialize the termio settings (raw mode, eight-bit, blocking i/o).
+#: login-utils/agetty.c:313
+msgid "calling termio_init\n"
+msgstr ""
+
+#: login-utils/agetty.c:318
+msgid "writing init string\n"
+msgstr ""
+
+#. Optionally detect the baud rate from the modem status message.
+#: login-utils/agetty.c:328
+msgid "before autobaud\n"
+msgstr ""
+
+#: login-utils/agetty.c:340
+msgid "waiting for cr-lf\n"
+msgstr ""
+
+#: login-utils/agetty.c:344
+#, c-format
+msgid "read %c\n"
+msgstr ""
+
+#. Read the login name.
+#: login-utils/agetty.c:353
+msgid "reading login name\n"
+msgstr ""
+
+#: login-utils/agetty.c:374
+#, c-format
+msgid "%s: can't exec %s: %m"
+msgstr ""
+
+#: login-utils/agetty.c:394
+msgid "can't malloc initstring"
+msgstr ""
+
+#: login-utils/agetty.c:456
+#, c-format
+msgid "bad timeout value: %s"
+msgstr ""
+
+#: login-utils/agetty.c:465
+msgid "after getopt loop\n"
+msgstr ""
+
+#: login-utils/agetty.c:483
+msgid "exiting parseargs\n"
+msgstr ""
+
+#: login-utils/agetty.c:496
+msgid "entered parse_speeds\n"
+msgstr ""
+
+#: login-utils/agetty.c:499
+#, c-format
+msgid "bad speed: %s"
+msgstr ""
+
+#: login-utils/agetty.c:501
+msgid "too many alternate speeds"
+msgstr "Número excessivo de velocidades alternativas"
+
+#: login-utils/agetty.c:503
+msgid "exiting parsespeeds\n"
+msgstr ""
+
+#: login-utils/agetty.c:576
+#, c-format
+msgid "%s: open for update: %m"
+msgstr ""
+
+#: login-utils/agetty.c:592
+#, c-format
+msgid "%s: no utmp entry"
+msgstr ""
+
+#: login-utils/agetty.c:621
+#, c-format
+msgid "/dev: chdir() failed: %m"
+msgstr ""
+
+#: login-utils/agetty.c:625
+#, c-format
+msgid "/dev/%s: not a character device"
+msgstr ""
+
+#. ignore close(2) errors
+#: login-utils/agetty.c:632
+msgid "open(2)\n"
+msgstr ""
+
+#: login-utils/agetty.c:634
+#, c-format
+msgid "/dev/%s: cannot open as standard input: %m"
+msgstr ""
+
+#: login-utils/agetty.c:644
+#, c-format
+msgid "%s: not open for read/write"
+msgstr ""
+
+#. Set up standard output and standard error file descriptors.
+#: login-utils/agetty.c:648
+msgid "duping\n"
+msgstr ""
+
+#. set up stdout and stderr
+#: login-utils/agetty.c:650
+#, c-format
+msgid "%s: dup problem: %m"
+msgstr ""
+
+#: login-utils/agetty.c:712
+msgid "term_io 2\n"
+msgstr ""
+
+#: login-utils/agetty.c:894
+msgid "user"
+msgstr "usuário"
+
+#: login-utils/agetty.c:894
+msgid "users"
+msgstr "usuários"
+
+#: login-utils/agetty.c:982
+#, c-format
+msgid "%s: read: %m"
+msgstr ""
+
+#: login-utils/agetty.c:1028
+#, c-format
+msgid "%s: input overrun"
+msgstr ""
+
+#: login-utils/agetty.c:1152
+#, c-format
+msgid ""
+"Usage: %s [-hiLmw] [-l login_program] [-t timeout] [-I initstring] "
+"baud_rate,... line [termtype]\n"
+"or\t[-hiLmw] [-l login_program] [-t timeout] [-I initstring] line "
+"baud_rate,... [termtype]\n"
+msgstr ""
+
+#: login-utils/checktty.c:46
+#, c-format
+msgid "badlogin: %s\n"
+msgstr "login inválido: %s\n"
+
+#: login-utils/checktty.c:52
+#, c-format
+msgid "sleepexit %d\n"
+msgstr ""
+
+#: login-utils/checktty.c:108 login-utils/checktty.c:130
+msgid "login: memory low, login may fail\n"
+msgstr ""
+
+#: login-utils/checktty.c:109
+msgid "can't malloc for ttyclass"
+msgstr ""
+
+#: login-utils/checktty.c:131
+msgid "can't malloc for grplist"
+msgstr ""
+
+#. there was a default rule, but user didn't match, reject!
+#: login-utils/checktty.c:424
+#, c-format
+msgid "Login on %s from %s denied by default.\n"
+msgstr ""
+
+#. if we get here, /etc/usertty exists, there's a line
+#. matching our username, but it doesn't contain the
+#. name of the tty where the user is trying to log in.
+#. So deny access!
+#: login-utils/checktty.c:435
+#, c-format
+msgid "Login on %s from %s denied.\n"
+msgstr ""
+
+#: login-utils/chfn.c:139 login-utils/chsh.c:118
+#, c-format
+msgid "%s: you (user %d) don't exist.\n"
+msgstr ""
+
+#: login-utils/chfn.c:146 login-utils/chsh.c:125
+#, c-format
+msgid "%s: user \"%s\" does not exist.\n"
+msgstr ""
+
+#: login-utils/chfn.c:151 login-utils/chsh.c:130
+#, c-format
+msgid "%s: can only change local entries; use yp%s instead.\n"
+msgstr ""
+
+#: login-utils/chfn.c:163
+#, c-format
+msgid "Changing finger information for %s.\n"
+msgstr "Modificando informações finger para o usuário %s.\n"
+
+#: login-utils/chfn.c:169 login-utils/chfn.c:173 login-utils/chfn.c:180
+#: login-utils/chfn.c:184 login-utils/chsh.c:154 login-utils/chsh.c:158
+#: login-utils/chsh.c:165 login-utils/chsh.c:169
+msgid "Password error."
+msgstr "Erro na senha."
+
+#: login-utils/chfn.c:193 login-utils/chsh.c:178 login-utils/login.c:650
+#: login-utils/newgrp.c:47 login-utils/simpleinit.c:219 mount/lomount.c:196
+#: mount/lomount.c:202 mount/losetup.c:115 mount/losetup.c:121
+msgid "Password: "
+msgstr "Senha: "
+
+#: login-utils/chfn.c:196 login-utils/chsh.c:181
+msgid "Incorrect password."
+msgstr "Senha incorreta."
+
+#: login-utils/chfn.c:207
+msgid "Finger information not changed.\n"
+msgstr ""
+
+#: login-utils/chfn.c:310
+#, c-format
+msgid "Usage: %s [ -f full-name ] [ -o office ] "
+msgstr "Uso: %s [ -f nome-completo ] [ -o local_de_trabalho ] "
+
+#: login-utils/chfn.c:311
+msgid ""
+"[ -p office-phone ]\n"
+"\t[ -h home-phone ] "
+msgstr ""
+
+#: login-utils/chfn.c:312
+msgid "[ --help ] [ --version ]\n"
+msgstr ""
+
+#: login-utils/chfn.c:381 login-utils/chsh.c:294
+msgid ""
+"\n"
+"Aborted.\n"
+msgstr ""
+
+#: login-utils/chfn.c:414
+msgid "field is too long.\n"
+msgstr "Campo muito longo.\n"
+
+#: login-utils/chfn.c:422
+#, c-format
+msgid "'%c' is not allowed.\n"
+msgstr ""
+
+#: login-utils/chfn.c:427
+msgid "Control characters are not allowed.\n"
+msgstr ""
+
+#: login-utils/chfn.c:492
+msgid "Finger information *NOT* changed.  Try again later.\n"
+msgstr ""
+"As informações finger *NÃO* foram modificada. Tente novamente mais tarde.\n"
+
+#: login-utils/chfn.c:495
+msgid "Finger information changed.\n"
+msgstr ""
+
+#: login-utils/chfn.c:509 login-utils/chsh.c:412 sys-utils/cytune.c:315
+msgid "malloc failed"
+msgstr ""
+
+#: login-utils/chsh.c:141
+#, c-format
+msgid "%s: Your shell is not in /etc/shells, shell change denied\n"
+msgstr ""
+
+#: login-utils/chsh.c:148
+#, c-format
+msgid "Changing shell for %s.\n"
+msgstr "Modificando o interpretador de comandos para o usuário %s.\n"
+
+#: login-utils/chsh.c:189
+msgid "New shell"
+msgstr ""
+
+#: login-utils/chsh.c:196
+msgid "Shell not changed.\n"
+msgstr "O interpretador de comandos NÃO foi modificado.\n"
+
+#: login-utils/chsh.c:203
+msgid "Shell *NOT* changed.  Try again later.\n"
+msgstr ""
+"O interpretador de comandos *NÃO* foi modificado. Tente novamente mais "
+"tarde.\n"
+
+#: login-utils/chsh.c:206
+msgid "Shell changed.\n"
+msgstr "Interpretador de comandos modificado.\n"
+
+#: login-utils/chsh.c:274
+#, c-format
+msgid "Usage: %s [ -s shell ] "
+msgstr "Uso: %s [ -s interpretador_de_comandos ] "
+
+#: login-utils/chsh.c:275
+msgid "[ --list-shells ] [ --help ] [ --version ]\n"
+msgstr ""
+
+#: login-utils/chsh.c:276
+msgid "       [ username ]\n"
+msgstr ""
+
+#: login-utils/chsh.c:320
+#, c-format
+msgid "%s: shell must be a full path name.\n"
+msgstr ""
+
+#: login-utils/chsh.c:324
+#, c-format
+msgid "%s: \"%s\" does not exist.\n"
+msgstr ""
+
+#: login-utils/chsh.c:328
+#, c-format
+msgid "%s: \"%s\" is not executable.\n"
+msgstr ""
+
+#: login-utils/chsh.c:335
+#, c-format
+msgid "%s: '%c' is not allowed.\n"
+msgstr ""
+
+#: login-utils/chsh.c:339
+#, c-format
+msgid "%s: Control characters are not allowed.\n"
+msgstr ""
+
+#: login-utils/chsh.c:346
+#, c-format
+msgid "Warning: \"%s\" is not listed in /etc/shells\n"
+msgstr ""
+
+#: login-utils/chsh.c:348
+#, c-format
+msgid "%s: \"%s\" is not listed in /etc/shells.\n"
+msgstr ""
+
+#: login-utils/chsh.c:350
+#, c-format
+msgid "%s: use -l option to see list\n"
+msgstr ""
+
+#: login-utils/chsh.c:356
+#, c-format
+msgid "Warning: \"%s\" is not listed in /etc/shells.\n"
+msgstr ""
+
+#: login-utils/chsh.c:357
+#, c-format
+msgid "Use %s -l to see list.\n"
+msgstr ""
+
+#: login-utils/chsh.c:378
+msgid "No known shells.\n"
+msgstr ""
+
+#: login-utils/cryptocard.c:70
+msgid "couldn't open /dev/urandom"
+msgstr ""
+
+#: login-utils/cryptocard.c:75
+msgid "couldn't read random data from /dev/urandom"
+msgstr ""
+
+#: login-utils/cryptocard.c:98
+#, c-format
+msgid "can't open %s for reading"
+msgstr ""
+
+#: login-utils/cryptocard.c:102
+#, c-format
+msgid "can't stat(%s)"
+msgstr ""
+
+#: login-utils/cryptocard.c:108
+#, c-format
+msgid "%s doesn't have the correct filemodes"
+msgstr ""
+
+#: login-utils/cryptocard.c:113
+#, c-format
+msgid "can't read data from %s"
+msgstr ""
+
+#: login-utils/islocal.c:36
+#, c-format
+msgid "Can't read %s, exiting."
+msgstr ""
+
+#: login-utils/last.c:138
+msgid "usage: last [-#] [-f file] [-t tty] [-h hostname] [user ...]\n"
+msgstr ""
+
+#: login-utils/last.c:215
+#, c-format
+msgid "last: %s: "
+msgstr ""
+
+#: login-utils/last.c:270
+msgid "  still logged in"
+msgstr ""
+
+#: login-utils/last.c:291
+#, c-format
+msgid ""
+"\n"
+"wtmp begins %10.10s %5.5s \n"
+msgstr ""
+
+#: login-utils/last.c:352 login-utils/last.c:372 login-utils/last.c:427
+msgid "last: malloc failure.\n"
+msgstr ""
+
+#: login-utils/last.c:401
+msgid "last: gethostname"
+msgstr ""
+
+#: login-utils/last.c:454
+#, c-format
+msgid ""
+"\n"
+"interrupted %10.10s %5.5s \n"
+msgstr ""
+
+#: login-utils/login.c:349
+msgid "login: -h for super-user only.\n"
+msgstr "login: -h somente pode ser especificado pelo superusuário.\n"
+
+#: login-utils/login.c:374
+msgid "usage: login [-fp] [username]\n"
+msgstr ""
+
+#: login-utils/login.c:476
+#, c-format
+msgid "login: PAM Failure, aborting: %s\n"
+msgstr ""
+
+#: login-utils/login.c:478
+#, c-format
+msgid "Couldn't initialize PAM: %s"
+msgstr ""
+
+#: login-utils/login.c:518
+#, c-format
+msgid "FAILED LOGIN %d FROM %s FOR %s, %s"
+msgstr ""
+
+#: login-utils/login.c:520
+msgid ""
+"Login incorrect\n"
+"\n"
+msgstr ""
+"Login incorreto\n"
+"\n"
+
+#: login-utils/login.c:529
+#, c-format
+msgid "TOO MANY LOGIN TRIES (%d) FROM %s FOR %s, %s"
+msgstr ""
+
+#: login-utils/login.c:533
+#, c-format
+msgid "FAILED LOGIN SESSION FROM %s FOR %s, %s"
+msgstr ""
+
+#: login-utils/login.c:536
+msgid ""
+"\n"
+"Login incorrect\n"
+msgstr ""
+"\n"
+"Login incorreto\n"
+
+#: login-utils/login.c:585
+msgid "Illegal username"
+msgstr "Nome de usuário inválido"
+
+#: login-utils/login.c:628
+#, c-format
+msgid "%s login refused on this terminal.\n"
+msgstr ""
+
+#: login-utils/login.c:633
+#, c-format
+msgid "LOGIN %s REFUSED FROM %s ON TTY %s"
+msgstr ""
+
+#: login-utils/login.c:637
+#, c-format
+msgid "LOGIN %s REFUSED ON TTY %s"
+msgstr ""
+
+#: login-utils/login.c:689
+msgid "Login incorrect\n"
+msgstr "Login incorreto\n"
+
+#: login-utils/login.c:711
+msgid ""
+"Too many users logged on already.\n"
+"Try again later.\n"
+msgstr ""
+
+#: login-utils/login.c:715
+msgid "You have too many processes running.\n"
+msgstr ""
+
+#: login-utils/login.c:761
+msgid "Warning: no Kerberos tickets issued\n"
+msgstr ""
+
+#: login-utils/login.c:773
+msgid "Sorry -- your password has expired.\n"
+msgstr ""
+
+#: login-utils/login.c:779
+#, c-format
+msgid "Warning: your password expires on %s %d, %d\n"
+msgstr ""
+
+#: login-utils/login.c:787
+msgid "Sorry -- your account has expired.\n"
+msgstr ""
+
+#: login-utils/login.c:793
+#, c-format
+msgid "Warning: your account expires on %s %d, %d\n"
+msgstr ""
+
+#: login-utils/login.c:1012
+#, c-format
+msgid "DIALUP AT %s BY %s"
+msgstr ""
+
+#: login-utils/login.c:1019
+#, c-format
+msgid "ROOT LOGIN ON %s FROM %s"
+msgstr ""
+
+#: login-utils/login.c:1022
+#, c-format
+msgid "ROOT LOGIN ON %s"
+msgstr ""
+
+#: login-utils/login.c:1025
+#, c-format
+msgid "LOGIN ON %s BY %s FROM %s"
+msgstr ""
+
+#: login-utils/login.c:1028
+#, c-format
+msgid "LOGIN ON %s BY %s"
+msgstr ""
+
+#: login-utils/login.c:1039
+#, c-format
+msgid "You have %smail.\n"
+msgstr "Você tem mensagens %s na caixa de correio.\n"
+
+#: login-utils/login.c:1040
+msgid "new "
+msgstr ""
+
+#. error in fork()
+#: login-utils/login.c:1057
+#, c-format
+msgid "login: failure forking: %s"
+msgstr ""
+
+#: login-utils/login.c:1072
+msgid "setuid() failed"
+msgstr ""
+
+#: login-utils/login.c:1078
+#, c-format
+msgid "No directory %s!\n"
+msgstr ""
+
+#: login-utils/login.c:1082
+msgid "Logging in with home = \"/\".\n"
+msgstr ""
+
+#: login-utils/login.c:1090
+msgid "login: no memory for shell script.\n"
+msgstr ""
+
+#: login-utils/login.c:1116
+#, c-format
+msgid "login: couldn't exec shell script: %s.\n"
+msgstr ""
+
+#: login-utils/login.c:1119
+#, c-format
+msgid "login: no shell: %s.\n"
+msgstr ""
+
+#: login-utils/login.c:1135
+#, c-format
+msgid ""
+"\n"
+"%s login: "
+msgstr ""
+"\n"
+"%s usuário: "
+
+#: login-utils/login.c:1146
+msgid "login name much too long.\n"
+msgstr "nome de login muito longo.\n"
+
+#: login-utils/login.c:1147
+msgid "NAME too long"
+msgstr "NOME muito longo"
+
+#: login-utils/login.c:1154
+msgid "login names may not start with '-'.\n"
+msgstr ""
+
+#: login-utils/login.c:1164
+msgid "too many bare linefeeds.\n"
+msgstr "Número excessivo de saltos de linha.\n"
+
+#: login-utils/login.c:1165
+msgid "EXCESSIVE linefeeds"
+msgstr ""
+
+#: login-utils/login.c:1176
+#, c-format
+msgid "Login timed out after %d seconds\n"
+msgstr "Tempo de login esgotado após %d segundos\n"
+
+#: login-utils/login.c:1276
+#, c-format
+msgid "Last login: %.*s "
+msgstr "Último login: %.*s "
+
+#: login-utils/login.c:1280
+#, c-format
+msgid "from %.*s\n"
+msgstr "a partir de %.*s\n"
+
+#: login-utils/login.c:1283
+#, c-format
+msgid "on %.*s\n"
+msgstr "em: %.*s\n"
+
+#: login-utils/login.c:1306
+#, c-format
+msgid "LOGIN FAILURE FROM %s, %s"
+msgstr ""
+
+#: login-utils/login.c:1309
+#, c-format
+msgid "LOGIN FAILURE ON %s, %s"
+msgstr ""
+
+#: login-utils/login.c:1313
+#, c-format
+msgid "%d LOGIN FAILURES FROM %s, %s"
+msgstr ""
+
+#: login-utils/login.c:1316
+#, c-format
+msgid "%d LOGIN FAILURES ON %s, %s"
+msgstr ""
+
+#: login-utils/mesg.c:89
+msgid "is y\n"
+msgstr ""
+
+#: login-utils/mesg.c:92
+msgid "is n\n"
+msgstr ""
+
+#: login-utils/mesg.c:112
+msgid "usage: mesg [y | n]\n"
+msgstr "Uso: mesg [y | n]\n"
+
+#: login-utils/newgrp.c:67
+msgid "newgrp: Who are you?"
+msgstr ""
+
+#: login-utils/newgrp.c:75 login-utils/newgrp.c:85
+msgid "newgrp: setgid"
+msgstr ""
+
+#: login-utils/newgrp.c:80
+msgid "newgrp: No such group."
+msgstr ""
+
+#: login-utils/newgrp.c:89
+msgid "newgrp: Permission denied"
+msgstr ""
+
+#: login-utils/newgrp.c:96
+msgid "newgrp: setuid"
+msgstr ""
+
+#: login-utils/newgrp.c:102
+msgid "No shell"
+msgstr ""
+
+#: login-utils/passwd.c:165
+msgid "The password must have at least 6 characters, try again.\n"
+msgstr "A senha deve ter pelo menos 6 caracteres, tente novamente.\n"
+
+#: login-utils/passwd.c:178
+msgid "The password must contain characters out of two of the following\n"
+msgstr "A senha deve conter caracteres de uma das duas classes seguintes:\n"
+
+#: login-utils/passwd.c:179
+msgid "classes:  upper and lower case letters, digits and non alphanumeric\n"
+msgstr ""
+"letras maiúsculas e minúsculas, dígitos e caracteres não alfanuméricos.\n"
+
+#: login-utils/passwd.c:180
+msgid "characters. See passwd(1) for more information.\n"
+msgstr "Veja passwd(1) para maiores informações.\n"
+
+#: login-utils/passwd.c:185
+msgid "You cannot reuse the old password.\n"
+msgstr "Você não pode reutilizar a senha antiga.\n"
+
+#: login-utils/passwd.c:190
+msgid "Please don't use something like your username as password!\n"
+msgstr ""
+
+#: login-utils/passwd.c:201 login-utils/passwd.c:208
+msgid "Please don't use something like your realname as password!\n"
+msgstr ""
+
+#: login-utils/passwd.c:225
+msgid "Usage: passwd [username [password]]\n"
+msgstr ""
+
+#: login-utils/passwd.c:226
+msgid "Only root may use the one and two argument forms.\n"
+msgstr ""
+
+#: login-utils/passwd.c:282
+msgid "Usage: passwd [-foqsvV] [user [password]]\n"
+msgstr ""
+
+#: login-utils/passwd.c:302
+#, c-format
+msgid "Can't exec %s: %s\n"
+msgstr ""
+
+#: login-utils/passwd.c:313
+msgid "Cannot find login name"
+msgstr ""
+
+#: login-utils/passwd.c:320 login-utils/passwd.c:327
+msgid "Only root can change the password for others.\n"
+msgstr ""
+
+#: login-utils/passwd.c:335
+msgid "Too many arguments.\n"
+msgstr "Número excessivo de argumentos.\n"
+
+#: login-utils/passwd.c:340
+#, c-format
+msgid "Can't find username anywhere. Is `%s' really a user?"
+msgstr ""
+
+#: login-utils/passwd.c:344
+msgid "Sorry, I can only change local passwords. Use yppasswd instead."
+msgstr ""
+
+#: login-utils/passwd.c:350
+msgid "UID and username does not match, imposter!"
+msgstr ""
+
+#: login-utils/passwd.c:355
+#, c-format
+msgid "Changing password for %s\n"
+msgstr "Modificando a senha para o usuário %s\n"
+
+#: login-utils/passwd.c:359
+msgid "Enter old password: "
+msgstr "Informe a senha anterior: "
+
+#: login-utils/passwd.c:361
+msgid "Illegal password, imposter."
+msgstr "Senha incorreta, impostor."
+
+#: login-utils/passwd.c:373
+msgid "Enter new password: "
+msgstr "Informa a nova senha: "
+
+#: login-utils/passwd.c:375
+msgid "Password not changed."
+msgstr "A senha NÃO foi modificada."
+
+#: login-utils/passwd.c:385
+msgid "Re-type new password: "
+msgstr "Redigite a nova senha: "
+
+#: login-utils/passwd.c:388
+msgid "You misspelled it. Password not changed."
+msgstr "Você não a informou corretamente. A senha NÃO foi modificada."
+
+#: login-utils/passwd.c:403
+#, c-format
+msgid "password changed, user %s"
+msgstr "senha modificada, usuário %s"
+
+#: login-utils/passwd.c:406
+msgid "ROOT PASSWORD CHANGED"
+msgstr "A SENHA DO ROOT FOI MODIFICADA"
+
+#: login-utils/passwd.c:408
+#, c-format
+msgid "password changed by root, user %s"
+msgstr "senha modificada pelo root, usuário %s"
+
+#: login-utils/passwd.c:415
+msgid "calling setpwnam to set password.\n"
+msgstr ""
+
+#: login-utils/passwd.c:419
+msgid "Password *NOT* changed.  Try again later.\n"
+msgstr "A senha *NÃO* foi modificada. Tente novamente mais tarde.\n"
+
+#: login-utils/passwd.c:425
+msgid "Password changed.\n"
+msgstr "Senha modificada.\n"
+
+#: login-utils/shutdown.c:85
+msgid "Usage: shutdown [-h|-r] [-fqs] [now|hh:ss|+mins]\n"
+msgstr ""
+
+#: login-utils/shutdown.c:103
+msgid "Shutdown process aborted"
+msgstr ""
+
+#: login-utils/shutdown.c:125
+#, c-format
+msgid "%s: Only root can shut a system down.\n"
+msgstr ""
+
+#: login-utils/shutdown.c:219
+msgid "That must be tomorrow, "
+msgstr ""
+
+#: login-utils/shutdown.c:220
+msgid "can't you wait till then?\n"
+msgstr ""
+
+#: login-utils/shutdown.c:271
+msgid "for maintenance; bounce, bounce"
+msgstr ""
+
+#: login-utils/shutdown.c:275
+#, c-format
+msgid "timeout = %d, quiet = %d, reboot = %d\n"
+msgstr ""
+
+#: login-utils/shutdown.c:300
+msgid "The system is being shut down within 5 minutes"
+msgstr ""
+
+#: login-utils/shutdown.c:304
+msgid "Login is therefore prohibited."
+msgstr ""
+
+#: login-utils/shutdown.c:325
+#, c-format
+msgid "%s by %s: %s"
+msgstr ""
+
+#: login-utils/shutdown.c:326
+msgid "rebooted"
+msgstr ""
+
+#: login-utils/shutdown.c:326
+msgid "halted"
+msgstr ""
+
+#. RB_AUTOBOOT
+#: login-utils/shutdown.c:369
+msgid ""
+"\n"
+"Why am I still alive after reboot?"
+msgstr ""
+
+#: login-utils/shutdown.c:371
+msgid ""
+"\n"
+"Now you can turn off the power..."
+msgstr ""
+
+#: login-utils/shutdown.c:386
+msgid "Calling kernel power-off facility...\n"
+msgstr ""
+
+#: login-utils/shutdown.c:389
+#, c-format
+msgid "Error powering off\t%s\n"
+msgstr ""
+
+#: login-utils/shutdown.c:397
+#, c-format
+msgid "Executing the program \"%s\" ...\n"
+msgstr ""
+
+#: login-utils/shutdown.c:400
+#, c-format
+msgid "Error executing\t%s\n"
+msgstr ""
+
+#: login-utils/shutdown.c:423
+#, c-format
+msgid "\aURGENT: broadcast message from %s:"
+msgstr ""
+
+#: login-utils/shutdown.c:429
+msgid "System going down IMMEDIATELY!\n"
+msgstr ""
+
+#: login-utils/shutdown.c:432
+#, c-format
+msgid "System going down in %d hour%s %d minutes"
+msgstr ""
+
+#: login-utils/shutdown.c:435
+#, c-format
+msgid "System going down in %d minute%s\n"
+msgstr ""
+
+#: login-utils/shutdown.c:441
+#, c-format
+msgid "\t... %s ...\n"
+msgstr ""
+
+#: login-utils/shutdown.c:498
+msgid "Cannot fork for swapoff. Shrug!"
+msgstr ""
+
+#: login-utils/shutdown.c:506
+msgid "Cannot exec swapoff, "
+msgstr ""
+
+#: login-utils/shutdown.c:507
+msgid "hoping umount will do the trick."
+msgstr ""
+
+#: login-utils/shutdown.c:525
+msgid "Cannot fork for umount, trying manually."
+msgstr ""
+
+#: login-utils/shutdown.c:531
+msgid "Cannot exec "
+msgstr ""
+
+#: login-utils/shutdown.c:531
+msgid ", trying umount."
+msgstr ""
+
+#: login-utils/shutdown.c:533
+msgid "Cannot exec umount, giving up on umount."
+msgstr ""
+
+#: login-utils/shutdown.c:538
+msgid "Unmounting any remaining filesystems..."
+msgstr ""
+
+#: login-utils/shutdown.c:574
+#, c-format
+msgid "shutdown: Couldn't umount %s\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:79
+msgid "Booting to single user mode.\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:83
+msgid "exec of single user shell failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:87
+msgid "fork of single user shell failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:226
+msgid ""
+"\n"
+"Wrong password.\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:252
+msgid "exec rc failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:255
+msgid "open of rc file failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:261
+msgid "fork of rc shell failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:273
+msgid "fork failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:302 text-utils/more.c:1469
+msgid "exec failed\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:324
+msgid "cannot open inittab\n"
+msgstr ""
+
+#: login-utils/simpleinit.c:362
+msgid "no TERM or cannot stat tty\n"
+msgstr ""
+
+#: login-utils/ttymsg.c:79
+msgid "too many iov's (change code in wall/ttymsg.c)"
+msgstr ""
+
+#. A slash is an attempt to break security...
+#: login-utils/ttymsg.c:83
+#, c-format
+msgid "'/' in \"%s\""
+msgstr ""
+
+#: login-utils/ttymsg.c:88
+msgid "excessively long line arg"
+msgstr ""
+
+#: login-utils/ttymsg.c:142
+msgid "cannot fork"
+msgstr ""
+
+#: login-utils/ttymsg.c:145
+#, c-format
+msgid "fork: %s"
+msgstr ""
+
+#: login-utils/ttymsg.c:172
+#, c-format
+msgid "%s: BAD ERROR"
+msgstr ""
+
+#: login-utils/vipw.c:147
+#, c-format
+msgid "%s: the %s file is busy.\n"
+msgstr ""
+
+#: login-utils/vipw.c:163
+#, c-format
+msgid "%s: the %s file is busy (%s present)\n"
+msgstr ""
+
+#: login-utils/vipw.c:168
+#, c-format
+msgid "%s: can't link %s: %s\n"
+msgstr ""
+
+#: login-utils/vipw.c:188
+#, c-format
+msgid "%s: can't unlock %s: %s (your changes are still in %s)\n"
+msgstr ""
+
+#: login-utils/vipw.c:212
+#, c-format
+msgid "%s: Cannot fork\n"
+msgstr ""
+
+#: login-utils/vipw.c:252
+#, c-format
+msgid "%s: %s unchanged\n"
+msgstr "%s: %s não foi modificada\n"
+
+#: login-utils/vipw.c:295
+#, c-format
+msgid "%s: no changes made\n"
+msgstr ""
+
+#: login-utils/wall.c:104
+msgid "usage: wall [file]\n"
+msgstr ""
+
+#: login-utils/wall.c:115
+#, c-format
+msgid "wall: cannot read %s.\n"
+msgstr ""
+
+#: login-utils/wall.c:132
+#, c-format
+msgid "wall: %s\n"
+msgstr ""
+
+#: login-utils/wall.c:154
+msgid "wall: can't open temporary file.\n"
+msgstr ""
+
+#: login-utils/wall.c:181
+#, c-format
+msgid "Broadcast Message from %s@%s"
+msgstr ""
+
+#: login-utils/wall.c:191
+#, c-format
+msgid "wall: can't read %s.\n"
+msgstr ""
+
+#: login-utils/wall.c:216
+msgid "wall: can't stat temporary file.\n"
+msgstr ""
+
+#: login-utils/wall.c:225
+msgid "wall: can't read temporary file.\n"
+msgstr ""
+
+#: misc-utils/cal.c:198
+msgid "illegal month value: use 1-12"
+msgstr ""
+
+#: misc-utils/cal.c:202
+msgid "illegal year value: use 1-9999"
+msgstr ""
+
+#: misc-utils/cal.c:498
+msgid "usage: cal [-mjy] [[month] year]\n"
+msgstr ""
+
+#: misc-utils/ddate.c:184
+#, c-format
+msgid "usage: %s [+format] [day month year]\n"
+msgstr ""
+
+#. handle St. Tib's Day
+#: misc-utils/ddate.c:230
+msgid "St. Tib's Day"
+msgstr ""
+
+#: misc-utils/kill.c:199
+#, c-format
+msgid "%s: unknown signal %s\n"
+msgstr ""
+
+#: misc-utils/kill.c:261
+#, c-format
+msgid "%s: can't find process \"%s\"\n"
+msgstr ""
+
+#: misc-utils/kill.c:303
+#, c-format
+msgid "%s: unknown signal %s; valid signals:\n"
+msgstr ""
+
+#: misc-utils/kill.c:343
+#, c-format
+msgid "usage: %s [ -s signal | -p ] [ -a ] pid ...\n"
+msgstr ""
+
+#: misc-utils/kill.c:344
+#, c-format
+msgid "       %s -l [ signal ]\n"
+msgstr ""
+
+#: misc-utils/logger.c:135
+#, c-format
+msgid "logger: %s: %s.\n"
+msgstr ""
+
+#: misc-utils/logger.c:232
+#, c-format
+msgid "logger: unknown facility name: %s.\n"
+msgstr ""
+
+#: misc-utils/logger.c:244
+#, c-format
+msgid "logger: unknown priority name: %s.\n"
+msgstr ""
+
+#: misc-utils/logger.c:271
+msgid "logger: [-is] [-f file] [-p pri] [-t tag] [-u socket] [ message ... ]\n"
+msgstr ""
+
+#: misc-utils/look.c:170 misc-utils/setterm.c:1153 text-utils/more.c:1782
+#: text-utils/more.c:1793
+msgid "Out of memory"
+msgstr "faltou memória"
+
+#: misc-utils/look.c:340
+msgid "usage: look [-dfa] [-t char] string [file]\n"
+msgstr ""
+
+#: misc-utils/look.c:365
+msgid "look: "
+msgstr ""
+
+#: misc-utils/mcookie.c:95 misc-utils/mcookie.c:120
+#, c-format
+msgid "Could not open %s\n"
+msgstr ""
+
+#: misc-utils/mcookie.c:103 misc-utils/mcookie.c:117
+#, c-format
+msgid "Got %d bytes from %s\n"
+msgstr ""
+
+#: misc-utils/namei.c:107
+#, c-format
+msgid "namei: unable to get current directory - %s\n"
+msgstr ""
+
+#: misc-utils/namei.c:118
+#, c-format
+msgid "namei: unable to chdir to %s - %s (%d)\n"
+msgstr ""
+
+#: misc-utils/namei.c:128
+msgid "usage: namei [-mx] pathname [pathname ...]\n"
+msgstr ""
+
+#: misc-utils/namei.c:157
+msgid "namei: could not chdir to root!\n"
+msgstr ""
+
+#: misc-utils/namei.c:164
+msgid "namei: could not stat root!\n"
+msgstr ""
+
+#: misc-utils/namei.c:219
+#, c-format
+msgid " ? could not chdir into %s - %s (%d)\n"
+msgstr ""
+
+#: misc-utils/namei.c:248
+#, c-format
+msgid " ? problems reading symlink %s - %s (%d)\n"
+msgstr ""
+
+#: misc-utils/namei.c:258
+msgid "  *** EXCEEDED UNIX LIMIT OF SYMLINKS ***"
+msgstr ""
+
+#: misc-utils/namei.c:294
+#, c-format
+msgid "namei: unknown file type 0%06o on file %s\n"
+msgstr ""
+
+#: misc-utils/script.c:108
+msgid "usage: script [-a] [file]\n"
+msgstr "Uso: script [-a] [arquivo]\n"
+
+#: misc-utils/script.c:128
+#, c-format
+msgid "Script started, file is %s\n"
+msgstr ""
+
+#: misc-utils/script.c:197
+#, c-format
+msgid "Script started on %s"
+msgstr ""
+
+#: misc-utils/script.c:263
+#, c-format
+msgid ""
+"\n"
+"Script done on %s"
+msgstr ""
+
+#: misc-utils/script.c:268
+#, c-format
+msgid "Script done, file is %s\n"
+msgstr ""
+
+#: misc-utils/script.c:280
+msgid "openpty failed\n"
+msgstr ""
+
+#: misc-utils/script.c:314
+msgid "Out of pty's\n"
+msgstr ""
+
+#. Print error message about arguments, and the command's syntax.
+#: misc-utils/setterm.c:745
+#, c-format
+msgid "%s: Argument error, usage\n"
+msgstr ""
+
+#: misc-utils/setterm.c:747
+#, c-format
+msgid "%s\n"
+msgstr ""
+
+#: misc-utils/setterm.c:748
+msgid "  [ -term terminal_name ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:749
+msgid "  [ -reset ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:750
+msgid "  [ -initialize ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:751
+msgid "  [ -cursor [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:753
+msgid "  [ -snow [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:754
+msgid "  [ -softscroll [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:755
+msgid "  [ -keyboard pc|olivetti|dutch|extended ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:757
+msgid "  [ -repeat [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:758
+msgid "  [ -appcursorkeys [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:759
+msgid "  [ -linewrap [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:760
+msgid "  [ -default ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:761
+msgid "  [ -foreground black|blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:762 misc-utils/setterm.c:764
+msgid "|red|magenta|yellow|white|default ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:763
+msgid "  [ -background black|blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:765
+msgid "  [ -ulcolor black|grey|blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:766 misc-utils/setterm.c:768 misc-utils/setterm.c:770
+#: misc-utils/setterm.c:772
+msgid "|red|magenta|yellow|white ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:767
+msgid "  [ -ulcolor bright blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:769
+msgid "  [ -hbcolor black|grey|blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:771
+msgid "  [ -hbcolor bright blue|green|cyan"
+msgstr ""
+
+#: misc-utils/setterm.c:774
+msgid "  [ -standout [ attr ] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:776
+msgid "  [ -inversescreen [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:777
+msgid "  [ -bold [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:778
+msgid "  [ -half-bright [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:779
+msgid "  [ -blink [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:780
+msgid "  [ -reverse [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:781
+msgid "  [ -underline [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:782
+msgid "  [ -store ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:783
+msgid "  [ -clear [all|rest] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:784
+msgid "  [ -tabs [ tab1 tab2 tab3 ... ] ]      (tabn = 1-160)\n"
+msgstr ""
+
+#: misc-utils/setterm.c:785
+msgid "  [ -clrtabs [ tab1 tab2 tab3 ... ] ]   (tabn = 1-160)\n"
+msgstr ""
+
+#: misc-utils/setterm.c:786
+msgid "  [ -regtabs [1-160] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:787
+msgid "  [ -blank [0-60] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:788
+msgid "  [ -dump   [1-NR_CONSOLES] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:789
+msgid "  [ -append [1-NR_CONSOLES] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:790
+msgid "  [ -file dumpfilename ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:791
+msgid "  [ -msg [on|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:792
+msgid "  [ -msglevel [0-8] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:793
+msgid "  [ -powersave [on|vsync|hsync|powerdown|off] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:794
+msgid "  [ -powerdown [0-60] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:795
+msgid "  [ -blength [0-2000] ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:796
+msgid "  [ -bfreq freqnumber ]\n"
+msgstr ""
+
+#: misc-utils/setterm.c:841
+msgid "keyboard.pc"
+msgstr ""
+
+#: misc-utils/setterm.c:844
+msgid "keyboard.olivetti"
+msgstr ""
+
+#: misc-utils/setterm.c:847
+msgid "keyboard.dutch"
+msgstr ""
+
+#: misc-utils/setterm.c:850
+msgid "keyboard.extended"
+msgstr ""
+
+#: misc-utils/setterm.c:884
+msgid "snow.on"
+msgstr ""
+
+#: misc-utils/setterm.c:886
+msgid "snow.off"
+msgstr ""
+
+#: misc-utils/setterm.c:892
+msgid "softscroll.on"
+msgstr ""
+
+#: misc-utils/setterm.c:894
+msgid "softscroll.off"
+msgstr ""
+
+#: misc-utils/setterm.c:1069
+msgid "cannot (un)set powersave mode\n"
+msgstr ""
+
+#: misc-utils/setterm.c:1108 misc-utils/setterm.c:1116
+#, c-format
+msgid "klogctl error: %s\n"
+msgstr ""
+
+#: misc-utils/setterm.c:1157
+#, c-format
+msgid "Error reading %s\n"
+msgstr ""
+
+#: misc-utils/setterm.c:1172
+msgid "Error writing screendump\n"
+msgstr ""
+
+#: misc-utils/setterm.c:1186
+#, c-format
+msgid "couldn't read %s, and cannot ioctl dump\n"
+msgstr ""
+
+#: misc-utils/setterm.c:1251
+#, c-format
+msgid "%s: $TERM is not defined.\n"
+msgstr ""
+
+#: misc-utils/tsort.c:119
+msgid "usage: tsort [ inputfile ]\n"
+msgstr ""
+
+#: misc-utils/tsort.c:156
+msgid "tsort: odd data count.\n"
+msgstr ""
+
+#: misc-utils/tsort.c:321
+msgid "tsort: cycle in data.\n"
+msgstr ""
+
+#: misc-utils/tsort.c:334
+msgid "tsort: internal error -- could not find cycle.\n"
+msgstr ""
+
+#: misc-utils/whereis.c:158
+msgid "whereis [ -sbmu ] [ -SBM dir ... -f ] name...\n"
+msgstr ""
+
+#: misc-utils/write.c:101
+msgid "write: can't find your tty's name\n"
+msgstr ""
+
+#: misc-utils/write.c:112
+msgid "write: you have write permission turned off.\n"
+msgstr ""
+
+#: misc-utils/write.c:133
+#, c-format
+msgid "write: %s is not logged in on %s.\n"
+msgstr ""
+
+#: misc-utils/write.c:141
+#, c-format
+msgid "write: %s has messages disabled on %s\n"
+msgstr ""
+
+#: misc-utils/write.c:148
+msgid "usage: write user [tty]\n"
+msgstr ""
+
+#: misc-utils/write.c:247
+#, c-format
+msgid "write: %s is not logged in\n"
+msgstr ""
+
+#: misc-utils/write.c:256
+#, c-format
+msgid "write: %s has messages disabled\n"
+msgstr ""
+
+#: misc-utils/write.c:260
+#, c-format
+msgid "write: %s is logged in more than once; writing to %s\n"
+msgstr ""
+
+#: misc-utils/write.c:327
+#, c-format
+msgid "Message from %s@%s on %s at %s ..."
+msgstr ""
+
+#: mount/fstab.c:113
+#, c-format
+msgid "warning: error reading %s: %s"
+msgstr ""
+
+#: mount/fstab.c:140 mount/fstab.c:162
+#, c-format
+msgid "warning: can't open %s: %s"
+msgstr "Atenção: não foi possível abrir %s: %s"
+
+#: mount/fstab.c:144
+#, c-format
+msgid "mount: could not open %s - using %s instead\n"
+msgstr ""
+
+#. MOUNTLOCK_LINKTARGET does not exist (as a file)
+#. and we cannot create it. Read-only filesystem?
+#. Too many files open in the system? Filesystem full?
+#: mount/fstab.c:346
+#, c-format
+msgid "can't create lock file %s: %s (use -n flag to override)"
+msgstr ""
+
+#: mount/fstab.c:358
+#, c-format
+msgid "can't link lock file %s: %s (use -n flag to override)"
+msgstr ""
+
+#: mount/fstab.c:369
+#, c-format
+msgid "can't open lock file %s: %s (use -n flag to override)"
+msgstr ""
+
+#: mount/fstab.c:383
+#, c-format
+msgid "Can't lock lock file %s: %s\n"
+msgstr ""
+
+#: mount/fstab.c:392
+#, c-format
+msgid "can't lock lock file %s: %s"
+msgstr ""
+
+#: mount/fstab.c:394
+msgid "timed out"
+msgstr ""
+
+#: mount/fstab.c:438
+#, c-format
+msgid "cannot open %s (%s) - mtab not updated"
+msgstr ""
+
+#: mount/fstab.c:445
+#, c-format
+msgid "can't open %s (%s) - mtab not updated"
+msgstr ""
+
+#: mount/fstab.c:470
+msgid "mount: warning: cannot change mounted device with a remount\n"
+msgstr ""
+
+#: mount/fstab.c:475
+msgid "mount: warning: cannot change filesystem type with a remount\n"
+msgstr ""
+
+#: mount/fstab.c:482 mount/fstab.c:486
+#, c-format
+msgid "error writing %s: %s"
+msgstr ""
+
+#: mount/fstab.c:491
+#, c-format
+msgid "error changing mode of %s: %s\n"
+msgstr ""
+
+#: mount/fstab.c:496
+#, c-format
+msgid "can't rename %s to %s: %s\n"
+msgstr ""
+
+#: mount/lomount.c:75
+#, c-format
+msgid "loop: can't open device %s: %s\n"
+msgstr ""
+
+#: mount/lomount.c:80
+#, c-format
+msgid "loop: can't get info on device %s: %s\n"
+msgstr ""
+
+#: mount/lomount.c:85 mount/losetup.c:74
+#, c-format
+msgid "%s: [%04x]:%ld (%s) offset %d, %s encryption\n"
+msgstr ""
+
+#: mount/lomount.c:139
+msgid "mount: could not find any device /dev/loop#"
+msgstr ""
+
+#: mount/lomount.c:143
+msgid ""
+"mount: Could not find any loop device.\n"
+"       Maybe /dev/loop# has a wrong major number?"
+msgstr ""
+
+#: mount/lomount.c:147
+#, c-format
+msgid ""
+"mount: Could not find any loop device, and, according to %s,\n"
+"       this kernel does not know about the loop device.\n"
+"       (If so, then recompile or `insmod loop.o'.)"
+msgstr ""
+
+#: mount/lomount.c:152
+msgid ""
+"mount: Could not find any loop device. Maybe this kernel does not know\n"
+"       about the loop device (then recompile or `insmod loop.o'), or\n"
+"       maybe /dev/loop# has the wrong major number?"
+msgstr ""
+
+#: mount/lomount.c:156
+msgid "mount: could not find any free loop device"
+msgstr ""
+
+#: mount/lomount.c:187 mount/losetup.c:106
+#, c-format
+msgid "Unsupported encryption type %s\n"
+msgstr ""
+
+#: mount/lomount.c:206 mount/losetup.c:125
+msgid "Init (up to 16 hex digits): "
+msgstr ""
+
+#: mount/lomount.c:213 mount/losetup.c:132
+#, c-format
+msgid "Non-hex digit '%c'.\n"
+msgstr ""
+
+#: mount/lomount.c:219 mount/losetup.c:138
+#, c-format
+msgid "Don't know how to get key for encryption system %d\n"
+msgstr ""
+
+#: mount/lomount.c:235
+#, c-format
+msgid "set_loop(%s,%s,%d): success\n"
+msgstr ""
+
+#: mount/lomount.c:245
+#, c-format
+msgid "loop: can't delete device %s: %s\n"
+msgstr ""
+
+#: mount/lomount.c:255
+#, c-format
+msgid "del_loop(%s): success\n"
+msgstr ""
+
+#: mount/lomount.c:263
+msgid "This mount was compiled without loop support. Please recompile.\n"
+msgstr ""
+
+#: mount/losetup.c:70
+msgid "Cannot get loop info"
+msgstr ""
+
+#: mount/losetup.c:174
+#, c-format
+msgid ""
+"usage:\n"
+"  %s loop_device                                      # give info\n"
+"  %s -d loop_device                                   # delete\n"
+"  %s [ -e encryption ] [ -o offset ] loop_device file # setup\n"
+msgstr ""
+
+#: mount/losetup.c:231
+msgid "No loop support was available at compile time. Please recompile.\n"
+msgstr ""
+
+#: mount/mntent.c:165
+#, c-format
+msgid "[mntent]: warning: no final newline at the end of %s\n"
+msgstr ""
+
+#: mount/mntent.c:214
+#, c-format
+msgid "[mntent]: line %d in %s is bad%s\n"
+msgstr ""
+
+#: mount/mntent.c:217
+msgid "; rest of file ignored"
+msgstr ""
+
+#: mount/mount.c:319
+#, c-format
+msgid "mount: according to mtab, %s is already mounted on %s"
+msgstr ""
+
+#: mount/mount.c:322
+#, c-format
+msgid "mount: according to mtab, %s is mounted on %s"
+msgstr ""
+
+#: mount/mount.c:342
+#, c-format
+msgid "mount: can't open %s for writing: %s"
+msgstr ""
+
+#: mount/mount.c:355 mount/mount.c:597
+#, c-format
+msgid "mount: error writing %s: %s"
+msgstr ""
+
+#: mount/mount.c:360
+#, c-format
+msgid "mount: error changing mode of %s: %s"
+msgstr ""
+
+#: mount/mount.c:434
+msgid "mount failed"
+msgstr ""
+
+#: mount/mount.c:436
+#, c-format
+msgid "mount: only root can mount %s on %s"
+msgstr ""
+
+#: mount/mount.c:461
+msgid "mount: loop device specified twice"
+msgstr ""
+
+#: mount/mount.c:467
+msgid "mount: type specified twice"
+msgstr ""
+
+#: mount/mount.c:479
+msgid "mount: skipping the setup of a loop device\n"
+msgstr ""
+
+#: mount/mount.c:488
+#, c-format
+msgid "mount: going to use the loop device %s\n"
+msgstr ""
+
+#: mount/mount.c:492
+msgid "mount: failed setting up loop device\n"
+msgstr ""
+
+#: mount/mount.c:496
+msgid "mount: setup loop device successfully\n"
+msgstr ""
+
+#: mount/mount.c:509
+msgid "mount: this version was compiled without support for the type `nfs'"
+msgstr ""
+
+#: mount/mount.c:557 mount/mount.c:969
+#, c-format
+msgid "mount: cannot fork: %s"
+msgstr ""
+
+#: mount/mount.c:593
+#, c-format
+msgid "mount: can't open %s: %s"
+msgstr ""
+
+#: mount/mount.c:619
+msgid "mount: you must specify the filesystem type"
+msgstr ""
+
+#: mount/mount.c:626 mount/mount.c:660
+#, c-format
+msgid "mount: mount point %s is not a directory"
+msgstr ""
+
+#: mount/mount.c:628
+msgid "mount: permission denied"
+msgstr "mount: permissão negada"
+
+#: mount/mount.c:630
+msgid "mount: must be superuser to use mount"
+msgstr ""
+
+#. heuristic: if /proc/version exists, then probably proc is mounted
+#. proc mounted?
+#: mount/mount.c:634 mount/mount.c:638
+#, c-format
+msgid "mount: %s is busy"
+msgstr ""
+
+#. no
+#. yes, don't mention it
+#: mount/mount.c:640
+msgid "mount: proc already mounted"
+msgstr ""
+
+#: mount/mount.c:642
+#, c-format
+msgid "mount: %s already mounted or %s busy"
+msgstr ""
+
+#: mount/mount.c:648
+#, c-format
+msgid "mount: mount point %s does not exist"
+msgstr ""
+
+#: mount/mount.c:650
+#, c-format
+msgid "mount: mount point %s is a symbolic link to nowhere"
+msgstr ""
+
+#: mount/mount.c:653
+#, c-format
+msgid "mount: special device %s does not exist"
+msgstr ""
+
+#: mount/mount.c:666
+#, c-format
+msgid "mount: %s not mounted already, or bad option"
+msgstr ""
+
+#: mount/mount.c:668
+#, c-format
+msgid ""
+"mount: wrong fs type, bad option, bad superblock on %s,\n"
+"       or too many mounted file systems"
+msgstr ""
+
+#: mount/mount.c:683
+msgid "mount table full"
+msgstr ""
+
+#: mount/mount.c:685
+#, c-format
+msgid "mount: %s: can't read superblock"
+msgstr ""
+
+#: mount/mount.c:688
+#, c-format
+msgid "mount: %s has wrong major or minor number"
+msgstr ""
+
+#: mount/mount.c:693
+#, c-format
+msgid "mount: fs type %s not supported by kernel"
+msgstr ""
+
+#: mount/mount.c:705
+#, c-format
+msgid "mount: probably you meant %s"
+msgstr ""
+
+#: mount/mount.c:707
+msgid "mount: maybe you meant iso9660 ?"
+msgstr ""
+
+#: mount/mount.c:710
+#, c-format
+msgid "mount: %s has wrong device number or fs type %s not supported"
+msgstr ""
+
+#. strange ...
+#: mount/mount.c:715
+#, c-format
+msgid "mount: %s is not a block device, and stat fails?"
+msgstr ""
+
+#: mount/mount.c:717
+#, c-format
+msgid ""
+"mount: the kernel does not recognize %s as a block device\n"
+"       (maybe `insmod driver'?)"
+msgstr ""
+
+#: mount/mount.c:720
+#, c-format
+msgid "mount: %s is not a block device (maybe try `-o loop'?)"
+msgstr ""
+
+#: mount/mount.c:723
+#, c-format
+msgid "mount: %s is not a block device"
+msgstr ""
+
+#: mount/mount.c:726
+#, c-format
+msgid "mount: %s is not a valid block device"
+msgstr ""
+
+#: mount/mount.c:730
+#, c-format
+msgid "mount: block device %s is not permitted on its filesystem"
+msgstr ""
+
+#: mount/mount.c:747
+#, c-format
+msgid "mount: %s%s is write-protected, mounting read-only"
+msgstr ""
+
+#: mount/mount.c:748
+msgid "block device "
+msgstr ""
+
+#: mount/mount.c:834
+#, c-format
+msgid "mount: consider mounting %s by %s\n"
+msgstr ""
+
+#: mount/mount.c:835
+msgid "UUID"
+msgstr ""
+
+#: mount/mount.c:835
+msgid "label"
+msgstr "rótulo"
+
+#: mount/mount.c:837 mount/mount.c:1151
+msgid "mount: no such partition found"
+msgstr "mount: a partição não foi encontrada"
+
+#: mount/mount.c:845
+msgid "mount: no type was given - I'll assume nfs because of the colon\n"
+msgstr ""
+
+#.
+#. * Retry in the background.
+#.
+#: mount/mount.c:861
+#, c-format
+msgid "mount: backgrounding \"%s\"\n"
+msgstr ""
+
+#: mount/mount.c:872
+#, c-format
+msgid "mount: giving up \"%s\"\n"
+msgstr ""
+
+#: mount/mount.c:921
+#, c-format
+msgid "mount: %s already mounted on %s\n"
+msgstr ""
+
+#: mount/mount.c:1030
+msgid ""
+"Usage: mount [-hV]\n"
+"       mount -a [-nfFrsvw] [-t vfstypes]\n"
+"       mount [-nfrsvw] [-o options] special | node\n"
+"       mount [-nfrsvw] [-t vfstype] [-o options] special node\n"
+"       A special device can be indicated by  -L label  or  -U uuid ."
+msgstr ""
+
+#: mount/mount.c:1136
+msgid "mount: only root can do that"
+msgstr ""
+
+#: mount/mount.c:1141
+#, c-format
+msgid "mount: no %s found - creating it..\n"
+msgstr ""
+
+#: mount/mount.c:1153
+#, c-format
+msgid "mount: mounting %s\n"
+msgstr ""
+
+#: mount/mount.c:1162
+msgid "not mounted anything"
+msgstr ""
+
+#: mount/mount.c:1175
+#, c-format
+msgid "mount: cannot find %s in %s"
+msgstr ""
+
+#: mount/mount.c:1189
+#, c-format
+msgid "mount: can't find %s in %s or %s"
+msgstr ""
+
+#: mount/mount_by_label.c:141
+msgid "mount: bad UUID"
+msgstr ""
+
+#: mount/mount_guess_fstype.c:186
+#, c-format
+msgid "mount: you didn't specify a filesystem type for %s\n"
+msgstr ""
+
+#: mount/mount_guess_fstype.c:189
+#, c-format
+msgid "       I will try type %s\n"
+msgstr ""
+
+#: mount/mount_guess_fstype.c:191
+#, c-format
+msgid "       I will try all types mentioned in %s or %s\n"
+msgstr ""
+
+#: mount/nfsmount.c:157
+msgid "mount: excessively long host:dir argument\n"
+msgstr ""
+
+#: mount/nfsmount.c:170
+msgid "mount: warning: multiple hostnames not supported\n"
+msgstr ""
+
+#: mount/nfsmount.c:174
+msgid "mount: directory to mount not in host:dir format\n"
+msgstr ""
+
+#: mount/nfsmount.c:185 mount/nfsmount.c:420
+#, c-format
+msgid "mount: can't get address for %s\n"
+msgstr ""
+
+#: mount/nfsmount.c:191
+msgid "mount: got bad hp->h_length\n"
+msgstr ""
+
+#: mount/nfsmount.c:208
+msgid "mount: excessively long option argument\n"
+msgstr "mount: argumento para opção excessivamente longa\n"
+
+#: mount/nfsmount.c:299
+msgid "Warning: Unrecognized proto= option.\n"
+msgstr "Atenção: Opção desconhecida para proto=.\n"
+
+#: mount/nfsmount.c:306
+msgid "Warning: Option namlen is not supported.\n"
+msgstr ""
+
+#: mount/nfsmount.c:310
+#, c-format
+msgid "unknown nfs mount parameter: %s=%d\n"
+msgstr ""
+
+#: mount/nfsmount.c:345
+msgid "Warning: option nolock is not supported.\n"
+msgstr ""
+
+#: mount/nfsmount.c:348
+#, c-format
+msgid "unknown nfs mount option: %s%s\n"
+msgstr ""
+
+#: mount/nfsmount.c:349
+msgid "no"
+msgstr ""
+
+#: mount/nfsmount.c:426
+msgid "mount: got bad hp->h_length?\n"
+msgstr ""
+
+#: mount/nfsmount.c:528
+#, c-format
+msgid "mount: %s:%s failed, reason given by server: %s\n"
+msgstr ""
+
+#: mount/nfsmount.c:539
+msgid "NFS over TCP is not supported.\n"
+msgstr ""
+
+#: mount/nfsmount.c:546
+msgid "nfs socket"
+msgstr ""
+
+#: mount/nfsmount.c:550
+msgid "nfs bindresvport"
+msgstr ""
+
+#: mount/nfsmount.c:561
+msgid "used portmapper to find NFS port\n"
+msgstr ""
+
+#: mount/nfsmount.c:565
+#, c-format
+msgid "using port %d for nfs deamon\n"
+msgstr ""
+
+#: mount/nfsmount.c:576
+msgid "nfs connect"
+msgstr ""
+
+#: mount/nfsmount.c:665
+#, c-format
+msgid "unknown nfs status return value: %d"
+msgstr ""
+
+#: mount/sundries.c:40 mount/sundries.c:55
+msgid "not enough memory"
+msgstr ""
+
+#: mount/sundries.c:65
+msgid "bug in xstrndup call"
+msgstr ""
+
+#: mount/swapon.c:49
+#, c-format
+msgid ""
+"usage: %s [-hV]\n"
+"       %s -a [-v]\n"
+"       %s [-v] [-p priority] special ...\n"
+"       %s [-s]\n"
+msgstr ""
+
+#: mount/swapon.c:86
+#, c-format
+msgid "%s on %s\n"
+msgstr "%s em %s\n"
+
+#: mount/swapon.c:90
+#, c-format
+msgid "swapon: cannot stat %s: %s\n"
+msgstr ""
+
+#: mount/swapon.c:95
+#, c-format
+msgid "swapon: warning: %s has insecure permissions %04o, 0600 suggested\n"
+msgstr ""
+
+#: mount/swapon.c:103
+#, c-format
+msgid "swapon: Skipping file %s - it appears to have holes.\n"
+msgstr ""
+
+#: mount/swapon.c:204
+#, c-format
+msgid "%s: cannot open %s: %s\n"
+msgstr ""
+
+#: mount/umount.c:65
+msgid "umount: compiled without support for -f\n"
+msgstr ""
+
+#: mount/umount.c:115
+#, c-format
+msgid "host: %s, directory: %s\n"
+msgstr ""
+
+#: mount/umount.c:132
+#, c-format
+msgid "umount: can't get address for %s\n"
+msgstr ""
+
+#: mount/umount.c:137
+msgid "umount: got bad hostp->h_length\n"
+msgstr ""
+
+#: mount/umount.c:175
+#, c-format
+msgid "umount: %s: invalid block device"
+msgstr ""
+
+#: mount/umount.c:177
+#, c-format
+msgid "umount: %s: not mounted"
+msgstr ""
+
+#: mount/umount.c:179
+#, c-format
+msgid "umount: %s: can't write superblock"
+msgstr ""
+
+#. Let us hope fstab has a line "proc /proc ..."
+#. and not "none /proc ..."
+#: mount/umount.c:183
+#, c-format
+msgid "umount: %s: device is busy"
+msgstr ""
+
+#: mount/umount.c:185
+#, c-format
+msgid "umount: %s: not found"
+msgstr ""
+
+#: mount/umount.c:187
+#, c-format
+msgid "umount: %s: must be superuser to umount"
+msgstr ""
+
+#: mount/umount.c:189
+#, c-format
+msgid "umount: %s: block devices not permitted on fs"
+msgstr ""
+
+#: mount/umount.c:191
+#, c-format
+msgid "umount: %s: %s"
+msgstr ""
+
+#: mount/umount.c:235
+msgid "no umount2, trying umount...\n"
+msgstr ""
+
+#: mount/umount.c:248
+#, c-format
+msgid "could not umount %s - trying %s instead\n"
+msgstr ""
+
+#: mount/umount.c:264
+#, c-format
+msgid "umount: %s busy - remounted read-only\n"
+msgstr ""
+
+#: mount/umount.c:272
+#, c-format
+msgid "umount: could not remount %s read-only\n"
+msgstr ""
+
+#: mount/umount.c:280
+#, c-format
+msgid "%s umounted\n"
+msgstr ""
+
+#: mount/umount.c:363
+msgid "umount: cannot find list of filesystems to unmount"
+msgstr ""
+
+#: mount/umount.c:392
+msgid ""
+"Usage: umount [-hV]\n"
+"       umount -a [-f] [-r] [-n] [-v] [-t vfstypes]\n"
+"       umount [-f] [-r] [-n] [-v] special | node...\n"
+msgstr ""
+
+#: mount/umount.c:453
+msgid "umount: only root can do that"
+msgstr ""
+
+#: mount/umount.c:468
+#, c-format
+msgid "Trying to umount %s\n"
+msgstr ""
+
+#: mount/umount.c:472
+#, c-format
+msgid "Could not find %s in mtab\n"
+msgstr ""
+
+#: mount/umount.c:476
+#, c-format
+msgid "umount: %s is not mounted (according to mtab)"
+msgstr ""
+
+#: mount/umount.c:478
+#, c-format
+msgid "umount: it seems %s is mounted multiple times"
+msgstr ""
+
+#: mount/umount.c:480
+#, c-format
+msgid "umount: %s is not in the fstab (and you are not root)"
+msgstr ""
+
+#: mount/umount.c:486
+#, c-format
+msgid "umount: %s mount disagrees with the fstab"
+msgstr ""
+
+#: mount/umount.c:505
+#, c-format
+msgid "umount: only root can unmount %s from %s"
+msgstr ""
+
+#: mount/umount.c:515
+#, c-format
+msgid "umount: only %s can unmount %s from %s"
+msgstr ""
+
+#: sys-utils/ctrlaltdel.c:26
+msgid "You must be root to set the Ctrl-Alt-Del behaviour.\n"
+msgstr ""
+
+#: sys-utils/ctrlaltdel.c:41
+msgid "Usage: ctrlaltdel hard|soft\n"
+msgstr ""
+
+#: sys-utils/cytune.c:116
+#, c-format
+msgid ""
+"File %s, For threshold value %lu, Maximum characters in fifo were %d,\n"
+"and the maximum transfer rate in characters/second was %f\n"
+msgstr ""
+
+#: sys-utils/cytune.c:127
+#, c-format
+msgid ""
+"File %s, For threshold value %lu and timrout value %lu, Maximum characters "
+"in fifo were %d,\n"
+"and the maximum transfer rate in characters/second was %f\n"
+msgstr ""
+
+#: sys-utils/cytune.c:194
+#, c-format
+msgid "Invalid interval value: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:202
+#, c-format
+msgid "Invalid set value: %s\n"
+msgstr "Valor inválido: %s\n"
+
+#: sys-utils/cytune.c:210
+#, c-format
+msgid "Invalid default value: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:218
+#, c-format
+msgid "Invalid set time value: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:226
+#, c-format
+msgid "Invalid default time value: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:243
+#, c-format
+msgid ""
+"Usage: %s [-q [-i interval]] ([-s value]|[-S value]) ([-t value]|[-T value]) "
+"[-g|-G] file [file...]\n"
+msgstr ""
+
+#: sys-utils/cytune.c:254 sys-utils/cytune.c:270 sys-utils/cytune.c:287
+#: sys-utils/cytune.c:332
+#, c-format
+msgid "Can't open %s: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:260
+#, c-format
+msgid "Can't set %s to threshold %d: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:276
+#, c-format
+msgid "Can't set %s to time threshold %d: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:291 sys-utils/cytune.c:342 sys-utils/cytune.c:370
+#, c-format
+msgid "Can't get threshold for %s: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:296 sys-utils/cytune.c:347 sys-utils/cytune.c:375
+#, c-format
+msgid "Can't get timeout for %s: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:300
+#, c-format
+msgid "%s: %ld %s threshold and %ld %s timeout\n"
+msgstr ""
+
+#: sys-utils/cytune.c:302 sys-utils/cytune.c:304
+msgid "current"
+msgstr ""
+
+#: sys-utils/cytune.c:302 sys-utils/cytune.c:304
+msgid "default"
+msgstr ""
+
+#: sys-utils/cytune.c:321
+msgid "Can't set signal handler"
+msgstr ""
+
+#: sys-utils/cytune.c:325 sys-utils/cytune.c:356
+msgid "gettimeofday failed"
+msgstr ""
+
+#: sys-utils/cytune.c:336 sys-utils/cytune.c:365
+#, c-format
+msgid "Can't issue CYGETMON on %s: %s\n"
+msgstr ""
+
+#: sys-utils/cytune.c:405
+#, c-format
+msgid "%s: %lu ints, %lu/%lu chars; "
+msgstr ""
+
+#: sys-utils/cytune.c:406
+#, c-format
+msgid "fifo: %lu thresh, %lu tmout, "
+msgstr ""
+
+#: sys-utils/cytune.c:407
+#, c-format
+msgid "%lu max, %lu now\n"
+msgstr ""
+
+#: sys-utils/cytune.c:412
+#, c-format
+msgid "   %f int/sec; %f rec, %f send (char/sec)\n"
+msgstr ""
+
+#: sys-utils/cytune.c:417
+#, c-format
+msgid ""
+"%s: %lu ints, %lu chars; fifo: %lu thresh, %lu tmout, %lu max, %lu now\n"
+msgstr ""
+
+#: sys-utils/cytune.c:422
+#, c-format
+msgid "   %f int/sec; %f rec (char/sec)\n"
+msgstr ""
+
+#: sys-utils/dmesg.c:38
+#, c-format
+msgid "Usage: %s [-c] [-n level] [-s bufsize]\n"
+msgstr "Uso: %s [-c] [-n nível] [-s tam_buffer]\n"
+
+#: sys-utils/ipcrm.c:46
+#, c-format
+msgid "usage: %s [shm | msg | sem] id\n"
+msgstr "Uso: %s [shm | msg | sem] id\n"
+
+#: sys-utils/ipcrm.c:70
+#, c-format
+msgid "usage: %s [-shm | -msg | -sem] id\n"
+msgstr "Uso: %s [-shm | -msg | -sem] id\n"
+
+#: sys-utils/ipcrm.c:73
+msgid "resource deleted\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:91
+#, c-format
+msgid "usage : %s -asmq -tclup \n"
+msgstr ""
+
+#: sys-utils/ipcs.c:92
+#, c-format
+msgid "\t%s [-s -m -q] -i id\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:93
+#, c-format
+msgid "\t%s -h for help.\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:99
+#, c-format
+msgid "%s provides information on ipc facilities for"
+msgstr ""
+
+#: sys-utils/ipcs.c:100
+msgid " which you have read access.\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:101
+msgid ""
+"Resource Specification:\n"
+"\t-m : shared_mem\n"
+"\t-q : messages\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:102
+msgid ""
+"\t-s : semaphores\n"
+"\t-a : all (default)\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:103
+msgid ""
+"Output Format:\n"
+"\t-t : time\n"
+"\t-p : pid\n"
+"\t-c : creator\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:104
+msgid ""
+"\t-l : limits\n"
+"\t-u : summary\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:105
+msgid "-i id [-s -q -m] : details on resource identified by id\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:237 sys-utils/ipcs.c:439
+msgid "kernel not configured for shared memory\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:243
+msgid "------ Shared Memory Limits --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:246
+#, c-format
+msgid "max number of segments = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:247
+#, c-format
+msgid "max seg size (kbytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:248
+#, c-format
+msgid "max total shared memory (kbytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:249
+#, c-format
+msgid "min seg size (bytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:253
+msgid "------ Shared Memory Status --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:254
+#, c-format
+msgid "segments allocated %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:255
+#, c-format
+msgid "pages allocated %ld\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:256
+#, c-format
+msgid "pages resident  %ld\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:257
+#, c-format
+msgid "pages swapped   %ld\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:258
+#, c-format
+msgid "Swap performance: %ld attempts\t %ld successes\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:263
+msgid "------ Shared Memory Segment Creators/Owners --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:264 sys-utils/ipcs.c:370 sys-utils/ipcs.c:462
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s%-10s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:271 sys-utils/ipcs.c:276
+#: sys-utils/ipcs.c:281 sys-utils/ipcs.c:377
+msgid "shmid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:282 sys-utils/ipcs.c:371
+#: sys-utils/ipcs.c:386 sys-utils/ipcs.c:463 sys-utils/ipcs.c:480
+msgid "perms"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:371 sys-utils/ipcs.c:463
+msgid "cuid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:371 sys-utils/ipcs.c:463
+msgid "cgid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:371 sys-utils/ipcs.c:463
+msgid "uid"
+msgstr ""
+
+#: sys-utils/ipcs.c:265 sys-utils/ipcs.c:463
+msgid "gid"
+msgstr ""
+
+#: sys-utils/ipcs.c:269
+msgid "------ Shared Memory Attach/Detach/Change Times --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:270
+#, c-format
+msgid "%-10s%-10s  %-20s%-20s%-20s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:271 sys-utils/ipcs.c:276 sys-utils/ipcs.c:282
+#: sys-utils/ipcs.c:377 sys-utils/ipcs.c:386 sys-utils/ipcs.c:469
+#: sys-utils/ipcs.c:474 sys-utils/ipcs.c:480
+msgid "owner"
+msgstr "dono"
+
+#: sys-utils/ipcs.c:271
+msgid "attached"
+msgstr ""
+
+#: sys-utils/ipcs.c:271
+msgid "detached"
+msgstr ""
+
+#: sys-utils/ipcs.c:271
+msgid "changed"
+msgstr ""
+
+#: sys-utils/ipcs.c:275
+msgid "------ Shared Memory Creator/Last-op --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:276 sys-utils/ipcs.c:474
+#, c-format
+msgid "%-10s%-10s%-10s%-10s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:276
+msgid "cpid"
+msgstr ""
+
+#: sys-utils/ipcs.c:276
+msgid "lpid"
+msgstr ""
+
+#: sys-utils/ipcs.c:280
+msgid "------ Shared Memory Segments --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:281
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s%-10s%-12s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:281 sys-utils/ipcs.c:386 sys-utils/ipcs.c:479
+msgid "key"
+msgstr ""
+
+#: sys-utils/ipcs.c:282
+msgid "bytes"
+msgstr ""
+
+#: sys-utils/ipcs.c:282
+msgid "nattch"
+msgstr ""
+
+#: sys-utils/ipcs.c:282 sys-utils/ipcs.c:386
+msgid "status"
+msgstr ""
+
+#: sys-utils/ipcs.c:302 sys-utils/ipcs.c:303 sys-utils/ipcs.c:304
+#: sys-utils/ipcs.c:407 sys-utils/ipcs.c:408 sys-utils/ipcs.c:500
+#: sys-utils/ipcs.c:501 sys-utils/ipcs.c:502
+msgid "Not set"
+msgstr ""
+
+#: sys-utils/ipcs.c:324
+msgid "dest"
+msgstr ""
+
+#: sys-utils/ipcs.c:325
+msgid "locked"
+msgstr ""
+
+#: sys-utils/ipcs.c:345
+msgid "kernel not configured for semaphores\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:351
+msgid "------ Semaphore Limits --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:355
+#, c-format
+msgid "max number of arrays = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:356
+#, c-format
+msgid "max semaphores per array = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:357
+#, c-format
+msgid "max semaphores system wide = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:358
+#, c-format
+msgid "max ops per semop call = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:359
+#, c-format
+msgid "semaphore max value = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:363
+msgid "------ Semaphore Status --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:364
+#, c-format
+msgid "used arrays = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:365
+#, c-format
+msgid "allocated semaphores = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:369
+msgid "------ Semaphore Arrays Creators/Owners --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:371 sys-utils/ipcs.c:386
+msgid "semid"
+msgstr ""
+
+#: sys-utils/ipcs.c:375
+msgid "------ Shared Memory Operation/Change Times --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:376
+#, c-format
+msgid "%-8s%-10s  %-26.24s %-26.24s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:377
+msgid "last-op"
+msgstr ""
+
+#: sys-utils/ipcs.c:377
+msgid "last-changed"
+msgstr "última-modificação"
+
+#: sys-utils/ipcs.c:384
+msgid "------ Semaphore Arrays --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:385
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s%-12s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:386
+msgid "nsems"
+msgstr ""
+
+#: sys-utils/ipcs.c:447
+msgid "------ Messages: Limits --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:448
+#, c-format
+msgid "max queues system wide = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:449
+#, c-format
+msgid "max size of message (bytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:450
+#, c-format
+msgid "default max size of queue (bytes) = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:454
+msgid "------ Messages: Status --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:455
+#, c-format
+msgid "allocated queues = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:456
+#, c-format
+msgid "used headers = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:457
+#, c-format
+msgid "used space = %d bytes\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:461
+msgid "------ Message Queues: Creators/Owners --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:463 sys-utils/ipcs.c:469 sys-utils/ipcs.c:474
+#: sys-utils/ipcs.c:479
+msgid "msqid"
+msgstr ""
+
+#: sys-utils/ipcs.c:467
+msgid "------ Message Queues Send/Recv/Change Times --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:468
+#, c-format
+msgid "%-8s%-10s  %-20s%-20s%-20s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:469
+msgid "send"
+msgstr ""
+
+#: sys-utils/ipcs.c:469
+msgid "recv"
+msgstr ""
+
+#: sys-utils/ipcs.c:469
+msgid "change"
+msgstr ""
+
+#: sys-utils/ipcs.c:473
+msgid "------ Message Queues PIDs --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:474
+msgid "lspid"
+msgstr ""
+
+#: sys-utils/ipcs.c:474
+msgid "lrpid"
+msgstr ""
+
+#: sys-utils/ipcs.c:478
+msgid "------ Message Queues --------\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:479
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-12s%-12s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:480
+msgid "used-bytes"
+msgstr ""
+
+#: sys-utils/ipcs.c:480
+msgid "messages"
+msgstr ""
+
+#: sys-utils/ipcs.c:539
+#, c-format
+msgid ""
+"\n"
+"Shared memory Segment shmid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:540
+#, c-format
+msgid "uid=%d\tgid=%d\tcuid=%d\tcgid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:542
+#, c-format
+msgid "mode=%#o\taccess_perms=%#o\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:543
+#, c-format
+msgid "bytes=%d\tlpid=%d\tcpid=%d\tnattch=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:546
+#, c-format
+msgid "att_time=%s"
+msgstr ""
+
+#: sys-utils/ipcs.c:547 sys-utils/ipcs.c:549 sys-utils/ipcs.c:598
+msgid "Not set\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:548
+#, c-format
+msgid "det_time=%s"
+msgstr ""
+
+#: sys-utils/ipcs.c:550
+#, c-format
+msgid "change_time=%s"
+msgstr ""
+
+#: sys-utils/ipcs.c:566
+#, c-format
+msgid ""
+"\n"
+"Message Queue msqid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:567
+#, c-format
+msgid "uid=%d\tgid=%d\tcuid=%d\tcgid=%d\tmode=%#o\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:569
+#, c-format
+msgid "cbytes=%d\tqbytes=%d\tqnum=%d\tlspid=%d\tlrpid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:572
+#, c-format
+msgid "send_time=%srcv_time=%schange_time=%s"
+msgstr ""
+
+#: sys-utils/ipcs.c:573 sys-utils/ipcs.c:574 sys-utils/ipcs.c:575
+msgid "Not Set\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:592
+#, c-format
+msgid ""
+"\n"
+"Semaphore Array semid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:593
+#, c-format
+msgid "uid=%d\t gid=%d\t cuid=%d\t cgid=%d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:595
+#, c-format
+msgid "mode=%#o, access_perms=%#o\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:596
+#, c-format
+msgid "nsems = %d\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:597
+#, c-format
+msgid "otime = %s"
+msgstr ""
+
+#: sys-utils/ipcs.c:599
+#, c-format
+msgid "ctime = %s"
+msgstr ""
+
+#: sys-utils/ipcs.c:601
+#, c-format
+msgid "%-10s%-10s%-10s%-10s%-10s\n"
+msgstr ""
+
+#: sys-utils/ipcs.c:601
+msgid "semnum"
+msgstr ""
+
+#: sys-utils/ipcs.c:601
+msgid "value"
+msgstr ""
+
+#: sys-utils/ipcs.c:601
+msgid "ncount"
+msgstr ""
+
+#: sys-utils/ipcs.c:602
+msgid "zcount"
+msgstr ""
+
+#: sys-utils/ipcs.c:602
+msgid "pid"
+msgstr ""
+
+#: sys-utils/kbdrate.c:126
+#, c-format
+msgid "util-linux kbdrate %s \n"
+msgstr ""
+
+#: sys-utils/kbdrate.c:159 sys-utils/kbdrate.c:206
+#, c-format
+msgid "Typematic Rate set to %.1f cps (delay = %d mS)\n"
+msgstr "Velocidade do teclado configurada para %.1f cps (intervalo = %d mS)\n"
+
+#: sys-utils/kbdrate.c:182
+msgid "Cannot open /dev/port"
+msgstr "Não foi possível abrir /dev/port"
+
+#: sys-utils/rdev.c:68
+msgid "usage: rdev [ -rsv ] [ -o OFFSET ] [ IMAGE [ VALUE [ OFFSET ] ] ]"
+msgstr ""
+
+#: sys-utils/rdev.c:69
+msgid ""
+"  rdev /dev/fd0  (or rdev /linux, etc.) displays the current ROOT device"
+msgstr ""
+
+#: sys-utils/rdev.c:70
+msgid "  rdev /dev/fd0 /dev/hda2         sets ROOT to /dev/hda2"
+msgstr ""
+
+#: sys-utils/rdev.c:71
+msgid "  rdev -R /dev/fd0 1              set the ROOTFLAGS (readonly status)"
+msgstr ""
+
+#: sys-utils/rdev.c:72
+msgid "  rdev -s /dev/fd0 /dev/hda2      set the SWAP device"
+msgstr ""
+
+#: sys-utils/rdev.c:73
+msgid "  rdev -r /dev/fd0 627            set the RAMDISK size"
+msgstr ""
+
+#: sys-utils/rdev.c:74
+msgid "  rdev -v /dev/fd0 1              set the bootup VIDEOMODE"
+msgstr ""
+
+#: sys-utils/rdev.c:75
+msgid "  rdev -o N ...                   use the byte offset N"
+msgstr ""
+
+#: sys-utils/rdev.c:76
+msgid "  rootflags ...                   same as rdev -R"
+msgstr ""
+
+#: sys-utils/rdev.c:77
+msgid "  swapdev ...                     same as rdev -s"
+msgstr ""
+
+#: sys-utils/rdev.c:78
+msgid "  ramsize ...                     same as rdev -r"
+msgstr ""
+
+#: sys-utils/rdev.c:79
+msgid "  vidmode ...                     same as rdev -v"
+msgstr ""
+
+#: sys-utils/rdev.c:80
+msgid ""
+"Note: video modes are: -3=Ask, -2=Extended, -1=NormalVga, 1=key1, 2=key2,..."
+msgstr ""
+
+#: sys-utils/rdev.c:81
+msgid "      use -R 1 to mount root readonly, -R 0 for read/write."
+msgstr ""
+
+#: sys-utils/readprofile.c:50
+#, c-format
+msgid ""
+"%s: Usage: \"%s [options]\n"
+"\t -m <mapfile>  (default = \"%s\")\n"
+"\t -p <pro-file> (default = \"%s\")\n"
+"\t -i            print only info about the sampling step\n"
+"\t -v            print verbose data\n"
+"\t -a            print all symbols, even if count is 0\n"
+"\t -r            reset all the counters (root only)\n"
+"\t -V            print version and exit\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:113
+#, c-format
+msgid "%s Version %s\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:125
+msgid "anything\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:154
+#, c-format
+msgid "Sampling_step: %i\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:167 sys-utils/readprofile.c:193
+#, c-format
+msgid "%s: %s(%i): wrong map line\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:180
+#, c-format
+msgid "%s: can't find \"_stext\" in %s\n"
+msgstr ""
+
+#: sys-utils/readprofile.c:221
+msgid "total"
+msgstr "total"
+
+#: sys-utils/renice.c:66
+msgid "usage: renice priority [ [ -p ] pids ] "
+msgstr ""
+
+#: sys-utils/renice.c:67
+msgid "[ [ -g ] pgrps ] [ [ -u ] users ]\n"
+msgstr ""
+
+#: sys-utils/renice.c:93
+#, c-format
+msgid "renice: %s: unknown user\n"
+msgstr ""
+
+#: sys-utils/renice.c:101
+#, c-format
+msgid "renice: %s: bad value\n"
+msgstr ""
+
+#: sys-utils/renice.c:121
+msgid "getpriority"
+msgstr ""
+
+#: sys-utils/renice.c:126
+msgid "setpriority"
+msgstr ""
+
+#: sys-utils/renice.c:129
+#, c-format
+msgid "%d: old priority %d, new priority %d\n"
+msgstr ""
+
+#: sys-utils/setsid.c:23
+#, c-format
+msgid "usage: %s program [arg ...]\n"
+msgstr ""
+
+#: sys-utils/tunelp.c:77
+#, c-format
+msgid ""
+"Usage: %s <device> [ -i <IRQ> | -t <TIME> | -c <CHARS> | -w <WAIT> | \n"
+"          -a [on|off] | -o [on|off] | -C [on|off] | -q [on|off] | -s ]\n"
+msgstr ""
+
+#: sys-utils/tunelp.c:89
+msgid "malloc error"
+msgstr ""
+
+#: sys-utils/tunelp.c:100
+msgid "sscanf error"
+msgstr ""
+
+#: sys-utils/tunelp.c:140
+#, c-format
+msgid "%s: %s not an lp device.\n"
+msgstr "%s: %s não é um dispositivo lp\n"
+
+#: sys-utils/tunelp.c:239
+#, c-format
+msgid "%s status is %d"
+msgstr ""
+
+#: sys-utils/tunelp.c:240
+msgid ", busy"
+msgstr ""
+
+#: sys-utils/tunelp.c:241
+msgid ", ready"
+msgstr ""
+
+#: sys-utils/tunelp.c:242
+msgid ", out of paper"
+msgstr ""
+
+#: sys-utils/tunelp.c:243
+msgid ", on-line"
+msgstr ""
+
+#: sys-utils/tunelp.c:244
+msgid ", error"
+msgstr ""
+
+#: sys-utils/tunelp.c:261
+msgid "LPGETIRQ error"
+msgstr ""
+
+#: sys-utils/tunelp.c:267
+#, c-format
+msgid "%s using IRQ %d\n"
+msgstr ""
+
+#: sys-utils/tunelp.c:269
+#, c-format
+msgid "%s using polling\n"
+msgstr ""
+
+#: text-utils/col.c:154
+#, c-format
+msgid "col: bad -l argument %s.\n"
+msgstr "col: argumento inválido para -l %s.\n"
+
+#: text-utils/col.c:515
+msgid "usage: col [-bfx] [-l nline]\n"
+msgstr ""
+
+#: text-utils/col.c:521
+msgid "col: write error.\n"
+msgstr ""
+
+#: text-utils/col.c:528
+#, c-format
+msgid "col: warning: can't back up %s.\n"
+msgstr ""
+
+#: text-utils/col.c:529
+msgid "past first line"
+msgstr ""
+
+#: text-utils/col.c:529
+msgid "-- line already flushed"
+msgstr ""
+
+#: text-utils/colcrt.c:93
+#, c-format
+msgid "usage: %s [ - ] [ -2 ] [ file ... ]\n"
+msgstr "Uso: %s [ - ] [ -2 ] [ arquivo ... ]\n"
+
+#: text-utils/column.c:276
+msgid "line too long"
+msgstr "linha muito longa"
+
+#: text-utils/column.c:311
+msgid "usage: column [-tx] [-c columns] [file ...]\n"
+msgstr ""
+
+#: text-utils/hexsyntax.c:80
+msgid "hexdump: bad length value.\n"
+msgstr ""
+
+#: text-utils/hexsyntax.c:91
+msgid "hexdump: bad skip value.\n"
+msgstr ""
+
+#: text-utils/hexsyntax.c:129
+msgid ""
+"hexdump: [-bcdovx] [-e fmt] [-f fmt_file] [-n length] [-s skip] [file ...]\n"
+msgstr ""
+
+#: text-utils/more.c:247
+msgid "usage: "
+msgstr "uso: "
+
+#: text-utils/more.c:249
+msgid " [-dfln] [+linenum | +/pattern] name1 name2 ...\n"
+msgstr " [-dfln] [+número_da_linha | +/padrão] nome1 nome2 ...\n"
+
+#: text-utils/more.c:423
+#, c-format
+msgid ""
+"\n"
+"*** %s: directory ***\n"
+"\n"
+msgstr ""
+
+#. simple ELF detection
+#: text-utils/more.c:462
+#, c-format
+msgid ""
+"\n"
+"******** %s: Not a text file ********\n"
+"\n"
+msgstr ""
+
+#: text-utils/more.c:566
+msgid "[Use q or Q to quit]"
+msgstr ""
+
+#: text-utils/more.c:752
+msgid "--More--"
+msgstr "--Mais--"
+
+#: text-utils/more.c:754
+#, c-format
+msgid "(Next file: %s)"
+msgstr "(Próximo arquivo: %s)"
+
+#: text-utils/more.c:760
+msgid "[Press space to continue, 'q' to quit.]"
+msgstr "[Pressione espaço para continuar, 'q' para sair.]"
+
+#: text-utils/more.c:1058
+#, c-format
+msgid "...back %d page"
+msgstr "...voltar %d páginas"
+
+#: text-utils/more.c:1104
+#, c-format
+msgid "...skipping %d line"
+msgstr ""
+
+#: text-utils/more.c:1145
+msgid ""
+"\n"
+"***Back***\n"
+"\n"
+msgstr ""
+
+#: text-utils/more.c:1183
+msgid "Can't open help file"
+msgstr ""
+
+#: text-utils/more.c:1204 text-utils/more.c:1208
+msgid "[Press 'h' for instructions.]"
+msgstr ""
+
+#: text-utils/more.c:1243
+#, c-format
+msgid "\"%s\" line %d"
+msgstr ""
+
+#: text-utils/more.c:1245
+#, c-format
+msgid "[Not a file] line %d"
+msgstr ""
+
+#: text-utils/more.c:1329
+msgid "  Overflow\n"
+msgstr ""
+
+#: text-utils/more.c:1376
+msgid "...skipping\n"
+msgstr ""
+
+#: text-utils/more.c:1406
+msgid "Regular expression botch"
+msgstr ""
+
+#: text-utils/more.c:1418
+msgid ""
+"\n"
+"Pattern not found\n"
+msgstr ""
+
+#: text-utils/more.c:1421
+msgid "Pattern not found"
+msgstr ""
+
+#: text-utils/more.c:1483
+msgid "can't fork\n"
+msgstr ""
+
+#: text-utils/more.c:1522
+msgid ""
+"\n"
+"...Skipping "
+msgstr ""
+
+#: text-utils/more.c:1526
+msgid "...Skipping "
+msgstr ""
+
+#: text-utils/more.c:1527
+msgid "to file "
+msgstr ""
+
+#: text-utils/more.c:1527
+msgid "back to file "
+msgstr ""
+
+#: text-utils/more.c:1765
+msgid "Line too long"
+msgstr "Linha muito longa"
+
+#: text-utils/more.c:1809
+msgid "No previous command to substitute for"
+msgstr ""
+
+#: text-utils/odsyntax.c:133
+msgid "od: od(1) has been deprecated for hexdump(1).\n"
+msgstr ""
+
+#: text-utils/odsyntax.c:136
+#, c-format
+msgid "od: hexdump(1) compatibility doesn't support the -%c option%s\n"
+msgstr ""
+
+#: text-utils/odsyntax.c:137
+msgid "; see strings(1)."
+msgstr ""
+
+#: text-utils/parse.c:63
+#, c-format
+msgid "hexdump: can't read %s.\n"
+msgstr ""
+
+#: text-utils/parse.c:68
+msgid "hexdump: line too long.\n"
+msgstr "hexdump: linha muito longa.\n"
+
+#: text-utils/parse.c:406
+msgid "hexdump: byte count with multiple conversion characters.\n"
+msgstr ""
+
+#: text-utils/parse.c:490
+#, c-format
+msgid "hexdump: bad byte count for conversion character %s.\n"
+msgstr ""
+
+#: text-utils/parse.c:497
+msgid "hexdump: %%s requires a precision or a byte count.\n"
+msgstr ""
+
+#: text-utils/parse.c:503
+#, c-format
+msgid "hexdump: bad format {%s}\n"
+msgstr ""
+
+#: text-utils/parse.c:509
+msgid "hexdump: bad conversion character %%%s.\n"
+msgstr ""
+
+#: text-utils/rev.c:109
+msgid "Unable to allocate bufferspace\n"
+msgstr ""
+
+#: text-utils/rev.c:167
+msgid "usage: rev [file ...]\n"
+msgstr ""
+
+#: text-utils/ul.c:125
+#, c-format
+msgid "usage: %s [ -i ] [ -tTerm ] file...\n"
+msgstr "Uso: %s [ -i ] [ -tTerm ] arquivo...\n"
+
+#: text-utils/ul.c:136
+msgid "trouble reading terminfo"
+msgstr ""
+
+#: text-utils/ul.c:223
+#, c-format
+msgid "Unknown escape sequence in input: %o, %o\n"
+msgstr ""
+
+#: text-utils/ul.c:372
+msgid "Unable to allocate buffer.\n"
+msgstr ""
+
+#: text-utils/ul.c:529
+msgid "Input line too long.\n"
+msgstr "Linha de entrada muito longa.\n"
+
+#: text-utils/ul.c:542
+msgid "Out of memory when growing buffer.\n"
+msgstr ""
+
+#~ msgid "mount: out of memory"
+#~ msgstr "getopt: faltou memória!"
diff --git a/po/stamp-cat-id b/po/stamp-cat-id
new file mode 100644 (file)
index 0000000..9788f70
--- /dev/null
@@ -0,0 +1 @@
+timestamp
diff --git a/po/update-potfiles b/po/update-potfiles
new file mode 100644 (file)
index 0000000..2b7baf8
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+#
+
+> POTFILES
+> .null
+> POTFILES.in
+
+for x in ../*/*.c; do
+echo "$x \\" >> POTFILES
+done
+echo .null   >> POTFILES
+
+cd ..
+for x in */*.c; do
+echo "$x" >> po/POTFILES.in
+done
+cd po
diff --git a/rescuept/README b/rescuept/README
new file mode 100644 (file)
index 0000000..77c1c55
--- /dev/null
@@ -0,0 +1,98 @@
+As far as I now know, there are four utilities that attempt to
+assist in recovering a lost partition table, or a partition
+that was deleted by mistake.
+
+(i) findsuper is a small utility that finds blocks with the ext2
+superblock signature, and prints out location and some info.
+It is in the non-installed part of the e2progs distribution.
+
+(ii) rescuept is a utility that recognizes ext2 superblocks,
+FAT partitions, swap partitions, and extended partition tables;
+it prints out information that can be used with fdisk or sfdisk
+to reconstruct the partition table.
+It is in the non-installed part of the util-linux distribution.
+
+(iii) fixdisktable (http://bmrc.berkeley.edu/people/chaffee/fat32.html)
+is a utility that handles ext2, FAT, NTFS, ufs, BSD disklabels
+(but not yet old Linux swap partitions); it actually will rewrite
+the partition table, if you give it permission.
+
+(iv) gpart (http://home.pages.de/~michab/gpart/) is a utility
+that handles ext2, FAT, Linux swap, HPFS, NTFS, FreeBSD and
+Solaris/x86 disklabels, minix, reiser fs; it prints a proposed
+contents for the primary partition table, and is well-documented.
+
+
+
+The current directory contains rescuept.
+I would never have written it had I known about fixdisktable
+and gpart. However, now that it exists I find several situations
+that are handled by rescuept and not by any of the others,
+so let it be for the moment. 
+
+
+Two patches for bugs found in gpart-0.1c:
+=================================================================
+diff -r ../gpart-0.1c/src/gm_ext2.c ./src/gm_ext2.c
+74c74,75
+<       if ((sb->s_errors != EXT2_ERRORS_CONTINUE) &&
+---
+>       if ((sb->s_errors != 0) &&
+>           (sb->s_errors != EXT2_ERRORS_CONTINUE) &&
+78c79
+<       if (sb->s_state && (sb->s_state != EXT2_VALID_FS) && (sb->s_state != EXT2_ERROR_FS))
+---
+>       if (sb->s_state & ~(EXT2_VALID_FS | EXT2_ERROR_FS))
+=================================================================
+(Both bugs have the effect that good ext2 filesystems are not
+recognized by gpart-0.1c. Patches sent to gpart author.)
+
+
+
+
+How do you get your partition table back?
+The easy way - if you had been smart you would have done
+       # sfdisk -d /dev/xxx > xxx.pt
+before the disaster, where xxx.pt lives on some other disk
+or is printed on a piece of paper and taped to the wall. Now
+       # sfdisk /dev/xxx < xxx.pt
+will restore the partition table.
+
+In the absence of such good information, try each of the above
+utilities to get an idea of where your partitions were.
+Since gpart is the most elaborate one, it may be your best bet.
+If it misses some of your ext2 partitions, and you have gpart-0.1c,
+apply the above patch and try again.
+
+Note that if you in the course of history have deleted some partition
+and created something else on the same spot, then there will often
+be traces of both, and these utilities may easily retrieve outdated
+information.
+
+
+If you think you found a partition, make a primary partition entry
+in the partition table, and try to mount the partition.
+Note that some utilities count sectors the DOS way (starting with 1)
+while most do it right (starting with 0).
+
+
+Report successes and failures of rescuept or any of the others
+to aeb@cwi.nl. (It may well be that rescuept ought to be replaced
+by gpart.)
+
+
+
+A comment:
+-----
+From: Nix <nix-kernel@vger.rutgers.edu>
+Subject: Re: [OFFTOPIC] Searching for filesystem locator
+Date:   Sun, 9 May 1999 20:26:16 +0100 (BST)
+
+> (iii) fixdisktable
+
+I've just tried this but it appears to suffer from a 2^31-sectors problem.
+
+> (iv) gpart
+
+... but this proved a godsend.
+-----
diff --git a/rescuept/rescuept.c b/rescuept/rescuept.c
new file mode 100644 (file)
index 0000000..b549568
--- /dev/null
@@ -0,0 +1,640 @@
+/* call: rescuept /dev/hda */
+#include <stdio.h>
+#include <fcntl.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/ioctl.h>
+
+#include <linux/fs.h>           /* for BLKGETSIZE */
+
+
+char *progname;
+char *device;
+
+#define MAXPARTITIONS  100
+
+#define MAXPAGESZ      65536
+
+#define BUFSZ  1024000
+#define BUFSECS        (BUFSZ/512)
+char buf[BUFSZ];
+int bufstart = -1;
+
+typedef unsigned int uint32;
+typedef int sint32;
+typedef unsigned short uint16;
+typedef short sint16;
+typedef unsigned char uchar;
+
+void read_sectors(int fd, char *buf, int sectornr, int sectorct) {
+       extern long long llseek();
+       long long offset;
+       int n;
+
+       offset = sectornr;
+       offset *= 512;
+       if (llseek(fd, offset, SEEK_SET) != offset) {
+               fprintf(stderr, "%s: llseek error\n", progname);
+               exit(1);
+       }
+       n = read(fd, buf, sectorct*512);
+       if (n != sectorct*512) {
+               if (n == -1)
+                       perror("read");
+               fprintf(stderr, "%s: error reading sectors %d-%d\n",
+                       progname, sectornr, sectornr+sectorct-1);
+               exit(1);
+       }
+}
+
+
+/*
+ * Partition table stuff
+ */
+
+struct partition {
+    unsigned char bootable;            /* 0 or 0x80 */
+    uchar begin_chs[3];
+    unsigned char sys_type;
+    uchar end_chs[3];
+    unsigned int start_sect;           /* starting sector counting from 0 */
+    unsigned int nr_sects;             /* nr of sectors in partition */
+};
+
+int
+is_extended(unsigned char sys_type) {
+       return (sys_type == 0x5 || sys_type == 0xf || sys_type == 0x85);
+}
+
+/*
+ * List of (extended) partition table sectors found
+ */
+struct epts {
+       int secno;
+       char pt4[64];
+} epts[MAXPARTITIONS];
+int eptsct;
+
+void addepts(int secno, char *data) {
+       if (eptsct >= MAXPARTITIONS)
+               return;         /* ignore */
+       epts[eptsct].secno = secno;
+       memcpy(epts[eptsct].pt4, data+512-66, 64);
+       eptsct++;
+}
+
+/*
+ * List of guessed partitions
+ */
+struct pt {
+       int pno;
+       int start;
+       int size;
+       unsigned char type;
+} pts[MAXPARTITIONS];
+int partno;
+
+void addpart(int start, int size, unsigned char type) {
+       if (partno >= MAXPARTITIONS)
+               return;         /* ignore */
+       pts[partno].start = start;
+       pts[partno].size = size;
+       pts[partno].type = type;
+       partno++;
+}
+
+void outparts() {
+       int i;
+
+       for(i=0; i<partno; i++)
+               printf("%s%d : start=%9d, size=%8d, Id=%2x\n",
+                      device, pts[i].pno,
+                      pts[i].start, pts[i].size, pts[i].type);
+}
+
+void outmsg(char *msg, int start, int nextstart, unsigned char type) {
+       printf("# %4d MB %16s (type %2x): sectors %9d-%9d\n",
+              ((nextstart-start)+1024)/2048, msg, type, start, nextstart-1);
+}
+
+int
+create_extended_partition(int fd, int secno, int size) {
+       int sec = secno;
+       int cursec = secno;
+       int pno = partno;       /* number of extd partition */
+       int ei = eptsct-1;
+       unsigned char type = 0x5;
+       int lastseen = secno;
+       int ok = 0;
+
+       if (epts[ei].secno != secno) {
+               fprintf(stderr, "%s: program bug\n", progname);
+               exit(1);
+       }
+
+       outmsg("candidate ext pt", secno, secno+1, type);
+       addpart(secno, 1, type);                /* size to be filled in later */
+       
+       while(1) {
+               char buf[512];
+               struct partition *p1, *p2, *pr, *pe;
+               p1 = (struct partition *)(& epts[ei].pt4[0]);
+               p2 = (struct partition *)(& epts[ei].pt4[16]);
+               /* for the time being we just ignore the rest */
+
+               if (is_extended(p1->sys_type)) {
+                       pr = p2;
+                       pe = p1;
+               } else if (is_extended(p2->sys_type)) {
+                       pr = p1;
+                       pe = p2;
+               } else if (p1->sys_type == 0) {
+                       pr = p2;
+                       pe = 0;
+               } else if (p2->sys_type == 0) {
+                       pr = p1;
+                       pe = 0;
+               } else
+                       break;
+
+               /* first handle the real partition, if any */
+               if (pr->sys_type != 0) {
+                       int ss = cursec + pr->start_sect;
+                       int es = ss + pr->nr_sects;
+                       outmsg("found in ept", ss, es, pr->sys_type);
+                       addpart(ss, pr->nr_sects, pr->sys_type);
+                       if (lastseen < es - 1)
+                               lastseen = es - 1;
+                       if (lastseen >= size)
+                               break;
+               }
+
+
+               /* then the extended link */
+
+               if (!pe) {
+                       ok = 1;
+                       break;
+               }
+               type = pe->sys_type;
+               cursec = sec + pe->start_sect;
+               if (cursec >= size)
+                       break;
+               read_sectors(fd, buf, cursec, 1);
+               addepts(cursec, buf);
+               ei = eptsct-1;
+       }
+
+       if (!ok || lastseen == secno) {
+               printf("# retracted\n");
+               partno = pno;
+               return 0;
+       }
+
+       pts[pno].type = type;
+       pts[pno].size = lastseen+1-secno;
+       outmsg("extended part ok", secno, lastseen+1, type);
+       return lastseen;
+}
+                       
+               
+
+/*
+ * Recognize an ext2 superblock
+ */
+#define EXT2_SUPER_MAGIC       0xEF53
+
+struct ext2_super_block {
+       uint32  s_inodes_count;          /* 0: Inodes count */
+       uint32  s_blocks_count;          /* 4: Blocks count */
+       uint32  s_r_blocks_count;        /* 8: Reserved blocks count */
+       uint32  s_free_blocks_count;     /* 12: Free blocks count */
+       uint32  s_free_inodes_count;     /* 16: Free inodes count */
+       uint32  s_first_data_block;      /* 20: First Data Block */
+       uint32  s_log_block_size;        /* 24: Block size */
+       sint32  s_log_frag_size;         /* 28: Fragment size */
+       uint32  s_blocks_per_group;      /* 32: # Blocks per group */
+       uint32  s_frags_per_group;       /* 36: # Fragments per group */
+       uint32  s_inodes_per_group;      /* 40: # Inodes per group */
+       uint32  s_mtime;                 /* 44: Mount time */
+       uint32  s_wtime;                 /* 48: Write time */
+       uint16  s_mnt_count;             /* 52: Mount count */
+       sint16  s_max_mnt_count;         /* 54: Maximal mount count */
+       uint16  s_magic;                 /* 56: Magic signature */
+       uint16  s_state;                 /* 58: File system state */
+       uint16  s_errors;                /* 60: Behaviour when detecting errors */
+       uint16  s_minor_rev_level;       /* 62: minor revision level */
+       uint32  s_lastcheck;             /* 64: time of last check */
+       uint32  s_checkinterval;         /* 68: max. time between checks */
+       uint32  s_creator_os;            /* 72: OS */
+       uint32  s_rev_level;             /* 76: Revision level */
+       uint16  s_def_resuid;            /* 80: Default uid for reserved blocks */
+       uint16  s_def_resgid;            /* 82: Default gid for reserved blocks */
+
+       /* more stuff in later versions - especially s_block_group_nr is useful */
+       uint32  s_first_ino;             /* 84: First non-reserved inode */
+       uint16  s_inode_size;            /* 88: size of inode structure */
+       uint16  s_block_group_nr;        /* 90: block group # of this superblock */
+       uint32  s_feature_compat;        /* 92: compatible feature set */
+       uint32  s_feature_incompat;      /* 96: incompatible feature set */
+       uint32  s_feature_ro_compat;     /* 100: readonly-compatible feature set */
+       uchar   s_uuid[16];              /* 104: 128-bit uuid for volume */
+       char    s_volume_name[16];       /* 120: volume name */
+       char    s_last_mounted[64];      /* 136: directory where last mounted */
+       uint32  s_algorithm_usage_bitmap;/* 200: For compression */
+       uchar   s_prealloc_blocks;       /* 204: Nr of blocks to try to preallocate*/
+       uchar   s_prealloc_dir_blocks;   /* 205: Nr to preallocate for dirs */
+       uchar   s_reserved[818];         /* 206-1023 */
+};
+
+/*
+ * Heuristic to weed out false alarms for ext2 superblocks.
+ * Recompile this after 2005, of if you destroy things that
+ * have not been written the past ten years.
+ */
+#define YEAR (60*60*24*365)
+#define LOWERLIMIT (1992-1970)*YEAR
+#define UPPERLIMIT (2005-1970)*YEAR
+int
+is_time(uint32 t) {
+       return (t >= LOWERLIMIT && t <= UPPERLIMIT);
+}
+
+int
+is_ztime(uint32 t) {
+       return (t == 0 || (t >= LOWERLIMIT && t <= UPPERLIMIT));
+}
+
+/*
+ * Recognize a FAT filesystem
+ */
+
+struct fat_boot_sector_start {
+       uchar   jump_code[3];   /* 0: Bootstrap short or near jump */
+                               /* usually jump code (e.g. eb 3e or eb 58) + nop (0x90) */
+       uchar   system_id[8];   /* 3: OEM Name */
+                               /* fat16: MSDOS5.0 or MSWIN4.0 or ... */
+                               /* fat32: MSWIN4.1 (=W95 OSR2) */
+       /* BIOS Parameter Block (BPB) */
+       uchar   sector_size[2]; /* 11: bytes/sector (usually 512 or 2048) */
+       uchar   cluster_size;   /* 13: sectors/cluster (a power of two in 1..128) */
+       uint16  reserved;       /* 14: reserved sectors (I see 1 for FAT16, 17 for FAT32) */
+                               /* The # of sectors preceding the first FAT,
+                                  including the boot sector, so at least 1 */
+       uchar   fats;           /* 16: # of copies of FAT (usually 2) */
+       uchar   dir_entries[2]; /* 17: max # of root directory entries (n/a for FAT32) */
+                               /* (usually 512; 0 for FAT32) */
+       uchar   sectors[2];     /* 19: total # of sectors (in <32MB partn) or 0 */
+       uchar   media;          /* 21: media code (0xf8 for hard disks) */
+       uint16  fat_length;     /* 22: sectors/FAT (n/a: 0 for FAT32) */
+       uint16  secs_track;     /* 24: S = # sectors/track (in 1..63) */
+       uint16  heads;          /* 26: H = # of heads (in 1..255) */
+       uint32  hidden;         /* 28: # of hidden sectors in partition, before boot sector */
+                               /* (offset from cyl boundary - often equal to S) */
+       uint32  total_sect;     /* 32: # of sectors (if sectors == 0) */
+};
+
+/* Media descriptor byte:
+   f8  hard disk
+   Floppy types:
+   f0   3.5"   36/2/80 2880k
+   f0  3.5"    18/2/80 1440k
+   f9  3.5"    9/2/80  720k
+   f9  5.25"   15/2/80 1200k
+   fa  both    9/1/80  320k
+   fb  both    9/2/80  640k
+   fc  5.25"   9/1/40  180k
+   fd  5.25"   9/2/40  360k
+   fe  5.25"   8/1/40  160k
+   ff  5.25"   8/2/40  320k
+   Conclusion: this bytes does not differentiate between 3.5" and 5.25",
+   it does not give the capacity or the number of sectors per track.
+   However, maybe C and H can be derived.
+*/
+
+struct fat_boot_sector_middle { /* offset 36-61 for FAT16, 64-89 for FAT32 */
+       /* Extended BIOS Parameter Block */
+       uchar   drive_number;   /* 0: logical drive number of partition */
+                               /* (typically 0 for floppy, 0x80 for each disk) */
+       uchar   current_head;   /* Originally: track containing boot record. (Usually 0)
+                                  For WNT: bit 0: dirty: chkdsk must be run
+                                           bit 1: also run surface scan */
+       uchar   extd_signature; /* 2: extended signature (0x29) */
+                               /* WNT requires either 0x28 or 0x29 */
+       uchar   serial_nr[4];   /* 3: serial number of partition */
+       uchar   volume_name[11];/* 7: volume name of partition */
+                               /* WNT stores the volume label as a special file
+                                  in the root directory */
+       uchar   fs_name[8];     /* 18: filesystem name (FAT12, FAT16, FAT32) */
+};
+
+struct fat16_boot_sector {
+       struct fat_boot_sector_start s;         /* 0-35 */
+       struct fat_boot_sector_middle m;        /* 36-61 */
+       uchar  boot_code[448];                  /* 62-509 */
+       uchar  signature[2];                    /* 510-511: aa55 */
+};
+
+struct fat32_boot_sector {
+       struct fat_boot_sector_start s;         /* 0-35 */
+
+       uint32  fat32_length;   /* 36: sectors/FAT */
+       uint16  flags;          /* 40: bit 7: fat mirroring, low 4: active fat */
+                               /* If mirroring is disabled (bit8 set) the FAT
+                                  info is only written to the active FAT copy. */
+       uchar   version[2];     /* 42: major, minor filesystem version */
+       uint32  root_cluster;   /* 44: first cluster in root directory */
+       uint16  info_sector;    /* 48: filesystem info sector # relative
+                                  to partition start (usually 1) */
+       uint16  backup_boot;    /* 50: backup boot sector # relat. to part. start */
+       uint16  reserved2[6];   /* 52-63: Unused */
+
+       struct fat_boot_sector_middle m;        /* 64-89 */
+       uchar  boot_code[420];                  /* 90-509 */
+       uchar  signature[2];                    /* 510-511: aa55 */
+};
+
+/*
+ * The boot code contains message strings ("Invalid system disk")
+ * but these are often localized ("Ongeldige diskette ").
+ * After these messages one finds two or three filenames.
+ * (MSDOS 6.2: "\r\nNon-System disk or disk error\r\n"
+ * "Replace and press any key when ready\r\n", "IO      SYS", "MSDOS   SYS") 
+ * (W95: "IO      SYS", "MSDOS   SYS", "WINBOOT SYS")
+ * In all cases the sector seems to end with 0, 0, 55, aa.
+ *
+ * Random collection of messages (closed by \0377 or 0):
+ * "\r\nInvalid system disk"
+ * "\r\nOngeldige diskette "
+ * "\r\nDisk I/O error"
+ * "\r\nI/O-fout      "
+ * "\r\nReplace the disk, and then press any key\r\n"
+ * "\r\nVervang de diskette en druk op een toets\r\n"
+ * This seems to suggest that the localized strings have the same length.
+ *
+ * "Non-System disk or disk error"
+ * "Replace and press any key when ready"
+ * "Disk Boot failure"
+ *
+ * "BOOT: Couldn't find NTLDR"
+ * "I/O error reading disk"
+ * "Please insert another disk"
+ */
+
+struct fat32_boot_fsinfo {
+       uint32   signature1;     /* 41 61 52 52 */
+       uchar    unknown1[480];
+       uint32   signature2;     /* 61 41 72 72 0x61417272L */
+       uint32   free_clusters;  /* Free cluster count.  -1 if unknown */
+       uint32   next_cluster;   /* Most recently allocated cluster.
+                                 * Unused under Linux. */
+       uchar    unknown2[14];
+       uchar    signature[2];   /* 510-511: aa55 */
+};
+
+struct msdos_dir_entry {
+       uchar    name[8],ext[3]; /* name and extension */
+       uchar    attr;           /* attribute bits */
+       uchar    lcase;          /* Case for base and extension */
+       uchar    ctime_ms;       /* Creation time, milliseconds */
+       uint16   ctime;          /* Creation time */
+       uint16   cdate;          /* Creation date */
+       uint16   adate;          /* Last access date */
+       uint16   starthi;        /* High 16 bits of cluster in FAT32 */
+       uint16   time,date,start;/* time, date and first cluster */
+       uint32   size;           /* file size (in bytes) */
+};
+
+/* New swap space */
+struct swap_header_v1 {
+        char         bootbits[1024];    /* Space for disklabel etc. */
+        unsigned int version;
+        unsigned int last_page;
+        unsigned int nr_badpages;
+        unsigned int padding[125];
+        unsigned int badpages[1];
+};
+
+int
+main(int argc, char **argv){
+       int i,j,fd;
+       long size;
+       int pagesize, pagesecs;
+       unsigned char *bp;
+       struct ext2_super_block *e2bp;
+       struct fat16_boot_sector *fat16bs;
+       struct fat32_boot_sector *fat32bs;
+
+       progname = argv[0];
+
+       if (argc != 2) {
+               fprintf(stderr, "call: %s device\n", progname);
+               exit(1);
+       }
+
+       device = argv[1];
+
+       fd = open(device, O_RDONLY);
+       if (fd < 0) {
+               perror(device);
+               fprintf(stderr, "%s: could not open %s\n", progname, device);
+               exit(1);
+       }
+
+       if (ioctl(fd, BLKGETSIZE, &size)) {
+               perror("BLKGETSIZE");
+               fprintf(stderr, "%s: could not get device size\n", progname);
+               exit(1);
+       }
+
+       pagesize = getpagesize();
+       if (pagesize <= 0)
+               pagesize = 4096;
+       else if (pagesize > MAXPAGESZ) {
+               fprintf(stderr, "%s: ridiculous pagesize %d\n", progname, pagesize);
+               exit(1);
+       }
+       pagesecs = pagesize/512;
+
+       printf("# partition table of %s\n", device);
+       printf("# total size %d sectors\n", size);
+       printf("unit: sectors\n");
+
+       for(i=0; i<size; i++) {
+               if (i/BUFSECS != bufstart) {
+                       int len, secno;
+                       bufstart = i/BUFSECS;
+                       secno = bufstart*BUFSECS;
+                       len = BUFSECS;
+                       if (size - secno < len)
+                               len = size - secno;
+                       len = (len / 2)*2;      /* avoid reading the last (odd) sector */
+                       read_sectors(fd, buf, secno, len);
+               }
+                       
+               j = i % BUFSECS;
+
+               bp = buf + 512 * j;
+
+               if (bp[510] == 0x55 && bp[511] == 0xAA) {
+                       char *cp = bp+512-2-64;
+                       int j;
+
+                       if (i==0)
+                               continue; /* the MBR is supposed to be broken */
+
+                       /* Unfortunately one finds extended partition table sectors
+                          that look just like a fat boot sector, except that the
+                          partition table bytes have been overwritten */
+                       /* typical FAT32 end: "nd then press ...", followed by
+                          IO.SYS and MSDOS.SYS and WINBOOT.SYS directory entries.
+                          typical extd part tab end: 2 entries, 32 nul bytes */
+
+                       for(j=0; j<32; j++)
+                               if (cp[32+j])
+                                       goto nonzero;
+                       addepts(i, bp);
+                       if (i > 0) {
+                               j = create_extended_partition(fd, i, size);
+                               if (j && j > i)
+                                       i = j;  /* skip */
+                       }
+                       continue;
+               nonzero:
+                       fat16bs = (struct fat16_boot_sector *) bp;
+                       if (fat16bs->s.media == 0xf8 &&
+                           fat16bs->m.extd_signature == 0x29 &&
+                           !strncmp(fat16bs->m.fs_name, "FAT", 3)) {
+                               int lth;
+                               lth = fat16bs->s.sectors[0] +
+                                       fat16bs->s.sectors[1]*256;
+                               if (lth) {
+                                       outmsg("small fat partition", i, i+lth, 0x1);
+                                       addpart(i, lth, 0x1);
+                               } else {
+                                       lth = fat16bs->s.total_sect;
+                                       outmsg("fat partition", i, i+lth, 0x6);
+                                       addpart(i, lth, 0x6);
+                               }
+                               i = i+lth-1;    /* skip */
+                               continue;
+                       }
+
+                       fat32bs = (struct fat32_boot_sector *) bp;
+                       if (fat32bs->s.media == 0xf8 &&
+                           fat32bs->m.extd_signature == 0x29 &&
+                           !strncmp(fat32bs->m.fs_name, "FAT32   ", 8)) {
+                               int lth = fat32bs->s.total_sect;
+                               outmsg("fat32 partition", i, i+lth, 0xb); /* or 0xc */
+                               addpart(i, lth, 0xb);
+                               i = i+lth-1;    /* skip */
+                               continue;
+                       }
+               }
+
+               if (!strncmp(bp+502, "SWAP-SPACE", 10)) {
+                       char *last;
+                       int ct;
+                       int ss = i-pagesecs+1;
+                       int es;
+                       char buf2[MAXPAGESZ];
+
+                       read_sectors(fd, buf2, ss, pagesecs);
+                       for (last = buf2+pagesize-10-1; last > buf2; last--)
+                               if (*last)
+                                       break;
+                       for (ct = 7; ct >= 0; ct--)
+                               if (*last & (1<<ct))
+                                       break;
+                       es = ((last - buf2)*8 + ct + 1)*pagesecs + ss;
+                       if (es <= size) {
+                               outmsg("old swap space", ss, es, 0x82);
+                               addpart(ss, es-ss, 0x82);
+
+                               i = es-1;       /* skip */
+                               continue;
+                       }
+               }
+
+               if (!strncmp(bp+502, "SWAPSPACE2", 10)) {
+                       int ss = i-pagesecs+1;
+                       int es, lth;
+                       char buf2[MAXPAGESZ];
+                       struct swap_header_v1 *p;
+
+                       read_sectors(fd, buf2, ss, pagesecs);
+                       p = (struct swap_header_v1 *) buf2;
+                       lth = (p->last_page + 1)* pagesecs;
+                       es = ss + lth;
+                       if (es <= size) {
+                               outmsg("new swap space", ss, es, 0x82);
+                               addpart(ss, lth, 0x82);
+
+                               i = es-1;       /* skip */
+                               continue;
+                       }
+               }
+
+               e2bp = (struct ext2_super_block *) bp;
+               if (e2bp->s_magic == EXT2_SUPER_MAGIC && is_time(e2bp->s_mtime)
+                   && is_time(e2bp->s_wtime) && is_ztime(e2bp->s_lastcheck)
+                   && e2bp->s_log_block_size <= 10 /* at most 1 MB blocks */) {
+                       char buf[512];
+                       struct ext2_super_block *bp2;
+                       int ss, sz, es, gsz, j;
+
+                       ss = i-2;
+                       sz = (e2bp->s_blocks_count << (e2bp->s_log_block_size + 1));
+                       gsz = (e2bp->s_blocks_per_group << (e2bp->s_log_block_size + 1));
+                       if (e2bp->s_block_group_nr > 0)
+                               ss -= gsz * e2bp->s_block_group_nr;
+                       es = ss + sz;
+                       if (ss > 0 && es > i && es <= size) {
+                               if (e2bp->s_block_group_nr == 0) {
+                                       outmsg("ext2 partition", ss, es, 0x83);
+                                       addpart(ss, es-ss, 0x83);
+
+                                       i = es-1;       /* skip */
+                                       continue;
+                               }
+
+                               /* maybe we jumped into the middle of a partially
+                                  obliterated ext2 partition? */
+
+                               printf("# sector %d looks like an ext2 superblock copy #%d;\n"
+                                      "# in a partition covering sectors %d-%d\n",
+                                      i, e2bp->s_block_group_nr, ss, es-1);
+
+                               for (j=1; j<=e2bp->s_block_group_nr; j++) {
+                                       read_sectors(fd, buf, i-j*gsz, 1);
+                                       bp2 = (struct ext2_super_block *) buf;
+                                       if (bp2->s_magic != EXT2_SUPER_MAGIC ||
+                                           bp2->s_block_group_nr !=
+                                             e2bp->s_block_group_nr - j)
+                                               break;
+                               }
+                               if (j == 1)
+                                       printf("# however, sector %d doesnt look like a sb.\n",
+                                              i-gsz);
+                               else if (j <= e2bp->s_block_group_nr)
+                                       printf("# also the preceding %d block groups seem OK\n"
+                                              "# but before that things seem to be wrong.\n",
+                                              j-1);
+                               else {
+                                       printf("# found all preceding superblocks OK\n"
+                                              "# Warning: overlapping partitions?\n");
+                                       outmsg("ext2 partition", ss, es, 0x83);
+                                       addpart(ss, es-ss, 0x83);
+                                       i = es-1;       /* skip */
+                                       continue;
+                               }
+                       }
+
+               }
+       }
+
+       outparts();
+       
+       exit(0);
+}
+
index 91aa32d1d7d9612d35d5790c920874fe93de16c3..0109eb1460dde376c7e625d767fdc28f10772b1b 100644 (file)
@@ -2,17 +2,16 @@
 # Created: Sat Dec 26 20:09:40 1992
 # Revised: Mon Aug 19 20:12:33 1996 by faith@cs.unc.edu
 # Copyright 1992, 1993, 1994, 1995 Rickard E. Faith (faith@cs.unc.edu)
-# Copyright 1996 Nicolai Langfeldt (janl@math.uio.no)??
 #
-
+include ../make_include
 include ../MCONFIG
 
 # Where to put man pages?
 
 MAN1=          arch.1 readprofile.1
 
-MAN8=          ctrlaltdel.8 cytune.8 dmesg.8 hwclock.8 \
-               ipcrm.8 ipcs.8 kbdrate.8 ramsize.8 renice.8 \
+MAN8=          ctrlaltdel.8 cytune.8 dmesg.8 \
+               ipcrm.8 ipcs.8 ramsize.8 renice.8 \
                rootflags.8 setsid.8 sln.8 swapdev.8 tunelp.8 \
                vidmode.8 
 
@@ -21,56 +20,65 @@ MAN8=               ctrlaltdel.8 cytune.8 dmesg.8 hwclock.8 \
 
 BIN=            arch dmesg
 
-USRBIN=                cytune ipcrm ipcs renice readprofile setsid tunelp
+USRBIN=                cytune ipcrm ipcs renice setsid
+
+USRSBIN=       readprofile tunelp
+
+SBIN=          ctrlaltdel
 
-SBIN=          ctrlaltdel hwclock kbdrate
+NOTMADE=
 
 ifeq "$(HAVE_SLN)" "no"
+ifeq "$(CAN_DO_STATIC)" "no"
+NOTMADE=nosln
+else
 SBIN:=$(SBIN) sln
 endif
+endif
 
 ifeq "$(CPU)" "intel"
 MAN8:=$(MAN8) rdev.8
-USRBIN:=$(USRBIN) rdev
+USRSBIN:=$(USRSBIN) rdev
 endif
 
 # Where to put datebase files?
 
 USRINFO=        ipc.info
 
-all: $(SBIN) $(BIN) $(USRBIN)
+all: $(SBIN) $(BIN) $(USRBIN) $(USRSBIN) $(NOTMADE)
 
 sln: sln.c
        $(CC) -static $(CFLAGS) $(LDFLAGS) $< -o $@
 
+nosln:
+       @echo sln not made since static compilation fails here
+
 # Rules for everything else
 
 arch: arch.o
-hwclock.o: hwclock.c shhopt.h
-hwclock: hwclock.o shhopt.o
 ctrlaltdel.o: ctrlaltdel.c $(LIB)/linux_reboot.h
 ctrlaltdel: ctrlaltdel.o $(LIB)/my_reboot.o
 ipcrm: ipcrm.o
 ipcs: ipcs.o
-kbdrate: kbdrate.o
 rdev: rdev.o
 renice: renice.o
 readprofile: readprofile.o
 setsid: setsid.o
 
 install: all
-       $(INSTALLDIR) $(SBINDIR) $(BINDIR) $(USRBINDIR)
+       $(INSTALLDIR) $(SBINDIR) $(BINDIR) $(USRBINDIR) $(USRSBINDIR)
        $(INSTALLBIN) $(SBIN) $(SBINDIR)
        $(INSTALLBIN) $(BIN) $(BINDIR)
        $(INSTALLBIN) $(USRBIN) $(USRBINDIR)
-       (cd $(USRBINDIR); ln -sf rdev swapdev)
-       (cd $(USRBINDIR); ln -sf rdev ramsize)
-       (cd $(USRBINDIR); ln -sf rdev vidmode)
-       (cd $(USRBINDIR); ln -sf rdev rootflags)
+       $(INSTALLBIN) $(USRSBIN) $(USRSBINDIR)
+       (cd $(USRSBINDIR); ln -sf rdev swapdev)
+       (cd $(USRSBINDIR); ln -sf rdev ramsize)
+       (cd $(USRSBINDIR); ln -sf rdev vidmode)
+       (cd $(USRSBINDIR); ln -sf rdev rootflags)
        $(INSTALLDIR) $(MAN1DIR) $(MAN8DIR) $(INFODIR)
        $(INSTALLMAN) $(MAN1) $(MAN1DIR)
        $(INSTALLMAN) $(MAN8) $(MAN8DIR)
        $(INSTALLMAN) $(USRINFO) $(INFODIR)
 
 clean:
-       -rm -f *.o *~ core $(SBIN) $(BIN) $(USRBIN)
+       -rm -f *.o *~ core $(SBIN) $(BIN) $(USRBIN) $(USRSBIN)
diff --git a/sys-utils/README.linux68k b/sys-utils/README.linux68k
deleted file mode 100644 (file)
index ae63671..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-
-Here are the ports of the clock and kbdrate utilities that needed
-/dev/port in their original implementation. /dev/port does not exist
-under Linux/68k, so the needed functionalities are implemented as new
-ioctls in the kernel. The modified sources (in src/) first test if the
-kernel knows that ioctls. If it does, they are used. Else, /dev/port
-is tried the old way. The kernel patch necessary for clock and kbdrate
-is in kernel-patch/. (It is #14a of my patch list to 0.9pl4).
-
-Roman (Roman.Hodek@informatik.uni-erlangen.de)
-
index 9ce88db51df6e1cb8ae86403276568f226419705..3eaf4f3806ec240d6e85edf69404831e0e3e66bf 100644 (file)
@@ -16,7 +16,8 @@ On current Linux systems,
 prints things such as "i386", "i486", "i586", "alpha", "sparc",
 "arm", "m68k", "mips", "ppc".
 .SH SEE ALSO
-.BR uname (1) ", " uname (2)
+.BR uname (1),
+.BR uname (2)
 .\"
 .\" Details:
 .\" arch prints the machine part of the system_utsname struct
index c754fd0589f67a76a9da23324aac42b5d4a1344b..5a0ac9ffbc0733e32dc7c8f42b70ce7689948341 100644 (file)
@@ -2,19 +2,28 @@
  * ctrlaltdel.c - Set the function of the Ctrl-Alt-Del combination
  * Created 4-Jul-92 by Peter Orbaek <poe@daimi.aau.dk>
  * ftp://ftp.daimi.aau.dk/pub/linux/poe/
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ *
  */
 
 #include <stdio.h>
 #include <unistd.h>
 #include <string.h>
 #include "linux_reboot.h"
+#include "nls.h"
 
 int
 main(int argc, char *argv[]) {
 
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+       
+
        if(geteuid()) {
                fprintf(stderr,
-                   "You must be root to set the Ctrl-Alt-Del behaviour.\n");
+                   _("You must be root to set the Ctrl-Alt-Del behaviour.\n"));
                exit(1);
        }
 
@@ -29,7 +38,7 @@ main(int argc, char *argv[]) {
                        exit(1);
                }
        } else {
-               fprintf(stderr, "Usage: ctrlaltdel hard|soft\n");
+               fprintf(stderr, _("Usage: ctrlaltdel hard|soft\n"));
                exit(1);
        }
        exit(0);
index 510703b94f973aa30d5d4ca2e1064dac13abd7fc..a98b6a62550aad512e7a471673d496a837d10a56 100644 (file)
  *
  */
 
+ /*
+  * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+  * - added Native Language Support
+  * Sun Mar 21 1999 - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+  * - fixed strerr(errno) in gettext calls
+  */
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/types.h>
 #include <string.h>
 #include <fcntl.h>
 #include <errno.h>
+#include <signal.h>
 #include <linux/tty.h>
 #include <termios.h>
-#if 0
-#include <linux/tqueue.h>      /* required for old kernels */
+
+#include "../defines.h"                /* for NEED_tqueue_h */
+#ifdef NEED_tqueue_h
+#include <linux/tqueue.h>      /* required for old kernels (for struct tq_struct) */
                                /* compilation errors on other kernels */
 #endif
 #include <linux/cyclades.h>
-#include <signal.h>
 
 #if 0
 #ifndef XMIT
@@ -59,6 +68,8 @@
 # endif
 #endif
 #endif
+
+#include "nls.h"
                                /* Until it gets put in the kernel,
                                   toggle by hand. */
 #undef XMIT
@@ -104,9 +115,7 @@ void summary(int signal) {
     for(i = optind; i < argc; i ++) {
       j = i - optind;
       cc = &cmon[cmon_index];
-      fprintf(stderr, "File %s, For threshold value %lu, Maximum characters "
-             "in fifo were %d,\nand the maximum transfer rate in "
-             "characters/second was %f\n", 
+      fprintf(stderr, _("File %s, For threshold value %lu, Maximum characters in fifo were %d,\nand the maximum transfer rate in characters/second was %f\n"), 
              argv[i],
              cc->threshold_value,
              cc->maxmax,
@@ -117,10 +126,7 @@ void summary(int signal) {
   }
   cc = &cmon[cmon_index];
   if (cc->threshold_value > 0 && signal != -1) {
-    fprintf(stderr, "File %s, For threshold value %lu and timrout value %lu,"
-           " Maximum characters "
-           "in fifo were %d,\nand the maximum transfer rate in "
-           "characters/second was %f\n", 
+    fprintf(stderr, _("File %s, For threshold value %lu and timrout value %lu, Maximum characters in fifo were %d,\nand the maximum transfer rate in characters/second was %f\n"),
            argv[cmon_index+optind],
            cc->threshold_value,
            cc->timeout_value,
@@ -174,6 +180,10 @@ int main(int argc, char *argv[]) {
   global_argc = argc;          /* For signal routine. */
   global_argv = &argv;         /* For signal routine. */
 
+  setlocale(LC_ALL, "");
+  bindtextdomain(PACKAGE, LOCALEDIR);
+  textdomain(PACKAGE);
+
   while (EOF != (i = getopt(argc, argv, 
                            "qs:S:t:T:gGi:"))) {
     switch (i) {
@@ -183,7 +193,7 @@ int main(int argc, char *argv[]) {
     case 'i':
       interval = atoi(optarg);
       if(interval <= 0) {
-       fprintf(stderr, "Invalid interval value: %s\n",optarg);
+       fprintf(stderr, _("Invalid interval value: %s\n"),optarg);
        errflg ++;
       }
       break;
@@ -191,7 +201,7 @@ int main(int argc, char *argv[]) {
       ++set;
       set_val = atoi(optarg);
       if(set_val <= 0 || set_val > 12) {
-       fprintf(stderr, "Invalid set value: %s\n",optarg);
+       fprintf(stderr, _("Invalid set value: %s\n"),optarg);
        errflg ++;
       }
       break;
@@ -199,7 +209,7 @@ int main(int argc, char *argv[]) {
        ++set_def;
       set_def_val = atoi(optarg);
       if(set_def_val < 0 || set_def_val > 12) {
-       fprintf(stderr, "Invalid default value: %s\n",optarg);
+       fprintf(stderr, _("Invalid default value: %s\n"),optarg);
        errflg ++;
       }
       break;
@@ -207,7 +217,7 @@ int main(int argc, char *argv[]) {
       ++set_time;
       set_time_val = atoi(optarg);
       if(set_time_val <= 0 || set_time_val > 255) {
-       fprintf(stderr, "Invalid set time value: %s\n",optarg);
+       fprintf(stderr, _("Invalid set time value: %s\n"),optarg);
        errflg ++;
       }
       break;
@@ -215,7 +225,7 @@ int main(int argc, char *argv[]) {
        ++set_def_time;
       set_def_time_val = atoi(optarg);
       if(set_def_time_val < 0 || set_def_time_val > 255) {
-       fprintf(stderr, "Invalid default time value: %s\n",optarg);
+       fprintf(stderr, _("Invalid default time value: %s\n"),optarg);
        errflg ++;
       }
       break;
@@ -232,9 +242,7 @@ int main(int argc, char *argv[]) {
      (set && set_def) || (set_time && set_def_time) || 
      (get && get_def)) {
     fprintf(stderr, 
-           "Usage: %s [-q [-i interval]]"
-           " ([-s value]|[-S value]) ([-t value]|[-T value])"
-           " [-g|-G] file [file...]\n",
+           _("Usage: %s [-q [-i interval]] ([-s value]|[-S value]) ([-t value]|[-T value]) [-g|-G] file [file...]\n"),
            argv[0]);
     exit(1);
   }
@@ -245,14 +253,16 @@ int main(int argc, char *argv[]) {
     for(i = optind;i < argc;i ++) {
       file = open(argv[i],O_RDONLY);
       if(file == -1) {
-       fprintf(stderr, "Can't open %s: %s\n",argv[i],strerror(errno));
+        int errsv = errno;
+       fprintf(stderr, _("Can't open %s: %s\n"),argv[i],strerror(errsv));
        exit(1);
       }
       if(ioctl(file,
               set ? CYSETTHRESH : CYSETDEFTHRESH,
               set ? set_val : set_def_val)) {
-       fprintf(stderr, "Can't set %s to threshold %d: %s\n",
-               argv[i],set?set_val:set_def_val,strerror(errno));
+       int errsv = errno;
+       fprintf(stderr, _("Can't set %s to threshold %d: %s\n"),
+               argv[i],set?set_val:set_def_val,strerror(errsv));
        exit(1);
       }
     }
@@ -261,14 +271,16 @@ int main(int argc, char *argv[]) {
     for(i = optind;i < argc;i ++) {
       file = open(argv[i],O_RDONLY);
       if(file == -1) {
-       fprintf(stderr, "Can't open %s: %s\n",argv[i],strerror(errno));
+        int errsv = errno;
+       fprintf(stderr, _("Can't open %s: %s\n"),argv[i],strerror(errsv));
        exit(1);
       }
       if(ioctl(file,
               set_time ? CYSETTIMEOUT : CYSETDEFTIMEOUT,
               set_time ? set_time_val : set_def_time_val)) {
-       fprintf(stderr, "Can't set %s to time threshold %d: %s\n",
-               argv[i],set_time?set_time_val:set_def_time_val,strerror(errno));
+       int errsv = errno;
+       fprintf(stderr, _("Can't set %s to time threshold %d: %s\n"),
+               argv[i],set_time?set_time_val:set_def_time_val,strerror(errsv));
        exit(1);
       }
     }
@@ -278,24 +290,27 @@ int main(int argc, char *argv[]) {
     for(i = optind;i < argc;i ++) {
       file = open(argv[i],O_RDONLY);
       if(file == -1) {
-       fprintf(stderr, "Can't open %s: %s\n",argv[i],strerror(errno));
+        int errsv = errno;
+       fprintf(stderr, _("Can't open %s: %s\n"),argv[i],strerror(errsv));
        exit(1);
       }
       if(ioctl(file, get ? CYGETTHRESH : CYGETDEFTHRESH, &threshold_value)) {
-       fprintf(stderr, "Can't get threshold for %s: %s\n",
-               argv[i],strerror(errno));
+        int errsv = errno;
+       fprintf(stderr, _("Can't get threshold for %s: %s\n"),
+               argv[i],strerror(errsv));
        exit(1);
       }
       if(ioctl(file, get ? CYGETTIMEOUT : CYGETDEFTIMEOUT, &timeout_value)) {
-       fprintf(stderr, "Can't get timeout for %s: %s\n",
-               argv[i],strerror(errno));
+       int errsv = errno;
+       fprintf(stderr, _("Can't get timeout for %s: %s\n"),
+               argv[i],strerror(errsv));
        exit(1);
       }
-      printf("%s: %ld %s threshold and %ld %s timeout\n",
+      printf(_("%s: %ld %s threshold and %ld %s timeout\n"),
             argv[i], threshold_value, 
-            get?"current":"default",
+            get?_("current"):_("default"),
             timeout_value,
-            get?"current":"default");
+            get?_("current"):_("default"));
     }
   }
 
@@ -306,40 +321,44 @@ int main(int argc, char *argv[]) {
   cmon = (struct cyclades_control *) malloc(sizeof (struct cyclades_control)
                                            * numfiles);
   if(!cmon) {
-    perror("malloc failed");
+    perror(_("malloc failed"));
     exit(1);
   }
   if(signal(SIGINT, summary)||
      signal(SIGQUIT, summary)||
      signal(SIGTERM, summary)) {
-    perror("Can't set signal handler");
+    perror(_("Can't set signal handler"));
     exit(1);
   }
   if(gettimeofday(&lasttime,&tz)) {
-    perror("gettimeofday failed");
+    perror(_("gettimeofday failed"));
     exit(1);
   }
   for(i = optind; i < argc; i ++) {
     cmon_index = i - optind;
     cmon[cmon_index].cfile = open(argv[i], O_RDONLY);
     if(-1 == cmon[cmon_index].cfile) {
-      fprintf(stderr, "Can't open %s: %s\n",argv[i],strerror(errno));
+      int errsv = errno;
+      fprintf(stderr, _("Can't open %s: %s\n"),argv[i],strerror(errsv));
       exit(1);
     }
     if(ioctl(cmon[cmon_index].cfile, CYGETMON, &cmon[cmon_index].c)) {
-      fprintf(stderr, "Can't issue CYGETMON on %s: %s\n",
-             argv[i],strerror(errno));
+      int errsv = errno;
+      fprintf(stderr, _("Can't issue CYGETMON on %s: %s\n"),
+             argv[i],strerror(errsv));
       exit(1);
     }
     summary(-1);
     if(ioctl(cmon[cmon_index].cfile, CYGETTHRESH, &threshold_value)) {
-      fprintf(stderr, "Can't get threshold for %s: %s\n",
-             argv[i],strerror(errno));
+      int errsv = errno;
+      fprintf(stderr, _("Can't get threshold for %s: %s\n"),
+             argv[i],strerror(errsv));
       exit(1);
     }
     if(ioctl(cmon[cmon_index].cfile, CYGETTIMEOUT, &timeout_value)) {
-      fprintf(stderr, "Can't get timeout for %s: %s\n",
-             argv[i],strerror(errno));
+      int errsv = errno;
+      fprintf(stderr, _("Can't get timeout for %s: %s\n"),
+             argv[i],strerror(errsv));
       exit(1);
     }
   }
@@ -347,7 +366,7 @@ int main(int argc, char *argv[]) {
     sleep(interval);
     
     if(gettimeofday(&thistime,&tz)) {
-      perror("gettimeofday failed");
+      perror(_("gettimeofday failed"));
       exit(1);
     }
     diff = dtime(&thistime, &lasttime);
@@ -356,18 +375,21 @@ int main(int argc, char *argv[]) {
     for(i = optind; i < argc; i ++) {
       cmon_index = i - optind;
       if(ioctl(cmon[cmon_index].cfile, CYGETMON, &cywork)) {
-       fprintf(stderr, "Can't issue CYGETMON on %s: %s\n",
-               argv[i],strerror(errno));
+        int errsv = errno;
+       fprintf(stderr, _("Can't issue CYGETMON on %s: %s\n"),
+               argv[i],strerror(errsv));
        exit(1);
       }
       if(ioctl(cmon[cmon_index].cfile, CYGETTHRESH, &threshold_value)) {
-       fprintf(stderr, "Can't get threshold for %s: %s\n",
-               argv[i],strerror(errno));
+        int errsv = errno;
+       fprintf(stderr, _("Can't get threshold for %s: %s\n"),
+               argv[i],strerror(errsv));
        exit(1);
       }
       if(ioctl(cmon[cmon_index].cfile, CYGETTIMEOUT, &timeout_value)) {
-       fprintf(stderr, "Can't get timeout for %s: %s\n",
-               argv[i],strerror(errno));
+        int errsv = errno;
+       fprintf(stderr, _("Can't get timeout for %s: %s\n"),
+               argv[i],strerror(errsv));
        exit(1);
       }
 
@@ -396,26 +418,24 @@ int main(int argc, char *argv[]) {
       }
 
 #ifdef XMIT
-      printf("%s: %lu ints, %lu/%lu chars; "
-            "fifo: %lu thresh, %lu tmout, "
-            "%lu max, %lu now\n",
+      printf(_("%s: %lu ints, %lu/%lu chars; ")
+            _("fifo: %lu thresh, %lu tmout, ")
+            _("%lu max, %lu now\n"),
             argv[i],
             cywork.int_count,cywork.char_count,cywork.send_count,
             threshold_value,timeout_value,
             cywork.char_max,cywork.char_last);
-      printf("   %f int/sec; %f rec, %f send (char/sec)\n",
+      printf(_("   %f int/sec; %f rec, %f send (char/sec)\n"),
             cywork.int_count/diff,
             xfer_rate,
             xmit_rate);
 #else
-      printf("%s: %lu ints, %lu chars; "
-            "fifo: %lu thresh, %lu tmout, "
-            "%lu max, %lu now\n",
+      printf(_("%s: %lu ints, %lu chars; fifo: %lu thresh, %lu tmout, %lu max, %lu now\n"),
             argv[i],
             cywork.int_count,cywork.char_count,
             threshold_value,timeout_value,
             cywork.char_max,cywork.char_last);
-      printf("   %f int/sec; %f rec (char/sec)\n",
+      printf(_("   %f int/sec; %f rec (char/sec)\n"),
             cywork.int_count/diff,
             xfer_rate);
 #endif
index bfb488f96367c8fd1753b4b8b63e4e59fa95a003..a1026af63179e6dae31f83cad0d0acffea1e45dc 100644 (file)
@@ -6,12 +6,16 @@
  * Modifications by Rick Sladkey (jrs@world.std.com)
  * Larger buffersize 3 June 1998 by Nicolai Langfeldt, based on a patch
  * by Peeter Joot.  This was also suggested by John Hudson.
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ *
  */
 
 #include <linux/unistd.h>
 #include <stdio.h>
 #include <getopt.h>
 #include <stdlib.h>
+#include "nls.h"
 
 #if __GNU_LIBRARY__ < 5
 
@@ -31,7 +35,7 @@ static char *progname;
 void
 usage()
 {
-   fprintf( stderr, "Usage: %s [-c] [-n level] [-s bufsize]\n", progname );
+   fprintf( stderr, _("Usage: %s [-c] [-n level] [-s bufsize]\n"), progname );
 }
 
 int main( int argc, char *argv[] )
@@ -45,6 +49,10 @@ int main( int argc, char *argv[] )
    int  lastc;
    int  cmd = 3;
 
+   setlocale(LC_ALL, "");
+   bindtextdomain(PACKAGE, LOCALEDIR);
+   textdomain(PACKAGE);
+
    progname = argv[0];
    while ((c = getopt( argc, argv, "cn:s:" )) != EOF) {
       switch (c) {
diff --git a/sys-utils/hwclock.c b/sys-utils/hwclock.c
deleted file mode 100644 (file)
index 02302da..0000000
+++ /dev/null
@@ -1,2151 +0,0 @@
-/**************************************************************************
-                                hwclock
-***************************************************************************
-
-  This is a program for reading and setting the Hardware Clock on an ISA
-  family computer.  This is the clock that is also known as the RTC,
-  real time clock, or, unfortunately, the CMOS clock.
-
-  See man page for details.
-
-  By Bryan Henderson, 96.09.19.  bryanh@giraffe-data.com
-
-  Based on work by others; see history at end of source code.
-
-**************************************************************************/
-/**************************************************************************
-  Maintenance notes
-
-  To compile this, you must use GNU compiler optimization (-O option)
-  in order to make the "extern inline" functions from asm/io.h (inb(),
-  etc.)  compile.  If you don't optimize, which means the compiler
-  will generate no inline functions, the references to these functions
-  in this program will be compiled as external references.  Since you
-  probably won't be linking with any functions by these names, you will
-  have unresolved external references when you link.
-  
-  The program is designed to run setuid superuser, since we need to be
-  able to do direct I/O.  (More to the point: we need permission to 
-  execute the iopl() system call).  (However, if you use one of the 
-  methods other than direct ISA I/O to access the clock, no setuid is
-  required).
-  Here's some info on how we must deal with the time that elapses while
-  this program runs: There are two major delays as we run:
-
-    1) Waiting up to 1 second for a transition of the Hardware Clock so
-       we are synchronized to the Hardware Clock.
-
-    2) Running the "date" program to interpret the value of our --date
-       option.
-
-  Reading the /etc/adjtime file is the next biggest source of delay and
-  uncertainty.
-
-  The user wants to know what time it was at the moment he invoked us,
-  not some arbitrary time later.  And in setting the clock, he is
-  giving us the time at the moment we are invoked, so if we set the
-  clock some time later, we have to add some time to that.
-
-  So we check the system time as soon as we start up, then run "date"
-  and do file I/O if necessary, then wait to synchronize with a
-  Hardware Clock edge, then check the system time again to see how
-  much time we spent.  We immediately read the clock then and (if 
-  appropriate) report that time, and additionally, the delay we measured.
-
-  If we're setting the clock to a time given by the user, we wait some
-  more so that the total delay is an integral number of seconds, then
-  set the Hardware Clock to the time the user requested plus that
-  integral number of seconds.  N.B. The Hardware Clock can only be set
-  in integral seconds.
-
-  If we're setting the clock to the system clock value, we wait for
-  the system clock to reach the top of a second, and then set the
-  Hardware Clock to the system clock's value.
-
-  Here's an interesting point about setting the Hardware Clock:  On my
-  machine, when you set it, it sets to that precise time.  But one can
-  imagine another clock whose update oscillator marches on a steady one
-  second period, so updating the clock between any two oscillator ticks
-  is the same as updating it right at the earlier tick.  To avoid any
-  complications that might cause, we set the clock as soon as possible
-  after an oscillator tick.
-
-  
-  About synchronizing to the Hardware Clock when reading the time: The
-  precision of the Hardware Clock counters themselves is one second.
-  You can't read the counters and find out that is 12:01:02.5.  But if
-  you consider the location in time of the counter's ticks as part of
-  its value, then its precision is as infinite as time is continuous!
-  What I'm saying is this: To find out the _exact_ time in the
-  hardware clock, we wait until the next clock tick (the next time the
-  second counter changes) and measure how long we had to wait.  We
-  then read the value of the clock counters and subtract the wait time
-  and we know precisely what time it was when we set out to query the
-  time.
-
-  hwclock uses this method, and considers the Hardware Clock to have
-  infinite precision.
-
-
-  Enhancements needed:
-
-   - When waiting for whole second boundary in set_hardware_clock_exact,
-     fail if we miss the goal by more than .1 second, as could happen if
-     we get pre-empted (by the kernel dispatcher).
-
-****************************************************************************/ 
-
-#include <string.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <time.h>
-#include <sys/time.h>
-#include <sys/stat.h>
-#ifdef __i386__
-#include <asm/io.h>            /* for inb, outb */
-#endif
-#include <shhopt.h>
-#include "../version.h"
-
-#define MYNAME "hwclock"
-#define VERSION "2.4"
-
-#define FLOOR(arg) ((arg >= 0 ? (int) arg : ((int) arg) - 1));
-
-/* Here the information for time adjustments is kept. */
-#define ADJPATH "/etc/adjtime"
-
-/* Note that we must define the boolean type as int because we use the
-   shhopt option processing library which, unfortunately, returns flag
-   options as integers.  It is customary to define bool as char, but 
-   then we would have to do a lot of conversion in order to interface
-   with shhopt.
-*/
-typedef int bool;
-#define TRUE 1
-#define FALSE 0
-
-struct adjtime {
-  /* This is information we keep in the adjtime file that tells us how
-     to do drift corrections.  Elements are all straight from the
-     adjtime file, so see documentation of that file for details.
-     Exception is <dirty>, which is an indication that what's in this
-     structure is not what's in the disk file (because it has been
-     updated since read from the disk file).  
-     */
-  bool dirty;        
-  float drift_factor;    
-  time_t last_adj_time;
-  float not_adjusted;
-  time_t last_calib_time;
-};
-
-
-enum clock_access_method {ISA, RTC_IOCTL, KD, NOCLOCK};
-  /* A method for accessing (reading, writing) the hardware clock:
-     
-     ISA: 
-       via direct CPU I/O instructions that work on an ISA family
-       machine (IBM PC compatible).
-
-     RTC_IOCTL: 
-       via the rtc device driver, using device special file /dev/rtc.
-
-     KD:
-       via the console driver, using device special file /dev/tty1.
-       This is the m68k ioctl interface, known as KDGHWCLK.
-
-     NO_CLOCK:
-       Unable to determine a usable access method for the system clock.
-   */
-       
-#ifdef __i386__
-/* The following are just constants.  Oddly, this program will not
-   compile if the inb() and outb() functions use something even
-   slightly different from these variables.  This is probably at least
-   partially related to the fact that __builtin_constant_p() doesn't
-   work (is never true) in an inline function.  See comment to this 
-   effect in asm/io.h. 
-*/
-static unsigned short clock_ctl_addr = 0x70;
-static unsigned short clock_data_addr = 0x71;
-#endif
-
-bool debug;
-  /* We are running in debug mode, wherein we put a lot of information about
-     what we're doing to standard output.  Because of the pervasive and yet
-     background nature of this value, this is a global variable.  */
-
-bool interrupts_enabled;
-  /* Interrupts are enabled as normal.  We, unfortunately, turn interrupts
-     on the machine off in some places where we do the direct ISA accesses
-     to the Hardware Clock.  It is in extremely poor form for a user space
-     program to do this, but that's the price we have to pay to run on an
-     ISA machine without the rtc driver in the kernel.
-
-     Code which turns interrupts off uses this value to determine if they
-     need to be turned back on.
-     */
-
-#include <linux/version.h>
-/* Check if the /dev/rtc interface is available in this version of
-   the system headers.  131072 is linux 2.0.0.  Might need to make
-   it conditional on i386 or something too -janl */
-#if LINUX_VERSION_CODE >= 131072
-#include <linux/mc146818rtc.h>
-#include <linux/kd.h>
-static const bool got_rtc = TRUE;
-#else
-static const bool got_rtc = FALSE;
-/* Dummy definitions to make it compile.  If any lines containing these
-   macros ever execute, there is a bug in the code.
-   */
-#define RTC_SET_TIME -1
-#define RTC_RD_TIME -1
-#define RTC_UIE_ON -1
-#define RTC_UIE_OFF -1
-#endif
-
-/* The RTC_EPOCH_READ and RTC_EPOCH_SET macros are supposed to be
-   defined by linux/mc146818rtc.h, included above.  However, these are
-   recent inventions and at the time of this writing, not in any
-   official Linux.  Since these values aren't even necessary for most
-   uses of hwclock, we don't want compilation to depend on the user 
-   having some arcane version of this header file on his system.  Thus,
-   we define the macros ourselves if the header file failed to do so.
-   98.03.03.
-*/
-   
-#ifndef RTC_EPOCH_READ
-#define RTC_EPOCH_READ _IOR('p', 0x0d, unsigned long)   /* Read epoch      */
-  /* Not all kernels have this ioctl */
-#endif
-
-#ifndef RTC_EPOCH_SET
-#define RTC_EPOCH_SET  _IOW('p', 0x0e, unsigned long)   /* Set epoch       */
-  /* Not all kernels have this ioctl */
-#endif
-
-
-#if defined(KDGHWCLK)
-static const bool got_kdghwclk = TRUE;
-static const int kdghwclk_ioctl = KDGHWCLK;
-static const int kdshwclk_ioctl = KDSHWCLK;
-#else
-static const bool got_kdghwclk = FALSE;
-static const int kdghwclk_ioctl;  /* Never used; just to make compile work */
-struct hwclk_time {int sec;};  
-  /* Never used; just to make compile work */
-#endif
-
-
-/* We're going to assume that if the CPU is in the Intel x86 family, 
-   this is an ISA family machine.  For all practical purposes, this is 
-   the case at the time of this writing, especially after we assume a
-   Linux kernel is running on it.
-   */
-const bool isa_machine = 
-#ifdef __i386__
-TRUE
-#else
-FALSE;
-#endif
-;
-
-const bool alpha_machine = 
-#ifdef __alpha__
-TRUE
-#else
-FALSE;
-#endif
-;
-
-
-
-static int
-i386_iopl(const int level) {
-/*----------------------------------------------------------------------------
-   When compiled for an Intel target, this is just the iopl() kernel call.
-   When compiled for any other target, this is a dummy function.
-
-   We do it this way in order to keep the conditional compilation stuff
-   out of the way so it doesn't mess up readability of the code.
------------------------------------------------------------------------------*/
-#ifdef __i386__
-  extern int iopl(const int level);
-  return iopl(level);
-#else
-  return -1;
-#endif
-}
-
-
-
-static float 
-time_diff(struct timeval subtrahend, struct timeval subtractor) {
-/*---------------------------------------------------------------------------
-  The difference in seconds between two times in "timeval" format.
-----------------------------------------------------------------------------*/
-  return( (subtrahend.tv_sec - subtractor.tv_sec)
-           + (subtrahend.tv_usec - subtractor.tv_usec) / 1E6 );
-}
-
-
-static struct timeval
-time_inc(struct timeval addend, float increment) {
-/*----------------------------------------------------------------------------
-  The time, in "timeval" format, which is <increment> seconds after
-  the time <addend>.  Of course, <increment> may be negative.
------------------------------------------------------------------------------*/
-  struct timeval newtime;
-
-  newtime.tv_sec = addend.tv_sec + (int) increment;
-  newtime.tv_usec = addend.tv_usec + (increment - (int) increment) * 1E6;
-
-  /* Now adjust it so that the microsecond value is between 0 and 1 million */
-  if (newtime.tv_usec < 0) {
-    newtime.tv_usec += 1E6;
-    newtime.tv_sec -= 1;
-  } else if (newtime.tv_usec >= 1E6) {
-    newtime.tv_usec -= 1E6;
-    newtime.tv_sec += 1;
-  }
-  return(newtime);
-}
-
-
-
-static inline unsigned char 
-hclock_read(unsigned char reg) {
-/*---------------------------------------------------------------------------
-  Relative byte <reg> of the Hardware Clock value.
-
-  On non-ISA machine, just return 0.
----------------------------------------------------------------------------*/
-  register unsigned char ret;
-#ifdef __i386__
-  const bool interrupts_were_enabled = interrupts_enabled;
-
-  __asm__ volatile ("cli");
-  interrupts_enabled = FALSE;
-  /* & 0x7f ensures that we are not disabling NMI while we read.
-     Setting on Bit 7 here would disable NMI
-     */
-  outb(reg & 0x7f, clock_ctl_addr);
-  ret = inb(clock_data_addr);
-  if (interrupts_were_enabled) {
-    __asm__ volatile ("sti");
-    interrupts_enabled = TRUE;
-  }
-#else
-  ret = 0;  
-#endif
-  return ret;
-}
-
-
-
-static inline void 
-hclock_write(unsigned char reg, unsigned char val) {
-/*----------------------------------------------------------------------------
-  Set relative byte <reg> of the Hardware Clock value to <val>.
-
-  On non-ISA machine, do nothing.
-----------------------------------------------------------------------------*/
-#ifdef __i386__
-  /* & 0x7f ensures that we are not disabling NMI while we read.
-     Setting on Bit 7 here would disable NMI
-     */
-  outb(reg & 0x7f, clock_ctl_addr);
-  outb(val, clock_data_addr);
-#endif
-}
-
-
-
-static inline int 
-hclock_read_bcd (int addr) {
-  int b;
-  b = hclock_read(addr);
-  return (b & 15) + (b >> 4) * 10;
-}
-
-static inline void 
-hclock_write_bcd(int addr, int value) {
-  hclock_write(addr, ((value / 10) << 4) + value % 10);
-}
-
-
-static void
-read_adjtime(struct adjtime *adjtime_p, int *rc_p) {
-/*----------------------------------------------------------------------------
-  Read the adjustment parameters out of the /etc/adjtime file.
-
-  Return them as the adjtime structure <*adjtime_p>.
-
-  If there is no /etc/adjtime file, return defaults.
-  If values are missing from the file, return defaults for them.
-  
-  return *rc_p = 0 if all OK, !=0 otherwise.
-
------------------------------------------------------------------------------*/
-  FILE *adjfile;
-  int rc;  /* local return code */
-  struct stat statbuf;  /* We don't even use the contents of this. */
-
-  rc = stat(ADJPATH, &statbuf);
-  if (rc < 0 && errno == ENOENT) {
-    /* He doesn't have a adjtime file, so we'll use defaults. */
-    adjtime_p->drift_factor = 0;
-    adjtime_p->last_adj_time = 0;
-    adjtime_p->not_adjusted = 0;
-    adjtime_p->last_calib_time = 0;
-
-    *rc_p = 0;
-  } else { 
-    adjfile = fopen(ADJPATH, "r");   /* open file for reading */
-    if (adjfile == NULL) {
-      const int fopen_errno = errno;
-      fprintf(stderr, MYNAME " is unable to open file " ADJPATH ".  "
-              "fopen() errno=%d:%s", fopen_errno, strerror(fopen_errno));
-      *rc_p = 2;
-    } else {
-      char line1[81];           /* String: first line of adjtime file */
-      char line2[81];           /* String: second line of adjtime file */
-      
-      line1[0] = '\0';          /* In case fgets fails */
-      fgets(line1, sizeof(line1), adjfile);
-      line2[0] = '\0';          /* In case fgets fails */
-      fgets(line2, sizeof(line2), adjfile);
-      
-      fclose(adjfile);
-      
-      /* Set defaults in case values are missing from file */
-      adjtime_p->drift_factor = 0;
-      adjtime_p->last_adj_time = 0;
-      adjtime_p->not_adjusted = 0;
-      adjtime_p->last_calib_time = 0;
-      
-      sscanf(line1, "%f %d %f", 
-             &adjtime_p->drift_factor,
-             (int *) &adjtime_p->last_adj_time, 
-             &adjtime_p->not_adjusted);
-      
-      sscanf(line2, "%d", (int *) &adjtime_p->last_calib_time);
-      
-      *rc_p = 0;
-    }
-    adjtime_p->dirty = FALSE;
-
-    if (debug) {
-      printf("Last drift adjustment done at %d seconds after 1969\n", 
-             (int) adjtime_p->last_adj_time);
-      printf("Last calibration done at %d seconds after 1969\n",
-             (int) adjtime_p->last_calib_time);
-    }
-  }
-}
-
-
-
-static void
-synchronize_to_clock_tick_ISA(int *retcode_p) {
-/*----------------------------------------------------------------------------
-  Same as synchronize_to_clock_tick(), but just for ISA.
------------------------------------------------------------------------------*/
-  int i;  /* local loop index */
-
-  /* Wait for rise.  Should be within a second, but in case something
-     weird happens, we have a limit on this loop to reduce the impact
-     of this failure.
-     */
-  for (i = 0; !(hclock_read(10) & 0x80) && (i < 10000000); i++);
-  if (i >= 10000000) *retcode_p = 1;
-  else { 
-    /* Wait for fall.  Should be within 2.228 ms. */
-    for (i = 0; (hclock_read(10) & 0x80) && (i < 1000000); i++);
-    if (i >= 10000000) *retcode_p = 1;
-    else *retcode_p = 0;
-  }
-}
-
-
-
-static void
-busywait_for_rtc_clock_tick(const int rtc_fd, int *retcode_p) {
-/*----------------------------------------------------------------------------
-   Wait for the top of a clock tick by reading /dev/rtc in a busy loop until
-   we see it.  
------------------------------------------------------------------------------*/
-  struct tm start_time;
-    /* The time when we were called (and started waiting) */
-  int rc;
-
-  if (debug)
-    printf("Waiting in loop for time from /dev/rtc to change\n");
-
-  rc = ioctl(rtc_fd, RTC_RD_TIME, &start_time);
-  if (rc == -1) {
-    fprintf(stderr, "ioctl() to /dev/rtc to read time failed, "
-            "errno = %s (%d).\n", strerror(errno), errno);
-    *retcode_p = 1;
-  } else {
-    /* Wait for change.  Should be within a second, but in case something
-       weird happens, we have a limit on this loop to reduce the impact
-       of this failure.
-       */
-    struct tm nowtime;
-    int i;  /* local loop index */
-    int rc;  /* Return code from ioctl */
-
-    for (i = 0; 
-         (rc = ioctl(rtc_fd, RTC_RD_TIME, &nowtime)) != -1
-         && start_time.tm_sec == nowtime.tm_sec && i < 1000000; 
-         i++);
-    if (i >= 1000000) {
-      fprintf(stderr, "Timed out waiting for time change.\n");
-      *retcode_p = 2;
-    } else if (rc == -1) {
-      fprintf(stderr, "ioctl() to /dev/rtc to read time failed, "
-              "errno = %s (%d).\n", strerror(errno), errno);
-      *retcode_p = 3;
-    } else *retcode_p = 0;
-  }
-}
-
-
-
-static void
-synchronize_to_clock_tick_RTC(int *retcode_p) {
-/*----------------------------------------------------------------------------
-  Same as synchronize_to_clock_tick(), but just for /dev/rtc.
------------------------------------------------------------------------------*/
-int rtc_fd;  /* File descriptor of /dev/rtc */
-
-  rtc_fd = open("/dev/rtc",O_RDONLY);
-  if (rtc_fd == -1) {
-    fprintf(stderr, "open() of /dev/rtc failed, errno = %s (%d).\n",
-            strerror(errno), errno);
-    *retcode_p = 1;
-  } else {
-    int rc;  /* Return code from ioctl */
-    /* Turn on update interrupts (one per second) */
-    rc = ioctl(rtc_fd, RTC_UIE_ON, 0);
-    if (rc == -1 && errno == EINVAL) {
-      /* This rtc device doesn't have interrupt functions.  This is typical
-         on an Alpha, where the Hardware Clock interrupts are used by the
-         kernel for the system clock, so aren't at the user's disposal.
-         */
-      if (debug) printf("/dev/rtc does not have interrupt functions. ");
-      busywait_for_rtc_clock_tick(rtc_fd, retcode_p);
-    } else if (rc != -1) {
-      int rc;  /* return code from ioctl */
-      unsigned long dummy;
-
-      /* this blocks until the next update interrupt */
-      rc = read(rtc_fd, &dummy, sizeof(dummy));
-      if (rc == -1) {
-        fprintf(stderr, "read() to /dev/rtc to wait for clock tick failed, "
-                "errno = %s (%d).\n", strerror(errno), errno);
-        *retcode_p = 1;
-      } else {
-        *retcode_p = 0;
-      }
-      /* Turn off update interrupts */
-      rc = ioctl(rtc_fd, RTC_UIE_OFF, 0);
-      if (rc == -1) {
-        fprintf(stderr, "ioctl() to /dev/rtc to turn off update interrupts "
-                "failed, errno = %s (%d).\n", strerror(errno), errno);
-      }
-    } else {
-      fprintf(stderr, "ioctl() to /dev/rtc to turn on update interrupts "
-              "failed unexpectedly, errno = %s (%d).\n", 
-              strerror(errno), errno);
-      *retcode_p = 1;
-    }
-    close(rtc_fd);
-  }
-}
-
-
-
-static void
-synchronize_to_clock_tick_KD(int *retcode_p) {
-/*----------------------------------------------------------------------------
-   Wait for the top of a clock tick by calling KDGHWCLK in a busy loop until
-   we see it.  
------------------------------------------------------------------------------*/
-  int con_fd;
-
-  if (debug)
-    printf("Waiting in loop for time from KDGHWCLK to change\n");
-
-  con_fd = open("/dev/tty1", O_RDONLY);
-  if (con_fd < 0) {
-    fprintf(stderr, "open() failed to open /dev/tty1, errno = %s (%d).\n",
-            strerror(errno), errno);
-    *retcode_p = 1;
-  } else {
-    int rc;  /* return code from ioctl() */
-    int i;  /* local loop index */
-    /* The time when we were called (and started waiting) */
-       struct hwclk_time start_time, nowtime;
-
-       rc = ioctl(con_fd, kdghwclk_ioctl, &start_time);
-       if (rc == -1) {
-      fprintf(stderr, "KDGHWCLK to read time failed, "
-              "errno = %s (%d).\n", strerror(errno), errno);
-      *retcode_p = 3;
-    }
-       
-    for (i = 0; 
-         (rc = ioctl(con_fd, kdghwclk_ioctl, &nowtime)) != -1
-         && start_time.sec == nowtime.sec && i < 1000000; 
-         i++);
-    if (i >= 1000000) {
-      fprintf(stderr, "Timed out waiting for time change.\n");
-      *retcode_p = 2;
-    } else if (rc == -1) {
-      fprintf(stderr, "KDGHWCLK to read time failed, "
-              "errno = %s (%d).\n", strerror(errno), errno);
-      *retcode_p = 3;
-    } else *retcode_p = 0;
-    close(con_fd);
-  }
-}
-
-
-
-static void
-synchronize_to_clock_tick(enum clock_access_method clock_access,
-                          int *retcode_p) {
-/*-----------------------------------------------------------------------------
-  Wait until the falling edge of the Hardware Clock's update flag so
-  that any time that is read from the clock immediately after we
-  return will be exact.
-
-  The clock only has 1 second precision, so it gives the exact time only
-  once per second, right on the falling edge of the update flag.
-
-  We wait (up to one second) either blocked waiting for an rtc device
-  or in a CPU spin loop.  The former is probably not very accurate.  
-
-  For the KD clock access method, we have no way to synchronize, so we
-  just return immediately.  This will mess some things up, but it's the
-  best we can do.
-
-  Return *retcode_p == 0 if it worked, nonzero if it didn't.
-
------------------------------------------------------------------------------*/
-  if (debug) printf("Waiting for clock tick...\n");
-
-  switch (clock_access) {
-  case ISA: synchronize_to_clock_tick_ISA(retcode_p); break;
-  case RTC_IOCTL: synchronize_to_clock_tick_RTC(retcode_p); break;
-  case KD: synchronize_to_clock_tick_KD(retcode_p); break;
-  default:
-    fprintf(stderr, "Internal error in synchronize_to_clock_tick.  Invalid "
-            "value for clock_access argument.\n");
-    *retcode_p = 1;
-  }
-  if (debug) printf("...got clock tick\n");
-  return;
-}
-
-
-
-static void
-mktime_tz(struct tm tm, const bool universal, 
-          bool *valid_p, time_t *systime_p) {
-/*-----------------------------------------------------------------------------
-  Convert a time in broken down format (hours, minutes, etc.) into standard
-  unix time (seconds into epoch).  Return it as *systime_p.
-
-  The broken down time is argument <tm>.  This broken down time is either in
-  local time zone or UTC, depending on value of logical argument "universal".
-  True means it is in UTC.
-
-  If the argument contains values that do not constitute a valid time,
-  and mktime() recognizes this, return *valid_p == false and
-  *systime_p undefined.  However, mktime() sometimes goes ahead and
-  computes a fictional time "as if" the input values were valid,
-  e.g. if they indicate the 31st day of April, mktime() may compute
-  the time of May 1.  In such a case, we return the same fictional
-  value mktime() does as *systime_p and return *valid_p == true.
-
------------------------------------------------------------------------------*/
-  time_t mktime_result;  /* The value returned by our mktime() call */
-  char *zone;       /* Local time zone name */
-
-  /* We use the C library function mktime(), but since it only works on 
-     local time zone input, we may have to fake it out by temporarily 
-     changing the local time zone to UTC.
-     */
-  zone = (char *) getenv("TZ");        /* remember original time zone */
-
-  if (universal) {
-    /* Set timezone to UTC */
-    setenv("TZ", "", TRUE);
-    /* Note: tzset() gets called implicitly by the time code, but only the
-       first time.  When changing the environment variable, better call
-       tzset() explicitly.
-       */
-    tzset();
-  }
-  mktime_result = mktime(&tm);
-  if (mktime_result == -1) {
-    /* This apparently (not specified in mktime() documentation) means
-       the 'tm' structure does not contain valid values (however, not
-       containing valid values does _not_ imply mktime() returns -1).
-       */
-    *valid_p = FALSE;
-    *systime_p = 0;
-    if (debug)
-      printf("Invalid values in hardware clock: "
-             "%2d/%.2d/%.2d %.2d:%.2d:%.2d\n",
-             tm.tm_year, tm.tm_mon+1, tm.tm_mday,
-             tm.tm_hour, tm.tm_min, tm.tm_sec
-             );
-  } else {
-    *valid_p = TRUE;
-    *systime_p = mktime_result;
-    if (debug) 
-      printf("Hw clock time : %.2d:%.2d:%.2d = %d seconds since 1969\n", 
-             tm.tm_hour, tm.tm_min, tm.tm_sec, (int) *systime_p);
-  }
-  /* now put back the original zone.  */
-  if (zone) setenv("TZ", zone, TRUE);
-  else unsetenv("TZ");
-  tzset();
-}
-
-
-
-static void
-read_hardware_clock_kd(struct tm *tm) {
-/*----------------------------------------------------------------------------
-  Read the hardware clock and return the current time via <tm>
-  argument.  Use ioctls to /dev/tty1 on what we assume is an m68k
-  machine.
-  
-  Note that we don't use /dev/console here.  That might be a serial
-  console.
------------------------------------------------------------------------------*/
-#ifdef KDGHWCLK
-  int con_fd;
-  struct hwclk_time t;
-
-  con_fd = open("/dev/tty1", O_RDONLY);
-  if (con_fd < 0) {
-    fprintf(stderr, "open() failed to open /dev/tty1, errno = %s (%d).\n",
-            strerror(errno), errno);
-    exit(5);
-  } else {
-    int rc;  /* return code from ioctl() */
-
-    rc = ioctl(con_fd, kdghwclk_ioctl, &t);
-    if (rc == -1) {
-      fprintf(stderr, "ioctl() failed to read time from  /dev/tty1, "
-              "errno = %s (%d).\n",
-              strerror(errno), errno);
-      exit(5);
-    }
-    close(con_fd);
-  }
-
-  tm->tm_sec  = t.sec;
-  tm->tm_min  = t.min;
-  tm->tm_hour = t.hour;
-  tm->tm_mday = t.day;
-  tm->tm_mon  = t.mon;
-  tm->tm_year = t.year;
-  tm->tm_wday = t.wday;
-  tm->tm_isdst = -1;     /* Don't know if it's Daylight Savings Time */
-#else
-  /* This routine should never be invoked.  It is here just to make the
-     program compile.
-     */
-#endif
-}
-
-
-
-static void
-read_hardware_clock_rtc_ioctl(struct tm *tm) {
-/*----------------------------------------------------------------------------
-  Read the hardware clock and return the current time via <tm>
-  argument.  Use ioctls to "rtc" device /dev/rtc.
------------------------------------------------------------------------------*/
-#if defined(_MC146818RTC_H)
-  int rc;   /* Local return code */
-  int rtc_fd;  /* File descriptor of /dev/rtc */
-
-  rtc_fd = open("/dev/rtc",O_RDONLY);
-  if (rtc_fd == -1) {
-    fprintf(stderr, "open() of /dev/rtc failed, errno = %s (%d).\n",
-            strerror(errno), errno);
-    exit(5);
-  } else {
-    /* Read the RTC time/date */
-    rc = ioctl(rtc_fd, RTC_RD_TIME, tm);
-    if (rc == -1) {
-      fprintf(stderr, "ioctl() to /dev/rtc to read the time failed, "
-              "errno = %s (%d).\n", strerror(errno), errno);
-      exit(5);
-    }
-    close(rtc_fd);
-  }
-  tm->tm_isdst = -1;          /* don't know whether it's daylight */
-#else
-  /* This function should never be called.  It exists just to make the 
-     program compile.
-     */
-#endif
-}
-
-
-
-static void
-read_hardware_clock_isa(struct tm *tm) {
-/*----------------------------------------------------------------------------
-  Read the hardware clock and return the current time via <tm> argument.
-  Assume we have an ISA machine and read the clock directly with CPU I/O
-  instructions.
-
-  This function is not totally reliable.  It takes a finite and
-  unpredictable amount of time to execute the code below.  During that
-  time, the clock may change and we may even read an invalid value in
-  the middle of an update.  We do a few checks to minimize this
-  possibility, but only the kernel can actually read the clock
-  properly, since it can execute code in a short and predictable
-  amount of time (by turning of interrupts).
-
-  In practice, the chance of this function returning the wrong time is
-  extremely remote.
-
------------------------------------------------------------------------------*/
-  bool got_time;
-    /* We've successfully read a time from the Hardware Clock */
-
-  got_time = FALSE;
-  while (!got_time) {
-    /* Bit 7 of Byte 10 of the Hardware Clock value is the Update In Progress
-       (UIP) bit, which is on while and 244 uS before the Hardware Clock 
-       updates itself.  It updates the counters individually, so reading 
-       them during an update would produce garbage.  The update takes 2mS,
-       so we could be spinning here that long waiting for this bit to turn
-       off.
-
-       Furthermore, it is pathologically possible for us to be in this
-       code so long that even if the UIP bit is not on at first, the
-       clock has changed while we were running.  We check for that too,
-       and if it happens, we start over.
-       */
-
-    if ((hclock_read(10) & 0x80) == 0) {
-      /* No clock update in progress, go ahead and read */
-      tm->tm_sec = hclock_read_bcd(0);
-      tm->tm_min = hclock_read_bcd(2);
-      tm->tm_hour = hclock_read_bcd(4);
-      tm->tm_wday = hclock_read_bcd(6) - 3;
-      tm->tm_mday = hclock_read_bcd(7);
-      tm->tm_mon = hclock_read_bcd(8) - 1;
-      tm->tm_year = hclock_read_bcd(9);
-      /* We don't use the century byte (Byte 50) of the Hardware Clock.
-         Here's why:  On older machines, it isn't defined.  In at least
-         one reported case, a machine puts some arbitrary value in that
-         byte.  Furthermore, the Linux standard time data structure doesn't
-         allow for times beyond about 2037 and no Linux systems were 
-         running before 1937.  Therefore, all the century byte could tell
-         us is that the clock is wrong or this whole program is obsolete!
-         
-         So we just say if the year of century is less than 37, it's the
-         21st century, otherwise it's the 20th.
-         */
-
-        if (hclock_read_bcd(9) >= 37) tm->tm_year = hclock_read_bcd(9);
-        else tm->tm_year = hclock_read_bcd(9) + 100;
-    }
-    /* Unless the clock changed while we were reading, consider this 
-       a good clock read .
-       */
-    if (tm->tm_sec == hclock_read_bcd (0)) got_time = TRUE;
-    /* Yes, in theory we could have been running for 60 seconds and
-       the above test wouldn't work!
-       */
-  }
-  tm->tm_isdst = -1;        /* don't know whether it's daylight */
-}
-
-
-
-static void
-read_hardware_clock(const enum clock_access_method method, 
-                    const bool universal, bool *valid_p, time_t *systime_p){
-/*----------------------------------------------------------------------------
-  Read the hardware clock and return the current time via <tm> argument.
-
-  Use the method indicated by <method> argument to access the hardware clock.
------------------------------------------------------------------------------*/
-  struct tm tm;
-
-
-  switch (method) {
-  case ISA:
-    read_hardware_clock_isa(&tm);
-    break;
-  case RTC_IOCTL:
-    read_hardware_clock_rtc_ioctl(&tm);
-    break;
-  case KD:
-    read_hardware_clock_kd(&tm);
-    break;
-  default:
-    fprintf(stderr, 
-            "Internal error: invalid value for clock access method.\n");
-    exit(5);
-  }
-  if (debug)
-    printf ("Time read from Hardware Clock: %02d:%02d:%02d\n",
-            tm.tm_hour, tm.tm_min, tm.tm_sec);
-  mktime_tz(tm, universal, valid_p, systime_p);
-}
-
-
-
-static void
-set_hardware_clock_kd(const struct tm new_broken_time, 
-                      const bool testing) {
-/*----------------------------------------------------------------------------
-  Set the Hardware Clock to the time <new_broken_time>.  Use ioctls to
-  /dev/tty1 on what we assume is an m68k machine.
-
-  Note that we don't use /dev/console here.  That might be a serial console.
-----------------------------------------------------------------------------*/
-#ifdef KDGHWCLK
-  int con_fd;  /* File descriptor of /dev/tty1 */
-  struct hwclk_time t;
-
-  con_fd = open("/dev/tty1", O_RDONLY);
-  if (con_fd < 0) {
-    fprintf(stderr, "Error opening /dev/tty1.  Errno: %s (%d)\n",
-            strerror(errno), errno);
-    exit(1);
-  } else {
-    int rc;  /* locally used return code */
-
-    t.sec  = new_broken_time.tm_sec;
-    t.min  = new_broken_time.tm_min;
-    t.hour = new_broken_time.tm_hour;
-    t.day  = new_broken_time.tm_mday;
-    t.mon  = new_broken_time.tm_mon;
-    t.year = new_broken_time.tm_year;
-    t.wday = new_broken_time.tm_wday;
-
-    if (testing) 
-      printf("Not setting Hardware Clock because running in test mode.\n");
-    else {
-      rc = ioctl(con_fd, kdshwclk_ioctl, &t );
-      if (rc < 0) {
-        fprintf(stderr, "ioctl() to open /dev/tty1 failed.  "
-                "Errno: %s (%d)\n",
-                strerror(errno), errno);
-        exit(1);
-      }
-    }
-    close(con_fd);
-  }
-#else
-  /* This function should never be invoked.  It is here just to make the
-     program compile.
-     */
-#endif
-}
-
-
-
-static void
-set_hardware_clock_rtc_ioctl(const struct tm new_broken_time, 
-                             const bool testing) {
-/*----------------------------------------------------------------------------
-  Set the Hardware Clock to the broken down time <new_broken_time>.
-  Use ioctls to "rtc" device /dev/rtc.
-----------------------------------------------------------------------------*/
-  int rc;
-  int rtc_fd;
-
-  rtc_fd = open("/dev/rtc", O_RDONLY);
-  if (rtc_fd < 0) {
-    fprintf(stderr, "Unable to open /dev/rtc, open() errno = %s (%d)\n",
-            strerror(errno), errno);
-    exit(5);
-  } else {
-    if (testing) 
-      printf("Not setting Hardware Clock because running in test mode.\n");
-    else {
-      rc = ioctl(rtc_fd, RTC_SET_TIME, &new_broken_time);
-      if (rc == -1) {
-        fprintf(stderr, 
-                "ioctl() (RTC_SET_TIME) to /dev/rtc to set time failed, "
-                "errno = %s (%d).\n", strerror(errno), errno);
-        exit(5);
-      } else {
-        if (debug)
-          printf("ioctl(RTC_SET_TIME) was successful.\n");
-      }
-    }
-    close(rtc_fd);
-  }
-}
-
-
-
-static void
-set_hardware_clock_isa(const struct tm new_broken_time, 
-                       const bool testing) {
-/*----------------------------------------------------------------------------
-  Set the Hardware Clock to the time (in broken down format)
-  new_broken_time.  Use direct I/O instructions to what we assume is
-  an ISA Hardware Clock.
-----------------------------------------------------------------------------*/
-  unsigned char save_control, save_freq_select;
-
-  if (testing) 
-    printf("Not setting Hardware Clock because running in test mode.\n");
-  else {
-#ifdef __i386__
-    const bool interrupts_were_enabled = interrupts_enabled;
-
-    __asm__ volatile ("cli");
-    interrupts_enabled = FALSE;
-#endif
-    save_control = hclock_read(11);   /* tell the clock it's being set */
-    hclock_write(11, (save_control | 0x80));
-    save_freq_select = hclock_read(10);       /* stop and reset prescaler */
-    hclock_write (10, (save_freq_select | 0x70));
-
-    hclock_write_bcd(0, new_broken_time.tm_sec);
-    hclock_write_bcd(2, new_broken_time.tm_min);
-    hclock_write_bcd(4, new_broken_time.tm_hour);
-    hclock_write_bcd(6, new_broken_time.tm_wday + 3);
-    hclock_write_bcd(7, new_broken_time.tm_mday);
-    hclock_write_bcd(8, new_broken_time.tm_mon + 1);
-    hclock_write_bcd(9, new_broken_time.tm_year%100);
-    hclock_write_bcd(50, (1900+new_broken_time.tm_year)/100);
-    
-    /* The kernel sources, linux/arch/i386/kernel/time.c, have the
-       following comment:
-    
-       The following flags have to be released exactly in this order,
-       otherwise the DS12887 (popular MC146818A clone with integrated
-       battery and quartz) will not reset the oscillator and will not
-       update precisely 500 ms later.  You won't find this mentioned
-       in the Dallas Semiconductor data sheets, but who believes data
-       sheets anyway ...  -- Markus Kuhn
-    
-    Hence, they will also be done in this order here.
-    faith@cs.unc.edu, Thu Nov  9 08:26:37 1995 
-    */
-
-    hclock_write (11, save_control);
-    hclock_write (10, save_freq_select);
-#ifdef __i386__
-    if (interrupts_were_enabled) {
-      __asm__ volatile ("sti");
-      interrupts_enabled = TRUE;
-    }
-#endif
-  }
-}
-
-
-static void
-set_hardware_clock(const enum clock_access_method method,
-                   const time_t newtime, 
-                   const bool universal, 
-                   const bool testing) {
-/*----------------------------------------------------------------------------
-  Set the Hardware Clock to the time <newtime>, in local time zone or UTC,
-  according to <universal>.
-
-  Use the method indicated by the <method> argument.
-----------------------------------------------------------------------------*/
-
-  struct tm new_broken_time;  
-    /* Time to which we will set Hardware Clock, in broken down format, in
-       the time zone of caller's choice
-       */
-
-  if (universal) new_broken_time = *gmtime(&newtime);
-  else new_broken_time = *localtime(&newtime);
-
-  if (debug) 
-    printf("Setting Hardware Clock to %.2d:%.2d:%.2d "
-           "= %d seconds since 1969\n", 
-           new_broken_time.tm_hour, new_broken_time.tm_min, 
-           new_broken_time.tm_sec, (int) newtime);
-
-  switch (method) {
-  case ISA:
-    set_hardware_clock_isa(new_broken_time, testing);
-    break;
-  case RTC_IOCTL:
-    set_hardware_clock_rtc_ioctl(new_broken_time, testing);
-    break;
-  case KD:
-    set_hardware_clock_kd(new_broken_time, testing);
-    break;
-  default:
-    fprintf(stderr, 
-            "Internal error: invalid value for clock access method.\n");
-    exit(5);
-  }
-}
-
-
-
-static void
-set_hardware_clock_exact(const time_t settime, 
-                         const struct timeval ref_time,
-                         const enum clock_access_method clock_access,
-                         const bool universal, 
-                         const bool testing) {
-/*----------------------------------------------------------------------------
-  Set the Hardware Clock to the time "settime", in local time zone or UTC,
-  according to "universal".
-
-  But correct "settime" and wait for a fraction of a second so that
-  "settime" is the value of the Hardware Clock as of system time
-  "ref_time", which is in the past.  For example, if "settime" is
-  14:03:05 and "ref_time" is 12:10:04.5 and the current system
-  time is 12:10:06.0: Wait .5 seconds (to make exactly 2 seconds since
-  "ref_time") and then set the Hardware Clock to 14:03:07, thus
-  getting a precise and retroactive setting of the clock.
-
-  (Don't be confused by the fact that the system clock and the Hardware
-  Clock differ by two hours in the above example.  That's just to remind 
-  you that there are two independent time scales here).
-
-  This function ought to be able to accept set times as fractional times.
-  Idea for future enhancement.
-
------------------------------------------------------------------------------*/
-  time_t newtime;  /* Time to which we will set Hardware Clock */
-  struct timeval now_time;  /* locally used time */
-
-  gettimeofday(&now_time, NULL);
-  newtime = settime + (int) time_diff(now_time, ref_time) + 1;
-  if (debug) 
-    printf("Time elapsed since reference time has been %.6f seconds.\n"
-           "Delaying further to reach the next full second.\n",
-           time_diff(now_time, ref_time));
-  
-  /* Now delay some more until Hardware Clock time newtime arrives */
-  do gettimeofday(&now_time, NULL);
-  while (time_diff(now_time, ref_time) < newtime - settime);
-  
-  set_hardware_clock(clock_access, newtime, universal, testing);
-}
-
-
-
-static void
-get_epoch(unsigned long *epoch_p, int *retcode_p) {
-/*----------------------------------------------------------------------------
-  Get the Hardware Clock epoch setting from the kernel.
-----------------------------------------------------------------------------*/
-  int rtc_fd;
-
-  rtc_fd = open("/dev/rtc", O_RDONLY);
-  if (rtc_fd < 0) {
-    if (errno == ENOENT) 
-      fprintf(stderr, "To manipulate the epoch value in the kernel, we must "
-              "access the Linux 'rtc' device driver via the device special "
-              "file /dev/rtc.  This file does not exist on this system.\n");
-    else 
-      fprintf(stderr, "Unable to open /dev/rtc, open() errno = %s (%d)\n",
-              strerror(errno), errno);
-    *retcode_p = 1;
-  } else {
-    int rc;  /* return code from ioctl */
-    rc = ioctl(rtc_fd, RTC_EPOCH_READ, epoch_p);
-    if (rc == -1) {
-      fprintf(stderr, "ioctl(RTC_EPOCH_READ) to /dev/rtc failed, "
-              "errno = %s (%d).\n", strerror(errno), errno);
-      *retcode_p = 1;
-    } else {
-      *retcode_p = 0;
-      if (debug) printf("we have read epoch %ld from /dev/rtc "
-                        "with RTC_EPOCH_READ ioctl.\n", *epoch_p);
-    }
-    close(rtc_fd);
-  }
-  return;
-}
-
-
-
-static void
-set_epoch(unsigned long epoch, const bool testing, int *retcode_p) {
-/*----------------------------------------------------------------------------
-  Set the Hardware Clock epoch in the kernel.
-----------------------------------------------------------------------------*/
-  if (epoch < 1900)
-    /* kernel would not accept this epoch value */
-    fprintf(stderr, "The epoch value may not be less than 1900.  "
-            "You requested %ld\n", epoch);
-  else {
-    int rtc_fd;
-    
-    rtc_fd = open("/dev/rtc", O_RDONLY);
-    if (rtc_fd < 0) {
-      if (errno == ENOENT) 
-        fprintf(stderr, "To manipulate the epoch value in the kernel, we must "
-                "access the Linux 'rtc' device driver via the device special "
-                "file /dev/rtc.  This file does not exist on this system.\n");
-      fprintf(stderr, "Unable to open /dev/rtc, open() errno = %s (%d)\n",
-              strerror(errno), errno);
-      *retcode_p = 1;
-    } else {
-      if (debug) printf("setting epoch to %ld "
-                        "with RTC_EPOCH_SET ioctl to /dev/rtc.\n", epoch);
-      if (testing) {
-        printf("Not setting epoch because running in test mode.\n");
-        *retcode_p = 0;
-      } else {
-        int rc;                 /* return code from ioctl */
-        rc = ioctl(rtc_fd, RTC_EPOCH_SET, epoch);
-        if (rc == -1) {
-          if (errno == EINVAL)
-            fprintf(stderr, "The kernel (specifically, the device driver "
-                    "for /dev/rtc) does not have the RTC_EPOCH_SET ioctl.  "
-                    "Get a newer driver.\n");
-          else 
-            fprintf(stderr, "ioctl(RTC_EPOCH_SET) to /dev/rtc failed, "
-                    "errno = %s (%d).\n", strerror(errno), errno);
-          *retcode_p = 1;
-        } else *retcode_p = 0;
-      }
-      close(rtc_fd);
-    }
-  }
-}
-
-
-
-static void
-display_time(const bool hclock_valid, const time_t systime, 
-             const float sync_duration) {
-/*----------------------------------------------------------------------------
-  Put the time "systime" on standard output in display format.
-  Except if hclock_valid == false, just tell standard output that we don't
-  know what time it is.
-
-  Include in the output the adjustment "sync_duration".
------------------------------------------------------------------------------*/
-  if (!hclock_valid)
-    fprintf(stderr, "The Hardware Clock registers contain values that are "
-            "either invalid (e.g. 50th day of month) or beyond the range "
-            "we can handle (e.g. Year 2095).\n");
-  else {
-    char *ctime_now;  /* Address of static storage containing time string */
-
-    /* For some strange reason, ctime() is designed to include a newline
-       character at the end.  We have to remove that.
-       */
-    ctime_now = ctime(&systime);    /* Compute display value for time */
-    *(ctime_now+strlen(ctime_now)-1) = '\0';  /* Cut off trailing newline */
-    
-    printf("%s  %.6f seconds\n", ctime_now, -(sync_duration));
-  }
-}
-
-
-
-static int
-interpret_date_string(const char *date_opt, time_t * const time_p) {
-/*----------------------------------------------------------------------------
-  Interpret the value of the --date option, which is something like
-  "13:05:01".  In fact, it can be any of the myriad ASCII strings that specify
-  a time which the "date" program can understand.  The date option value in
-  question is our "dateopt" argument.  
-
-  The specified time is in the local time zone.
-
-  Our output, "*time_p", is a seconds-into-epoch time.
-
-  We use the "date" program to interpret the date string.  "date" must be
-  runnable by issuing the command "date" to the /bin/sh shell.  That means
-  in must be in the current PATH.
-
-  If anything goes wrong (and many things can), we return return code
-  10 and arbitrary *time_p.  Otherwise, return code is 0 and *time_p
-  is valid.
-----------------------------------------------------------------------------*/
-  FILE *date_child_fp;
-  char date_resp[100];
-  const char magic[]="seconds-into-epoch=";
-  char date_command[100];  
-  int retcode;  /* our eventual return code */
-  int rc;  /* local return code */
-
-  if (date_opt == NULL) {
-    fprintf(stderr, "No --date option specified.\n");
-    retcode = 14;
-  } else if (strchr(date_opt, '"') != NULL) {
-    /* Quotation marks in date_opt would ruin the date command we construct.
-       */
-    fprintf(stderr, "The value of the --date option is not a valid date.\n"
-            "In particular, it contains quotation marks.\n");
-    retcode = 12;
-  } else {
-    sprintf(date_command, "date --date=\"%s\" +seconds-into-epoch=%%s", 
-            date_opt);
-    if (debug) printf("Issuing date command: %s\n", date_command);
-
-    date_child_fp = popen(date_command, "r");
-    if (date_child_fp == NULL) {
-      fprintf(stderr, "Unable to run 'date' program in /bin/sh shell.  "
-              "popen() failed with errno=%d:%s\n", errno, strerror(errno));
-      retcode = 10;
-    } else {
-      date_resp[0] = '\0';  /* in case fgets fails */
-      fgets(date_resp, sizeof(date_resp), date_child_fp);
-      if (debug) printf("response from date command = %s\n", date_resp);
-      if (strncmp(date_resp, magic, sizeof(magic)-1) != 0) {
-        fprintf(stderr, "The date command issued by " MYNAME " returned "
-                "unexpected results.\n"
-                "The command was:\n  %s\nThe response was:\n  %s\n", 
-                date_command, date_resp);
-        retcode = 8;
-      } else {
-        int seconds_since_epoch;
-        rc = sscanf(date_resp + sizeof(magic)-1, "%d", &seconds_since_epoch);
-        if (rc < 1) {
-          fprintf(stderr, "The date command issued by " MYNAME " returned"
-                  "something other than an integer where the converted"
-                  "time value was expected.\n"
-                  "The command was:\n  %s\nThe response was:\n %s\n",
-                  date_command, date_resp);
-          retcode = 6;
-        } else {
-          retcode = 0;
-          *time_p = seconds_since_epoch;
-          if (debug) 
-            printf("date string %s equates to %d seconds since 1969.\n",
-                   date_opt, (int) *time_p);
-        }
-      }
-      fclose(date_child_fp);
-    }
-  }
-  return(retcode);
-}
-
-
-static int 
-set_system_clock(const bool hclock_valid, const time_t newtime, 
-                 const bool testing) {
-/*----------------------------------------------------------------------------
-   Set the System Clock to time 'newtime'.
-
-   Also set the kernel time zone value to the value indicated by the 
-   TZ environment variable and/or /usr/lib/zoneinfo/, interpreted as
-   tzset() would interpret them.  Except: do not consider Daylight
-   Savings Time to be a separate component of the time zone.  Include
-   any effect of DST in the basic timezone value and set the kernel
-   DST value to 0.
-
-   EXCEPT: if hclock_valid is false, just issue an error message
-   saying there is no valid time in the Hardware Clock to which to set
-   the system time.
-
-   If 'testing' is true, don't actually update anything -- just say we 
-   would have.
------------------------------------------------------------------------------*/
-  int retcode;  /* our eventual return code */
-
-  if (!hclock_valid) {
-    fprintf(stderr,"The Hardware Clock does not contain a valid time, so "
-            "we cannot set the System Time from it.\n");
-    retcode = 1;
-  } else {
-    struct timeval tv;
-    int rc;  /* local return code */
-    
-    tv.tv_sec = newtime;
-    tv.tv_usec = 0;
-    
-    tzset(); /* init timezone, daylight from TZ or ...zoneinfo/localtime */
-    /* An undocumented function of tzset() is to set global variabales
-       'timezone' and 'daylight'
-       */
-    
-    if (debug) {
-      printf( "Calling settimeofday:\n" );
-      printf( "\ttv.tv_sec = %ld, tv.tv_usec = %ld\n",
-             (long) tv.tv_sec, (long) tv.tv_usec );
-    }
-    if (testing) {
-      printf("Not setting system clock because running in test mode.\n");
-      retcode = 0;
-    } else {
-      /* For documentation of settimeofday(), in addition to its man page,
-         see kernel/time.c in the Linux source code.  
-         */
-      const struct timezone tz = { timezone/60 - 60*daylight, 0 };
-      /* put daylight in minuteswest rather than dsttime,
-         since the latter is mostly ignored ... */
-      rc = settimeofday(&tv, &tz);
-      if (rc != 0) {
-        if (errno == EPERM)
-          fprintf(stderr, "Must be superuser to set system clock.\n");
-        else
-          fprintf(stderr,
-                  "settimeofday() failed, errno=%d:%s\n", 
-                  errno, strerror(errno));
-        retcode = 1;
-      } else retcode = 0;
-    }
-  }
-  return(retcode);
-}
-
-
-static void
-adjust_drift_factor(struct adjtime *adjtime_p,
-                    const time_t nowtime, 
-                    const bool hclock_valid, const time_t hclocktime   ) {
-/*---------------------------------------------------------------------------
-  Update the drift factor in <*adjtime_p> to reflect the fact that the
-  Hardware Clock was calibrated to <nowtime> and before that was set
-  to <hclocktime>.
-
-  We assume that the user has been doing regular drift adjustments
-  using the drift factor in the adjtime file, so if <nowtime> and
-  <clocktime> are different, that means the adjustment factor isn't
-  quite right.
-
-  We record in the adjtime file the time at which we last calibrated
-  the clock so we can compute the drift rate each time we calibrate.
-
-  EXCEPT: if <hclock_valid> is false, assume Hardware Clock was not set
-  before to anything meaningful and regular adjustments have not been
-  done, so don't adjust the drift factor.
-
-----------------------------------------------------------------------------*/
-  if (!hclock_valid) {
-    if (debug)
-      printf("Not adjusting drift factor because the Hardware Clock "
-             "previously contained garbage.\n");
-  } else if ((hclocktime - adjtime_p->last_calib_time) < 23 * 60 * 60) {
-    if (debug) 
-      printf("Not adjusting drift factor because it has been less than a "
-             "day since the last calibration.\n");
-  } else {
-    const float factor_adjust = 
-      ((float) (nowtime - hclocktime) 
-       / (hclocktime - adjtime_p->last_calib_time))
-        * 24 * 60 * 60;
-
-    if (debug)
-      printf("Clock drifted %d seconds in the past %d seconds "
-             "in spite of a drift factor of %f seconds/day.\n"
-             "Adjusting drift factor by %f seconds/day\n",
-             (int) (nowtime - hclocktime),
-             (int) (hclocktime - adjtime_p->last_calib_time),
-             adjtime_p->drift_factor,
-             factor_adjust  );
-      
-    adjtime_p->drift_factor += factor_adjust;
-  }
-  adjtime_p->last_calib_time = nowtime;
-  
-  adjtime_p->last_adj_time = nowtime;
-  
-  adjtime_p->not_adjusted = 0;
-    
-  adjtime_p->dirty = TRUE;
-}
-
-
-
-static void
-calculate_adjustment(
-                     const float factor,
-                     const time_t last_time, 
-                     const float not_adjusted,
-                     const time_t systime,
-                     int *adjustment_p, 
-                     float *retro_p,
-                     const int debug ) {
-/*----------------------------------------------------------------------------
-  Do the drift adjustment calculation.
-
-  The way we have to set the clock, we need the adjustment in two parts:
-
-    1) an integer number of seconds (return as *adjustment_p)
-       
-    2) a positive fraction of a second (less than 1) (return as *retro_p)
-
-  The sum of these two values is the adjustment needed.  Positive means to
-  advance the clock or insert seconds.  Negative means to retard the clock
-  or remove seconds.
-----------------------------------------------------------------------------*/
-  float exact_adjustment;
-
-  exact_adjustment = ((float) (systime - last_time)) * factor / (24 * 60 * 60)
-                     + not_adjusted;
-  *adjustment_p = FLOOR(exact_adjustment);
-  
-  *retro_p = exact_adjustment - (float) *adjustment_p;
-  if (debug) {
-    printf ("Time since last adjustment is %d seconds\n",
-            (int) (systime - last_time));
-    printf ("Need to insert %d seconds and refer time back "
-            "%.6f seconds ago\n",
-            *adjustment_p, *retro_p);
-  }
-}
-
-
-
-static void
-save_adjtime(const struct adjtime adjtime, const bool testing) {
-/*-----------------------------------------------------------------------------
-  Write the contents of the <adjtime> structure to its disk file.
-
-  But if the contents are clean (unchanged since read from disk), don't
-  bother.
------------------------------------------------------------------------------*/
-  FILE *adjfile;
-  char newfile[405];   /* Stuff to write to disk file */
-
-  int rc;   /* locally used: return code from a function */
-
-  if (adjtime.dirty) {
-    /* snprintf is not always available, but this is safe
-       as long as libc does not use more than 100 positions for %ld or %f */
-    sprintf(newfile, "%f %ld %f\n%ld\n",
-             adjtime.drift_factor,
-             (long) adjtime.last_adj_time,
-             adjtime.not_adjusted,
-             (long) adjtime.last_calib_time  );
-
-    if (testing) {
-      printf("Not updating adjtime file because of testing mode.\n");
-      printf("Would have written the following to %s:\n%s", 
-             ADJPATH, newfile);
-    } else {
-      adjfile = fopen(ADJPATH, "w");
-      if (adjfile == NULL) {
-        const int fopen_errno = errno;
-        printf("Could not open file with the clock adjustment parameters "
-               "in it (%s) for output.\n"
-               "fopen() returned errno %d: %s.\n"
-               "Drift adjustment parameters not updated.\n", 
-               ADJPATH, fopen_errno, strerror(errno));
-      } else {
-        rc = fprintf(adjfile, newfile);
-        if (rc < 0) {
-          const int fprintf_errno = errno;
-          printf("Could not update file with the clock adjustment parameters "
-                 "(%s) in it.\n"
-                 "fprintf() returned errno %d: %s.\n"
-                 "Drift adjustment parameters not updated.\n",
-                 ADJPATH, fprintf_errno, strerror(errno));
-        }
-        rc = fclose(adjfile);
-        if (rc < 0) {
-          const int fclose_errno = errno;
-          printf("Could not update file with the clock adjustment parameters "
-                 "(%s) in it.\n"
-                 "fclose() returned errno %d: %s.\n"
-                 "Drift adjustment parameters not updated.\n",
-                 ADJPATH, fclose_errno, strerror(errno));
-        }
-      }
-    }
-  }
-}
-
-
-
-static void
-do_adjustment(struct adjtime *adjtime_p,
-              const bool hclock_valid, const time_t hclocktime, 
-              const struct timeval read_time,
-              const enum clock_access_method clock_access,
-              const bool universal, const bool testing) {
-/*---------------------------------------------------------------------------
-  Do the adjustment requested, by 1) setting the Hardware Clock (if 
-  necessary), and 2) updating the last-adjusted time in the adjtime
-  structure.
-
-  Do not update anything if the Hardware Clock does not currently present
-  a valid time.
-
-  arguments <factor> and <last_time> are current values from the adjtime
-  file.
-
-  <hclock_valid> means the Hardware Clock contains a valid time, and that
-  time is <hclocktime>.
-
-  <read_time> is the current system time (to be precise, it is the system 
-  time at the time <hclocktime> was read, which due to computational delay
-  could be a short time ago).
-
-  <universal>: the Hardware Clock is kept in UTC.
-
-  <testing>:  We are running in test mode (no updating of clock).
-
-  We do not bother to update the clock if the adjustment would be less than
-  one second.  This is to avoid cumulative error and needless CPU hogging
-  (remember we use an infinite loop for some timing) if the user runs us
-  frequently.
-
-----------------------------------------------------------------------------*/
-  if (!hclock_valid) {
-    fprintf(stderr, "The Hardware Clock does not contain a valid time, "
-            "so we cannot adjust it.\n");
-  } else {
-    int adjustment;
-    /* Number of seconds we must insert in the Hardware Clock */
-    float retro;   
-    /* Fraction of second we have to remove from clock after inserting
-       <adjustment> whole seconds.
-       */
-    calculate_adjustment(adjtime_p->drift_factor,
-                         adjtime_p->last_adj_time,
-                         adjtime_p->not_adjusted,
-                         hclocktime,
-                         &adjustment, &retro,
-                         debug );
-    if (adjustment > 0 || adjustment < -1) {
-      set_hardware_clock_exact(hclocktime + adjustment, 
-                               time_inc(read_time, -retro),
-                               clock_access, universal, testing);
-      adjtime_p->last_adj_time = hclocktime + adjustment;
-      adjtime_p->not_adjusted = 0;
-      adjtime_p->dirty = TRUE;
-    } else 
-      if (debug) 
-        printf("Needed adjustment is less than one second, "
-               "so not setting clock.\n");
-  }
-}
-
-
-
-static void
-determine_clock_access_method(const bool user_requests_ISA,
-                              enum clock_access_method *clock_access_p) {
-/*----------------------------------------------------------------------------
-  Figure out how we're going to access the hardware clock, by seeing
-  what facilities are available, looking at invocation options, and 
-  using compile-time constants.
-
-  <user_requests_ISA> means the user explicitly asked for the ISA method.
-  Even if he did, we will not select the ISA method if this is not an 
-  ISA machine.
------------------------------------------------------------------------------*/
-  bool rtc_works;
-    /* The /dev/rtc method is available and seems to work on this machine */
-
-  if (got_rtc) {
-    int rtc_fd = open("/dev/rtc", O_RDONLY);
-    if (rtc_fd > 0) {
-      rtc_works = TRUE;
-      close(rtc_fd);
-    } else {
-      rtc_works = FALSE;
-      if (debug)
-        printf("Open of /dev/rtc failed, errno = %s (%d).  "
-               "falling back to more primitive clock access method.\n",
-               strerror(errno), errno);
-    }
-  } else {
-    if (debug)
-      printf("The Linux kernel for which this copy of hwclock() was built "
-             "is too old to have /dev/rtc\n");
-    rtc_works = FALSE;
-  }
-
-  if (user_requests_ISA && isa_machine) *clock_access_p = ISA;
-  else if (rtc_works) *clock_access_p = RTC_IOCTL;
-  else if (got_kdghwclk) {
-    int con_fd;
-    struct hwclk_time t;
-
-    con_fd = open("/dev/tty1", O_RDONLY);
-    if (con_fd >= 0) {
-      if (ioctl( con_fd, kdghwclk_ioctl, &t ) >= 0) 
-        *clock_access_p = KD;
-      else {
-        if (errno == EINVAL) {
-          /* KDGHWCLK not implemented in this kernel... */
-          *clock_access_p = ISA;
-        } else {
-          *clock_access_p = KD;
-          fprintf(stderr,
-                  "KDGHWCLK ioctl failed, errno = %s (%d).\n",
-                  strerror(errno), errno);
-        }
-      }
-    } else {
-      *clock_access_p = KD;
-      fprintf(stderr, 
-              "Can't open /dev/tty1.  open() errno = %s (%d).\n",
-              strerror(errno), errno);
-    }
-    close(con_fd);
-  } else if (isa_machine) {
-    *clock_access_p = ISA;
-  } else
-    *clock_access_p = NOCLOCK;
-  if (debug) {
-    switch (*clock_access_p) {
-    case ISA: printf("Using direct I/O instructions to ISA clock.\n"); break;
-    case KD: printf("Using KDGHWCLK interface to m68k clock.\n"); break;
-    case RTC_IOCTL: printf("Using /dev/rtc interface to clock.\n"); break;
-    default:  
-      printf("determine_clock_access_method() returned invalid value: %d.\n",
-             *clock_access_p);
-    }
-  }
-}
-
-
-
-static void
-manipulate_clock(const bool show, const bool adjust, 
-                 const bool set, const time_t set_time,
-                 const bool hctosys, const bool systohc, 
-                 const struct timeval startup_time, 
-                 const enum clock_access_method clock_access,
-                 const bool universal, const bool testing,
-                 int *retcode_p
-                 ) {
-/*---------------------------------------------------------------------------
-  Do all the normal work of hwclock - read, set clock, etc.
-
-  Issue output to stdout and error message to stderr where appropriate.
-
-  Return rc == 0 if everything went OK, rc != 0 if not.
-----------------------------------------------------------------------------*/
-  struct adjtime adjtime;
-    /* Contents of the adjtime file, or what they should be. */
-  int rc;  /* local return code */
-  bool no_auth;  /* User lacks necessary authorization to access the clock */
-
-  if (clock_access == ISA) {
-    rc = i386_iopl(3);
-    if (rc != 0) {
-      fprintf(stderr, MYNAME " is unable to get I/O port access.  "
-              "I.e. iopl(3) returned nonzero return code %d.\n"
-              "This is often because the program isn't running "
-              "with superuser privilege, which it needs.\n", 
-              rc);
-      no_auth = TRUE;
-    } else no_auth = FALSE;
-  } else no_auth = FALSE;
-
-  if (no_auth) *retcode_p = 1;
-  else {
-    if (adjust || set || systohc) 
-      read_adjtime(&adjtime, &rc);
-    else {
-      /* A little trick to avoid reading the file if we don't have to */
-      adjtime.dirty = FALSE; 
-      rc = 0;
-    }
-    if (rc != 0) *retcode_p = 2;
-    else {
-      synchronize_to_clock_tick(clock_access, retcode_p);  
-        /* this takes up to 1 second */
-      if (*retcode_p == 0) {
-        struct timeval read_time; 
-          /* The time at which we read the Hardware Clock */
-
-        bool hclock_valid;
-          /* The Hardware Clock gives us a valid time, or at least something
-             close enough to fool mktime().
-             */
-
-        time_t hclocktime;
-          /* The time the hardware clock had just after we
-             synchronized to its next clock tick when we started up.
-             Defined only if hclock_valid is true.
-             */
-        
-        gettimeofday(&read_time, NULL);
-        read_hardware_clock(clock_access, universal, &hclock_valid, 
-                            &hclocktime); 
-        
-        if (show) {
-          display_time(hclock_valid, hclocktime, 
-                       time_diff(read_time, startup_time));
-          *retcode_p = 0;
-        } else if (set) {
-          set_hardware_clock_exact(set_time, startup_time, 
-                                   clock_access, universal, testing);
-          adjust_drift_factor(&adjtime, set_time, hclock_valid, hclocktime);
-          *retcode_p = 0;
-        } else if (adjust) {
-          do_adjustment(&adjtime, hclock_valid, hclocktime, 
-                        read_time, clock_access,
-                        universal, testing);
-          *retcode_p = 0;
-        } else if (systohc) {
-          struct timeval nowtime, reftime;
-          /* We can only set_hardware_clock_exact to a whole seconds
-             time, so we set it with reference to the most recent
-             whole seconds time.  
-             */
-          gettimeofday(&nowtime, NULL);
-          reftime.tv_sec = nowtime.tv_sec;
-          reftime.tv_usec = 0;
-          
-          set_hardware_clock_exact((time_t) reftime.tv_sec, reftime, 
-                                   clock_access, universal, testing);
-          *retcode_p = 0;
-          adjust_drift_factor(&adjtime, (time_t) reftime.tv_sec, hclock_valid, 
-                              hclocktime);
-        } else if (hctosys) {
-          rc = set_system_clock(hclock_valid, hclocktime, testing);
-          if (rc != 0) {
-            printf("Unable to set system clock.\n");
-            *retcode_p = 1;
-          } else *retcode_p = 0;
-        }
-        save_adjtime(adjtime, testing);
-      }
-    }
-  }
-}
-
-
-
-static void
-manipulate_epoch(const bool getepoch, const bool setepoch, 
-                 const int epoch_opt, const bool testing) {
-/*----------------------------------------------------------------------------
-   Get or set the Hardware Clock epoch value in the kernel, as appropriate.
-   <getepoch>, <setepoch>, and <epoch> are hwclock invocation options.
-
-   <epoch> == -1 if the user did not specify an "epoch" option.
-
------------------------------------------------------------------------------*/
-  /*
-   Maintenance note:  This should work on non-Alpha machines, but the 
-   evidence today (98.03.04) indicates that the kernel only keeps the
-   epoch value on Alphas.  If that is ever fixed, this function should be
-   changed.
-   */
-
-  if (!alpha_machine)
-    fprintf(stderr, "The kernel keeps an epoch value for the Hardware Clock "
-            "only on an Alpha machine.\nThis copy of hwclock was built for "
-            "a machine other than Alpha\n(and thus is presumably not running "
-            "on an Alpha now).  No action taken.\n");
-  else {
-    if (getepoch) {
-      unsigned long epoch;
-      int retcode;
-
-      get_epoch(&epoch, &retcode);
-      if (retcode != 0)
-        printf("Unable to get the epoch value from the kernel.\n");
-      else 
-        printf("Kernel is assuming an epoch value of %lu\n", epoch);
-    } else if (setepoch) {
-      if (epoch_opt == -1)
-        fprintf(stderr, "To set the epoch value, you must use the 'epoch' "
-                "option to tell to what value to set it.\n");
-      else {
-        int rc;
-        set_epoch(epoch_opt, testing, &rc);
-        if (rc != 0)
-          printf("Unable to set the epoch value in the kernel.\n");
-      }
-    }
-  }
-}
-
-
-
-int 
-main(int argc, char **argv, char **envp) {
-/*----------------------------------------------------------------------------
-                                   MAIN
------------------------------------------------------------------------------*/
-  struct timeval startup_time;
-    /* The time we started up, in seconds into the epoch, including fractions.
-       */
-  time_t set_time;  /* Time to which user said to set Hardware Clock */
-
-  enum clock_access_method clock_access;
-    /* The method that we determine is best for accessing Hardware Clock 
-       on this system. 
-       */
-
-  bool permitted;  /* User is permitted to do the function */
-  int retcode;   /* Our eventual return code */
-
-  int rc;  /* local return code */
-
-  /* option_def is the control table for the option parser.  These other
-     variables are the results of parsing the options and their meanings
-     are given by the option_def.  The only exception is <show>, which
-     may be modified after parsing is complete to effect an implied option.
-     */
-  bool show, set, systohc, hctosys, adjust, getepoch, setepoch, version;
-  bool universal, testing, directisa;
-  char *date_opt;
-  int epoch_opt;
-
-  const optStruct option_def[] = {
-    { 'r', (char *) "show",      OPT_FLAG,   &show,      0 },
-    { 0,   (char *) "set",       OPT_FLAG,   &set,       0 },
-    { 'w', (char *) "systohc",   OPT_FLAG,   &systohc,   0 },
-    { 's', (char *) "hctosys",   OPT_FLAG,   &hctosys,   0 },
-    { 0,   (char *) "getepoch",  OPT_FLAG,   &getepoch,  0 },
-    { 0,   (char *) "setepoch",  OPT_FLAG,   &setepoch,  0 },
-    { 'a', (char *) "adjust",    OPT_FLAG,   &adjust,    0 },
-    { 'v', (char *) "version",   OPT_FLAG,   &version,   0 },
-    { 0,   (char *) "date",      OPT_STRING, &date_opt,  0 },
-    { 0,   (char *) "epoch",     OPT_UINT,   &epoch_opt, 0 },
-    { 'u', (char *) "utc",       OPT_FLAG,   &universal, 0 },
-    { 0,   (char *) "directisa", OPT_FLAG,   &directisa, 0 },
-    { 0,   (char *) "test",      OPT_FLAG,   &testing,   0 },
-    { 'D', (char *) "debug",     OPT_FLAG,   &debug,     0 },
-    { 0,   (char *) NULL,        OPT_END,    NULL,       0 }
-  };
-  int argc_parse;       /* argc, except we modify it as we parse */
-  char **argv_parse;    /* argv, except we modify it as we parse */
-
-  interrupts_enabled = TRUE;  /* Since we haven't messed with them yet */
-
-  gettimeofday(&startup_time, NULL);  /* Remember what time we were invoked */
-
-  /* set option defaults */
-  show = set = systohc = hctosys = adjust = getepoch = setepoch = 
-    version = universal = 
-    directisa = testing = debug = FALSE;
-  date_opt = NULL;
-  epoch_opt = -1; 
-
-  argc_parse = argc; argv_parse = argv;
-  optParseOptions(&argc_parse, argv_parse, option_def, 0);
-    /* Uses and sets argc_parse, argv_parse. 
-       Sets show, systohc, hctosys, adjust, universal, version, testing, 
-       debug, set, date_opt, getepoch, setepoch, epoch_opt
-       */
-  
-  if (argc_parse - 1 > 0) {
-    fprintf(stderr, MYNAME " takes no non-option arguments.  "
-            "You supplied %d.\n",
-            argc_parse - 1);
-    exit(100);
-  }
-
-  if (show + set + systohc + hctosys + adjust + 
-      getepoch + setepoch + version > 1) {
-    fprintf(stderr, "You have specified multiple function options.\n"
-            "You can only perform one function at a time.\n");
-    exit(100);
-  }
-
-  if (set) {
-    rc = interpret_date_string(date_opt, &set_time);  /* (time-consuming) */
-    if (rc != 0) {
-      fprintf(stderr, "No usable set-to time.  Cannot set clock.\n");
-      exit(100);
-    }
-  }
-
-  if (directisa && !isa_machine) {
-    fprintf(stderr, "You have requested direct access to the ISA Hardware "
-            "Clock using machine instructions from the user process.  "
-            "But this method only works on an ISA machine with an x86 "
-            "CPU, and this is not one!\n");
-    exit(100);
-  }
-
-  if (!(show | set | systohc | hctosys | adjust | getepoch | setepoch |
-        version)) 
-    show = 1; /* default to show */
-
-  
-  if (getuid() == 0) permitted = TRUE;
-  else {
-    /* program is designed to run setuid (in some situations) -- be secure! */
-    if (set || hctosys || systohc || adjust) {
-      fprintf(stderr, 
-              "Sorry, only the superuser can change the Hardware Clock.\n");
-      permitted = FALSE;
-    } else if (setepoch) {
-      fprintf(stderr, 
-              "Sorry, only the superuser can change "
-              "the Hardware Clock epoch in the kernel.\n");
-      permitted = FALSE;
-    } else permitted = TRUE;
-  }
-
-  if (!permitted) retcode = 2;
-  else {
-    retcode = 0;
-    if (version) {
-      printf(MYNAME " " VERSION "/%s\n",util_linux_version);
-    } else if (getepoch || setepoch) {
-      manipulate_epoch(getepoch, setepoch, epoch_opt, testing);
-    } else {
-      determine_clock_access_method(directisa, &clock_access);
-      if (clock_access == NOCLOCK)
-        fprintf(stderr, "Cannot access the Hardware Clock via any known "
-                "method.  Use --debug option to see the details of our "
-                "search for an access method.\n");
-      else
-        manipulate_clock(show, adjust, set, set_time, hctosys, systohc, 
-                         startup_time, clock_access, universal, testing, &rc);
-    }
-  }
-  exit(retcode);
-}
-
-
-/****************************************************************************
-
-  History of this program:
-
-  98.08.12 BJH   Version 2.4 
-
-  Don't use century byte from Hardware Clock.  Add comments telling why.
-
-
-  98.06.20 BJH   Version 2.3.
-
-  Make --hctosys set the kernel timezone from TZ environment variable
-  and/or /usr/lib/zoneinfo.  From Klaus Ripke (klaus@ripke.com).
-
-  98.03.05 BJH.  Version 2.2.  
-
-  Add --getepoch and --setepoch.  
-
-  Fix some word length things so it works on Alpha.
-
-  Make it work when /dev/rtc doesn't have the interrupt functions.
-  In this case, busywait for the top of a second instead of blocking and
-  waiting for the update complete interrupt.
-
-  Fix a bunch of bugs too numerous to mention.
-
-  97.06.01: BJH.  Version 2.1.  Read and write the century byte (Byte
-  50) of the ISA Hardware Clock when using direct ISA I/O.  Problem
-  discovered by job (jei@iclnl.icl.nl).
-  
-  Use the rtc clock access method in preference to the KDGHWCLK method.
-  Problem discovered by Andreas Schwab <schwab@LS5.informatik.uni-dortmund.de>.
-
-  November 1996: Version 2.0.1.  Modifications by Nicolai Langfeldt
-  (janl@math.uio.no) to make it compile on linux 1.2 machines as well
-  as more recent versions of the kernel. Introduced the NO_CLOCK
-  access method and wrote feature test code to detect absense of rtc
-  headers.
-
-
-  Bryan Henderson based hwclock on the program "clock", in September
-  1996.  While remaining mostly backward compatible with clock,
-  hwclock added the following:
-
-    - You can set the hardware clock without also modifying the Linux
-      system clock.
-
-    - You can read and set the clock with finer than 1 second precision.
-
-    - When you set the clock, hwclock automatically refigures the drift
-      rate, based on how far off the clock was before you set it.  (This
-      is the drift rate that is used with the --adjust function to 
-      automatically adjust the clock periodically to compensate for drift).
-
-    - More mnemonic GNU-style command line options.
-
-    - Comments describing how the clock and program work to improve 
-      maintainability.
-
-    - Removed the old dead I/O code that worked without the inb/outb
-      instructions and without the asm/io.h definitions.
-
-  The first version of hwclock was Version 2.
-
-  Here is the history section from the "clock" program at the time it was
-  used as a basis for hwclock:
-
-  V1.0
-
-  
-  V1.0 by Charles Hedrick, hedrick@cs.rutgers.edu, April 1992.
- ********************
-  V1.1
-  Modified for clock adjustments - Rob Hooft, hooft@chem.ruu.nl, Nov 1992
-  Also moved error messages to stderr. The program now uses getopt.
-  Changed some exit codes. Made 'gcc 2.3 -Wall' happy.
- *****
-  V1.2
-  Applied patches by Harald Koenig (koenig@nova.tat.physik.uni-tuebingen.de)
-  Patched and indented by Rob Hooft (hooft@EMBL-Heidelberg.DE)
-  
-  A free quote from a MAIL-message (with spelling corrections):
-  "I found the explanation and solution for the CMOS reading 0xff problem
-   in the 0.99pl13c (ALPHA) kernel: the RTC goes offline for a small amount
-   of time for updating. Solution is included in the kernel source 
-   (linux/kernel/time.c)."
-  "I modified clock.c to fix this problem and added an option (now default,
-   look for USE_INLINE_ASM_IO) that I/O instructions are used as inline
-   code and not via /dev/port (still possible via #undef ...)."
-  With the new code, which is partially taken from the kernel sources, 
-  the CMOS clock handling looks much more "official".
-  Thanks Harald (and Torsten for the kernel code)!
- *****
-  V1.3
-  Canges from alan@spri.levels.unisa.edu.au (Alan Modra):
-  a) Fix a few typos in comments and remove reference to making
-     clock -u a cron job.  The kernel adjusts cmos time every 11
-     minutes - see kernel/sched.c and kernel/time.c set_rtc_mmss().
-     This means we should really have a cron job updating
-     /etc/adjtime every 11 mins (set last_time to the current time
-     and not_adjusted to ???).
-  b) Swapped arguments of outb() to agree with asm/io.h macro of the
-     same name.  Use outb() from asm/io.h as it's slightly better.
-  c) Changed CMOS_READ and CMOS_WRITE to inline functions.  Inserted
-     cli()..sti() pairs in appropriate places to prevent possible
-     errors, and changed ioperm() call to iopl() to allow cli.
-  d) Moved some variables around to localise them a bit.
-  e) Fixed bug with clock -ua or clock -us that cleared environment
-     variable TZ.  This fix also cured the annoying display of bogus
-     day of week on a number of machines. (Use mktime(), ctime()
-     rather than asctime() )
-  f) Use settimeofday() rather than stime().  This one is important
-     as it sets the kernel's timezone offset, which is returned by
-     gettimeofday(), and used for display of MSDOS and OS2 file
-     times.
-  g) faith@cs.unc.edu added -D flag for debugging
-  V1.4: alan@SPRI.Levels.UniSA.Edu.Au (Alan Modra)
-        Wed Feb  8 12:29:08 1995, fix for years > 2000.
-        faith@cs.unc.edu added -v option to print version.  */
-
-
index c04b7fd4479a877541d559f1b886b1d28ee37951..4dcd081b45e23b288a2ea662737de9bc20775b81 100644 (file)
@@ -1,5 +1,9 @@
 /*
  * krishna balasubramanian 1993
+ *
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ *
  */
 
 #include <stdio.h>
@@ -12,6 +16,8 @@
 #include <sys/shm.h>
 #include <sys/msg.h>
 #include <sys/sem.h>
+#include "nls.h"
+
 #if defined (__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED)
 /* union semun is defined by including <sys/sem.h> */
 #else
@@ -30,10 +36,14 @@ int main(int argc, char **argv)
        int id;
        union semun arg;
 
-       arg.val = 0; 
+       arg.val = 0;
+       
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
 
        if (argc != 3 || strlen(argv[1]) < 3) {
-               printf ("usage: %s [shm | msg | sem] id\n", argv[0]);
+               printf (_("usage: %s [shm | msg | sem] id\n"), argv[0]);
                exit (1);
        }
        id = atoi (argv[2]);
@@ -57,10 +67,10 @@ int main(int argc, char **argv)
                exit (1);
 
        default:
-               printf ("usage: %s [-shm | -msg | -sem] id\n", argv[0]);
+               printf (_("usage: %s [-shm | -msg | -sem] id\n"), argv[0]);
                exit (1);
        }
-       printf ("resource deleted\n");
+       printf (_("resource deleted\n"));
        return 0;
 }
                        
index 975bfd1a29e0a714c89858da549c18c194ad8fab..e628ce87402d1fcb0b583d2402471b6fd53748d5 100644 (file)
 
   Patched to display the key field -- hy@picksys.com 12/18/96
 
+  1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+  - added Native Language Support
+
+
 */
 
 #include <stdio.h>
 #include <time.h>
 #include <pwd.h>
 #include <grp.h>
-#if 0
-#define __KERNEL__             /* yuk */
-#include <linux/linkage.h>
+#include "nls.h"
+
+#include "../defines.h"                /* for NEED_linkage_h */
+#ifdef NEED_linkage_h
+#define __KERNEL__             /* required for SHM_DEST etc. */
+#include <linux/linkage.h>     /* required for the keyword asmlinkage */
 #endif
 /* X/OPEN tells us to use <sys/{types,ipc,sem}.h> for semctl() */
 /* X/OPEN tells us to use <sys/{types,ipc,msg}.h> for msgctl() */
 #include <sys/sem.h>
 #include <sys/msg.h>
 #include <sys/shm.h>
+#ifdef NEED_linkage_h
+#undef __KERNEL__
+#endif
+
 /* The last arg of semctl is a union semun, but where is it defined?
    X/OPEN tells us to define it ourselves, but until recently
    Linux include files would also define it. */
@@ -77,21 +88,21 @@ static char *progname;
 
 void usage(void)
 {
-       printf ("usage : %s -asmq -tclup \n", progname);
-       printf ("\t%s [-s -m -q] -i id\n", progname);
-       printf ("\t%s -h for help.\n", progname); 
+       printf (_("usage : %s -asmq -tclup \n"), progname);
+       printf (_("\t%s [-s -m -q] -i id\n"), progname);
+       printf (_("\t%s -h for help.\n"), progname); 
        return;
 }
 
 void help (void)
 {
-       printf ("%s provides information on ipc facilities for", progname);
-        printf (" which you have read access.\n"); 
-       printf ("Resource Specification:\n\t-m : shared_mem\n\t-q : messages\n");
-       printf ("\t-s : semaphores\n\t-a : all (default)\n");
-       printf ("Output Format:\n\t-t : time\n\t-p : pid\n\t-c : creator\n");
-       printf ("\t-l : limits\n\t-u : summary\n");
-       printf ("-i id [-s -q -m] : details on resource identified by id\n");
+       printf (_("%s provides information on ipc facilities for"), progname);
+        printf (_(" which you have read access.\n")); 
+       printf (_("Resource Specification:\n\t-m : shared_mem\n\t-q : messages\n"));
+       printf (_("\t-s : semaphores\n\t-a : all (default)\n"));
+       printf (_("Output Format:\n\t-t : time\n\t-p : pid\n\t-c : creator\n"));
+       printf (_("\t-l : limits\n\t-u : summary\n"));
+       printf (_("-i id [-s -q -m] : details on resource identified by id\n"));
        usage();
        return;
 }
@@ -102,6 +113,10 @@ int main (int argc, char **argv)
        char format = 0;
        char options[] = "atcluphsmqi:";
 
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+
        progname = argv[0];
        while ((opt = getopt (argc, argv, options)) != EOF) {
                switch (opt) {
@@ -219,52 +234,52 @@ void do_shm (char format)
 
        maxid = shmctl (0, SHM_INFO, (struct shmid_ds *) &shm_info);
        if (maxid < 0) {
-               printf ("kernel not configured for shared memory\n");
+               printf (_("kernel not configured for shared memory\n"));
                return;
        }
        
        switch (format) {
        case LIMITS:
-               printf ("------ Shared Memory Limits --------\n");
+               printf (_("------ Shared Memory Limits --------\n"));
                if ((shmctl (0, IPC_INFO, (struct shmid_ds *) &shminfo)) < 0 )
                        return;
-               printf ("max number of segments = %d\n", shminfo.shmmni);
-               printf ("max seg size (kbytes) = %d\n", shminfo.shmmax >> 10);
-               printf ("max total shared memory (kbytes) = %d\n", shminfo.shmall << 2);
-               printf ("min seg size (bytes) = %d\n", shminfo.shmmin);
+               printf (_("max number of segments = %d\n"), shminfo.shmmni);
+               printf (_("max seg size (kbytes) = %d\n"), shminfo.shmmax >> 10);
+               printf (_("max total shared memory (kbytes) = %d\n"), shminfo.shmall << 2);
+               printf (_("min seg size (bytes) = %d\n"), shminfo.shmmin);
                return;
 
        case STATUS:
-               printf ("------ Shared Memory Status --------\n");
-               printf ("segments allocated %d\n", shm_info.used_ids);
-               printf ("pages allocated %ld\n", shm_info.shm_tot);
-               printf ("pages resident  %ld\n", shm_info.shm_rss);
-               printf ("pages swapped   %ld\n", shm_info.shm_swp);
-               printf ("Swap performance: %ld attempts\t %ld successes\n"
+               printf (_("------ Shared Memory Status --------\n"));
+               printf (_("segments allocated %d\n"), shm_info.used_ids);
+               printf (_("pages allocated %ld\n"), shm_info.shm_tot);
+               printf (_("pages resident  %ld\n"), shm_info.shm_rss);
+               printf (_("pages swapped   %ld\n"), shm_info.shm_swp);
+               printf (_("Swap performance: %ld attempts\t %ld successes\n")
                        shm_info.swap_attempts, shm_info.swap_successes);
                return;
 
        case CREATOR:
-               printf ("------ Shared Memory Segment Creators/Owners --------\n");
-               printf ("%-10s%-10s%-10s%-10s%-10s%-10s\n",
-                "shmid","perms","cuid","cgid","uid","gid");
+               printf (_("------ Shared Memory Segment Creators/Owners --------\n"));
+               printf (_("%-10s%-10s%-10s%-10s%-10s%-10s\n"),
+                _("shmid"),_("perms"),_("cuid"),_("cgid"),_("uid"),_("gid"));
                break;
 
        case TIME:
-               printf ("------ Shared Memory Attach/Detach/Change Times --------\n");
-               printf ("%-10s%-10s  %-20s%-20s%-20s\n",
-                       "shmid","owner","attached","detached","changed");
+               printf (_("------ Shared Memory Attach/Detach/Change Times --------\n"));
+               printf (_("%-10s%-10s  %-20s%-20s%-20s\n"),
+                       _("shmid"),_("owner"),_("attached"),_("detached"),_("changed"));
                break;
 
        case PID:
-               printf ("------ Shared Memory Creator/Last-op --------\n");
-               printf ("%-10s%-10s%-10s%-10s\n","shmid","owner","cpid","lpid");
+               printf (_("------ Shared Memory Creator/Last-op --------\n"));
+               printf (_("%-10s%-10s%-10s%-10s\n"),_("shmid"),_("owner"),_("cpid"),_("lpid"));
                break;
 
        default:
-               printf ("------ Shared Memory Segments --------\n");
-               printf ("%-10s%-10s%-10s%-10s%-10s%-10s%-12s\n", "key","shmid",
-                       "owner","perms","bytes","nattch","status");
+               printf (_("------ Shared Memory Segments --------\n"));
+               printf (_("%-10s%-10s%-10s%-10s%-10s%-10s%-12s\n"), _("key"),_("shmid"),
+                       _("owner"),_("perms"),_("bytes"),_("nattch"),_("status"));
                break;
        }
 
@@ -284,9 +299,9 @@ void do_shm (char format)
                        else
                                printf ("%-10d%-10d", shmid, ipcp->uid);
                        printf("  %-20.16s%-20.16s%-20.16s\n",
-                       shmseg.shm_atime ? ctime(&shmseg.shm_atime) + 4 : "Not set",
-                       shmseg.shm_dtime ? ctime(&shmseg.shm_dtime) + 4 : "Not set",
-                       shmseg.shm_ctime ? ctime(&shmseg.shm_ctime) + 4 : "Not set");
+                       shmseg.shm_atime ? ctime(&shmseg.shm_atime) + 4 : _("Not set"),
+                       shmseg.shm_dtime ? ctime(&shmseg.shm_dtime) + 4 : _("Not set"),
+                       shmseg.shm_ctime ? ctime(&shmseg.shm_ctime) + 4 : _("Not set"));
                        break;
                case PID:
                        if (pw)
@@ -306,8 +321,8 @@ void do_shm (char format)
                        printf ("%-10o%-10d%-10d%-6s%-6s\n", 
                                ipcp->mode & 0777, 
                                shmseg.shm_segsz, shmseg.shm_nattch,
-                               ipcp->mode & SHM_DEST ? "dest" : " ",
-                               ipcp->mode & SHM_LOCKED ? "locked" : " ");
+                               ipcp->mode & SHM_DEST ? _("dest") : " ",
+                               ipcp->mode & SHM_LOCKED ? _("locked") : " ");
                        break;
                }
        }
@@ -327,48 +342,48 @@ void do_sem (char format)
        arg.array = (ushort *)  &seminfo;
        maxid = semctl (0, 0, SEM_INFO, arg);
        if (maxid < 0) {
-               printf ("kernel not configured for semaphores\n");
+               printf (_("kernel not configured for semaphores\n"));
                return;
        }
        
        switch (format) {
        case LIMITS:
-               printf ("------ Semaphore Limits --------\n");
+               printf (_("------ Semaphore Limits --------\n"));
                arg.array = (ushort *) &seminfo; /* damn union */
                if ((semctl (0, 0, IPC_INFO, arg)) < 0 )
                        return;
-               printf ("max number of arrays = %d\n", seminfo.semmni);
-               printf ("max semaphores per array = %d\n", seminfo.semmsl);
-               printf ("max semaphores system wide = %d\n", seminfo.semmns);
-               printf ("max ops per semop call = %d\n", seminfo.semopm);
-               printf ("semaphore max value = %d\n", seminfo.semvmx);
+               printf (_("max number of arrays = %d\n"), seminfo.semmni);
+               printf (_("max semaphores per array = %d\n"), seminfo.semmsl);
+               printf (_("max semaphores system wide = %d\n"), seminfo.semmns);
+               printf (_("max ops per semop call = %d\n"), seminfo.semopm);
+               printf (_("semaphore max value = %d\n"), seminfo.semvmx);
                return;
 
        case STATUS:
-               printf ("------ Semaphore Status --------\n");
-               printf ("used arrays = %d\n", seminfo.semusz);
-               printf ("allocated semaphores = %d\n", seminfo.semaem);
+               printf (_("------ Semaphore Status --------\n"));
+               printf (_("used arrays = %d\n"), seminfo.semusz);
+               printf (_("allocated semaphores = %d\n"), seminfo.semaem);
                return;
 
        case CREATOR:
-               printf ("------ Semaphore Arrays Creators/Owners --------\n");
-               printf ("%-10s%-10s%-10s%-10s%-10s%-10s\n",
-                "semid","perms","cuid","cgid","uid","gid");
+               printf (_("------ Semaphore Arrays Creators/Owners --------\n"));
+               printf (_("%-10s%-10s%-10s%-10s%-10s%-10s\n"),
+                _("semid"),_("perms"),_("cuid"),_("cgid"),_("uid"),("gid"));
                break;
 
        case TIME:
-               printf ("------ Shared Memory Operation/Change Times --------\n");
-               printf ("%-8s%-10s  %-26.24s %-26.24s\n",
-                       "shmid","owner","last-op","last-changed");
+               printf (_("------ Shared Memory Operation/Change Times --------\n"));
+               printf (_("%-8s%-10s  %-26.24s %-26.24s\n"),
+                       _("shmid"),_("owner"),_("last-op"),_("last-changed"));
                break;
 
        case PID:
                break;
 
        default:
-               printf ("------ Semaphore Arrays --------\n");
-               printf ("%-10s%-10s%-10s%-10s%-10s%-12s\n"
-                       "key","semid","owner","perms","nsems","status");
+               printf (_("------ Semaphore Arrays --------\n"));
+               printf (_("%-10s%-10s%-10s%-10s%-10s%-12s\n")
+                       _("key"),_("semid"),_("owner"),_("perms"),_("nsems"),_("status"));
                break;
        }
 
@@ -389,8 +404,8 @@ void do_sem (char format)
                        else
                                printf ("%-8d%-10d", semid, ipcp->uid);
                        printf ("  %-26.24s %-26.24s\n", 
-                               semary.sem_otime ? ctime(&semary.sem_otime) : "Not set",
-                               semary.sem_ctime ? ctime(&semary.sem_ctime) : "Not set");
+                               semary.sem_otime ? ctime(&semary.sem_otime) : _("Not set"),
+                               semary.sem_ctime ? ctime(&semary.sem_ctime) : _("Not set"));
                        break;
                case PID:
                        break;
@@ -421,7 +436,7 @@ void do_msg (char format)
 
        maxid = msgctl (0, MSG_INFO, (struct msqid_ds *) &msginfo);
        if (maxid < 0) {
-               printf ("kernel not configured for shared memory\n");
+               printf (_("kernel not configured for shared memory\n"));
                return;
        }
        
@@ -429,40 +444,40 @@ void do_msg (char format)
        case LIMITS:
                if ((msgctl (0, IPC_INFO, (struct msqid_ds *) &msginfo)) < 0 )
                        return;
-               printf ("------ Messages: Limits --------\n");
-               printf ("max queues system wide = %d\n", msginfo.msgmni);
-               printf ("max size of message (bytes) = %d\n", msginfo.msgmax);
-               printf ("default max size of queue (bytes) = %d\n", msginfo.msgmnb);
+               printf (_("------ Messages: Limits --------\n"));
+               printf (_("max queues system wide = %d\n"), msginfo.msgmni);
+               printf (_("max size of message (bytes) = %d\n"), msginfo.msgmax);
+               printf (_("default max size of queue (bytes) = %d\n"), msginfo.msgmnb);
                return;
 
        case STATUS:
-               printf ("------ Messages: Status --------\n");
-               printf ("allocated queues = %d\n", msginfo.msgpool);
-               printf ("used headers = %d\n", msginfo.msgmap);
-               printf ("used space = %d bytes\n", msginfo.msgtql);
+               printf (_("------ Messages: Status --------\n"));
+               printf (_("allocated queues = %d\n"), msginfo.msgpool);
+               printf (_("used headers = %d\n"), msginfo.msgmap);
+               printf (_("used space = %d bytes\n"), msginfo.msgtql);
                return;
 
        case CREATOR:
-               printf ("------ Message Queues: Creators/Owners --------\n");
-               printf ("%-10s%-10s%-10s%-10s%-10s%-10s\n",
-                "msqid","perms","cuid","cgid","uid","gid");
+               printf (_("------ Message Queues: Creators/Owners --------\n"));
+               printf (_("%-10s%-10s%-10s%-10s%-10s%-10s\n"),
+                _("msqid"),_("perms"),_("cuid"),_("cgid"),_("uid"),_("gid"));
                break;
 
        case TIME:
-               printf ("------ Message Queues Send/Recv/Change Times --------\n");
-               printf ("%-8s%-10s  %-20s%-20s%-20s\n",
-                       "msqid","owner","send","recv","change");
+               printf (_("------ Message Queues Send/Recv/Change Times --------\n"));
+               printf (_("%-8s%-10s  %-20s%-20s%-20s\n"),
+                       _("msqid"),_("owner"),_("send"),_("recv"),_("change"));
                break;
 
        case PID:
-               printf ("------ Message Queues PIDs --------\n");
-               printf ("%-10s%-10s%-10s%-10s\n","msqid","owner","lspid","lrpid");
+               printf (_("------ Message Queues PIDs --------\n"));
+               printf (_("%-10s%-10s%-10s%-10s\n"),_("msqid"),_("owner"),_("lspid"),_("lrpid"));
                break;
 
        default:
-               printf ("------ Message Queues --------\n");
-               printf ("%-10s%-10s%-10s%-10s%-12s%-12s\n", "key","msqid",
-                       "owner", "perms", "used-bytes", "messages");
+               printf (_("------ Message Queues --------\n"));
+               printf (_("%-10s%-10s%-10s%-10s%-12s%-12s\n"), _("key"),_("msqid"),
+                       _("owner"), _("perms"), _("used-bytes"), _("messages"));
                break;
        }
 
@@ -482,9 +497,9 @@ void do_msg (char format)
                        else
                                printf ("%-8d%-10d", msqid, ipcp->uid);
                        printf ("  %-20.16s%-20.16s%-20.16s\n", 
-                       msgque.msg_stime ? ctime(&msgque.msg_stime) + 4 : "Not set",
-                       msgque.msg_rtime ? ctime(&msgque.msg_rtime) + 4 : "Not set",
-                       msgque.msg_ctime ? ctime(&msgque.msg_ctime) + 4 : "Not set");
+                       msgque.msg_stime ? ctime(&msgque.msg_stime) + 4 : _("Not set"),
+                       msgque.msg_rtime ? ctime(&msgque.msg_rtime) + 4 : _("Not set"),
+                       msgque.msg_ctime ? ctime(&msgque.msg_ctime) + 4 : _("Not set"));
                        break;
                case PID:
                        if (pw)
@@ -521,18 +536,18 @@ void print_shm (int shmid)
                return;
        }
 
-       printf ("\nShared memory Segment shmid=%d\n", shmid);
-       printf ("uid=%d\tgid=%d\tcuid=%d\tcgid=%d\n",
+       printf (_("\nShared memory Segment shmid=%d\n"), shmid);
+       printf (_("uid=%d\tgid=%d\tcuid=%d\tcgid=%d\n"),
                ipcp->uid, ipcp->gid, ipcp->cuid, ipcp->cgid);
-       printf ("mode=%#o\taccess_perms=%#o\n", ipcp->mode, ipcp->mode & 0777);
-       printf ("bytes=%d\tlpid=%d\tcpid=%d\tnattch=%d\n"
+       printf (_("mode=%#o\taccess_perms=%#o\n"), ipcp->mode, ipcp->mode & 0777);
+       printf (_("bytes=%d\tlpid=%d\tcpid=%d\tnattch=%d\n")
                shmds.shm_segsz, shmds.shm_lpid, shmds.shm_cpid, 
                shmds.shm_nattch);
-       printf ("att_time=%s", shmds.shm_atime ? ctime (&shmds.shm_atime) : 
-               "Not set\n");
-       printf ("det_time=%s", shmds.shm_dtime ? ctime (&shmds.shm_dtime) : 
-               "Not set\n");
-       printf ("change_time=%s", ctime (&shmds.shm_ctime));
+       printf (_("att_time=%s"), shmds.shm_atime ? ctime (&shmds.shm_atime) : 
+               _("Not set\n"));
+       printf (_("det_time=%s"), shmds.shm_dtime ? ctime (&shmds.shm_dtime) : 
+               _("Not set\n"));
+       printf (_("change_time=%s"), ctime (&shmds.shm_ctime));
        printf ("\n");
        return;
 }
@@ -548,16 +563,16 @@ void print_msg (int msqid)
                perror ("msgctl ");
                return;
        }
-       printf ("\nMessage Queue msqid=%d\n", msqid);
-       printf ("uid=%d\tgid=%d\tcuid=%d\tcgid=%d\tmode=%#o\n",
+       printf (_("\nMessage Queue msqid=%d\n"), msqid);
+       printf (_("uid=%d\tgid=%d\tcuid=%d\tcgid=%d\tmode=%#o\n"),
                ipcp->uid, ipcp->gid, ipcp->cuid, ipcp->cgid, ipcp->mode);
-       printf ("cbytes=%d\tqbytes=%d\tqnum=%d\tlspid=%d\tlrpid=%d\n",
+       printf (_("cbytes=%d\tqbytes=%d\tqnum=%d\tlspid=%d\tlrpid=%d\n"),
                buf.msg_cbytes, buf.msg_qbytes, buf.msg_qnum, buf.msg_lspid, 
                buf.msg_lrpid);
-       printf ("send_time=%srcv_time=%schange_time=%s"
-               buf.msg_rtime? ctime (&buf.msg_rtime) : "Not Set\n",
-               buf.msg_stime? ctime (&buf.msg_stime) : "Not Set\n",
-               buf.msg_ctime? ctime (&buf.msg_ctime) : "Not Set\n");
+       printf (_("send_time=%srcv_time=%schange_time=%s")
+               buf.msg_rtime? ctime (&buf.msg_rtime) : _("Not Set\n"),
+               buf.msg_stime? ctime (&buf.msg_stime) : _("Not Set\n"),
+               buf.msg_ctime? ctime (&buf.msg_ctime) : _("Not Set\n"));
        printf ("\n");
        return;
 }
@@ -574,17 +589,17 @@ void print_sem (int semid)
                perror ("semctl ");
                return;
        }
-       printf ("\nSemaphore Array semid=%d\n", semid);
-       printf ("uid=%d\t gid=%d\t cuid=%d\t cgid=%d\n",
+       printf (_("\nSemaphore Array semid=%d\n"), semid);
+       printf (_("uid=%d\t gid=%d\t cuid=%d\t cgid=%d\n"),
                ipcp->uid, ipcp->gid, ipcp->cuid, ipcp->cgid);
-       printf ("mode=%#o, access_perms=%#o\n", ipcp->mode, ipcp->mode & 0777);
-       printf ("nsems = %d\n", semds.sem_nsems);
-       printf ("otime = %s", semds.sem_otime ? ctime (&semds.sem_otime) : 
-               "Not set\n");
-       printf ("ctime = %s", ctime (&semds.sem_ctime));        
-
-       printf ("%-10s%-10s%-10s%-10s%-10s\n", "semnum","value","ncount",
-               "zcount","pid");
+       printf (_("mode=%#o, access_perms=%#o\n"), ipcp->mode, ipcp->mode & 0777);
+       printf (_("nsems = %d\n"), semds.sem_nsems);
+       printf (_("otime = %s"), semds.sem_otime ? ctime (&semds.sem_otime) : 
+               _("Not set\n"));
+       printf (_("ctime = %s"), ctime (&semds.sem_ctime));     
+
+       printf (_("%-10s%-10s%-10s%-10s%-10s\n"), _("semnum"),_("value"),_("ncount"),
+               _("zcount"),_("pid"));
        arg.val = 0;
        for (i=0; i< semds.sem_nsems; i++) {
                int val, ncnt, zcnt, pid;
diff --git a/sys-utils/kbdrate.8 b/sys-utils/kbdrate.8
deleted file mode 100644 (file)
index 88c6cbc..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-.\" Copyright 1992, 1994 Rickard E. Faith (faith@cs.unc.edu)
-.\" May be distributed under the GNU General Public License
-.\" Updated Wed Jun 22 21:09:43 1994, faith@cs.unc.edu
-.TH KBDRATE 8 "22 June 1994" "Linux 1.1.19" "Linux Programmer's Manual"
-.SH NAME
-kbdrate \- reset the keyboard repeat rate and delay time
-.SH SYNOPSIS
-.B "kbdrate [ \-s ] [ \-r"
-rate
-.B "] [ \-d"
-delay
-.B ]
-.SH DESCRIPTION
-.B kbdrate
-is used to change the IBM keyboard repeat rate and delay time.  The delay
-is the amount of time that a key must be depressed before it will start to
-repeat.
-
-Using
-.B kbdrate
-without any options will reset the rate to 10.9 characters per second (cps)
-and the delay to 250 milliseconds (mS).  These are the IBM defaults.
-.SH OPTIONS
-.TP
-.B \-s
-Silent.  No messages are printed.
-.TP
-.BI \-r " rate"
-Change the keyboard repeat rate to
-.I rate
-cps.  The allowable range is from 2.0 to 30.0 cps.  Only certain, specific
-values are possible, and the program will select the nearest possible value
-to the one specified.  The possible values are given, in characters per
-second, as follows: 2.0, 2.1, 2.3, 2.5, 2.7, 3.0, 3.3, 3.7, 4.0, 4.3, 4.6,
-5.0, 5.5, 6.0, 6.7, 7.5, 8.0, 8.6, 9.2, 10.0, 10.9, 12.0, 13.3, 15.0, 16.0,
-17.1, 18.5, 20.0, 21.8, 24.0, 26.7, 30.0.
-.TP
-.BI \-d " delay"
-Change the delay to
-.I delay
-milliseconds.  The allowable range is from 250 to 1000 mS, but the only
-possible values (based on hardware restrictions) are: 250mS, 500mS, 750mS,
-and 1000mS.
-.SH BUGS
-Not all keyboards support all rates.
-.PP
-Not all keyboards have the rates mapped in the same way.
-.PP
-Setting the repeat rate on the Gateway AnyKey keyboard does not work.  If
-someone with a Gateway figures out how to program the keyboard, please send
-mail to faith@cs.unc.edu.
-.PP
-The above description is for i386 machines, and writing to some io port
-won't work on other architectures. Nowadays
-.B kbdrate
-first tries if the KDKBDREP ioctl is available. If it is, it is used,
-otherwise the old method is applied.
-
-.SH FILES
-.I /etc/rc.local
-.br
-.I /dev/port
-.SH AUTHOR
-Rik Faith (faith@cs.unc.edu)
diff --git a/sys-utils/lp.h b/sys-utils/lp.h
new file mode 100644 (file)
index 0000000..7fa83dd
--- /dev/null
@@ -0,0 +1,83 @@
+/* Line printer stuff mostly follows the original Centronics printers. See
+   IEEE Std.1284-1994 Standard Signaling Method for a Bi-directional Parallel
+   Peripheral Interface for Personal Computers for 5 modes of data transfer. */
+
+/* Parallel port registers: data (0x3bc, 0x378, 0x278), status=data+1, control=data+2 */
+
+/* Parallel port status register (read only):
+bit 7: NBSY    (1: ready, 0: busy or error or off-line)
+bit 6: NACK    (if NBSY=1, then 1; if NBSY=0 then 1: sending data, 0: ready with data)
+bit 5:  PAP    (1: out-of-paper)
+bit 4: OFON    (1: on-line)
+bit 3: NFEH    (1: OK, 0: printer error)
+bits 2-0: 07
+
+On out-of-paper: PAP=1, OFON=0, NFEH=1.
+
+"When reading the busy status, read twice in a row and use the value
+obtained from the second read. This improves the reliability on some
+parallel ports when the busy line may not be connected and is floating."
+"On some Okidata printers when the busy signal switches from high to low,
+the printer sends a 50 ns glitch on the paper out signal line. Before
+declaring a paper out condition, check the status again."
+(The Undocumented PC, F. van Gilluwe, p. 711)
+*/
+
+/* Parallel port control register (read/write):
+bit 4:  IRQ    (1: we want an interrupt when NACK goes from 1 to 0)
+bit 3:  DSL    (1: activate printer)
+bit 2: NINI    (0: initialise printer)
+bit 1:  ALF    (1: printer performs automatic linefeed after each line)
+bit 0:  STR    (0->1: generate a Strobe pulse: transport data to printer)
+*/
+
+/* Parallel port timing:
+   1. wait for NBSY=1
+   2. outb(data byte, data port)
+   3. wait for at least 0.5us
+   4. read control port, OR with STR=0x1, output to control port - purpose:
+      generate strobe pulse; this will make the busy line go high
+   5. wait for at least 0.5us
+   6. read control port, AND with !STR, output to control port
+   7. wait for at least 0.5us
+   8. in a loop: read status register until NACK bit is 0 or NBSY=1
+      (the printer will keep NACK=0 for at least 0.5us, then NACK=NBSY=1).
+*/
+
+
+/* lp ioctls */
+#define LPCHAR   0x0601  /* specify the number of times we ask for the status
+                           (waiting for ready) before giving up with a timeout
+                           The duration may mainly depend on the timing of an inb. */
+#define LPTIME   0x0602  /* time to sleep after each timeout (in units of 0.01 sec) */
+#define LPABORT  0x0604  /* call with TRUE arg to abort on error,
+                           FALSE to retry.  Default is retry.  */
+#define LPSETIRQ 0x0605  /* call with new IRQ number,
+                           or 0 for polling (no IRQ) */
+#define LPGETIRQ 0x0606  /* get the current IRQ number */
+#define LPWAIT   0x0608  /* #of loops to wait before taking strobe high */
+#define LPCAREFUL   0x0609  /* call with TRUE arg to require out-of-paper, off-
+                           line, and error indicators good on all writes,
+                           FALSE to ignore them.  Default is ignore. */
+#define LPABORTOPEN 0x060a  /* call with TRUE arg to abort open() on error,
+                           FALSE to ignore error.  Default is ignore.  */
+#define LPGETSTATUS 0x060b  /* return LP_S(minor) */
+#define LPRESET     0x060c  /* reset printer */
+#define LPGETFLAGS  0x060e  /* get status flags */
+
+#define LPSTRICT    0x060f  /* enable/disable strict compliance (2.0.36) */
+                            /* Strict: wait until !READY before taking strobe low;
+                              this may be bad for the Epson Stylus 800.
+                              Not strict: wait a constant time as given by LPWAIT */
+#define LPTRUSTIRQ  0x060f  /* set/unset the LP_TRUST_IRQ flag (2.1.131) */
+
+/* 
+ * bit defines for 8255 status port
+ * base + 1
+ * accessed with LP_S(minor), which gets the byte...
+ */
+#define LP_PBUSY       0x80  /* inverted input, active high */
+#define LP_PACK                0x40  /* unchanged input, active low */
+#define LP_POUTPA      0x20  /* unchanged input, active high */
+#define LP_PSELECD     0x10  /* unchanged input, active high */
+#define LP_PERRORP     0x08  /* unchanged input, active low */
index 77e1a58f59e677aa703cc5d369a76a6b0d479419..434784b8bd6dc94a4da72d156546c46c70612775 100644 (file)
@@ -49,12 +49,15 @@ Tue Mar 30 09:31:52 1993: rdev -Rn to set root readonly flag, sct@dcs.ed.ac.uk
 Wed Jun 22 21:12:29 1994: Applied patches from Dave
                           (gentzel@nova.enet.dec.com) to prevent dereferencing
                          the NULL pointer, faith@cs.unc.edu
+1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+- added Native Language Support
 
 -------------------------------------------------------------------------
 
 */
 
 #include <stdio.h>
+#include "nls.h"
 
 /* rdev.c  -  query/set root device. */
 
@@ -62,20 +65,20 @@ void
 usage()
 {
 
-    puts("usage: rdev [ -rsv ] [ -o OFFSET ] [ IMAGE [ VALUE [ OFFSET ] ] ]");
-    puts("  rdev /dev/fd0  (or rdev /linux, etc.) displays the current ROOT device");
-    puts("  rdev /dev/fd0 /dev/hda2         sets ROOT to /dev/hda2");
-    puts("  rdev -R /dev/fd0 1              set the ROOTFLAGS (readonly status)");
-    puts("  rdev -s /dev/fd0 /dev/hda2      set the SWAP device");
-    puts("  rdev -r /dev/fd0 627            set the RAMDISK size");
-    puts("  rdev -v /dev/fd0 1              set the bootup VIDEOMODE");
-    puts("  rdev -o N ...                   use the byte offset N");
-    puts("  rootflags ...                   same as rdev -R");
-    puts("  swapdev ...                     same as rdev -s");
-    puts("  ramsize ...                     same as rdev -r");
-    puts("  vidmode ...                     same as rdev -v");
-    puts("Note: video modes are: -3=Ask, -2=Extended, -1=NormalVga, 1=key1, 2=key2,...");
-    puts("      use -R 1 to mount root readonly, -R 0 for read/write.");
+    puts(_("usage: rdev [ -rsv ] [ -o OFFSET ] [ IMAGE [ VALUE [ OFFSET ] ] ]"));
+    puts(_("  rdev /dev/fd0  (or rdev /linux, etc.) displays the current ROOT device"));
+    puts(_("  rdev /dev/fd0 /dev/hda2         sets ROOT to /dev/hda2"));
+    puts(_("  rdev -R /dev/fd0 1              set the ROOTFLAGS (readonly status)"));
+    puts(_("  rdev -s /dev/fd0 /dev/hda2      set the SWAP device"));
+    puts(_("  rdev -r /dev/fd0 627            set the RAMDISK size"));
+    puts(_("  rdev -v /dev/fd0 1              set the bootup VIDEOMODE"));
+    puts(_("  rdev -o N ...                   use the byte offset N"));
+    puts(_("  rootflags ...                   same as rdev -R"));
+    puts(_("  swapdev ...                     same as rdev -s"));
+    puts(_("  ramsize ...                     same as rdev -r"));
+    puts(_("  vidmode ...                     same as rdev -v"));
+    puts(_("Note: video modes are: -3=Ask, -2=Extended, -1=NormalVga, 1=key1, 2=key2,..."));
+    puts(_("      use -R 1 to mount root readonly, -R 0 for read/write."));
     exit(-1);
 }
 
@@ -90,7 +93,6 @@ usage()
 #include <sys/types.h>
 #include <sys/stat.h>
 
-
 #define DEFAULT_OFFSET 508
 
 
@@ -135,6 +137,10 @@ int main(int argc,char **argv)
     struct stat s;
     int cmd = 0;
 
+    setlocale(LC_ALL, "");
+    bindtextdomain(PACKAGE, LOCALEDIR);
+    textdomain(PACKAGE);
+
     device = NULL;
     if ((ptr = strrchr(argv[0],'/')) != NULL)
        ptr++;
index 4462a811fa7d208e1614df7868b94823e979085b..ba982f7c380bd8b0157a33efff72fb730b8c3bf2 100644 (file)
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+/*
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ */
+
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -26,6 +31,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
+#include "nls.h"
 
 #define RELEASE "2.0, May 1996"
 
@@ -41,14 +47,14 @@ static char optstring[]="m:p:itvarV";
 void usage()
 {
   fprintf(stderr,
-                 "%s: Usage: \"%s [options]\n"
+                 _("%s: Usage: \"%s [options]\n"
                  "\t -m <mapfile>  (default = \"%s\")\n"
                  "\t -p <pro-file> (default = \"%s\")\n"
                  "\t -i            print only info about the sampling step\n"
                  "\t -v            print verbose data\n"
                  "\t -a            print all symbols, even if count is 0\n"
                  "\t -r            reset all the counters (root only)\n"
-                 "\t -V            print version and exit\n"
+                 "\t -V            print version and exit\n")
                  ,prgname,prgname,defaultmap,defaultpro);
   exit(1);
 }
@@ -73,7 +79,7 @@ FILE *pro;
 FILE *map;
 int proFd;
 char *mapFile, *proFile;
-unsigned int len, add0=0, step, index=0;
+unsigned int len=0, add0=0, step, index=0;
 unsigned int *buf, total, fn_len;
 unsigned int fn_add, next_add;           /* current and next address */
 char fn_name[S_LEN], next_name[S_LEN];   /* current and next name */
@@ -86,6 +92,10 @@ int popenMap;   /* flag to tell if popen() has been used */
 
 #define next (current^1)
 
+  setlocale(LC_ALL, "");
+  bindtextdomain(PACKAGE, LOCALEDIR);
+  textdomain(PACKAGE);
+
   prgname=argv[0];
   proFile=defaultpro;
   mapFile=defaultmap;
@@ -100,7 +110,7 @@ int popenMap;   /* flag to tell if popen() has been used */
       case 'i': optInfo++;      break;
       case 'r': optReset++;     break;
       case 'v': optVerbose++;   break;
-      case 'V': printf("%s Version %s\n",prgname,RELEASE); exit(0);
+      case 'V': printf(_("%s Version %s\n"),prgname,RELEASE); exit(0);
       default: usage();
       }
     }
@@ -112,7 +122,7 @@ int popenMap;   /* flag to tell if popen() has been used */
     pro=fopen(defaultpro,"w");
     if (!pro)
       {perror(proFile); exit(1);}
-    fprintf(pro,"anything\n");
+    fprintf(pro,_("anything\n"));
     fclose(pro);
     exit(0);
     }
@@ -141,7 +151,7 @@ int popenMap;   /* flag to tell if popen() has been used */
   step=buf[0];
   if (optInfo)
     {
-    printf("Sampling_step: %i\n",step);
+    printf(_("Sampling_step: %i\n"),step);
     exit(0);
     } 
 
@@ -154,7 +164,7 @@ int popenMap;   /* flag to tell if popen() has been used */
     {
     if (sscanf(mapline,"%x %s %s",&fn_add,mode,fn_name)!=3)
       {
-      fprintf(stderr,"%s: %s(%i): wrong map line\n",
+      fprintf(stderr,_("%s: %s(%i): wrong map line\n"),
              prgname,mapFile, maplineno);
       exit(1);
       }
@@ -167,7 +177,7 @@ int popenMap;   /* flag to tell if popen() has been used */
 
   if (!add0)
     {
-    fprintf(stderr,"%s: can't find \"_stext\" in %s\n",prgname, mapFile);
+    fprintf(stderr,_("%s: can't find \"_stext\" in %s\n"),prgname, mapFile);
     exit(1);
     }
 
@@ -180,7 +190,7 @@ int popenMap;   /* flag to tell if popen() has been used */
 
     if (sscanf(mapline,"%x %s %s",&next_add,mode,next_name)!=3)
       {
-      fprintf(stderr,"%s: %s(%i): wrong map line\n",
+      fprintf(stderr,_("%s: %s(%i): wrong map line\n"),
              prgname,mapFile, maplineno);
       exit(1);
       }
@@ -208,7 +218,7 @@ int popenMap;   /* flag to tell if popen() has been used */
           0,"total",total,total/(double)(fn_add-add0));
   else
     printf("%6i %-40s %8.4f\n",
-          total,"total",total/(double)(fn_add-add0));
+          total,_("total"),total/(double)(fn_add-add0));
        
   popenMap ? pclose(map) : fclose(map);
   exit(0);
index 8867d002268e1528bae1d4e4a86a8c8a3a4a9c9d..6bc83f9920e135127e7efd54ffdc939973eb2410 100644 (file)
  * SUCH DAMAGE.
  */
 
+ /* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+  * - added Native Language Support
+  */
+
 #include <sys/types.h>
 #include <sys/time.h>
 #include <sys/resource.h>
@@ -38,6 +42,8 @@
 #include <stdio.h>
 #include <pwd.h>
 #include <stdlib.h>
+#include <errno.h>
+#include "nls.h"
 
 int donice(int,int,int);
 
@@ -52,10 +58,14 @@ main(int argc, char **argv)
        int which = PRIO_PROCESS;
        int who = 0, prio, errs = 0;
 
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+
        argc--, argv++;
        if (argc < 2) {
-               fprintf(stderr, "usage: renice priority [ [ -p ] pids ] ");
-               fprintf(stderr, "[ [ -g ] pgrps ] [ [ -u ] users ]\n");
+               fprintf(stderr, _("usage: renice priority [ [ -p ] pids ] "
+                                 "[ [ -g ] pgrps ] [ [ -u ] users ]\n"));
                exit(1);
        }
        prio = atoi(*argv);
@@ -81,7 +91,7 @@ main(int argc, char **argv)
                        register struct passwd *pwd = getpwnam(*argv);
                        
                        if (pwd == NULL) {
-                               fprintf(stderr, "renice: %s: unknown user\n",
+                               fprintf(stderr, _("renice: %s: unknown user\n"),
                                        *argv);
                                continue;
                        }
@@ -89,7 +99,7 @@ main(int argc, char **argv)
                } else {
                        who = atoi(*argv);
                        if (who < 0) {
-                               fprintf(stderr, "renice: %s: bad value\n",
+                               fprintf(stderr, _("renice: %s: bad value\n"),
                                        *argv);
                                continue;
                        }
@@ -104,19 +114,18 @@ donice(which, who, prio)
        int which, who, prio;
 {
        int oldprio;
-       extern int errno;
 
        errno = 0, oldprio = getpriority(which, who);
        if (oldprio == -1 && errno) {
                fprintf(stderr, "renice: %d: ", who);
-               perror("getpriority");
+               perror(_("getpriority"));
                return (1);
        }
        if (setpriority(which, who, prio) < 0) {
                fprintf(stderr, "renice: %d: ", who);
-               perror("setpriority");
+               perror(_("setpriority"));
                return (1);
        }
-       printf("%d: old priority %d, new priority %d\n", who, oldprio, prio);
+       printf(_("%d: old priority %d, new priority %d\n"), who, oldprio, prio);
        return (0);
 }
index 10f1501d68b747d07455e401007837932737237a..7aeb2de89a1b0b38e3770f54654da144f1fe9601 100644 (file)
@@ -2,16 +2,25 @@
  * setsid.c -- execute a command in a new session
  * Rick Sladkey <jrs@world.std.com>
  * In the public domain.
+ *
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ *
  */
 
 #include <stdio.h>
 #include <unistd.h>
 #include <stdlib.h>
+#include "nls.h"
 
 int main(int argc, char *argv[])
 {
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+       
        if (argc < 2) {
-               fprintf(stderr, "usage: %s program [arg ...]\n",
+               fprintf(stderr, _("usage: %s program [arg ...]\n"),
                        argv[0]);
                exit(1);
        }
index 8b148f20a675bc20233a77f305455345767cacb5..ac01ed400c1421161b992d0b98669ac5f60145f2 100644 (file)
@@ -1,32 +1,47 @@
 .\" This file Copyright (C) 1992-1997 Michael K. Johnson <johnsonm@redhat.com>
+.\" This file Copyright (C) 1998      Andrea Arcangeli   <andrea@e-mind.com>
 .\" It may be distributed under the terms of the GNU General Public License,
 .\" version 2, or any higher version.  See section COPYING of the GNU General
 .\" Public license for conditions under which this file may be redistributed.
-.\" $Id: tunelp.8,v 1.6 1997/06/20 16:10:35 janl Exp $
-.TH tunelp 8 "26 August 1992" "Cohesive Systems" "Linux Programmer's Manual"
+.\"
+.\" Polished a bit - aeb
+.TH tunelp 8 "7 May 1999" "tunelp" "Linux Programmer's Manual"
 .SH NAME
 tunelp \- set various parameters for the lp device
 .SH SYNOPSIS
-\fBtunelp\fP \fI<device>\fP [-i \fI<IRQ>\fP | -t \fI<TIME>\fP | -c \fI<CHARS>\fP | -w \fI<WAIT>\fP | -a [on|off] | -o [on|off] | -C [on|off] | -r | -s | -q [on|off] ]
+\fBtunelp\fP \fI<device>\fP [-i \fI<IRQ>\fP | -t \fI<TIME>\fP | -c \fI<CHARS>\fP | -w \fI<WAIT>\fP | -a [on|off] | -o [on|off] | -C [on|off] | -r | -s | -q [on|off] | - T [on|off] ]
 .SH DESCRIPTION
 \fBtunelp\fP sets several parameters for the /dev/lp\fI?\fP devices, for better
 performance (or for any performance at all, if your printer won't work
-without it...)  Without parameters, tells whether the device is using
-interrups, and if so, which one.  With parameters, sets the device
+without it...)  Without parameters, it tells whether the device is using
+interrupts, and if so, which one.  With parameters, it sets the device
 characteristics accordingly.  The parameters are as follows:
 
--i \fI<IRQ>\fP is the IRQ to use for the parallel port in question.  If this
-is set to something non-zero, -t and -c have no effect.  If your port
+.TP
+.BI \-i " <IRQ>"
+specifies the IRQ to use for the parallel port in question.  If this
+is set to something non-zero, \-t and \-c have no effect.  If your port
 does not use interrupts, this option will make printing stop.
+The command
 .B tunelp -i 0
 restores non-interrupt driven (polling) action, and your printer should
 work again.  If your parallel port does support interrupts,
 interrupt-driven printing should be somewhat faster and efficient, and
-will probably be desireable.
+will probably be desirable.
 
--t \fI<TIME>\fP is the amount of time in jiffies that the driver waits if the
+NOTE: This option will have no effect with kernel 2.1.131 or later since
+the irq is handled by the parport driver. You can change
+the parport irq for example via
+.IR /proc/parport/*/irq .
+Read
+.I /usr/src/linux/Documentation/parport.txt
+for more details on parport.
+
+.TP
+.BI \-t " <TIME>"
+is the amount of time in jiffies that the driver waits if the
 printer doesn't take a character for the number of tries dictated by
-the -c parameter.  10 is the default value.  If you want fastest
+the \-c parameter.  10 is the default value.  If you want fastest
 possible printing, and don't care about system load, you may set this
 to 0.  If you don't care how fast your printer goes, or are printing
 text on a slow printer with a buffer, then 500 (5 seconds) should be
@@ -34,51 +49,105 @@ fine, and will give you very low system load.  This value generally
 should be lower for printing graphics than text, by a factor of
 approximately 10, for best performance.
 
--c \fI<CHARS>\fP is the number of times to try to output a character to the
-printer before sleeping for -t \fI<TIME>\fP.  It is the number of times around
+.TP
+.BI \-c " <CHARS>"
+is the number of times to try to output a character to the
+printer before sleeping for \-t \fI<TIME>\fP.  It is the number of times around
 a loop that tries to send a character to the printer.  120 appears to
-be a good value for most printers.  250 is the default, because there
-are some printers that require a wait this long, but feel free to
-change this.  If you have a very fast printer like an HP laserjet 4, a
-value of 10 might make more sense.  If you have a \fIreally\fP old
-printer, you can increase this farther.
+be a good value for most printers in polling mode.  1000 is the default,
+because there are some printers that become jerky otherwise, but you \fImust\fP
+set this to `1' to handle the maximal CPU efficiency if you are using
+interrupts. If you have a very fast printer, a value of 10 might make more
+sense even if in polling mode.
+If you have a \fIreally\fP old printer, you can increase this further.
 
-Setting -t \fI<TIME>\fP to 0 is equivalent to setting -c \fI<CHARS>\fP
+Setting \-t \fI<TIME>\fP to 0 is equivalent to setting \-c \fI<CHARS>\fP
 to infinity.
 
--w \fI<WAIT>\fP is the a busy loop counter for the strobe signal.  While most
-printers appear to be able to deal with an extremely short strobe,
-some printers demand a longer one.  Increasing this from the default
-0 may make it possible to print with those printers.  This may also
-make it possible to use longer cables.
+.TP
+.BI \-w " <WAIT>"
+is the number of usec we wait while playing with the strobe signal.
+While most printers appear to be able to deal with an extremely
+short strobe, some printers demand a longer one.  Increasing this from
+the default 1 may make it possible to print with those printers.  This may also
+make it possible to use longer cables. It's also possible to decrease this
+value to 0 if your printer is fast enough or your machine is slow enough.
 
--a [on|off] This is whether to abort on printer error -- the default
+.TP
+.B \-a [on|off]
+This is whether to abort on printer error - the default
 is not to.  If you are sitting at your computer, you probably want to
 be able to see an error and fix it, and have the printer go on
 printing.  On the other hand, if you aren't, you might rather that
 your printer spooler find out that the printer isn't ready, quit
 trying, and send you mail about it.  The choice is yours.
 
--o [on|off] This option is much like -a.  It makes any open() of this
-device check to see that the device is on-line and not reporting any
+.TP
+.B \-o [on|off]
+This option is much like \-a.  It makes any
+.I open()
+of this device check to see that the device is on-line and not reporting any
 out of paper or other errors.  This is the correct setting for most
 versions of lpd.
 
--C [on|off] This option adds extra ("careful") error checking.  When
+.TP
+.B \-C [on|off]
+This option adds extra ("careful") error checking.  When
 this option is on, the printer driver will ensure that the printer is
 on-line and not reporting any out of paper or other errors before
 sending data.  This is particularly useful for printers that normally
 appear to accept data when turned off.
 
--s This option returns the current printer status, both as a 
+NOTE: This option is obsolete because it's the default in 2.1.131 kernel
+or later.
+
+.TP
+.B \-s
+This option returns the current printer status, both as a 
 decimal number from 0..255, and as a list of active flags.  When
-this option is specified, -q off, turning off the display of the
+this option is specified, \-q off, turning off the display of the
 current IRQ, is implied.
 
--o, -C, and -s all require a Linux kernel version of 1.1.76 or later.
+.TP
+.B \-T [on|off]
+This option tell the lp driver to trust or not the IRQ.
+This option makes sense only if you are using interrupts.
+If you tell the lp driver to trust the irq, then, when the lp driver will
+get an irq, it will send the next pending character to the printer
+unconditionally, even if the printer still claims to be BUSY.
+This is the only way to sleep on interrupt (and so the handle the irq
+printing efficiently) at least on Epson Stylus Color Printers.
+The lp driver automagically detects if you could get improved
+performance by setting this flag, and in such case it will warn you
+with a kernel message.
+
+NOTE: Trusting the irq is reported to corrupt the printing on some hardware,
+you must try to know if your printer will work or not...
 
--r This option resets the port.  It requires a Linux kernel version of
+.TP
+.B \-r
+This option resets the port.  It requires a Linux kernel version of
 1.1.80 or later.
 
--q [on|off] This option sets printing the display of the current IRQ
-setting.
+.TP
+.B \-q [on|off]
+This option sets printing the display of the current IRQ setting.
+
+
+.SH NOTES
+\-o, \-C, and \-s all require a Linux kernel version of 1.1.76 or later.
+
+\-C requires a Linux version prior to 2.1.131.
+
+\-T requires a Linux version of 2.1.131 or later.
+
+.SH BUGS
+By some unfortunate coincidence the ioctl LPSTRICT of 2.0.36 has the same
+number as the ioctl LPTRUSTIRQ introduced in 2.1.131. So, use of the \-T option
+on a 2.0.36 kernel with an tunelp compiled under 2.1.131 or later may have
+unexpected effects.
+
+.SH FILES
+.I /dev/lp?
+.br
+.I /proc/parport/*/*
index e3b015ba3fe5ca0f0f17e5bf0466159d292a69b5..dfb30aa67a88bb5afde1edc13708eb3eba6de32f 100644 (file)
  * Revision 1.2  1995/01/03  07:33:44  johnsonm
  * revisions for lp driver updates in Linux 1.1.76
  *
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ *
+ * 1999-05-07 Merged LPTRUSTIRQ patch by Andrea Arcangeli (1998/11/29), aeb
  *
  */
 
-#include<unistd.h>
-#include<stdio.h>
-#include<fcntl.h>
-/* This is for (some) 2.1 kernels */
-#define LP_NEED_CAREFUL
-#include<linux/lp.h>
-#include<linux/fs.h>
-#include<sys/ioctl.h>
-#include<sys/stat.h>
-#include<sys/types.h>
-#include<malloc.h>
-#include<string.h>
-#include<errno.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <fcntl.h>
+/* #include <linux/fs.h> */
+#include <sys/ioctl.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <malloc.h>
+#include <string.h>
+#include <errno.h>
+#include "lp.h"
+#include "nls.h"
+#include "../version.h"
 
 struct command {
   long op;
@@ -69,19 +73,23 @@ struct command {
 
 
 void print_usage(char *progname) {
-  printf("Usage: %s <device> [ -i <IRQ> | -t <TIME> | -c <CHARS> | -w <WAIT> | \n"
-         "          -a [on|off] | -o [on|off] | -C [on|off] | -q [on|off] | -s ]\n", progname);
+  printf(_("Usage: %s <device> [ -i <IRQ> | -t <TIME> | -c <CHARS> | -w <WAIT> | \n"
+          "          -a [on|off] | -o [on|off] | -C [on|off] | -q [on|off] | -s | \n"
+          "          -T [on|off] ]\n"),
+        progname);
   exit (1);
 }
 
 
-
+void print_version(char *progname) {
+  printf("%s %s\n", progname, UTIL_LINUX_VERSION);
+}
 
 
 void *mylloc(long size) {
   void *ptr;
   if(!(ptr = (void*)malloc(size))) {
-    perror("malloc error");
+    perror(_("malloc error"));
     exit(2);
   }
   return ptr;
@@ -92,7 +100,7 @@ void *mylloc(long size) {
 long get_val(char *val) {
   long ret;
   if (!(sscanf(val, "%ld", &ret) == 1)) {
-    perror("sscanf error");
+    perror(_("sscanf error"));
     exit(3);
   }
   return ret;
@@ -114,33 +122,14 @@ int main (int argc, char ** argv) {
   struct stat statbuf;
   struct command *cmds, *cmdst;
 
-
   progname = argv[0];
   if (argc < 2) print_usage(progname);
 
-  filename = strdup(argv[1]);
-  fd = open(filename, O_WRONLY|O_NONBLOCK, 0);
-  /* Need to open O_NONBLOCK in case ABORTOPEN is already set and
-     printer is off or off-line or in an error condition.  Otherwise
-     we would abort... */
-  if (fd < 0) {
-    perror(argv[1]);
-    return -1;
-  }
-
-  fstat(fd, &statbuf);
-
-  if((!S_ISCHR(statbuf.st_mode)) || (MAJOR(statbuf.st_rdev) != 6 )
-     || (MINOR(statbuf.st_rdev) > 3)) {
-    printf("%s: %s not an lp device.\n", argv[0], argv[1]);
-    print_usage(progname);
-  }
-
   cmdst = cmds = mylloc(sizeof(struct command));
   cmds->next = 0;
 
   show_irq = 1;
-  while ((c = getopt(argc, argv, "t:c:w:a:i:ho:C:sq:r")) != EOF) {
+  while ((c = getopt(argc, argv, "t:c:w:a:i:ho:C:sq:rT:vV")) != EOF) {
     switch (c) {
     case 'h':
       print_usage(progname);
@@ -210,10 +199,44 @@ int main (int argc, char ** argv) {
       cmds = cmds->next; cmds->next = 0;
       break;
 #endif
-    default: print_usage(progname);
+#ifdef LPTRUSTIRQ
+    case 'T':
+      /* Note: this will do the wrong thing on 2.0.36 when compiled under 2.2.x */
+      cmds->op = LPTRUSTIRQ;
+      cmds->val = get_onoff(optarg);
+      cmds->next = mylloc(sizeof(struct command));
+      cmds = cmds->next; cmds->next = 0;
+      break;
+#endif
+    case 'v':
+    case 'V':
+      print_version(progname);
+      exit(0);
+    default:
+      print_usage(progname);
     }
   }
 
+  if (optind != argc-1)
+    print_usage(progname);
+
+  filename = strdup(argv[optind]);
+  fd = open(filename, O_WRONLY|O_NONBLOCK, 0);
+  /* Need to open O_NONBLOCK in case ABORTOPEN is already set and
+     printer is off or off-line or in an error condition.  Otherwise
+     we would abort... */
+  if (fd < 0) {
+    perror(filename);
+    return -1;
+  }
+
+  fstat(fd, &statbuf);
+
+  if(!S_ISCHR(statbuf.st_mode)) {
+    printf(_("%s: %s not an lp device.\n"), argv[0], filename);
+    print_usage(progname);
+  }
+
   /* Allow for binaries compiled under a new kernel to work on the old ones */
   /* The irq argument to ioctl isn't touched by the old kernels, but we don't */
   /*  want to cause the kernel to complain if we are using a new kernel */
@@ -231,12 +254,12 @@ int main (int argc, char ** argv) {
       else {
         if (status == 0xdeadbeef)      /* a few 1.1.7x kernels will do this */
           status = retval;
-       printf("%s status is %d", filename, status);
-       if (!(status & LP_PBUSY)) printf(", busy");
-       if (!(status & LP_PACK)) printf(", ready");
-       if ((status & LP_POUTPA)) printf(", out of paper");
-       if ((status & LP_PSELECD)) printf(", on-line");
-       if (!(status & LP_PERRORP)) printf(", error");
+       printf(_("%s status is %d"), filename, status);
+       if (!(status & LP_PBUSY)) printf(_(", busy"));
+       if (!(status & LP_PACK)) printf(_(", ready"));
+       if ((status & LP_POUTPA)) printf(_(", out of paper"));
+       if ((status & LP_PSELECD)) printf(_(", on-line"));
+       if (!(status & LP_PERRORP)) printf(_(", error"));
        printf("\n");
       }
     } else
@@ -253,15 +276,15 @@ int main (int argc, char ** argv) {
     irq = 0xdeadbeef;
     retval = ioctl(fd, LPGETIRQ - offset, &irq);
     if (retval == -1) {
-      perror("LPGETIRQ error");
+      perror(_("LPGETIRQ error"));
       exit(4);
     }
     if (irq == 0xdeadbeef)             /* up to 1.1.77 will do this */
       irq = retval;
     if (irq)
-      printf("%s using IRQ %d\n", filename, irq);
+      printf(_("%s using IRQ %d\n"), filename, irq);
     else
-      printf("%s using polling\n", filename);
+      printf(_("%s using polling\n"), filename);
   }
 
   close(fd);
index 686418d61c4a24723a209e6832a9fb5ff2239237..66fda287ea0fd85a681fca35686399dd8cd7981f 100644 (file)
@@ -3,38 +3,50 @@
 # Revised: Mon Aug 19 20:11:15 1996 by faith@cs.unc.edu
 # Copyright 1992, 1993, 1994, 1995 Rickard E. Faith (faith@cs.unc.edu)
 #
-
+include ../make_include
 include ../MCONFIG
 
 # Where to put man pages?
 
-MAN1=          col.1 colcrt.1 colrm.1 column.1 hexdump.1 more.1 rev.1 \
-               ul.1
+MAN1=          col.1 colcrt.1 colrm.1 column.1 hexdump.1 more.1 rev.1
 
 # Where to put binaries?
 # See the "install" rule for the links. . .
 
 BIN=            more
 
-USRBIN=                col colcrt colrm column hexdump rev ul
+USRBIN=                col colcrt colrm column hexdump rev
+
+ifeq "$(HAVE_NCURSES)" "yes"
+USRBIN:=$(USRBIN) ul
+MAN1:=$(MAN1) ul.1
+endif
 
 # Where to put datebase files?
 
 USRLIB=                more.help
 
+all: $(BIN) $(USRBIN)
+
 # Programs requiring special compilation
 
-NEEDS_NCURSES=  more ul
+NEEDS_NCURSES=  ul
 
-all: $(BIN) $(USRBIN)
+ifeq "$(HAVE_TERMCAP)" "no"
+NEEDS_NCURSES:=$(NEEDS_NCURSES) more
+else
+more:
+       $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBTERMCAP)
+endif
 
 $(NEEDS_NCURSES):
 ifeq "$(HAVE_NCURSES)" "yes"
-       $(CC) $(LDFLAGS) $^ -o $@ $(LIBCURSES)
+       $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBCURSES)
 else
        @echo $@ not made since it requires ncurses
 endif
 
+
 # Rules for hexdump
 
 hexdump: hexdump.o conv.o display.o hexsyntax.o odsyntax.o parse.o
@@ -51,11 +63,11 @@ col: col.o
 colcrt: colcrt.o
 colrm: colrm.o
 column: column.o $(ERR_O)
+more: more.o
 more.o: more.c $(LIB)/pathnames.h
 rev: rev.o
 
 ifeq "$(HAVE_NCURSES)" "yes"
-more: more.o
 ul: ul.o
 endif
 
index 1cbaeb5b1a4487c0e697a4d3e4784fc9162f7be4..f08f51ad8b2cb9341a3f095825041e84fdbf5127 100644 (file)
@@ -37,6 +37,9 @@
  *                           patches from Andries.Brouwer@cwi.nl
  * Wed Sep 14 22:31:17 1994: patches from Carl Christofferson
  *                           (cchris@connected.com)
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ *
  */
 
 #include <stdlib.h>
@@ -46,6 +49,7 @@
 #include <string.h>
 #include <stdio.h>
 #include <unistd.h>
+#include "nls.h"
 #include <locale.h>
 
 #define        BS      '\b'            /* backspace */
@@ -123,9 +127,10 @@ int main(int argc, char **argv)
        int nflushd_lines;              /* number of lines that were flushed */
        int adjust, opt, warned;
 
-       /* we discard characters that do not pass isgraph() */
-       setlocale(LC_CTYPE, "");
-
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+       
        max_bufd_lines = 128;
        compress_spaces = 1;            /* compress spaces into tabs */
        while ((opt = getopt(argc, argv, "bfhl:x")) != EOF)
@@ -142,7 +147,7 @@ int main(int argc, char **argv)
                case 'l':               /* buffered line count */
                        if ((max_bufd_lines = atoi(optarg)) <= 0) {
                                (void)fprintf(stderr,
-                                   "col: bad -l argument %s.\n", optarg);
+                                   _("col: bad -l argument %s.\n"), optarg);
                                exit(1);
                        }
                        break;
@@ -503,19 +508,19 @@ xmalloc(void *p, size_t size)
 
 void usage()
 {
-       (void)fprintf(stderr, "usage: col [-bfx] [-l nline]\n");
+       (void)fprintf(stderr, _("usage: col [-bfx] [-l nline]\n"));
        exit(1);
 }
 
 void wrerr()
 {
-       (void)fprintf(stderr, "col: write error.\n");
+       (void)fprintf(stderr, _("col: write error.\n"));
        exit(1);
 }
 
 void warn(int line)
 {
        (void)fprintf(stderr,
-           "col: warning: can't back up %s.\n", line < 0 ?
-           "past first line" : "-- line already flushed");
+           _("col: warning: can't back up %s.\n"), line < 0 ?
+           _("past first line") : _("-- line already flushed"));
 }
index f21f7692779e9793d003a2fdab45c078e922477f..1620c2737a36bbb4d6238d113d36c98a42a4ccb8 100644 (file)
  * SUCH DAMAGE.
  */
 
+ /* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+  * - added Native Language Support
+  */
+
 #include <stdio.h>
 #include <unistd.h>            /* for close() */
 #include <string.h>
+#include "nls.h"
 
 int plus(char c, char d);
 void move(int l, int m);
@@ -70,6 +75,10 @@ main(int argc, char **argv)
        int c;
        char *cp, *dp;
 
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+
        argc--;
        progname = *argv++;
        while (argc > 0 && argv[0][0] == '-') {
@@ -81,7 +90,7 @@ main(int argc, char **argv)
                                printall = 1;
                                break;
                        default:
-                               printf("usage: %s [ - ] [ -2 ] [ file ... ]\n", progname);
+                               printf(_("usage: %s [ - ] [ -2 ] [ file ... ]\n"), progname);
                                fflush(stdout);
                                exit(1);
                }
index f189e25d262c5d79ae4a7343b0b8c9f2b6efb16f..b17b8fb32008772c621e85941f7ca5f83f424917 100644 (file)
  * SUCH DAMAGE.
  */
 
+ /* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+  * - added Native Language Support
+  */
+
 #include <stdio.h>
 
 /*
index 4ae9522ef735b1721e8fde2d4f9b9b53381304eb..21236b2c868f17fe8738353c4bdc67c80690eaea 100644 (file)
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+/* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ */
 
 #include <sys/types.h>
 #include <sys/ioctl.h>
@@ -41,6 +45,7 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
+#include "nls.h"
 
 void  c_columnate __P((void));
 void *emalloc __P((int));
@@ -74,6 +79,9 @@ main(argc, argv)
        extern char *__progname;
        __progname = argv[0];
 #endif
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
 
        if (ioctl(1, TIOCGWINSZ, &win) == -1 || !win.ws_col) {
                if ((p = getenv("COLUMNS")) != NULL)
@@ -265,7 +273,7 @@ input(fp)
                if (!*p)
                        continue;
                if (!(p = strchr(p, '\n'))) {
-                       warnx("line too long");
+                       warnx(_("line too long"));
                        eval = 1;
                        continue;
                }
@@ -300,6 +308,6 @@ usage()
 {
 
        (void)fprintf(stderr,
-           "usage: column [-tx] [-c columns] [file ...]\n");
+           _("usage: column [-tx] [-c columns] [file ...]\n"));
        exit(1);
 }
index 2b3b1bf7048f1cde72f0ff84c771a6068326f19a..a2be190384b5475861ee95cf6022f52015b1ff43 100644 (file)
  * SUCH DAMAGE.
  */
 
+ /* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+  * - added Native Language Support
+  */
+
 #include <sys/types.h>
 #include <stdio.h>
 #include "hexdump.h"
+#include "nls.h"
 
 FS *fshead;                            /* head of format strings */
 int blocksize;                         /* data block size */
@@ -47,6 +52,10 @@ int main(argc, argv)
        register FS *tfs;
        char *p, *rindex();
 
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+
        if (!(p = rindex(argv[0], 'o')) || strcmp(p, "od"))
                newsyntax(argc, &argv);
        else
index 13671601176c0620d41171913373a66802072bb5..e376b0664350c35aa7fb6ebffd5b2f18b5e8a73f 100644 (file)
  * SUCH DAMAGE.
  */
 
+ /* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+  * - added Native Language Support
+  */
+
 #include <sys/types.h>
 #include <unistd.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include "hexdump.h"
+#include "nls.h"
 
 off_t skip;                            /* bytes to skip */
 
@@ -72,7 +77,7 @@ void newsyntax(int argc, char ***argvp)
                case 'n':
                        if ((length = atoi(optarg)) < 0) {
                                (void)fprintf(stderr,
-                                   "hexdump: bad length value.\n");
+                                   _("hexdump: bad length value.\n"));
                                exit(1);
                        }
                        break;
@@ -83,7 +88,7 @@ void newsyntax(int argc, char ***argvp)
                case 's':
                        if ((skip = strtol(optarg, &p, 0)) < 0) {
                                (void)fprintf(stderr,
-                                   "hexdump: bad skip value.\n");
+                                   _("hexdump: bad skip value.\n"));
                                exit(1);
                        }
                        switch(*p) {
@@ -121,6 +126,6 @@ void newsyntax(int argc, char ***argvp)
 void usage()
 {
        (void)fprintf(stderr,
-"hexdump: [-bcdovx] [-e fmt] [-f fmt_file] [-n length] [-s skip] [file ...]\n");
+_("hexdump: [-bcdovx] [-e fmt] [-f fmt_file] [-n length] [-s skip] [file ...]\n"));
        exit(1);
 }
index 24045472d6c67f301b8e47d4a962e0f5b5cdccea..4c2a179b627ad8acc6684237ae5dd84ec945d769 100644 (file)
 **       on linux/axp.
 **     modified by Kars de Jong <jongk@cs.utwente.nl> to use terminfo instead
 **       of termcap.
+       1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+       - added Native Language Support
+       1999-03-19 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+       - more nls translatable strings
+       1999-05-09 aeb - applied a RedHat patch (setjmp->sigsetjmp); without it
+       a second ^Z would fail.
+       1999-05-09 aeb - undone Kars' work, so that more works without libcurses
+       (and hence can be in /bin with libcurses being in /usr/lib which may not
+       be mounted). However, when termcap is not present curses can still be used.
 */
 
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
 #include <stdlib.h>            /* for alloca() */
+#include <stdarg.h>            /* for va_start() etc */
 #include <sys/param.h>
 #include <ctype.h>
 #include <signal.h>
 #include <sys/file.h>
 #include <sys/wait.h>
 #include <a.out.h>
-#if NCH
-#include <ncurses.h>
-#else
-#include <curses.h>
-#endif
-#include <term.h>
 #include <locale.h>
+#include "nls.h"
 
 #define HELPFILE       "/usr/lib/more.help"
 #define VI             "/usr/bin/vi"
@@ -72,7 +77,7 @@ void home(void);
 void error (char *mess);
 void do_shell (char *filename);
 int  colon (char *filename, int cmd, int nlines);
-int  expand (char *outbuf, char *inbuf);
+int  expand (char **outbuf, char *inbuf);
 void argscan(char *s);
 void rdline (register FILE *f);
 void copy_file(register FILE *f);
@@ -132,7 +137,7 @@ int         nfiles;         /* Number of files left to process */
 char           *shell;         /* The name of the shell to use */
 int            shellp;         /* A previous shell command exists */
 char           ch;
-jmp_buf                restore;
+sigjmp_buf     restore;
 char           Line[LINSIZ];   /* Line buffer */
 int            Lpp = 24;       /* lines per page */
 char           *Clear;         /* clear screen */
@@ -156,7 +161,90 @@ static int magic();
 struct {
     long chrctr, line;
 } context, screen_start;
-/* extern */ char      PC;             /* pad character */
+extern char    PC;             /* pad character */
+
+#ifndef HAVE_termcap
+#define USE_CURSES
+#endif
+
+#ifdef USE_CURSES
+
+#if NCH
+#include <ncurses.h>
+#else
+#include <curses.h>
+#endif
+#include <term.h>                      /* include after <curses.h> */
+
+void
+my_putstring(char *s) {
+     putp(s);
+}
+
+void
+my_setupterm(const char *term, int fildes, int *errret) {
+     setupterm(term, fildes, errret);
+}
+
+int
+my_tgetnum(char *s, char *ss) {
+     return tigetnum(ss);
+}
+
+int
+my_tgetflag(char *s, char *ss) {
+     return tigetflag(ss);
+}
+
+char *
+my_tgetstr(char *s, char *ss) {
+     return tigetstr(ss);
+}
+
+char *
+my_tgoto(const char *cap, int col, int row) {
+     return tparm(cap, col, row);
+}
+
+#else /* no CURSES */
+#include <termcap.h>
+
+char termbuffer[4096];
+char tcbuffer[4096];
+char *strbuf = termbuffer;
+
+void
+my_putstring(char *s) {
+     tputs (s, 1, putchar);
+}
+
+void
+my_setupterm(const char *term, int fildes, int *errret) {
+     *errret = tgetent(tcbuffer, term);
+}
+
+int
+my_tgetnum(char *s, char *ss) {
+     return tgetnum(s);
+}
+
+int
+my_tgetflag(char *s, char *ss) {
+     return tgetflag(s);
+}
+
+char *
+my_tgetstr(char *s, char *ss) {
+     return tgetstr(s, &strbuf);
+}
+
+char *
+my_tgoto(const char *cap, int col, int row) {
+     return tgoto(cap, col, row);
+}
+
+
+#endif /* USE_CURSES */
 
 void
 idummy(int *kk) {}
@@ -178,6 +266,10 @@ int main(int argc, char **argv) {
     char       initbuf[80];
     FILE       *checkf();
 
+    setlocale(LC_ALL, "");
+    bindtextdomain(PACKAGE, LOCALEDIR);
+    textdomain(PACKAGE);
+    
     /* avoid gcc complaints about register variables that
        may be clobbered by a longjmp, by forcing our variables here
        to be non-register */
@@ -231,12 +323,10 @@ int main(int argc, char **argv) {
     if (nfiles > 1)
        prnames++;
     if (!no_intty && nfiles == 0) {
-       char *rindex();
-
-       p = rindex(argv[0], '/');
-       fputs("usage: ",stderr);
-       fputs(p ? p + 1 : argv[0],stderr);
-       fputs(" [-dfln] [+linenum | +/pattern] name1 name2 ...\n",stderr);
+       p = strrchr(argv[0], '/');
+       fprintf(stderr,
+               _("usage: %s [-dfln] [+linenum | +/pattern] name1 name2 ...\n"),
+               p ? p + 1 : argv[0]);
        exit(1);
     }
     else
@@ -287,7 +377,7 @@ int main(int argc, char **argv) {
        if ((f = checkf (fnames[fnum], &clearit)) != NULL) {
            context.line = context.chrctr = 0;
            Currline = 0;
-           if (firstf) setjmp (restore);
+           if (firstf) sigsetjmp (restore, 1);
            if (firstf) {
                firstf = 0;
                if (srchopt) {
@@ -299,7 +389,7 @@ int main(int argc, char **argv) {
                    skiplns (initline, f);
            }
            else if (fnum < nfiles && !no_tty) {
-               setjmp (restore);
+               sigsetjmp (restore, 1);
                left = command (fnames[fnum], f);
            }
            if (left != 0) {
@@ -333,7 +423,7 @@ int main(int argc, char **argv) {
                    within = 0;
                }
            }
-           setjmp (restore);
+           sigsetjmp (restore, 1);
            fflush(stdout);
            fclose(f);
            screen_start.line = screen_start.chrctr = 0L;
@@ -410,7 +500,7 @@ checkf (fs, clearfirst)
                return((FILE *)NULL);
        }
        if ((stbuf.st_mode & S_IFMT) == S_IFDIR) {
-               xprintf("\n*** %s: directory ***\n\n", fs);
+               xprintf(_("\n*** %s: directory ***\n\n"), fs);
                return((FILE *)NULL);
        }
        if ((f = Fopen(fs, "r")) == NULL) {
@@ -449,7 +539,7 @@ magic(f, fs)
                case 0411:
                case 0177545:
                case 0x457f:            /* simple ELF detection */
-                       xprintf("\n******** %s: Not a text file ********\n\n", fs);
+                       xprintf(_("\n******** %s: Not a text file ********\n\n"), fs);
                        (void)fclose(f);
                        return(1);
                }
@@ -504,7 +594,7 @@ void screen (register FILE *f, register int num_lines)
            num_lines--;
        }
        if (pstate) {
-               putp (ULexit);
+               my_putstring (ULexit);
                pstate = 0;
        }
        fflush(stdout);
@@ -518,7 +608,7 @@ void screen (register FILE *f, register int num_lines)
        if (Pause && clreol)
            clreos ();
        Ungetc (c, f);
-       setjmp (restore);
+       sigsetjmp (restore, 1);
        Pause = 0; startup = 0;
        if ((num_lines = command (NULL, f)) == 0)
            return;
@@ -547,13 +637,13 @@ void onquit()
        putchar ('\n');
        if (!startup) {
            signal(SIGQUIT, onquit);
-           longjmp (restore, 1);
+           siglongjmp (restore, 1);
        }
        else
            Pause++;
     }
     else if (!dum_opt && notell) {
-       errwrite("[Use q or Q to quit]");
+       errwrite(_("[Use q or Q to quit]"));
        promptlen += 20;
        notell = 0;
     }
@@ -734,23 +824,23 @@ char *filename;
     if (!hard) {
        promptlen = 8;
        if (Senter && Sexit) {
-           putp (Senter);
+           my_putstring (Senter);
            promptlen += (2 * soglitch);
        }
        if (clreol)
            cleareol ();
-       pr("--More--");
+       pr(_("--More--"));
        if (filename != NULL) {
-           promptlen += xprintf ("(Next file: %s)", filename);
+           promptlen += xprintf (_("(Next file: %s)"), filename);
        }
        else if (!no_intty) {
            promptlen += xprintf ("(%d%%)", (int)((file_pos * 100) / file_size));
        }
        if (dum_opt) {
-           promptlen += pr("[Press space to continue, 'q' to quit.]");
+           promptlen += pr(_("[Press space to continue, 'q' to quit.]"));
        }
        if (Senter && Sexit)
-           putp (Sexit);
+           my_putstring (Sexit);
        if (clreol)
            clreos ();
        fflush(stdout);
@@ -797,7 +887,7 @@ int get_line(register FILE *f, int *length)
            if (!hardtabs || (column < promptlen && !hard)) {
                if (hardtabs && eraseln && !dumb) {
                    column = 1 + (column | 7);
-                   putp (eraseln);
+                   my_putstring (eraseln);
                    promptlen = 0;
                }
                else {
@@ -866,7 +956,7 @@ void erasep (register int col)
        if (col == 0)
            putchar ('\r');
        if (!dumb && eraseln)
-           putp (eraseln);
+           my_putstring (eraseln);
        else
            for (col = promptlen - col; col > 0; col--)
                putchar (' ');
@@ -890,12 +980,12 @@ void kill_line ()
  */
 void cleareol()
 {
-    putp(eraseln);
+    my_putstring(eraseln);
 }
 
 void clreos()
 {
-    putp(EodClr);
+    my_putstring(EodClr);
 }
 
 /*
@@ -939,13 +1029,13 @@ void prbuf (register char *s, register int n)
                if (c == ' ' && state == 0 && ulglitch && wouldul(s, n-1))
                    state = 1;
                else
-                   putp(state ? ULenter : ULexit);
+                   my_putstring(state ? ULenter : ULexit);
            }
            if (c != ' ' || pstate == 0 || state != 0 || ulglitch == 0)
                putchar(c);
            if (state && *chUL) {
                pr(chBS);
-               putp(chUL);
+               my_putstring(chUL);
            }
            pstate = state;
        }
@@ -958,7 +1048,7 @@ void
 doclear()
 {
     if (Clear && !hard) {
-       putp(Clear);
+       my_putstring(Clear);
 
        /* Put out carriage return so that system doesn't
        ** get confused by escape sequences when expanding tabs
@@ -974,12 +1064,12 @@ doclear()
 void
 home()
 {
-    putp(Home);
+    my_putstring(Home);
 }
 
 static int lastcmd, lastarg, lastp;
 static int lastcolon;
-char shell_line[132];
+char shell_line[1000];
 
 /*
 ** Read a command and do it. A command consists of an optional integer
@@ -1017,7 +1107,7 @@ int command (char *filename, register FILE *f)
        }
        lastcmd = comchar;
        lastarg = nlines;
-       if (comchar == otty.c_cc[VERASE]) {
+       if ((cc_t) comchar == otty.c_cc[VERASE]) {
            kill_line ();
            prompt (filename);
            continue;
@@ -1045,7 +1135,7 @@ int command (char *filename, register FILE *f)
                xprintf ("\n");
                if (clreol)
                        cleareol ();
-               xprintf ("...back %d page", nlines);
+               xprintf (_("...back %d page"), nlines);
                if (nlines > 1)
                        pr ("s\n");
                else
@@ -1091,7 +1181,7 @@ int command (char *filename, register FILE *f)
            xprintf ("\n");
            if (clreol)
                cleareol ();
-           xprintf ("...skipping %d line", nlines);
+           xprintf (_("...skipping %d line"), nlines);
            if (nlines > 1)
                pr ("s\n");
            else
@@ -1132,7 +1222,7 @@ int command (char *filename, register FILE *f)
        case '\'':
            if (!no_intty) {
                kill_line ();
-               pr ("\n***Back***\n\n");
+               pr (_("\n***Back***\n\n"));
                Fseek (f, context.chrctr);
                Currline = context.line;
                ret (dlines);
@@ -1170,7 +1260,7 @@ int command (char *filename, register FILE *f)
        case '?':
        case 'h':
            if ((helpf = fopen (HELPFILE, "r")) == NULL)
-               error ("Can't open help file");
+               error (_("Can't open help file"));
            if (noscroll) doclear ();
            copy_file (helpf);
            fclose (helpf);
@@ -1190,12 +1280,12 @@ int command (char *filename, register FILE *f)
            if (dum_opt) {
                kill_line ();
                if (Senter && Sexit) {
-                   putp (Senter);
-                   promptlen = pr ("[Press 'h' for instructions.]") + (2 * soglitch);
-                   putp (Sexit);
+                   my_putstring (Senter);
+                   promptlen = pr (_("[Press 'h' for instructions.]")) + (2 * soglitch);
+                   my_putstring (Sexit);
                }
                else
-                   promptlen = pr ("[Press 'h' for instructions.]");
+                   promptlen = pr (_("[Press 'h' for instructions.]"));
                fflush (stdout);
            }
            else
@@ -1230,9 +1320,9 @@ int colon (char *filename, int cmd, int nlines)
        case 'f':
                kill_line ();
                if (!no_intty)
-                       promptlen = xprintf ("\"%s\" line %d", fnames[fnum], Currline);
+                       promptlen = xprintf (_("\"%s\" line %d"), fnames[fnum], Currline);
                else
-                       promptlen = xprintf ("[Not a file] line %d", Currline);
+                       promptlen = xprintf (_("[Not a file] line %d"), Currline);
                fflush (stdout);
                return (-1);
        case 'n':
@@ -1282,7 +1372,7 @@ int number(char *cmd)
                ch = readch ();
                if (isdigit(ch))
                        i = i*10 + ch - '0';
-               else if (ch == otty.c_cc[VKILL])
+               else if ((cc_t) ch == otty.c_cc[VKILL])
                        i = 0;
                else {
                        *cmd = ch;
@@ -1294,7 +1384,9 @@ int number(char *cmd)
 
 void do_shell (char *filename)
 {
-       char cmdbuf[80];
+       char cmdbuf[200];
+       int rc;
+       char *expanded;
 
        kill_line ();
        pr ("!");
@@ -1304,7 +1396,20 @@ void do_shell (char *filename)
                pr (shell_line);
        else {
                ttyin (cmdbuf, sizeof(cmdbuf)-2, '!');
-               if (expand (shell_line, cmdbuf)) {
+               expanded = 0;
+               rc = expand (&expanded, cmdbuf);
+               if (expanded) {
+                       if (strlen(expanded) < sizeof(shell_line))
+                               strcpy(shell_line, expanded);
+                       else
+                               rc = -1;
+                       free(expanded);
+               }
+               if (rc < 0) {
+                       errwrite(_("  Overflow\n"));
+                       prompt (filename);
+                       return;
+               } else if (rc > 0) {
                        kill_line ();
                        promptlen = xprintf ("!%s", shell_line);
                }
@@ -1348,7 +1453,7 @@ void search(char buf[], FILE *file, register int n)
                        pr ("\n");
                        if (clreol)
                            cleareol ();
-                       pr("...skipping\n");
+                       pr(_("...skipping\n"));
                    }
                    if (!no_intty) {
                        Currline -= (lncount >= 3 ? 3 : lncount);
@@ -1378,7 +1483,7 @@ void search(char buf[], FILE *file, register int n)
                    break;
                }
        } else if (rv == -1)
-           error ("Regular expression botch");
+           error (_("Regular expression botch"));
     }
     if (feof (file)) {
        if (!no_intty) {
@@ -1390,10 +1495,10 @@ void search(char buf[], FILE *file, register int n)
            Fseek (file, startline);
        }
        else {
-           pr ("\nPattern not found\n");
+           pr (_("\nPattern not found\n"));
            end_it ();
        }
-       error ("Pattern not found");
+       error (_("Pattern not found"));
     }
 }
 
@@ -1418,14 +1523,13 @@ void execute (char * filename, char * cmd, ...)
            }
 
            va_start(argp, cmd);
-
            arg = va_arg(argp, char *);
            argcount = 0;
            while (arg) {
                argcount++;
                arg = va_arg(argp, char *);
            }
-           va_end(argp);       /* balance {}'s for some UNIX's */
+           va_end(argp);
 
            args = alloca(sizeof(char *) * (argcount + 1));
            args[argcount] = NULL;
@@ -1438,10 +1542,10 @@ void execute (char * filename, char * cmd, ...)
                argcount++;
                arg = va_arg(argp, char *);
            }
-           va_end(argp);       /* balance {}'s for some UNIX's */
+           va_end(argp);
        
            execv (cmd, args);
-           errwrite("exec failed\n");
+           errwrite(_("exec failed\n"));
            exit (1);
        }
        if (id > 0) {
@@ -1455,7 +1559,7 @@ void execute (char * filename, char * cmd, ...)
            if (catch_susp)
                signal(SIGTSTP, onsusp);
        } else
-           errwrite("can't fork\n");
+           errwrite(_("can't fork\n"));
        set_tty ();
        pr ("------------------------\n");
        prompt (filename);
@@ -1494,12 +1598,12 @@ void skipf (register int nskip)
     fnum += nskip;
     if (fnum < 0)
        fnum = 0;
-    pr ("\n...Skipping ");
+    pr (_("\n...Skipping "));
     pr ("\n");
     if (clreol)
        cleareol ();
-    pr ("...Skipping ");
-    pr (nskip > 0 ? "to file " : "back to file ");
+    pr (_("...Skipping "));
+    pr (nskip > 0 ? _("to file ") : _("back to file "));
     pr (fnames[fnum]);
     pr ("\n");
     if (clreol)
@@ -1544,7 +1648,7 @@ retry:
        if ((term = getenv("TERM")) == 0) {
            dumb++; ul_opt = 0;
        }
-        setupterm(term, 1, &ret);
+        my_setupterm(term, 1, &ret);
        if (ret <= 0) {
            dumb++; ul_opt = 0;
        }
@@ -1552,35 +1656,35 @@ retry:
 #ifdef TIOCGWINSZ
            if (ioctl(fileno(stdout), TIOCGWINSZ, &win) < 0) {
 #endif
-               Lpp = tigetnum("lines");
-               Mcol = tigetnum("cols");
+               Lpp = my_tgetnum("li","lines");
+               Mcol = my_tgetnum("co","cols");
 #ifdef TIOCGWINSZ
            } else {
                if ((Lpp = win.ws_row) == 0)
-                   Lpp = tigetnum("lines");
+                   Lpp = my_tgetnum("li","lines");
                if ((Mcol = win.ws_col) == 0)
-                   Mcol = tigetnum("cols");
+                   Mcol = my_tgetnum("co","cols");
            }
 #endif
-           if ((Lpp <= 0) || tigetflag("hc")) {
+           if ((Lpp <= 0) || my_tgetflag("hc","hc")) {
                hard++; /* Hard copy terminal */
                Lpp = 24;
            }
 
-           if (tigetflag("xenl"))
+           if (my_tgetflag("xn","xenl"))
                eatnl++; /* Eat newline at last column + 1; dec, concept */
            if (Mcol <= 0)
                Mcol = 80;
 
            if (tailequ (fnames[0], "page"))
                noscroll++;
-           Wrap = tigetflag("am");
-           bad_so = tigetflag ("xhp");
-           eraseln = tigetstr("el");
-           Clear = tigetstr("clear");
-           Senter = tigetstr("smso");
-           Sexit = tigetstr("rmso");
-           if ((soglitch = tigetnum("xmc")) < 0)
+           Wrap = my_tgetflag("am","am");
+           bad_so = my_tgetflag ("xs","xhp");
+           eraseln = my_tgetstr("ce","el");
+           Clear = my_tgetstr("cl","clear");
+           Senter = my_tgetstr("co","smso");
+           Sexit = my_tgetstr("se","rmso");
+           if ((soglitch = my_tgetnum("sg","xmc")) < 0)
                soglitch = 0;
 
            /*
@@ -1591,12 +1695,12 @@ retry:
             *  isn't available, settle for standout sequence.
             */
 
-           if (tigetflag("ul") || tigetflag("os"))
+           if (my_tgetflag("ul","ul") || my_tgetflag("os","os"))
                ul_opt = 0;
-           if ((chUL = tigetstr("uc")) == NULL )
+           if ((chUL = my_tgetstr("uc","uc")) == NULL )
                chUL = "";
-           if (((ULenter = tigetstr("smul")) == NULL ||
-                (ULexit = tigetstr("rmul")) == NULL) && !*chUL) {
+           if (((ULenter = my_tgetstr("us","smul")) == NULL ||
+                (ULexit = my_tgetstr("ue","rmul")) == NULL) && !*chUL) {
                if ((ULenter = Senter) == NULL || (ULexit = Sexit) == NULL) {
                        ULenter = "";
                        ULexit = "";
@@ -1606,18 +1710,20 @@ retry:
                ulglitch = 0;
            }
 
-           if ((padstr = tigetstr("pad")) != NULL)
+           if ((padstr = my_tgetstr("pc","pad")) != NULL)
                PC = *padstr;
-           Home = tigetstr("home");
+           Home = my_tgetstr("ho","home");
            if (Home == 0 || *Home == '\0')
            {
-               if ((cursorm = tigetstr("cup")) != NULL) {
-                   strcpy(cursorhome, (const char *)tparm(cursorm, 0, 0));
+               if ((cursorm = my_tgetstr("cm","cup")) != NULL) {
+                   const char *t = (const char *)my_tgoto(cursorm, 0, 0);
+                   strncpy(cursorhome, t, sizeof(cursorhome));
+                   cursorhome[sizeof(cursorhome)-1] = 0;
                    Home = cursorhome;
               }
            }
-           EodClr = tigetstr("ed");
-           if ((chBS = tigetstr("cub1")) == NULL)
+           EodClr = my_tgetstr("cd","ed");
+           if ((chBS = my_tgetstr("le","cub1")) == NULL)
                chBS = "\b";
 
        }
@@ -1676,7 +1782,7 @@ void ttyin (char buf[], register int nmax, char pchar)
        if (ch == '\\') {
            slash++;
        }
-       else if ((ch == otty.c_cc[VERASE]) && !slash) {
+       else if (((cc_t) ch == otty.c_cc[VERASE]) && !slash) {
            if (sptr > buf) {
                --promptlen;
                ERASEONECHAR
@@ -1689,10 +1795,10 @@ void ttyin (char buf[], register int nmax, char pchar)
            }
            else {
                if (!eraseln) promptlen = maxlen;
-               longjmp (restore, 1);
+               siglongjmp (restore, 1);
            }
        }
-       else if ((ch == otty.c_cc[VKILL]) && !slash) {
+       else if (((cc_t) ch == otty.c_cc[VKILL]) && !slash) {
            if (hard) {
                show (ch);
                putchar ('\n');
@@ -1712,7 +1818,8 @@ void ttyin (char buf[], register int nmax, char pchar)
            fflush (stdout);
            continue;
        }
-       if (slash && (ch == otty.c_cc[VKILL] || ch == otty.c_cc[VERASE])) {
+       if (slash && ((cc_t) ch == otty.c_cc[VKILL]
+                  || (cc_t) ch == otty.c_cc[VERASE])) {
            ERASEONECHAR
            --sptr;
        }
@@ -1735,33 +1842,51 @@ void ttyin (char buf[], register int nmax, char pchar)
     *--sptr = '\0';
     if (!eraseln) promptlen = maxlen;
     if (sptr - buf >= nmax - 1)
-       error ("Line too long");
+       error (_("Line too long"));
 }
 
-int expand (char *outbuf, char *inbuf)
+/* return: 0 - unchanged, 1 - changed, -1 - overflow (unchanged) */
+int expand (char **outbuf, char *inbuf)
 {
-    register char *instr;
-    register char *outstr;
-    register char ch;
-    char temp[200];
+    char *instr;
+    char *outstr;
+    char ch;
+    char *temp;
     int changed = 0;
-
+    int tempsz, xtra, offset;
+
+    xtra = strlen (fnames[fnum]) + strlen (shell_line) + 1;
+    tempsz = 200 + xtra;
+    temp = malloc(tempsz);
+    if (!temp) {
+           error (_("Out of memory"));
+           return -1;
+    }
     instr = inbuf;
     outstr = temp;
-    while ((ch = *instr++) != '\0')
+    while ((ch = *instr++) != '\0'){
+       offset = outstr-temp;
+       if (tempsz-offset-1 < xtra) {
+               tempsz += 200 + xtra;
+               temp = realloc(temp, tempsz);
+               if (!temp) {
+                       error (_("Out of memory"));
+                       return -1;
+               }
+               outstr = temp + offset;
+       }
        switch (ch) {
        case '%':
            if (!no_intty) {
                strcpy (outstr, fnames[fnum]);
                outstr += strlen (fnames[fnum]);
                changed++;
-           }
-           else
+           } else
                *outstr++ = ch;
            break;
        case '!':
            if (!shellp)
-               error ("No previous command to substitute for");
+               error (_("No previous command to substitute for"));
            strcpy (outstr, shell_line);
            outstr += strlen (shell_line);
            changed++;
@@ -1774,8 +1899,9 @@ int expand (char *outbuf, char *inbuf)
        default:
            *outstr++ = ch;
        }
+    }
     *outstr++ = '\0';
-    strcpy (outbuf, temp);
+    *outbuf = temp;
     return (changed);
 }
 
@@ -1811,15 +1937,15 @@ void error (char *mess)
        kill_line ();
     promptlen += strlen (mess);
     if (Senter && Sexit) {
-       putp (Senter);
+       my_putstring (Senter);
        pr(mess);
-       putp (Sexit);
+       my_putstring (Sexit);
     }
     else
        pr (mess);
     fflush(stdout);
     errors++;
-    longjmp (restore, 1);
+    siglongjmp (restore, 1);
 }
 
 
@@ -1891,5 +2017,5 @@ void onsusp ()
     signal (SIGTSTP, onsusp);
     set_tty ();
     if (inwait)
-           longjmp (restore, 1);
+           siglongjmp (restore, 1);
 }
diff --git a/text-utils/more.help.cs b/text-utils/more.help.cs
new file mode 100644 (file)
index 0000000..1a69cb3
--- /dev/null
@@ -0,0 +1,28 @@
+
+Vìt¹inì pøíkazù mù¾e jako argument pøedcházet celé èíslo k. Implicitní hodnoty
+jsou v hranatých závorkách. Hvìzdièka (*) znamená, ¾e hodnota argumentu se
+stane implicitní.
+-------------------------------------------------------------------------------
+<mezerník>              Zobrazí dal¹ích k øádkù textu. [aktuální velikost
+                        obrazovky]
+z                       Zobrazí dal¹ích k øádkù textu. [aktuální velikost
+                        obrazovky]*
+<return>                Zobrazí dal¹ích k øádkù textu. [1]*
+d èi ctrl-D             Posun o k øádkù [aktuální velikost posunu, po spu¹tìní
+                        11]*
+q èi Q èi <interrupt>   Ukonèení programu
+s                       Posun vpøed o k øádkù [1]
+f                       Posun vpøed o k stran [1]
+b èi ctrl-B             Posun vzad o k stran [1]
+'                       Pøeskoèí na místo, kde bylo zahájeno pøedchozí hledání
+=                       Zobrazí èíslo aktuálního øádku
+/<regulární výraz>      Hledá ktý výskyt regulárního výrazu [1]
+n                       Hledá ktý výrazu posledního regulárního výrazu [1]
+!<pøíkaz> èi :!<pøíkaz> Spustí <pøíkaz> v podshellu
+v                       Spustí /usr/bin/vi na aktuálním øádku
+ctrl-L                  Pøekreslí obrazovku
+:n                      Pøeskoèí na ktý následující soubor [1]
+:p                      Pøeskoèí na ktý pøedcházející soubor [1]
+:f                      Vypí¹e jméno aktuálního souboru a èíslo aktuálního øádku
+.                       Zopakuje pøedcházející pøíkaz
+-------------------------------------------------------------------------------
index cc543c33c28dc21cf69546e06237d10fae9e6c6d..c22e71d014804925d33581d9f2d8228d18ad52a3 100644 (file)
  * SUCH DAMAGE.
  */
 
+ /* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+  * - added Native Language Support
+  */
+
 #include <sys/types.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <ctype.h>             /* for isdigit() */
 #include <unistd.h>            /* for getopt() */
 #include "hexdump.h"
+#include "nls.h"
 
 static void odoffset(int, char ***);
 
@@ -125,11 +130,11 @@ oldsyntax(int argc, char ***argvp)
                case '?':
                default:
                        (void)fprintf(stderr,
-                           "od: od(1) has been deprecated for hexdump(1).\n");
+                           _("od: od(1) has been deprecated for hexdump(1).\n"));
                        if (ch != '?')
                                (void)fprintf(stderr,
-"od: hexdump(1) compatibility doesn't support the -%c option%s\n",
-                                   ch, ch == 's' ? "; see strings(1)." : ".");
+_("od: hexdump(1) compatibility doesn't support the -%c option%s\n"),
+                                   ch, ch == 's' ? _("; see strings(1).") : ".");
                        usage();
                }
 
index ececd131663dee035be4d7d7a70c6579dcaae517..1102e975db29c5532545cfe3ac4461dd3ceb1712 100644 (file)
  * SUCH DAMAGE.
  */
 
+ /* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+  * - added Native Language Support
+  */
+
 #include <sys/types.h>
 #include <sys/file.h>
 #include <stdio.h>
@@ -38,6 +42,7 @@
 #include <ctype.h>
 #include <string.h>
 #include "hexdump.h"
+#include "nls.h"
 
 static void escape(register char *p1);
 static void badcnt(char *s);
@@ -55,12 +60,12 @@ void addfile(char *name)
        char buf[2048 + 1];
 
        if (!(fp = fopen(name, "r"))) {
-               (void)fprintf(stderr, "hexdump: can't read %s.\n", name);
+               (void)fprintf(stderr, _("hexdump: can't read %s.\n"), name);
                exit(1);
        }
        while (fgets(buf, sizeof(buf), fp)) {
                if (!(p = index(buf, '\n'))) {
-                       (void)fprintf(stderr, "hexdump: line too long.\n");
+                       (void)fprintf(stderr, _("hexdump: line too long.\n"));
                        while ((ch = getchar()) != '\n' && ch != EOF);
                        continue;
                }
@@ -398,7 +403,7 @@ sw2:                                        switch(fu->bcnt) {
                        /* only one conversion character if byte count */
                        if (!(pr->flags&F_ADDRESS) && fu->bcnt && nconv++) {
                                (void)fprintf(stderr,
-                                   "hexdump: byte count with multiple conversion characters.\n");
+                                   _("hexdump: byte count with multiple conversion characters.\n"));
                                exit(1);
                        }
                }
@@ -482,25 +487,25 @@ static void escape(register char *p1)
 static void badcnt(char *s)
 {
        (void)fprintf(stderr,
-           "hexdump: bad byte count for conversion character %s.\n", s);
+           _("hexdump: bad byte count for conversion character %s.\n"), s);
        exit(1);
 }
 
 static void badsfmt()
 {
        (void)fprintf(stderr,
-           "hexdump: %%s requires a precision or a byte count.\n");
+           _("hexdump: %%s requires a precision or a byte count.\n"));
        exit(1);
 }
 
 static void badfmt(char *fmt)
 {
-       (void)fprintf(stderr, "hexdump: bad format {%s}\n", fmt);
+       (void)fprintf(stderr, _("hexdump: bad format {%s}\n"), fmt);
        exit(1);
 }
 
 static void badconv(char *ch)
 {
-       (void)fprintf(stderr, "hexdump: bad conversion character %%%s.\n", ch);
+       (void)fprintf(stderr, _("hexdump: bad conversion character %%%s.\n"), ch);
        exit(1);
 }
index 5c3a8406dad19ef8b655c7a9c05f34e291ce708e..dbc25cd8020185daac05dc27024b204fe39e14aa 100644 (file)
@@ -37,6 +37,9 @@
  *                           last line that has no newline correctly.
  * 3-Jun-1998: Patched by Nicolai Langfeldt to work better on Linux:
  *     Handle any-length-lines.  Code copied from util-linux' setpwnam.c
+ * 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+ * - added Native Language Support
+ *
  */
 
 #include <sys/types.h>
@@ -45,6 +48,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include "nls.h"
 
 void usage __P((void));
 void warn __P((const char *, ...));
@@ -61,6 +65,10 @@ main(argc, argv)
   FILE *fp;
   int ch, rval;
 
+  setlocale(LC_ALL, "");
+  bindtextdomain(PACKAGE, LOCALEDIR);
+  textdomain(PACKAGE);
+
   while ((ch = getopt(argc, argv, "")) != EOF)
     switch(ch) {
     case '?':
@@ -98,7 +106,7 @@ main(argc, argv)
 
        p = realloc(p, buflen);
        if (p == NULL) {
-         fprintf(stderr,"Unable to allocate bufferspace\n");
+         fprintf(stderr,_("Unable to allocate bufferspace\n"));
          exit(1);
        }
 
@@ -156,6 +164,6 @@ warn(fmt, va_alist)
 void
 usage()
 {
-       (void)fprintf(stderr, "usage: rev [file ...]\n");
+       (void)fprintf(stderr, _("usage: rev [file ...]\n"));
        exit(1);
 }
index 8da3b3f7cc7e9241f7f3c54ca74b4c8f3dde75aa..a99de9d88665bd23c4840047373a6f01e98bf475 100644 (file)
 /*
 **     modified by Kars de Jong <jongk@cs.utwente.nl> to use terminfo instead
 **       of termcap.
+       1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+       - added Native Language Support
+
 */
 
 #include <stdio.h>
 #include <unistd.h>            /* for getopt(), isatty() */
-#include <string.h>            /* for bzero() */
+#include <string.h>            /* for bzero(), strcpy() */
 #include <term.h>              /* for setupterm() */
 #include <stdlib.h>            /* for getenv() */
 #include <limits.h>            /* for INT_MAX */
+#include "nls.h"
 
 void filter(FILE *f);
 void flushln(void);
@@ -98,6 +102,10 @@ int main(int argc, char **argv)
        char *termtype;
        FILE *f;
 
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+
        termtype = getenv("TERM");
        if (termtype == NULL || (argv[0][0] == 'c' && !isatty(1)))
                termtype = "lpr";
@@ -114,7 +122,7 @@ int main(int argc, char **argv)
 
                default:
                        fprintf(stderr,
-                               "usage: %s [ -i ] [ -tTerm ] file...\n",
+                               _("usage: %s [ -i ] [ -tTerm ] file...\n"),
                                argv[0]);
                        exit(1);
                }
@@ -125,7 +133,7 @@ int main(int argc, char **argv)
                break;
 
        default:
-               fprintf(stderr,"trouble reading terminfo");
+               fprintf(stderr,_("trouble reading terminfo"));
                /* fall through to ... */
 
        case 0:
@@ -212,7 +220,7 @@ void filter(FILE *f)
 
                default:
                        fprintf(stderr,
-                               "Unknown escape sequence in input: %o, %o\n",
+                               _("Unknown escape sequence in input: %o, %o\n"),
                                IESC, c);
                        exit(1);
                }
@@ -361,7 +369,7 @@ void initbuf()
                obuflen = INITBUF;
                obuf = malloc(sizeof(struct CHAR) * obuflen);
                if (obuf == NULL) {
-                       fprintf(stderr, "Unable to allocate buffer.\n");
+                       fprintf(stderr, _("Unable to allocate buffer.\n"));
                        exit(1);
                }
        }
@@ -518,7 +526,7 @@ void setcol(int newcol)
                        /* Paranoid check for obuflen == INT_MAX. */
                        if (obuflen == INT_MAX) {
                                fprintf(stderr,
-                                       "Input line too long.\n");
+                                       _("Input line too long.\n"));
                                exit(1);
                        }
 
@@ -531,7 +539,7 @@ void setcol(int newcol)
                        obuf = realloc(obuf, sizeof(struct CHAR) * obuflen);
                        if (obuf == NULL) {
                                fprintf(stderr,
-                                       "Out of memory when growing buffer.\n");
+                                       _("Out of memory when growing buffer.\n"));
                                exit(1);
                        }
                }
index 4b8deb079092d4c3b51719a04a31335366ccbd37..cea291deb0bca34bd03378c8335935022bf77562 100644 (file)
--- a/version.h
+++ b/version.h
@@ -1,3 +1,3 @@
-#define UTIL_LINUX_VERSION     "2.9i"
+#define UTIL_LINUX_VERSION     "2.9v"
 
 const char * const util_linux_version = "util-linux " UTIL_LINUX_VERSION;