From d26aa358f42df65da50014ad62b1a78f22c97400 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Thu, 7 Dec 2006 00:26:19 +0100 Subject: [PATCH] Imported from util-linux-2.12h tarball. --- HISTORY | 12 + MCONFIG | 6 + README | 4 +- VERSION | 2 +- disk-utils/elvtune.c | 39 +- fdisk/cfdisk.c | 105 +- fdisk/sfdisk.c | 25 +- login-utils/shutdown.c | 13 +- mount/fstab.5 | 6 +- mount/fstab.c | 57 +- mount/fstab.h | 17 +- mount/get_label_uuid.c | 26 +- mount/linux_fs.h | 52 +- mount/lomount.c | 34 +- mount/mntent.c | 20 +- mount/mntent.h | 18 +- mount/mount.8 | 47 +- mount/mount.c | 471 +++--- mount/mount_guess_fstype.c | 27 +- mount/mount_guess_fstype.h | 2 +- mount/paths.h | 10 + mount/realpath.c | 24 +- mount/sundries.c | 25 +- mount/swapon.c | 2 +- mount/umount.c | 85 +- po/ca.po | 2 +- po/cat-id-tbl.c | 3286 ++++++++++++++++++------------------ po/cs.po | 2 +- po/da.po | 2 +- po/de.po | 2 +- po/es.po | 2 +- po/et.po | 2 +- po/fi.po | 2 +- po/fr.po | 2 +- po/it.po | 2 +- po/ja.po | 2 +- po/nl.po | 2 +- po/pt_BR.po | 2 +- po/sl.po | 2 +- po/sv.po | 2 +- po/tr.po | 2 +- po/uk.po | 2 +- 42 files changed, 2317 insertions(+), 2130 deletions(-) create mode 100644 mount/paths.h diff --git a/HISTORY b/HISTORY index f3815794..037f6ce6 100644 --- a/HISTORY +++ b/HISTORY @@ -1,3 +1,15 @@ +util-linux 2.12e,f,g,h + +* cfdisk: avoid crash if no partition table +* elvtune: tell user that this only works on 2.4 kernels +* lomount: clear passwords after use +* mount: accept comments (introduced by \;) in fstab - withdrawn again +* mount: accept comments (specified by comment=) in fstab +* mount: support ocfs, ocfs2 +* [u]mount: be more careful with malloc, try to avoid OOM with many mounts +* sfdisk: __attribute__used nonsense to support gcc 3.4 +* shutdown: do not unmount various virtual filesystems + util-linux 2.12c,d * mount.8: added recent ext2 mount options diff --git a/MCONFIG b/MCONFIG index c68d46b0..23087926 100644 --- a/MCONFIG +++ b/MCONFIG @@ -7,6 +7,12 @@ # - set USE_TTY_GROUP=no # - define DESTDIR +## Configuration outside of this file you might want to do for mount: +## If make_include has HAVE_BLKID=yes, turn that into HAVE_BLKID=no +## if you do not want to use the blkid library. +## In mount/realpath.c turn #define resolve_symlinks into +## #undef resolve_symlinks if you use devfs and hate long names. + # Select for ARCH one of intel, alpha, sparc, arm, m68k, mips # Select for CPU i386 if the binaries must be able to run on an intel 386 # (by default i486 code is generated, see below) diff --git a/README b/README index 48a0b13a..db2bcf6d 100644 --- a/README +++ b/README @@ -5,5 +5,7 @@ misc-utils, sys-utils, getopt-* should be rather distribution-neutral, and installing it does no harm. On the other hand, the stuff in login-utils defines initial boot-time stuff, things that are done in different ways by different distributions. -If you install it, your machine may not boot anymore. +If you install it, your machine may not boot anymore, or you may be +unable to login. + No RPMs are provided - get yours from your distributor. diff --git a/VERSION b/VERSION index dccc6e9b..b9fd5578 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.12d +2.12h diff --git a/disk-utils/elvtune.c b/disk-utils/elvtune.c index a727745c..a3c05ffb 100644 --- a/disk-utils/elvtune.c +++ b/disk-utils/elvtune.c @@ -20,12 +20,15 @@ * Public License, version 2. */ -#include #include +#include #include -#include +#include #include #include +#include +#include +#include #include "nls.h" /* this has to match with the kernel structure */ @@ -37,6 +40,7 @@ typedef struct blkelv_ioctl_arg_s { int max_bomb_segments; } blkelv_ioctl_arg_t; +/* ioctls introduced in 2.2.16, removed in 2.5.58 */ #define BLKELVGET _IOR(0x12,106,size_t) #define BLKELVSET _IOW(0x12,107,size_t) @@ -48,6 +52,8 @@ usage(void) { " /dev/blkdev1 [/dev/blkdev2...]\n"); fprintf(stderr, "\telvtune -h\n"); fprintf(stderr, "\telvtune -v\n"); + fprintf(stderr, "\tNOTE: elvtune only works with 2.4 kernels\n"); + /* (ioctls exist in 2.2.16 - 2.5.57) */ } static void @@ -55,6 +61,23 @@ version(void) { fprintf(stderr, "elvtune (%s)\n", util_linux_version); } +#define MAKE_VERSION(p,q,r) (65536*(p) + 256*(q) + (r)) + +static int +linux_version_code(void) { + struct utsname my_utsname; + int p, q, r; + + if (uname(&my_utsname) == 0) { + p = atoi(strtok(my_utsname.release, ".")); + q = atoi(strtok(NULL, ".")); + r = atoi(strtok(NULL, ".")); + return MAKE_VERSION(p,q,r); + } + return 0; +} + + int main(int argc, char * argv[]) { int read_value = 0xbeefbeef, write_value = 0xbeefbeef, bomb_value = 0xbeefbeef; @@ -110,8 +133,20 @@ main(int argc, char * argv[]) { break; } + /* mmj: If we get EINVAL it's not a 2.4 kernel, so warn about + that and exit. It should return ENOTTY however, so check for + that as well in case it gets corrected in the future */ + if (ioctl(fd, BLKELVGET, &elevator) < 0) { + int errsv = errno; perror("ioctl get"); + if ((errsv == EINVAL || errsv == ENOTTY) && + linux_version_code() >= MAKE_VERSION(2,5,58)) { + fprintf(stderr, + "\nelvtune is only useful on older " + "kernels;\nfor 2.6 use IO scheduler " + "sysfs tunables instead..\n"); + } break; } diff --git a/fdisk/cfdisk.c b/fdisk/cfdisk.c index e09b4f5f..81fa74a8 100644 --- a/fdisk/cfdisk.c +++ b/fdisk/cfdisk.c @@ -1488,55 +1488,68 @@ said_yes(char answer) { static 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) { - /* Matthew Wilcox: slightly friendlier version of - fatal(_("Bad signature on partition table"), 3); - */ - int cont; - mvaddstr(WARNING_START, 0, - _("No partition table or unknown signature on partition table")); - mvaddstr(WARNING_START+1, 0, - _("Do you wish to start with a zero table [y/N] ?")); - putchar(BELL); - refresh(); - cont = getch(); - if (cont == EOF || !said_yes(cont)) - die_x(3); - zero_table = TRUE; - return; - - /* Oskar Liljeblad suggested: - Bad signature blah blah - If this is a brand new harddrive that has not been partitioned - before, please run cfdisk -z. - */ - } + struct partition *p; + int i,h,s,hh,ss; + int first = TRUE; + int bad = FALSE; + + for (i=0; i<66; i++) + if (bufp->c.b[446+i]) + goto nonz; + + /* zero table */ + if (!curses_started) { + fatal(_("No partition table.\n"), 3); + return; + } else { + mvaddstr(WARNING_START, 0, + _("No partition table. Starting with zero table.")); + putchar(BELL); + refresh(); + zero_table = TRUE; + return; + } + nonz: + if (bufp->p.magicflag[0] != PART_TABLE_FLAG0 || + bufp->p.magicflag[1] != PART_TABLE_FLAG1) { + if (!curses_started) + fatal(_("Bad signature on partition table"), 3); + + /* Matthew Wilcox */ + mvaddstr(WARNING_START, 0, + _("Unknown partition table type")); + mvaddstr(WARNING_START+1, 0, + _("Do you wish to start with a zero table [y/N] ?")); + putchar(BELL); + refresh(); + { + int cont = getch(); + if (cont == EOF || !said_yes(cont)) + die_x(3); + } + zero_table = TRUE; + return; + } - 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; + 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; - } + if (!first && !bad) { + pt_heads = hh; + pt_sectors = ss; + } } static void diff --git a/fdisk/sfdisk.c b/fdisk/sfdisk.c index 9dbe709c..ea9773af 100644 --- a/fdisk/sfdisk.c +++ b/fdisk/sfdisk.c @@ -129,6 +129,18 @@ fatal(char *s, ...) { exit(1); } +/* + * GCC nonsense - needed for GCC 3.4.x with -O2 + */ +#if defined(__GNUC__PREREQ) && __GNUC_PREREQ(3,4) +#define __attribute__used __attribute__ ((used)) +#else +#define __attribute__used +#endif + +/* Or test with #if (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 4) */ + + /* * A. About seeking */ @@ -143,8 +155,13 @@ fatal(char *s, ...) { * * Note: we use 512-byte sectors here, irrespective of the hardware ss. */ -#if !defined (__alpha__) && !defined (__ia64__) && !defined (__x86_64__) && !defined (__s390x__) -static +#undef use_lseek +#if defined (__alpha__) || defined (__ia64__) || defined (__x86_64__) || defined (__s390x__) +#define use_lseek +#endif + +#ifndef use_lseek +static __attribute__used _syscall5(int, _llseek, unsigned int, fd, ulong, hi, ulong, lo, loff_t *, res, unsigned int, wh); #endif @@ -155,7 +172,7 @@ sseek(char *dev, unsigned int fd, unsigned long s) { in = ((loff_t) s << 9); out = 1; -#if !defined (__alpha__) && !defined (__ia64__) && !defined (__x86_64__) && !defined (__s390x__) +#ifndef use_lseek if (_llseek (fd, in>>32, in & 0xffffffff, &out, SEEK_SET) != 0) { #else if ((out = lseek(fd, in, SEEK_SET)) != in) { @@ -1876,6 +1893,7 @@ max_length(int pno, int is_extended, struct part_desc *ep, int format, } /* compute starting sector of a partition inside an extended one */ +/* return 0 on failure */ /* ep is 0 or points to surrounding extended partition */ static int compute_start_sect(struct part_desc *p, struct part_desc *ep) { @@ -1889,6 +1907,7 @@ compute_start_sect(struct part_desc *p, struct part_desc *ep) { delta = -inc; else delta = 0; + if (delta < 0) { p->start -= delta; p->size += delta; diff --git a/login-utils/shutdown.c b/login-utils/shutdown.c index 46f29a70..d89f374c 100644 --- a/login-utils/shutdown.c +++ b/login-utils/shutdown.c @@ -632,7 +632,18 @@ unmount_disks_ourselves(void) } n = 0; while (n < 100 && (mnt = getmntent(mtab))) { - if (strcmp (mnt->mnt_type, "devfs") == 0) continue; + /* + * Neil Phillips: trying to unmount temporary / kernel + * filesystems is pointless and may cause error messages; + * /dev can be a ramfs managed by udev. + */ + if (strcmp(mnt->mnt_type, "devfs") == 0 || + strcmp(mnt->mnt_type, "proc") == 0 || + strcmp(mnt->mnt_type, "sysfs") == 0 || + strcmp(mnt->mnt_type, "ramfs") == 0 || + strcmp(mnt->mnt_type, "tmpfs") == 0 || + strcmp(mnt->mnt_type, "devpts") == 0) + continue; mntlist[n++] = strdup(mnt->mnt_dir); } endmntent(mtab); diff --git a/mount/fstab.5 b/mount/fstab.5 index 07aa32ca..233ed9ad 100644 --- a/mount/fstab.5 +++ b/mount/fstab.5 @@ -157,9 +157,9 @@ For documentation on all nfs-specific options have a look at Common for all types of file system are the options ``noauto'' (do not mount when "mount -a" is given, e.g., at boot time), ``user'' (allow a user to mount), and ``owner'' -(allow device owner to mount), and ``_netdev'' (device requires network -to be available). -The ``owner'' and ``_netdev'' options are Linux-specific. +(allow device owner to mount), and ``comment'' +(e.g., for use by fstab-maintaining programs). +The ``owner'' and ``comment'' options are Linux-specific. For more details, see .BR mount (8). diff --git a/mount/fstab.c b/mount/fstab.c index d31327dc..2f28f12c 100644 --- a/mount/fstab.c +++ b/mount/fstab.c @@ -13,6 +13,7 @@ #include "fstab.h" #include "sundries.h" /* for xmalloc() etc */ #include "mount_blkid.h" +#include "paths.h" #include "nls.h" #define streq(s, t) (strcmp ((s), (t)) == 0) @@ -94,12 +95,32 @@ fstab_head() { return &fstab; } +static void +my_free(const void *s) { + if (s) + free((void *) s); +} + +static void +discard_mntentchn(struct mntentchn *mc0) { + struct mntentchn *mc, *mc1; + + for (mc = mc0->nxt; mc != mc0; mc = mc1) { + mc1 = mc->nxt; + my_free(mc->m.mnt_fsname); + my_free(mc->m.mnt_dir); + my_free(mc->m.mnt_type); + my_free(mc->m.mnt_opts); + free(mc); + } +} + static void read_mntentchn(mntFILE *mfp, const char *fnam, struct mntentchn *mc0) { struct mntentchn *mc = mc0; - struct mntent *mnt; + struct my_mntent *mnt; - while ((mnt = my_getmntent (mfp)) != NULL) { + while ((mnt = my_getmntent(mfp)) != NULL) { if (!streq(mnt->mnt_type, MNTTYPE_IGNORE)) { mc->nxt = (struct mntentchn *) xmalloc(sizeof(*mc)); mc->nxt->prev = mc; @@ -109,7 +130,7 @@ read_mntentchn(mntFILE *mfp, const char *fnam, struct mntentchn *mc0) { } } mc0->prev = mc; - if (ferror (mfp->mntent_fp)) { + if (ferror(mfp->mntent_fp)) { int errsv = errno; error(_("warning: error reading %s: %s"), fnam, strerror (errsv)); @@ -239,7 +260,7 @@ is_mounted_once(const char *name) { struct mntentchn * getmntoptfile (const char *file) { struct mntentchn *mc, *mc0; - char *opts, *s; + const char *opts, *s; int l; if (!file) @@ -404,13 +425,14 @@ setlkw_timeout (int sig) { /* Where does the link point to? Obvious choices are mtab and mtab~~. HJLu points out that the latter leads to races. Right now we use - mtab~. instead. */ -#define MOUNTLOCK_LINKTARGET MOUNTED_LOCK "%d" + mtab~. instead. Use 20 as upper bound for the length of %d. */ +#define MOUNTLOCK_LINKTARGET MOUNTED_LOCK "%d" +#define MOUNTLOCK_LINKTARGET_LTH (sizeof(MOUNTED_LOCK)+20) void lock_mtab (void) { int tries = 3; - char *linktargetfile; + char linktargetfile[MOUNTLOCK_LINKTARGET_LTH]; if (!signals_have_been_setup) { int sig = 0; @@ -431,9 +453,6 @@ 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 */ @@ -542,11 +561,11 @@ unlock_mtab (void) { */ void -update_mtab (const char *dir, struct mntent *instead) { +update_mtab (const char *dir, struct my_mntent *instead) { mntFILE *mfp, *mftmp; const char *fnam = MOUNTED; struct mntentchn mtabhead; /* dummy */ - struct mntentchn *mc, *mc0, absent; + struct mntentchn *mc, *mc0, *absent = NULL; if (mtab_does_not_exist() || mtab_is_a_symlink()) return; @@ -577,6 +596,7 @@ update_mtab (const char *dir, struct mntent *instead) { if (mc && mc != mc0) { mc->prev->nxt = mc->nxt; mc->nxt->prev = mc->prev; + free(mc); } } else { /* A remount */ @@ -584,12 +604,13 @@ update_mtab (const char *dir, struct mntent *instead) { } } else if (instead) { /* not found, add a new entry */ - absent.m = *instead; - absent.nxt = mc0; - absent.prev = mc0->prev; - mc0->prev = &absent; + absent = xmalloc(sizeof(*absent)); + absent->m = *instead; + absent->nxt = mc0; + absent->prev = mc0->prev; + mc0->prev = absent; if (mc0->nxt == NULL) - mc0->nxt = &absent; + mc0->nxt = absent; } /* write chain to mtemp */ @@ -609,6 +630,8 @@ update_mtab (const char *dir, struct mntent *instead) { } } + discard_mntentchn(mc0); + if (fchmod (fileno (mftmp->mntent_fp), S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH) < 0) { int errsv = errno; diff --git a/mount/fstab.h b/mount/fstab.h index b55b6b5b..5cc53668 100644 --- a/mount/fstab.h +++ b/mount/fstab.h @@ -1,14 +1,4 @@ -#include -#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 - +#include "mntent.h" int mtab_is_writable(void); int mtab_does_not_exist(void); int mtab_is_a_symlink(void); @@ -16,7 +6,7 @@ int is_mounted_once(const char *name); struct mntentchn { struct mntentchn *nxt, *prev; - struct mntent m; + struct my_mntent m; }; struct mntentchn *mtab_head (void); @@ -32,7 +22,6 @@ struct mntentchn *getfsspecfile (const char *spec, const char *file); struct mntentchn *getfsuuidspec (const char *uuid); struct mntentchn *getfsvolspec (const char *label); -#include void lock_mtab (void); void unlock_mtab (void); -void update_mtab (const char *special, struct mntent *with); +void update_mtab (const char *special, struct my_mntent *with); diff --git a/mount/get_label_uuid.c b/mount/get_label_uuid.c index dca36e1e..411e6a84 100644 --- a/mount/get_label_uuid.c +++ b/mount/get_label_uuid.c @@ -62,7 +62,7 @@ reiserfs_magic_version(const char *magic) { /* * Get both label and uuid. - * For now, only ext2, ext3, xfs, ocfs, reiserfs are supported + * For now, only ext2, ext3, xfs, ocfs, ocfs2, reiserfs are supported */ int get_label_uuid(const char *device, char **label, char *uuid) { @@ -74,6 +74,7 @@ get_label_uuid(const char *device, char **label, char *uuid) { struct jfs_super_block jfssb; struct ocfs_volume_header ovh; /* Oracle */ struct ocfs_volume_label olbl; + struct ocfs2_super_block osb; struct reiserfs_super_block reiserfssb; fd = open(device, O_RDONLY); @@ -160,6 +161,29 @@ get_label_uuid(const char *device, char **label, char *uuid) { memcpy(uuid, reiserfssb.s_uuid, sizeof (reiserfssb.s_uuid)); rv = 0; } + else { + int blksize, blkoff; + + for (blksize = OCFS2_MIN_BLOCKSIZE; + blksize <= OCFS2_MAX_BLOCKSIZE; + blksize <<= 1) { + blkoff = blksize * OCFS2_SUPER_BLOCK_BLKNO; + if (lseek(fd, blkoff, SEEK_SET) == blkoff + && read(fd, (char *) &osb, sizeof(osb)) + == sizeof(osb) + && strncmp(osb.signature, + OCFS2_SUPER_BLOCK_SIGNATURE, + sizeof(OCFS2_SUPER_BLOCK_SIGNATURE)) + == 0) { + memcpy(uuid, osb.s_uuid, sizeof(osb.s_uuid)); + namesize = sizeof(osb.s_label); + if ((*label = calloc(namesize, 1)) != NULL) + memcpy(*label, osb.s_label, namesize); + rv = 0; + break; + } + } + } close(fd); return rv; diff --git a/mount/linux_fs.h b/mount/linux_fs.h index 78efe24e..430cbedf 100644 --- a/mount/linux_fs.h +++ b/mount/linux_fs.h @@ -236,35 +236,49 @@ struct ocfs_volume_label { #define ocfslabellen(o) assemble2le(o.label_len) #define OCFS_MAGIC "OracleCFS" +struct ocfs2_super_block { + u_char signature[8]; + u_char s_dummy1[184]; + u_char s_dummy2[80]; + u_char s_label[64]; + u_char s_uuid[16]; +}; + +#define OCFS2_MIN_BLOCKSIZE 512 +#define OCFS2_MAX_BLOCKSIZE 4096 +#define OCFS2_SUPER_BLOCK_BLKNO 2 +#define OCFS2_SUPER_BLOCK_SIGNATURE "OCFSV2" + + struct efs_volume_directory { /* size 16 */ - char vd_name[8]; - char vd_lbn[4]; - char vd_nbytes[4]; + char vd_name[8]; + char vd_lbn[4]; + char vd_nbytes[4]; }; struct efs_partition_table { /* size 12 */ - char pt_nblks[4]; - char pt_firstlbn[4]; - char pt_type[4]; + char pt_nblks[4]; + char pt_firstlbn[4]; + char pt_type[4]; }; struct efs_volume_header { /* size 512 */ - char vh_magic[4]; - short vh_rootpt; - short vh_swappt; - char vh_bootfile[16]; - char pad[48]; - struct efs_volume_directory vh_vd[15]; - struct efs_partition_table vh_pt[16]; - int vh_csum; - int vh_fill; + char vh_magic[4]; + short vh_rootpt; + short vh_swappt; + char vh_bootfile[16]; + char pad[48]; + struct efs_volume_directory vh_vd[15]; + struct efs_partition_table vh_pt[16]; + int vh_csum; + int vh_fill; }; struct efs_super { - char fs_stuff[512+28]; - char fs_magic[4]; - char fs_fname[6]; - char fs_fpack[6]; + char fs_stuff[512+28]; + char fs_magic[4]; + char fs_fname[6]; + char fs_fpack[6]; /* ... */ }; diff --git a/mount/lomount.c b/mount/lomount.c index 06c45b15..ea8d4a4a 100644 --- a/mount/lomount.c +++ b/mount/lomount.c @@ -249,7 +249,7 @@ int set_loop(const char *device, const char *file, unsigned long long offset, const char *encryption, int pfd, int *loopro) { struct loop_info64 loopinfo64; - int fd, ffd, mode; + int fd, ffd, mode, i; char *pass; mode = (*loopro ? O_RDONLY : O_RDWR); @@ -303,12 +303,14 @@ set_loop(const char *device, const char *file, unsigned long long offset, case LO_CRYPT_XOR: pass = getpass(_("Password: ")); xstrncpy(loopinfo64.lo_encrypt_key, pass, LO_KEY_SIZE); + memset(pass, 0, strlen(pass)); loopinfo64.lo_encrypt_key_size = strlen(loopinfo64.lo_encrypt_key); break; default: pass = xgetpass(pfd, _("Password: ")); xstrncpy(loopinfo64.lo_encrypt_key, pass, LO_KEY_SIZE); + memset(pass, 0, strlen(pass)); loopinfo64.lo_encrypt_key_size = LO_KEY_SIZE; } @@ -318,33 +320,35 @@ set_loop(const char *device, const char *file, unsigned long long offset, } close (ffd); - if (ioctl(fd, LOOP_SET_STATUS64, &loopinfo64) < 0) { + i = ioctl(fd, LOOP_SET_STATUS64, &loopinfo64); + if (i) { struct loop_info loopinfo; int errsv = errno; - errno = loop_info64_to_old(&loopinfo64, &loopinfo); - if (errno) { + i = loop_info64_to_old(&loopinfo64, &loopinfo); + if (i) { errno = errsv; perror("ioctl: LOOP_SET_STATUS64"); - goto fail; - } - - if (ioctl(fd, LOOP_SET_STATUS, &loopinfo) < 0) { - perror("ioctl: LOOP_SET_STATUS"); - goto fail; + } else { + i = ioctl(fd, LOOP_SET_STATUS, &loopinfo); + if (i) + perror("ioctl: LOOP_SET_STATUS"); } + memset(&loopinfo, 0, sizeof(loopinfo)); } + memset(&loopinfo64, 0, sizeof(loopinfo64)); + if (i) { + ioctl (fd, LOOP_CLR_FD, 0); + close (fd); + return 1; + } close (fd); + if (verbose > 1) printf(_("set_loop(%s,%s,%llu): success\n"), device, file, offset); return 0; - - fail: - (void) ioctl (fd, LOOP_CLR_FD, 0); - close (fd); - return 1; } int diff --git a/mount/mntent.c b/mount/mntent.c index f48da3dd..5c07c50f 100644 --- a/mount/mntent.c +++ b/mount/mntent.c @@ -21,7 +21,7 @@ static unsigned char need_escaping[] = { ' ', '\t', '\n', '\\' }; static char * -mangle(unsigned char *s) { +mangle(const unsigned char *s) { char *ss, *sp; int n; @@ -98,7 +98,7 @@ my_setmntent (const char *file, char *mode) { mntFILE *mfp = xmalloc(sizeof(*mfp)); mode_t old_umask = umask(077); - mfp->mntent_fp = fopen (file, mode); + mfp->mntent_fp = fopen(file, mode); umask(old_umask); mfp->mntent_file = xstrdup(file); mfp->mntent_errs = (mfp->mntent_fp == NULL); @@ -118,9 +118,8 @@ my_endmntent (mntFILE *mfp) { } } - int -my_addmntent (mntFILE *mfp, struct mntent *mnt) { +my_addmntent (mntFILE *mfp, struct my_mntent *mnt) { char *m1, *m2, *m3, *m4; int res; @@ -132,22 +131,21 @@ my_addmntent (mntFILE *mfp, struct mntent *mnt) { m3 = mangle(mnt->mnt_type); m4 = mangle(mnt->mnt_opts); - res = ((fprintf (mfp->mntent_fp, "%s %s %s %s %d %d\n", - m1, m2, m3, m4, mnt->mnt_freq, mnt->mnt_passno) - < 0) ? 1 : 0); + res = fprintf (mfp->mntent_fp, "%s %s %s %s %d %d\n", + m1, m2, m3, m4, mnt->mnt_freq, mnt->mnt_passno); free(m1); free(m2); free(m3); free(m4); - return res; + return (res < 0) ? 1 : 0; } /* Read the next entry from the file fp. Stop reading at an incorrect entry. */ -struct mntent * +struct my_mntent * my_getmntent (mntFILE *mfp) { static char buf[4096]; - static struct mntent me; + static struct my_mntent me; char *s; again: @@ -193,7 +191,7 @@ my_getmntent (mntFILE *mfp) { s = skip_nonspaces(s); s = skip_spaces(s); - if(isdigit(*s)) { + if (isdigit(*s)) { me.mnt_freq = atoi(s); while(isdigit(*s)) s++; } else diff --git a/mount/mntent.h b/mount/mntent.h index 9b46ba08..81e5dc89 100644 --- a/mount/mntent.h +++ b/mount/mntent.h @@ -1,4 +1,14 @@ -#include /* for struct mntent */ +#ifndef MY_MNTENT_H +#define MY_MNTENT_H + +struct my_mntent { + const char *mnt_fsname; + const char *mnt_dir; + const char *mnt_type; + const char *mnt_opts; + int mnt_freq; + int mnt_passno; +}; #define ERR_MAX 5 @@ -12,5 +22,7 @@ typedef struct mntFILEstruct { mntFILE *my_setmntent (const char *file, char *mode); void my_endmntent (mntFILE *mfp); -int my_addmntent (mntFILE *mfp, struct mntent *mnt); -struct mntent *my_getmntent (mntFILE *mfp); +int my_addmntent (mntFILE *mfp, struct my_mntent *mnt); +struct my_mntent *my_getmntent (mntFILE *mfp); + +#endif diff --git a/mount/mount.8 b/mount/mount.8 index bae3396f..a4b6a51a 100644 --- a/mount/mount.8 +++ b/mount/mount.8 @@ -109,6 +109,7 @@ file hierarchy somewhere else. The call is .B "mount --bind olddir newdir" .RE After this call the same contents is accessible in two places. +One can also remount a single file (on a single file). This call attaches only (part of) a single filesystem, not possible submounts. The entire file hierarchy including submounts is attached @@ -120,7 +121,7 @@ a second place using .\" available since Linux 2.4.11. The mount options are not changed. -Since Linux 2.5.1 it is possible to atomically move a subtree +Since Linux 2.5.1 it is possible to atomically move a mounted tree to another place. The call is .RS .br @@ -242,6 +243,8 @@ option below). It is possible to replace .I /etc/mtab by a symbolic link to .IR /proc/mounts , +and especially when you have very large numbers of mounts +things will be much faster with that symlink, but some information is lost that way, and in particular working with the loop device will be less convenient, and using the "user" option will fail. @@ -421,35 +424,15 @@ program have different calling conventions, .I /sbin/mount.smbfs may have to be a shell script that sets up the desired call. -The type -.I iso9660 -is the default. If no +If no .B \-t option is given, or if the .B auto -type is specified, the superblock is probed for the filesystem type -.RI ( adfs , -.IR bfs , -.IR cramfs , -.IR ext , -.IR ext2 , -.IR ext3 , -.IR hfs , -.IR hpfs , -.IR iso9660 , -.IR jfs , -.IR minix , -.IR ntfs , -.IR qnx4 , -.IR reiserfs , -.IR romfs , -.IR udf , -.IR ufs , -.IR vxfs , -.IR xfs , -.IR xiafs -are supported). -If this probe fails, mount will try to read the file +type is specified, mount will try to guess the desired type. +If mount was compiled with the blkid library, the guessing is done +by this library. Otherwise, mount guesses itself by probing the +superblock; if that does not turn up anything that looks familiar, +mount will try to read the file .IR /etc/filesystems , or, if that does not exist, .IR /proc/filesystems . @@ -470,8 +453,8 @@ The type may be useful for user-mounted floppies. Creating a file .I /etc/filesystems -can be useful to change the probe order (e.g., to try vfat before msdos) -or if you use a kernel module autoloader. +can be useful to change the probe order (e.g., to try vfat before msdos +or ext3 before ext2) or if you use a kernel module autoloader. Warning: the probing uses a heuristic (the presence of appropriate `magic'), and could recognize the wrong filesystem type, possibly with catastrophic consequences. If your data is valuable, don't ask @@ -587,9 +570,9 @@ Do not interpret character or block special devices on the file system. .TP .B noexec -Do not allow execution of any binaries on the mounted file system. -This option might be useful for a server that has file systems containing -binaries for architectures other than its own. +Do not allow direct execution of any binaries on the mounted file system. +(Until recently it was possible to run binaries anyway using a command like +/lib/ld*.so /mnt/binary. This trick fails since Linux 2.4.25 / 2.6.0.) .TP .B nosuid Do not allow set-user-identifier or set-group-identifier bits to take diff --git a/mount/mount.c b/mount/mount.c index 083e747a..a9ee637d 100644 --- a/mount/mount.c +++ b/mount/mount.c @@ -2,43 +2,7 @@ * A mount(8) for Linux 0.99. * mount.c,v 1.1.1.1 1993/11/18 08:40:51 jrs Exp * - * Wed Sep 14 22:43:00 1994: Mitchum DSouza - * (mitch@mrc-applied-psychology.cambridge.ac.uk) added support for mounting - * the "loop" device. - * - * Wed Sep 14 22:55:10 1994: Sander van Malssen (svm@kozmix.hacktic.nl) - * added support for remounting readonly file systems readonly. - * - * Wed Feb 8 12:27:00 1995: Andries.Brouwer@cwi.nl fixed up error messages. - * Sat Jun 3 20:44:38 1995: Patches from Andries.Brouwer@cwi.nl applied. - * Tue Sep 26 22:38:20 1995: aeb@cwi.nl, many changes - * Fri Feb 23 13:47:00 1996: aeb@cwi.nl, loop device related changes - * - * Since then, many changes - aeb. - * - * Wed Oct 1 23:55:28 1997: Dick Streefland - * Implemented the "bg", "fg" and "retry" mount options for NFS. - * - * Tue Aug 4 15:54:31 1998: aeb@cwi.nl: - * Open fd 0,1,2 so that printf's do not clobber /etc/mtab or so. - * Mangle filenames with embedded spaces. Add ufsmagic. Add locking. - * 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 - * - added Native Language Support - * 1999-03-21 Arnaldo Carvalho de Melo - * - fixed strerr(errno) in gettext calls - * 1999-07-05 Hirokazu Takahashi - * - fixed use of nouser option - * 1999-09-09 Michael K. Johnson - * - added `owner' mount option - * 2000-05-11 Mark A. Peloquin - * - check_special_mountprog now returns correct status - * 2000-11-08 aeb: accept nonnumeric uid=, gid= options - * 2001-07-13 Michael K. Johnson - * - implemented -a -O + * Modifications by many people. Distributed under GPL. */ #include @@ -69,6 +33,7 @@ #include "mount_guess_fstype.h" #include "mount_by_label.h" #include "getusername.h" +#include "paths.h" #include "env.h" #include "nls.h" @@ -131,11 +96,11 @@ struct opt_map { #define MS_USERS 0x40000000 #define MS_USER 0x20000000 #define MS_OWNER 0x10000000 -#define MS_NETDEV 0x00020000 +#define MS_COMMENT 0x00020000 #define MS_LOOP 0x00010000 /* Options that we keep the mount system call from seeing. */ -#define MS_NOSYS (MS_NOAUTO|MS_USERS|MS_USER|MS_NETDEV|MS_LOOP) +#define MS_NOSYS (MS_NOAUTO|MS_USERS|MS_USER|MS_COMMENT|MS_LOOP) /* Options that we keep from appearing in the options field in the mtab. */ #define MS_NOMTAB (MS_REMOUNT|MS_NOAUTO|MS_USERS|MS_USER) @@ -170,7 +135,9 @@ static const struct opt_map opt_map[] = { { "nouser", 0, 1, MS_USER }, /* Forbid ordinary user to mount */ { "owner", 0, 0, MS_OWNER }, /* Let the owner of the device mount */ { "noowner", 0, 1, MS_OWNER }, /* Device owner has no special privs */ - { "_netdev", 0, 0, MS_NETDEV }, /* Device accessible only via network */ + { "_netdev", 0, 0, MS_COMMENT}, /* Device requires network */ + { "comment", 0, 0, MS_COMMENT}, /* fstab comment only (kudzu,_netdev)*/ + /* add new options here */ #ifdef MS_NOSUB { "sub", 0, 1, MS_NOSUB }, /* allow submounts */ @@ -196,19 +163,20 @@ static const struct opt_map opt_map[] = { { NULL, 0, 0, 0 } }; -static char *opt_loopdev, *opt_vfstype, *opt_offset, *opt_encryption, - *opt_speed; +static const char *opt_loopdev, *opt_vfstype, *opt_offset, *opt_encryption, + *opt_speed, *opt_comment; static struct string_opt_map { char *tag; int skip; - char **valptr; + const char **valptr; } string_opt_map[] = { { "loop=", 0, &opt_loopdev }, { "vfs=", 1, &opt_vfstype }, { "offset=", 0, &opt_offset }, { "encryption=", 0, &opt_encryption }, { "speed=", 0, &opt_speed }, + { "comment=", 1, &opt_comment }, { NULL, 0, NULL } }; @@ -239,23 +207,23 @@ int mount_quiet=0; /* Report on a single mount. */ static void -print_one (const struct mntent *me) { - if (mount_quiet) - return; - printf ("%s on %s", me->mnt_fsname, me->mnt_dir); - if (me->mnt_type != NULL && *(me->mnt_type) != '\0') - printf (" type %s", me->mnt_type); - if (me->mnt_opts != NULL) - printf (" (%s)", me->mnt_opts); - if (list_with_volumelabel) { - const char *label; - label = mount_get_volume_label_by_spec(me->mnt_fsname); - if (label) { - printf (" [%s]", label); - /* free(label); */ - } - } - printf ("\n"); +print_one (const struct my_mntent *me) { + if (mount_quiet) + return; + printf ("%s on %s", me->mnt_fsname, me->mnt_dir); + if (me->mnt_type != NULL && *(me->mnt_type) != '\0') + printf (" type %s", me->mnt_type); + if (me->mnt_opts != NULL) + printf (" (%s)", me->mnt_opts); + if (list_with_volumelabel) { + const char *label; + label = mount_get_volume_label_by_spec(me->mnt_fsname); + if (label) { + printf (" [%s]", label); + /* free(label); */ + } + } + printf ("\n"); } /* Report on everything in mtab (of the specified types if any). */ @@ -271,6 +239,11 @@ print_all (char *types) { exit (0); } +static void +my_free(const void *s) { + if (s) + free((void *) s); +} /* * Look for OPT in opt_map table and return mask value. @@ -332,21 +305,24 @@ parse_opt (const char *opt, int *mask, char *extra_opts) { /* Take -o options list and compute 4th and 5th args to mount(2). flags gets the standard options (indicated by bits) and extra_opts all the rest */ static void -parse_opts (char *opts, int *flags, char **extra_opts) { - char *opt; - +parse_opts (const char *options, int *flags, char **extra_opts) { *flags = 0; *extra_opts = NULL; clear_string_opts(); - if (opts != NULL) { + if (options != NULL) { + char *opts = xstrdup(options); + char *opt; + *extra_opts = xmalloc (strlen (opts) + 1); **extra_opts = '\0'; for (opt = strtok (opts, ","); opt; opt = strtok (NULL, ",")) if (!parse_string_opt (opt)) parse_opt (opt, flags, *extra_opts); + + free(opts); } if (readonly) @@ -363,7 +339,7 @@ fix_opts_string (int flags, const char *extra_opts, const char *user) { const struct string_opt_map *m; char *new_opts; - new_opts = (flags & MS_RDONLY) ? "ro" : "rw"; + new_opts = xstrdup((flags & MS_RDONLY) ? "ro" : "rw"); for (om = opt_map; om->opt != NULL; om++) { if (om->skip) continue; @@ -388,63 +364,66 @@ fix_opts_string (int flags, const char *extra_opts, const char *user) { static int already (const char *spec, const char *node) { - struct mntentchn *mc; - int ret = 1; - - if ((mc = getmntfile(node)) != NULL) - error (_("mount: according to mtab, %s is already mounted on %s"), - mc->m.mnt_fsname, node); - else if (spec && strcmp (spec, "none") && - (mc = getmntfile(spec)) != NULL) - error (_("mount: according to mtab, %s is mounted on %s"), - spec, mc->m.mnt_dir); - else - ret = 0; - return ret; + struct mntentchn *mc; + int ret = 1; + + if ((mc = getmntfile(node)) != NULL) + error (_("mount: according to mtab, " + "%s is already mounted on %s"), + mc->m.mnt_fsname, node); + else if (spec && strcmp (spec, "none") && + (mc = getmntfile(spec)) != NULL) + error (_("mount: according to mtab, %s is mounted on %s"), + spec, mc->m.mnt_dir); + else + ret = 0; + return ret; } /* Create mtab with a root entry. */ static void create_mtab (void) { - struct mntentchn *fstab; - struct mntent mnt; - int flags; - char *extra_opts; - mntFILE *mfp; - - lock_mtab(); - - mfp = my_setmntent (MOUNTED, "a+"); - if (mfp == NULL || mfp->mntent_fp == NULL) { - int errsv = errno; - die (EX_FILEIO, _("mount: can't open %s for writing: %s"), - MOUNTED, strerror (errsv)); - } + struct mntentchn *fstab; + struct my_mntent mnt; + int flags; + mntFILE *mfp; + + lock_mtab(); + + mfp = my_setmntent (MOUNTED, "a+"); + 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"))) { - parse_opts (xstrdup (fstab->m.mnt_opts), &flags, &extra_opts); - mnt.mnt_dir = "/"; - mnt.mnt_fsname = canonicalize (fstab->m.mnt_fsname); - mnt.mnt_type = fstab->m.mnt_type; - mnt.mnt_opts = fix_opts_string (flags, extra_opts, NULL); - mnt.mnt_freq = mnt.mnt_passno = 0; - - 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) { - int errsv = errno; - die (EX_FILEIO, _("mount: error changing mode of %s: %s"), - MOUNTED, strerror (errsv)); - } - my_endmntent (mfp); + /* Find the root entry by looking it up in fstab */ + if ((fstab = getfsfile ("/")) || (fstab = getfsfile ("root"))) { + char *extra_opts; + parse_opts (fstab->m.mnt_opts, &flags, &extra_opts); + mnt.mnt_dir = "/"; + mnt.mnt_fsname = canonicalize (fstab->m.mnt_fsname); + mnt.mnt_type = fstab->m.mnt_type; + mnt.mnt_opts = fix_opts_string (flags, extra_opts, NULL); + mnt.mnt_freq = mnt.mnt_passno = 0; + my_free(extra_opts); + + 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), 0644) < 0) + if (errno != EROFS) { + int errsv = errno; + die (EX_FILEIO, + _("mount: error changing mode of %s: %s"), + MOUNTED, strerror (errsv)); + } + my_endmntent (mfp); - unlock_mtab(); + unlock_mtab(); } /* count successful mount system calls */ @@ -477,8 +456,8 @@ do_mount_syscall (struct mountargs *args) { * on return types is filled with the type used. */ static int -guess_fstype_and_mount (char *spec, char *node, char **types, - int flags, char *mount_opts) { +guess_fstype_and_mount(const char *spec, const char *node, const char **types, + int flags, char *mount_opts) { struct mountargs args = { spec, node, NULL, flags & ~MS_NOSYS, mount_opts }; if (*types && strcasecmp (*types, "auto") == 0) @@ -526,12 +505,12 @@ guess_fstype_and_mount (char *spec, char *node, char **types, * Die if the user is not allowed to do this. */ static void -suid_check(char *spec, char *node, int *flags, char **user) { +suid_check(const char *spec, const char *node, int *flags, char **user) { if (suid) { /* RedHat patch: allow owners to mount when fstab contains the owner option. Note that this should never be used - in a high security environment, but may be useful to give - people at the console the possibility of mounting a floppy. */ + in a high security environment, but may be useful to give + people at the console the possibility of mounting a floppy. */ if (*flags & MS_OWNER) { if (!strncmp(spec, "/dev/", 5)) { struct stat sb; @@ -545,14 +524,14 @@ suid_check(char *spec, char *node, int *flags, char **user) { /* James Kehl came with a similar patch: allow an arbitrary user to mount when he is the owner of the mount-point and has write-access to the device. - This is even less secure. Let me skip it for the time being; - there should be an explicit fstab line allowing such things. */ + This is even less secure. Let me skip it for the time being; + there should be an explicit fstab line allowing such things. */ if (!(*flags & (MS_USER | MS_USERS))) { - if (already (spec, node)) + if (already (spec, node)) 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(); @@ -563,8 +542,8 @@ suid_check(char *spec, char *node, int *flags, char **user) { } static int -loop_check(char **spec, char **type, int *flags, - int *loop, char **loopdev, char **loopfile) { +loop_check(const char **spec, const char **type, int *flags, + int *loop, const char **loopdev, const char **loopfile) { int looptype; unsigned long long offset; @@ -627,45 +606,47 @@ loop_check(char **spec, char **type, int *flags, } static void -update_mtab_entry(char *spec, char *node, char *type, char *opts, - int flags, int freq, int pass) { - struct mntent mnt; - - mnt.mnt_fsname = canonicalize (spec); - mnt.mnt_dir = canonicalize (node); - mnt.mnt_type = type; - mnt.mnt_opts = opts; - mnt.mnt_freq = freq; - mnt.mnt_passno = pass; +update_mtab_entry(const char *spec, const char *node, const char *type, + const char *opts, int flags, int freq, int pass) { + struct my_mntent mnt; + + mnt.mnt_fsname = canonicalize (spec); + mnt.mnt_dir = canonicalize (node); + mnt.mnt_type = type; + mnt.mnt_opts = opts; + mnt.mnt_freq = freq; + mnt.mnt_passno = pass; - /* We get chatty now rather than after the update to mtab since the - mount succeeded, even if the write to /etc/mtab should fail. */ - if (verbose) - print_one (&mnt); - - if (!nomtab && mtab_is_writable()) { - if (flags & MS_REMOUNT) - update_mtab (mnt.mnt_dir, &mnt); - else { - mntFILE *mfp; - - lock_mtab(); - mfp = my_setmntent(MOUNTED, "a+"); - if (mfp == NULL || mfp->mntent_fp == NULL) { - int errsv = errno; - error(_("mount: can't open %s: %s"), MOUNTED, - strerror (errsv)); - } else { - if ((my_addmntent (mfp, &mnt)) == 1) { - int errsv = errno; - error(_("mount: error writing %s: %s"), MOUNTED, - strerror (errsv)); + /* We get chatty now rather than after the update to mtab since the + mount succeeded, even if the write to /etc/mtab should fail. */ + if (verbose) + print_one (&mnt); + + if (!nomtab && mtab_is_writable()) { + if (flags & MS_REMOUNT) + update_mtab (mnt.mnt_dir, &mnt); + else { + mntFILE *mfp; + + lock_mtab(); + mfp = my_setmntent(MOUNTED, "a+"); + if (mfp == NULL || mfp->mntent_fp == NULL) { + int errsv = errno; + error(_("mount: can't open %s: %s"), MOUNTED, + strerror (errsv)); + } else { + if ((my_addmntent (mfp, &mnt)) == 1) { + int errsv = errno; + error(_("mount: error writing %s: %s"), + MOUNTED, strerror (errsv)); + } + } + my_endmntent(mfp); + unlock_mtab(); } - my_endmntent(mfp); - } - unlock_mtab(); } - } + my_free(mnt.mnt_fsname); + my_free(mnt.mnt_dir); } static void @@ -677,20 +658,21 @@ set_pfd(char *s) { } static void -cdrom_setspeed(char *spec) { +cdrom_setspeed(const char *spec) { #define CDROM_SELECT_SPEED 0x5322 /* Set the CD-ROM speed */ - if (opt_speed) { - int cdrom; - int speed = atoi(opt_speed); - - if ((cdrom = open(spec, O_RDONLY | O_NONBLOCK)) < 0) - die(EX_FAIL, _("mount: cannot open %s for setting speed"), - spec); - if (ioctl(cdrom, CDROM_SELECT_SPEED, speed) < 0) - die(EX_FAIL, _("mount: cannot set speed: %s"), - strerror(errno)); - close(cdrom); - } + if (opt_speed) { + int cdrom; + int speed = atoi(opt_speed); + + if ((cdrom = open(spec, O_RDONLY | O_NONBLOCK)) < 0) + die(EX_FAIL, + _("mount: cannot open %s for setting speed"), + spec); + if (ioctl(cdrom, CDROM_SELECT_SPEED, speed) < 0) + die(EX_FAIL, _("mount: cannot set speed: %s"), + strerror(errno)); + close(cdrom); + } } /* @@ -700,8 +682,8 @@ cdrom_setspeed(char *spec) { */ static int -check_special_mountprog(char *spec, char *node, char *type, int flags, - char *extra_opts, int *status) { +check_special_mountprog(const char *spec, const char *node, const char *type, + int flags, char *extra_opts, int *status) { char mountprog[120]; struct stat statbuf; int res; @@ -714,7 +696,7 @@ check_special_mountprog(char *spec, char *node, char *type, int flags, if (stat(mountprog, &statbuf) == 0) { res = fork(); if (res == 0) { - char *oo, *mountargs[10]; + const char *oo, *mountargs[10]; int i = 0; setuid(getuid()); @@ -732,7 +714,7 @@ check_special_mountprog(char *spec, char *node, char *type, int flags, mountargs[i++] = oo; } mountargs[i] = NULL; - execv(mountprog, mountargs); + execv(mountprog, (char **) mountargs); exit(1); /* exec failed */ } else if (res != -1) { int st; @@ -758,32 +740,35 @@ check_special_mountprog(char *spec, char *node, char *type, int flags, * return status from wait */ static int -try_mount_one (const char *spec0, const char *node0, char *types0, +try_mount_one (const char *spec0, const char *node0, const char *types0, const char *opts0, int freq, int pass, int bg, int ro) { - int res, status; + int res = 0, status; int mnt5_res = 0; /* only for gcc */ int mnt_err; int flags; char *extra_opts; /* written in mtab */ char *mount_opts; /* actually used on system call */ - const char *opts; - char *spec, *node, *types; + const char *opts, *spec, *node, *types; char *user = 0; int loop = 0; - char *loopdev = 0, *loopfile = 0; + const char *loopdev = 0, *loopfile = 0; struct stat statbuf; int nfs_mount_version = 0; /* any version */ - spec = xstrdup(spec0); - node = xstrdup(node0); - types = xstrdup(types0); - opts = xstrdup(opts0); + /* copies for freeing on exit */ + const char *opts1, *spec1, *node1, *types1, *extra_opts1; - parse_opts (xstrdup (opts), &flags, &extra_opts); + spec = spec1 = xstrdup(spec0); + node = node1 = xstrdup(node0); + types = types1 = xstrdup(types0); + opts = opts1 = xstrdup(opts0); + + parse_opts (opts, &flags, &extra_opts); + extra_opts1 = extra_opts; /* quietly succeed for fstab entries that don't get mounted automatically */ if (mount_all && (flags & MS_NOAUTO)) - return 0; + goto out; suid_check(spec, node, &flags, &user); @@ -800,7 +785,7 @@ try_mount_one (const char *spec0, const char *node0, char *types0, */ res = loop_check(&spec, &types, &flags, &loop, &loopdev, &loopfile); if (res) - return res; + goto out; } /* @@ -808,8 +793,10 @@ try_mount_one (const char *spec0, const char *node0, char *types0, * For the moment these types are ncpfs and smbfs. Maybe also vxfs. * All such special things must occur isolated in the types string. */ - if (check_special_mountprog (spec, node, types, flags, extra_opts, &status)) - return status; + if (check_special_mountprog(spec, node, types, flags, extra_opts, &status)) { + res = status; + goto out; + } /* * Also nfs requires a separate program, but it is built in. @@ -819,11 +806,13 @@ try_mount_one (const char *spec0, const char *node0, char *types0, retry_nfs: mnt_err = nfsmount (spec, node, &flags, &extra_opts, &mount_opts, &nfs_mount_version, bg); - if (mnt_err) - return mnt_err; + if (mnt_err) { + res = mnt_err; + goto out; + } #else die (EX_SOFTWARE, _("mount: this version was compiled " - "without support for the type `nfs'")); + "without support for the type `nfs'")); #endif } @@ -847,7 +836,8 @@ retry_nfs: pass); block_signals (SIG_UNBLOCK); - return 0; + res = 0; + goto out; } mnt_err = errno; @@ -913,13 +903,13 @@ retry_nfs: else if (stat (spec, &statbuf)) error (_("mount: special device %s does not exist"), spec); else { - errno = mnt_err; - perror("mount"); + errno = mnt_err; + perror("mount"); } break; case ENOTDIR: 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 if (stat (spec, &statbuf) && errno == ENOTDIR) error (_("mount: special device %s does not exist\n" " (a path prefix is not a directory)\n"), spec); @@ -981,7 +971,7 @@ retry_nfs: char *lowtype, *p; int u; - error (_("mount: fs type %s not supported by kernel"), types); + error (_("mount: unknown filesystem type '%s'"), types); /* maybe this loser asked for FAT or ISO9660 or isofs */ lowtype = xstrdup(types); @@ -995,7 +985,9 @@ retry_nfs: if (u && is_in_procfs(lowtype) == 1) error (_("mount: probably you meant %s"), lowtype); else if (!strncmp(lowtype, "iso", 3) && is_in_procfs("iso9660") == 1) - error (_("mount: maybe you meant iso9660 ?")); + error (_("mount: maybe you meant 'iso9660'?")); + else if (!strncmp(lowtype, "fat", 3) && is_in_procfs("vfat") == 1) + error (_("mount: maybe you meant 'vfat'?")); free(lowtype); } else error (_("mount: %s has wrong device number or fs type %s not supported"), @@ -1033,16 +1025,18 @@ retry_nfs: types = types0; } if (opts) { - char *opts1 = realloc(xstrdup(opts), strlen(opts)+4); - strcat(opts1, ",ro"); - opts = opts1; + char *opts2 = realloc(xstrdup(opts), strlen(opts)+4); + strcat(opts2, ",ro"); + my_free(opts1); + opts = opts1 = opts2; } else opts = "ro"; if (types && !strcmp(types, "guess")) types = 0; error (_("mount: %s%s is write-protected, mounting read-only"), bd, spec0); - return try_mount_one (spec0, node0, types, opts, freq, pass, bg, 1); + res = try_mount_one (spec0, node0, types, opts, freq, pass, bg, 1); + goto out; } break; } @@ -1050,7 +1044,16 @@ retry_nfs: error ("mount: %s", strerror (mnt_err)); break; } } - return EX_FAIL; + res = EX_FAIL; + + out: + my_free(extra_opts1); + my_free(spec1); + my_free(node1); + my_free(opts1); + my_free(types1); + + return res; } /* @@ -1094,14 +1097,20 @@ usersubst(const char *opts) { } return opts; } - + +static int +is_existing_file (const char *s) { + struct stat statbuf; + + return (stat(s, &statbuf) == 0); +} /* * Return 0 for success (either mounted sth or -a and NOAUTO was given) */ static int -mount_one (const char *spec, const char *node, char *types, const char *opts, - char *cmdlineopts, int freq, int pass) { +mount_one (const char *spec, const char *node, const char *types, + const char *opts, char *cmdlineopts, int freq, int pass) { int status, status2; const char *nspec; @@ -1119,7 +1128,7 @@ mount_one (const char *spec, const char *node, char *types, const char *opts, if (nspec) spec = nspec; - if (types == NULL && !mounttype) { + if (types == NULL && !mounttype && !is_existing_file(spec)) { if (strchr (spec, ':') != NULL) { types = "nfs"; if (verbose) @@ -1161,25 +1170,34 @@ mount_one (const char *spec, const char *node, char *types, const char *opts, /* Check if an fsname/dir pair was already in the old mtab. */ static int -mounted (const char *spec, char *node) { - struct mntentchn *mc, *mc0; - - /* Handle possible UUID= and LABEL= in spec */ - spec = mount_get_devname(spec); +mounted (const char *spec0, const char *node0) { + struct mntentchn *mc, *mc0; + char *spec, *node; + int ret = 0; + + /* Handle possible UUID= and LABEL= in spec */ + spec0 = mount_get_devname(spec0); + + spec = canonicalize(spec0); + node = canonicalize(node0); + + mc0 = mtab_head(); + for (mc = mc0->nxt; mc && mc != mc0; mc = mc->nxt) + if (streq (spec, mc->m.mnt_fsname) && + streq (node, mc->m.mnt_dir)) { + ret = 1; + break; + } - spec = canonicalize(spec); - node = canonicalize(node); + free(spec); + free(node); - mc0 = mtab_head(); - for (mc = mc0->nxt; mc && mc != mc0; mc = mc->nxt) - if (streq (spec, mc->m.mnt_fsname) && streq (node, mc->m.mnt_dir)) - return 1; - return 0; + return ret; } /* avoid using stat() on things we are not going to mount anyway.. */ static int -has_noauto (char *opts) { +has_noauto (const char *opts) { char *s; if (!opts) @@ -1586,8 +1604,7 @@ main (int argc, char *argv[]) { die (EX_USAGE, _("mount: cannot find %s in %s"), spec, _PATH_FSTAB); - /* struct mntent does not have const qualifiers */ - mc->m.mnt_fsname = (char *) spec; + mc->m.mnt_fsname = spec; } else { /* Try to find the other pathname in fstab. */ spec = canonicalize (*argv); @@ -1605,6 +1622,8 @@ main (int argc, char *argv[]) { /* Earlier mtab was tried first, but this would sometimes try the wrong mount in case mtab had the root device entry wrong. */ + + my_free(spec); } result = mount_one (xstrdup (mc->m.mnt_fsname), diff --git a/mount/mount_guess_fstype.c b/mount/mount_guess_fstype.c index d6def448..96220db3 100644 --- a/mount/mount_guess_fstype.c +++ b/mount/mount_guess_fstype.c @@ -97,11 +97,12 @@ swapped(unsigned short a) { Added jfs - Christoph Hellwig Added sysv - Tim Launchbury Added udf - Bryce Nesbitt + Added ocfs, ocfs2 - Manish Singh - http://oss.oracle.com/projects/ocfs2/ */ static char *magic_known[] = { "adfs", "bfs", "cramfs", "efs", "ext", "ext2", "ext3", - "hfs", "hpfs", "iso9660", "jfs", "minix", "ntfs", + "hfs", "hpfs", "iso9660", "jfs", "minix", "ntfs", "ocfs", "ocfs2", "qnx4", "reiserfs", "romfs", "swap", "sysv", "udf", "ufs", "vxfs", "xfs", "xiafs" }; @@ -212,6 +213,7 @@ do_guess_fstype(const char *device) { struct fat_super_block fatsb; struct xfs_super_block xfsb; struct cramfs_super_block cramfssb; + struct ocfs_volume_header ovh; struct efs_volume_header efsvh; struct efs_super efssb; } xsb; /* stuff at 0 */ @@ -232,6 +234,7 @@ do_guess_fstype(const char *device) { struct hpfs_super_block hpfssb; struct adfs_super_block adfssb; struct sysv_super_block svsb; + struct ocfs2_super_block osb; struct stat statbuf; /* opening and reading an arbitrary unknown path can have @@ -261,6 +264,8 @@ do_guess_fstype(const char *device) { type = "romfs"; else if(!strncmp(xsb.xfsb.s_magic, XFS_SUPER_MAGIC, 4)) type = "xfs"; + else if(!strncmp(xsb.ovh.signature, OCFS_MAGIC, sizeof(OCFS_MAGIC))) + type = "ocfs"; else if(!strncmp(xsb.qnx4fs_magic+4, "QNX4FS", 6)) type = "qnx4"; else if(xsb.bfs_magic == 0x1badface) @@ -438,6 +443,22 @@ do_guess_fstype(const char *device) { type = "reiserfs"; } + if (!type) { + int blksize, blkoff; + + for (blksize = OCFS2_MIN_BLOCKSIZE; + blksize <= OCFS2_MAX_BLOCKSIZE; + blksize <<= 1) { + blkoff = blksize * OCFS2_SUPER_BLOCK_BLKNO; + if (lseek(fd, blkoff, SEEK_SET) != blkoff + || read(fd, (char *) &osb, sizeof(osb)) != sizeof(osb)) + goto io_error; + if (strncmp(osb.signature, OCFS2_SUPER_BLOCK_SIGNATURE, + sizeof(OCFS2_SUPER_BLOCK_SIGNATURE)) == 0) + type = "ocfs2"; + } + } + if (!type) { /* perhaps the user tries to mount the swap space on a new disk; warn her before she does mke2fs on it */ @@ -573,11 +594,11 @@ is_in_procfs(const char *type) { /* when 1 is returned, *types is NULL */ int procfsloop(int (*mount_fn)(struct mountargs *), struct mountargs *args, - char **types) { + const char **types) { char *files[2] = { ETC_FILESYSTEMS, PROC_FILESYSTEMS }; FILE *procfs; char *fsname; - char *notypes = NULL; + const char *notypes = NULL; int no = 0; int ret = 1; int errsv = 0; diff --git a/mount/mount_guess_fstype.h b/mount/mount_guess_fstype.h index d005c918..63cb678c 100644 --- a/mount/mount_guess_fstype.h +++ b/mount/mount_guess_fstype.h @@ -11,6 +11,6 @@ extern int verbose; char *guess_fstype(const char *device); char *do_guess_fstype(const char *device); int procfsloop(int (*mount_fn)(struct mountargs *), struct mountargs *args, - char **type); + const char **type); int is_in_procfs(const char *fstype); diff --git a/mount/paths.h b/mount/paths.h new file mode 100644 index 00000000..d8cc575c --- /dev/null +++ b/mount/paths.h @@ -0,0 +1,10 @@ +#include +#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 diff --git a/mount/realpath.c b/mount/realpath.c index 988d923c..373dbe82 100644 --- a/mount/realpath.c +++ b/mount/realpath.c @@ -32,17 +32,13 @@ #define MAX_READLINKS 32 -/* this leaks some memory - unimportant for mount */ char * myrealpath(const char *path, char *resolved_path, int maxreslth) { int readlinks = 0; char *npath; char link_path[PATH_MAX+1]; int n; -#ifdef resolve_symlinks - char *buf; - int m; -#endif + char *buf = NULL; npath = resolved_path; @@ -83,7 +79,7 @@ myrealpath(const char *path, char *resolved_path, int maxreslth) { while (*path != '\0' && *path != '/') { if (npath-resolved_path > maxreslth-2) { errno = ENAMETOOLONG; - return NULL; + goto err; } *npath++ = *path++; } @@ -91,7 +87,7 @@ myrealpath(const char *path, char *resolved_path, int maxreslth) { /* Protect against infinite loops. */ if (readlinks++ > MAX_READLINKS) { errno = ELOOP; - return NULL; + goto err; } /* See if last pathname component is a symlink. */ @@ -100,9 +96,11 @@ myrealpath(const char *path, char *resolved_path, int maxreslth) { if (n < 0) { /* EINVAL means the file exists but isn't a symlink. */ if (errno != EINVAL) - return NULL; + goto err; } else { #ifdef resolve_symlinks /* Richard Gooch dislikes sl resolution */ + int m; + /* Note: readlink doesn't add the null byte. */ link_path[n] = '\0'; if (*link_path == '/') @@ -115,6 +113,8 @@ myrealpath(const char *path, char *resolved_path, int maxreslth) { /* Insert symlink contents into path. */ m = strlen(path); + if (buf) + free(buf); buf = xmalloc(m + n + 1); memcpy(buf, link_path, n); memcpy(buf + n, path, m + 1); @@ -128,5 +128,13 @@ myrealpath(const char *path, char *resolved_path, int maxreslth) { npath--; /* Make sure it's null terminated. */ *npath = '\0'; + + if (buf) + free(buf); return resolved_path; + + err: + if (buf) + free(buf); + return NULL; } diff --git a/mount/sundries.c b/mount/sundries.c index e331f5d8..af5bb884 100644 --- a/mount/sundries.c +++ b/mount/sundries.c @@ -73,6 +73,7 @@ xstrconcat2 (const char *s, const char *t) { return res; } +/* frees its first arg - typical use: s = xstrconcat3(s,t,u); */ char * xstrconcat3 (const char *s, const char *t, const char *u) { char *res; @@ -84,9 +85,11 @@ xstrconcat3 (const char *s, const char *t, const char *u) { strcpy(res, s); strcat(res, t); strcat(res, u); + free((void *) s); return res; } +/* frees its first arg - typical use: s = xstrconcat4(s,t,u,v); */ char * xstrconcat4 (const char *s, const char *t, const char *u, const char *v) { char *res; @@ -100,6 +103,7 @@ xstrconcat4 (const char *s, const char *t, const char *u, const char *v) { strcat(res, t); strcat(res, u); strcat(res, v); + free((void *) s); return res; } @@ -269,19 +273,18 @@ matching_opts (const char *options, const char *test_opts) { we return unmodified. */ char * canonicalize (const char *path) { - char *canonical; + char canonical[PATH_MAX+2]; - if (path == NULL) - return NULL; + if (path == NULL) + return NULL; - if (streq(path, "none") || streq(path, "proc") || streq(path, "devpts")) - return xstrdup(path); + if (streq(path, "none") || + streq(path, "proc") || + streq(path, "devpts")) + return xstrdup(path); - canonical = xmalloc (PATH_MAX+2); - - if (myrealpath (path, canonical, PATH_MAX+1)) - return canonical; + if (myrealpath (path, canonical, PATH_MAX+1)) + return xstrdup(canonical); - free(canonical); - return xstrdup(path); + return xstrdup(path); } diff --git a/mount/swapon.c b/mount/swapon.c index e3dfffac..71b25150 100644 --- a/mount/swapon.c +++ b/mount/swapon.c @@ -249,7 +249,7 @@ do_swapoff(const char *special, int quiet) { exit(1); /* any further swapoffs will also fail */ } - if (!quiet) { + if (!quiet || errno == ENOMEM) { int errsv = errno; fprintf(stderr, "%s: %s: %s\n", program_name, special, strerror(errsv)); diff --git a/mount/umount.c b/mount/umount.c index 1b6c1cf2..c26246c5 100644 --- a/mount/umount.c +++ b/mount/umount.c @@ -316,7 +316,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; + struct my_mntent remnt; fprintf(stderr, _("umount: %s busy - remounted read-only\n"), spec); @@ -392,6 +392,8 @@ umount_one (const char *spec, const char *node, const char *type, } /* + * umount_one_bw: unmount FILE that has last occurrence MC0 + * * Why this loop? * 1. People who boot a system with a bad fstab root entry * will get an incorrect "/dev/foo on /" in mtab. @@ -472,52 +474,18 @@ usage (FILE *fp, int n) int mount_quiet = 0; -/*=======================================================================*/ -/* string list stuff - no longer used by mount - will disappear entirely */ -typedef struct string_list { - char *hd; - struct string_list *tl; -} *string_list; - -#define car(p) ((p) -> hd) -#define cdr(p) ((p) -> tl) - -static string_list -cons (char *a, const string_list b) { - string_list p; - - p = xmalloc (sizeof *p); - car (p) = a; - cdr (p) = b; - return p; -} - -/* Parse a list of strings like str[,str]... into a string list. */ -static string_list -parse_list (char *strings) { - string_list list; - char *s, *t; - - if (strings == NULL) - return 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); - - return list; -} - +/* + * Look for an option in a comma-separated list + */ static int -contains(string_list list, char *s) { - while (list) { - if (streq (car (list), s)) +contains(const char *list, const char *s) { + int n = strlen(s); + + while (*list) { + if (strncmp(list, s, n) == 0 && + (list[n] == 0 || list[n] == ',')) return 1; - list = cdr (list); + while (*list && *list++ != ',') ; } return 0; } @@ -526,12 +494,18 @@ contains(string_list list, char *s) { * If list contains "user=peter" and we ask for "user=", return "peter" */ static char * -get_value(string_list list, char *s) { +get_value(const char *list, const char *s) { + const char *t; int n = strlen(s); - while (list) { - if (strncmp (car (list), s, n) == 0) - return car(list)+n; - list = cdr (list); + + while (*list) { + if (strncmp(list, s, n) == 0) { + s = t = list+n; + while (*s && *s != ',') + s++; + return xstrndup(t, s-t); + } + while (*list && *list++ != ',') ; } return 0; } @@ -539,8 +513,7 @@ get_value(string_list list, char *s) { static int umount_file (char *arg) { struct mntentchn *mc, *fs; - char *file; - string_list options; + const char *file, *options; int fstab_has_user, fstab_has_users, fstab_has_owner, ok; file = canonicalize(arg); /* mtab paths are canonicalized */ @@ -594,7 +567,9 @@ umount_file (char *arg) { /* A convenient side effect is that the user who mounted is visible in mtab. */ - options = parse_list (fs->m.mnt_opts); + options = fs->m.mnt_opts; + if (!options) + options = ""; fstab_has_user = contains(options, "user"); fstab_has_users = contains(options, "users"); fstab_has_owner = contains(options, "owner"); @@ -606,7 +581,9 @@ umount_file (char *arg) { if (!ok && (fstab_has_user || fstab_has_owner)) { char *user = getusername(); - options = parse_list (mc->m.mnt_opts); + options = mc->m.mnt_opts; + if (!options) + options = ""; mtab_user = get_value(options, "user="); if (user && mtab_user && streq (user, mtab_user)) diff --git a/po/ca.po b/po/ca.po index 4af9d7fa..b34e17f6 100644 --- a/po/ca.po +++ b/po/ca.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: util-linux 2.12\n" -"POT-Creation-Date: 2004-09-07 03:04+0200\n" +"POT-Creation-Date: 2004-09-07 03:05+0200\n" "PO-Revision-Date: 2003-08-01 10:59+0200\n" "Last-Translator: Antoni Bella Perez \n" "Language-Team: Catalan \n" diff --git a/po/cat-id-tbl.c b/po/cat-id-tbl.c index 93ac8cc0..9b089972 100644 --- a/po/cat-id-tbl.c +++ b/po/cat-id-tbl.c @@ -357,160 +357,163 @@ Cannot create logical drive here -- would create two extended partitions", 270}, {"End", 285}, {"Add partition at end of free space", 286}, {"No room to create the extended partition", 287}, - {"No partition table or unknown signature on partition table", 288}, - {"Do you wish to start with a zero table [y/N] ?", 289}, - {"You specified more cylinders than fit on disk", 290}, - {"Cannot open disk drive", 291}, - {"Opened disk read-only - you have no permission to write", 292}, - {"Cannot get disk size", 293}, - {"Bad primary partition", 294}, - {"Bad logical partition", 295}, - {"Warning!! This may destroy data on your disk!", 296}, - {"Are you sure you want write the partition table to disk? (yes or no): ", 297}, - {"no", 298}, - {"Did not write partition table to disk", 299}, - {"yes", 300}, - {"Please enter `yes' or `no'", 301}, - {"Writing partition table to disk...", 302}, - {"Wrote partition table to disk", 303}, - {"\ -Wrote partition table, but re-read table failed. Reboot to update table.", 304}, - {"No primary partitions are marked bootable. DOS MBR cannot boot this.", 305}, - {"\ -More than one primary partition is marked bootable. DOS MBR cannot boot this.", 306}, - {"Enter filename or press RETURN to display on screen: ", 307}, - {"Cannot open file '%s'", 308}, - {"Disk Drive: %s\n", 309}, - {"Sector 0:\n", 310}, - {"Sector %d:\n", 311}, - {" None ", 312}, - {" Pri/Log", 313}, - {" Primary", 314}, - {" Logical", 315}, - {"Unknown", 316}, - {"Boot", 317}, - {"(%02X)", 318}, - {"None", 319}, - {"Partition Table for %s\n", 320}, - {" First Last\n", 321}, + {"No partition table.\n", 288}, + {"No partition table. Starting with zero table.", 289}, + {"Bad signature on partition table", 290}, + {"Unknown partition table type", 291}, + {"Do you wish to start with a zero table [y/N] ?", 292}, + {"You specified more cylinders than fit on disk", 293}, + {"Cannot open disk drive", 294}, + {"Opened disk read-only - you have no permission to write", 295}, + {"Cannot get disk size", 296}, + {"Bad primary partition", 297}, + {"Bad logical partition", 298}, + {"Warning!! This may destroy data on your disk!", 299}, + {"Are you sure you want write the partition table to disk? (yes or no): ", 300}, + {"no", 301}, + {"Did not write partition table to disk", 302}, + {"yes", 303}, + {"Please enter `yes' or `no'", 304}, + {"Writing partition table to disk...", 305}, + {"Wrote partition table to disk", 306}, + {"\ +Wrote partition table, but re-read table failed. Reboot to update table.", 307}, + {"No primary partitions are marked bootable. DOS MBR cannot boot this.", 308}, + {"\ +More than one primary partition is marked bootable. DOS MBR cannot boot this.", 309}, + {"Enter filename or press RETURN to display on screen: ", 310}, + {"Cannot open file '%s'", 311}, + {"Disk Drive: %s\n", 312}, + {"Sector 0:\n", 313}, + {"Sector %d:\n", 314}, + {" None ", 315}, + {" Pri/Log", 316}, + {" Primary", 317}, + {" Logical", 318}, + {"Unknown", 319}, + {"Boot", 320}, + {"(%02X)", 321}, + {"None", 322}, + {"Partition Table for %s\n", 323}, + {" First Last\n", 324}, {"\ # Type Sector Sector Offset Length Filesystem Type (ID) \ -Flag\n", 322}, +Flag\n", 325}, {"\ -- ------- ----------- ----------- ------ ----------- -------------------- \ -----\n", 323}, - {" ---Starting--- ----Ending---- Start Number of\n", 324}, - {" # Flags Head Sect Cyl ID Head Sect Cyl Sector Sectors\n", 325}, - {"-- ----- ---- ---- ---- ---- ---- ---- ---- ----------- -----------\n", 326}, - {"Raw", 327}, - {"Print the table using raw data format", 328}, - {"Sectors", 329}, - {"Print the table ordered by sectors", 330}, - {"Table", 331}, - {"Just print the partition table", 332}, - {"Don't print the table", 333}, - {"Help Screen for cfdisk", 334}, - {"This is cfdisk, a curses based disk partitioning program, which", 335}, - {"allows you to create, delete and modify partitions on your hard", 336}, - {"disk drive.", 337}, - {"Copyright (C) 1994-1999 Kevin E. Martin & aeb", 338}, - {"Command Meaning", 339}, - {"------- -------", 340}, - {" b Toggle bootable flag of the current partition", 341}, - {" d Delete the current partition", 342}, - {" g Change cylinders, heads, sectors-per-track parameters", 343}, - {" WARNING: This option should only be used by people who", 344}, - {" know what they are doing.", 345}, - {" h Print this screen", 346}, - {" m Maximize disk usage of the current partition", 347}, - {" Note: This may make the partition incompatible with", 348}, - {" DOS, OS/2, ...", 349}, - {" n Create new partition from free space", 350}, - {" p Print partition table to the screen or to a file", 351}, - {" There are several different formats for the partition", 352}, - {" that you can choose from:", 353}, - {" r - Raw data (exactly what would be written to disk)", 354}, - {" s - Table ordered by sectors", 355}, - {" t - Table in raw format", 356}, - {" q Quit program without writing partition table", 357}, - {" t Change the filesystem type", 358}, - {" u Change units of the partition size display", 359}, - {" Rotates through MB, sectors and cylinders", 360}, - {" W Write partition table to disk (must enter upper case W)", 361}, - {" Since this might destroy data on the disk, you must", 362}, - {" either confirm or deny the write by entering `yes' or", 363}, - {" `no'", 364}, - {"Up Arrow Move cursor to the previous partition", 365}, - {"Down Arrow Move cursor to the next partition", 366}, - {"CTRL-L Redraws the screen", 367}, - {" ? Print this screen", 368}, - {"Note: All of the commands can be entered with either upper or lower", 369}, - {"case letters (except for Writes).", 370}, - {"Cylinders", 371}, - {"Change cylinder geometry", 372}, - {"Heads", 373}, - {"Change head geometry", 374}, - {"Change sector geometry", 375}, - {"Done", 376}, - {"Done with changing geometry", 377}, - {"Enter the number of cylinders: ", 378}, - {"Illegal cylinders value", 379}, - {"Enter the number of heads: ", 380}, - {"Illegal heads value", 381}, - {"Enter the number of sectors per track: ", 382}, - {"Illegal sectors value", 383}, - {"Enter filesystem type: ", 384}, - {"Cannot change FS Type to empty", 385}, - {"Cannot change FS Type to extended", 386}, - {"Unk(%02X)", 387}, - {", NC", 388}, - {"NC", 389}, - {"Pri/Log", 390}, - {"Unknown (%02X)", 391}, - {"Disk Drive: %s", 392}, - {"Size: %lld bytes, %lld MB", 393}, - {"Size: %lld bytes, %lld.%lld GB", 394}, - {"Heads: %d Sectors per Track: %d Cylinders: %lld", 395}, - {"Name", 396}, - {"Flags", 397}, - {"Part Type", 398}, - {"FS Type", 399}, - {"[Label]", 400}, - {" Sectors", 401}, - {" Cylinders", 402}, - {" Size (MB)", 403}, - {" Size (GB)", 404}, - {"Bootable", 405}, - {"Toggle bootable flag of the current partition", 406}, - {"Delete", 407}, - {"Delete the current partition", 408}, - {"Geometry", 409}, - {"Change disk geometry (experts only)", 410}, - {"Help", 411}, - {"Print help screen", 412}, - {"Maximize", 413}, - {"Maximize disk usage of the current partition (experts only)", 414}, - {"New", 415}, - {"Create new partition from free space", 416}, - {"Print", 417}, - {"Print partition table to the screen or to a file", 418}, - {"Quit", 419}, - {"Quit program without writing partition table", 420}, - {"Type", 421}, - {"Change the filesystem type (DOS, Linux, OS/2 and so on)", 422}, - {"Units", 423}, - {"Change units of the partition size display (MB, sect, cyl)", 424}, - {"Write", 425}, - {"Write partition table to disk (this might destroy data)", 426}, - {"Cannot make this partition bootable", 427}, - {"Cannot delete an empty partition", 428}, - {"Cannot maximize this partition", 429}, - {"This partition is unusable", 430}, - {"This partition is already in use", 431}, - {"Cannot change the type of an empty partition", 432}, - {"No more partitions", 433}, - {"Illegal command", 434}, - {"Copyright (C) 1994-2002 Kevin E. Martin & aeb\n", 435}, +----\n", 326}, + {" ---Starting--- ----Ending---- Start Number of\n", 327}, + {" # Flags Head Sect Cyl ID Head Sect Cyl Sector Sectors\n", 328}, + {"-- ----- ---- ---- ---- ---- ---- ---- ---- ----------- -----------\n", 329}, + {"Raw", 330}, + {"Print the table using raw data format", 331}, + {"Sectors", 332}, + {"Print the table ordered by sectors", 333}, + {"Table", 334}, + {"Just print the partition table", 335}, + {"Don't print the table", 336}, + {"Help Screen for cfdisk", 337}, + {"This is cfdisk, a curses based disk partitioning program, which", 338}, + {"allows you to create, delete and modify partitions on your hard", 339}, + {"disk drive.", 340}, + {"Copyright (C) 1994-1999 Kevin E. Martin & aeb", 341}, + {"Command Meaning", 342}, + {"------- -------", 343}, + {" b Toggle bootable flag of the current partition", 344}, + {" d Delete the current partition", 345}, + {" g Change cylinders, heads, sectors-per-track parameters", 346}, + {" WARNING: This option should only be used by people who", 347}, + {" know what they are doing.", 348}, + {" h Print this screen", 349}, + {" m Maximize disk usage of the current partition", 350}, + {" Note: This may make the partition incompatible with", 351}, + {" DOS, OS/2, ...", 352}, + {" n Create new partition from free space", 353}, + {" p Print partition table to the screen or to a file", 354}, + {" There are several different formats for the partition", 355}, + {" that you can choose from:", 356}, + {" r - Raw data (exactly what would be written to disk)", 357}, + {" s - Table ordered by sectors", 358}, + {" t - Table in raw format", 359}, + {" q Quit program without writing partition table", 360}, + {" t Change the filesystem type", 361}, + {" u Change units of the partition size display", 362}, + {" Rotates through MB, sectors and cylinders", 363}, + {" W Write partition table to disk (must enter upper case W)", 364}, + {" Since this might destroy data on the disk, you must", 365}, + {" either confirm or deny the write by entering `yes' or", 366}, + {" `no'", 367}, + {"Up Arrow Move cursor to the previous partition", 368}, + {"Down Arrow Move cursor to the next partition", 369}, + {"CTRL-L Redraws the screen", 370}, + {" ? Print this screen", 371}, + {"Note: All of the commands can be entered with either upper or lower", 372}, + {"case letters (except for Writes).", 373}, + {"Cylinders", 374}, + {"Change cylinder geometry", 375}, + {"Heads", 376}, + {"Change head geometry", 377}, + {"Change sector geometry", 378}, + {"Done", 379}, + {"Done with changing geometry", 380}, + {"Enter the number of cylinders: ", 381}, + {"Illegal cylinders value", 382}, + {"Enter the number of heads: ", 383}, + {"Illegal heads value", 384}, + {"Enter the number of sectors per track: ", 385}, + {"Illegal sectors value", 386}, + {"Enter filesystem type: ", 387}, + {"Cannot change FS Type to empty", 388}, + {"Cannot change FS Type to extended", 389}, + {"Unk(%02X)", 390}, + {", NC", 391}, + {"NC", 392}, + {"Pri/Log", 393}, + {"Unknown (%02X)", 394}, + {"Disk Drive: %s", 395}, + {"Size: %lld bytes, %lld MB", 396}, + {"Size: %lld bytes, %lld.%lld GB", 397}, + {"Heads: %d Sectors per Track: %d Cylinders: %lld", 398}, + {"Name", 399}, + {"Flags", 400}, + {"Part Type", 401}, + {"FS Type", 402}, + {"[Label]", 403}, + {" Sectors", 404}, + {" Cylinders", 405}, + {" Size (MB)", 406}, + {" Size (GB)", 407}, + {"Bootable", 408}, + {"Toggle bootable flag of the current partition", 409}, + {"Delete", 410}, + {"Delete the current partition", 411}, + {"Geometry", 412}, + {"Change disk geometry (experts only)", 413}, + {"Help", 414}, + {"Print help screen", 415}, + {"Maximize", 416}, + {"Maximize disk usage of the current partition (experts only)", 417}, + {"New", 418}, + {"Create new partition from free space", 419}, + {"Print", 420}, + {"Print partition table to the screen or to a file", 421}, + {"Quit", 422}, + {"Quit program without writing partition table", 423}, + {"Type", 424}, + {"Change the filesystem type (DOS, Linux, OS/2 and so on)", 425}, + {"Units", 426}, + {"Change units of the partition size display (MB, sect, cyl)", 427}, + {"Write", 428}, + {"Write partition table to disk (this might destroy data)", 429}, + {"Cannot make this partition bootable", 430}, + {"Cannot delete an empty partition", 431}, + {"Cannot maximize this partition", 432}, + {"This partition is unusable", 433}, + {"This partition is already in use", 434}, + {"Cannot change the type of an empty partition", 435}, + {"No more partitions", 436}, + {"Illegal command", 437}, + {"Copyright (C) 1994-2002 Kevin E. Martin & aeb\n", 438}, {"\ \n\ Usage:\n\ @@ -526,7 +529,7 @@ Options:\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", 436}, +\n", 439}, {"\ Usage: fdisk [-b SSZ] [-u] DISK Change partition table\n\ fdisk -l [-b SSZ] [-u] DISK List partition table(s)\n\ @@ -535,65 +538,65 @@ Usage: fdisk [-b SSZ] [-u] DISK Change partition table\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 disks) use 2048-byte sectors\n", 437}, +-b 2048: (for certain MO disks) use 2048-byte sectors\n", 440}, {"\ 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", 438}, - {"Unable to open %s\n", 439}, - {"Unable to read %s\n", 440}, - {"Unable to seek on %s\n", 441}, - {"Unable to write %s\n", 442}, - {"BLKGETSIZE ioctl failed on %s\n", 443}, - {"Unable to allocate any more memory\n", 444}, - {"Fatal error\n", 445}, - {"Command action", 446}, - {" a toggle a read only flag", 447}, - {" b edit bsd disklabel", 448}, - {" c toggle the mountable flag", 449}, - {" d delete a partition", 450}, - {" l list known partition types", 451}, - {" m print this menu", 452}, - {" n add a new partition", 453}, - {" o create a new empty DOS partition table", 454}, - {" p print the partition table", 455}, - {" q quit without saving changes", 456}, - {" s create a new empty Sun disklabel", 457}, - {" t change a partition's system id", 458}, - {" u change display/entry units", 459}, - {" v verify the partition table", 460}, - {" w write table to disk and exit", 461}, - {" x extra functionality (experts only)", 462}, - {" a select bootable partition", 463}, - {" b edit bootfile entry", 464}, - {" c select sgi swap partition", 465}, - {" a toggle a bootable flag", 466}, - {" c toggle the dos compatibility flag", 467}, - {" a change number of alternate cylinders", 468}, - {" c change number of cylinders", 469}, - {" d print the raw data in the partition table", 470}, - {" e change number of extra sectors per cylinder", 471}, - {" h change number of heads", 472}, - {" i change interleave factor", 473}, - {" o change rotation speed (rpm)", 474}, - {" r return to main menu", 475}, - {" s change number of sectors/track", 476}, - {" y change number of physical cylinders", 477}, - {" b move beginning of data in a partition", 478}, - {" e list extended partitions", 479}, - {" g create an IRIX (SGI) partition table", 480}, - {" f fix partition order", 481}, - {"You must set", 482}, - {"heads", 483}, - {"sectors", 484}, - {"cylinders", 485}, + ...\n", 441}, + {"Unable to open %s\n", 442}, + {"Unable to read %s\n", 443}, + {"Unable to seek on %s\n", 444}, + {"Unable to write %s\n", 445}, + {"BLKGETSIZE ioctl failed on %s\n", 446}, + {"Unable to allocate any more memory\n", 447}, + {"Fatal error\n", 448}, + {"Command action", 449}, + {" a toggle a read only flag", 450}, + {" b edit bsd disklabel", 451}, + {" c toggle the mountable flag", 452}, + {" d delete a partition", 453}, + {" l list known partition types", 454}, + {" m print this menu", 455}, + {" n add a new partition", 456}, + {" o create a new empty DOS partition table", 457}, + {" p print the partition table", 458}, + {" q quit without saving changes", 459}, + {" s create a new empty Sun disklabel", 460}, + {" t change a partition's system id", 461}, + {" u change display/entry units", 462}, + {" v verify the partition table", 463}, + {" w write table to disk and exit", 464}, + {" x extra functionality (experts only)", 465}, + {" a select bootable partition", 466}, + {" b edit bootfile entry", 467}, + {" c select sgi swap partition", 468}, + {" a toggle a bootable flag", 469}, + {" c toggle the dos compatibility flag", 470}, + {" a change number of alternate cylinders", 471}, + {" c change number of cylinders", 472}, + {" d print the raw data in the partition table", 473}, + {" e change number of extra sectors per cylinder", 474}, + {" h change number of heads", 475}, + {" i change interleave factor", 476}, + {" o change rotation speed (rpm)", 477}, + {" r return to main menu", 478}, + {" s change number of sectors/track", 479}, + {" y change number of physical cylinders", 480}, + {" b move beginning of data in a partition", 481}, + {" e list extended partitions", 482}, + {" g create an IRIX (SGI) partition table", 483}, + {" f fix partition order", 484}, + {"You must set", 485}, + {"heads", 486}, + {"sectors", 487}, + {"cylinders", 488}, {"\ %s%s.\n\ -You can do this from the extra functions menu.\n", 486}, - {" and ", 487}, +You can do this from the extra functions menu.\n", 489}, + {" and ", 490}, {"\ \n\ The number of cylinders for this disk is set to %d.\n\ @@ -601,170 +604,170 @@ There is nothing wrong with that, but this is larger than 1024,\n\ and could in certain setups cause problems with:\n\ 1) software that runs at boot time (e.g., old versions of LILO)\n\ 2) booting and partitioning software from other OSs\n\ - (e.g., DOS FDISK, OS/2 FDISK)\n", 488}, - {"Bad offset in primary extended partition\n", 489}, - {"Warning: deleting partitions after %d\n", 490}, - {"Warning: extra link pointer in partition table %d\n", 491}, - {"Warning: ignoring extra data in partition table %d\n", 492}, + (e.g., DOS FDISK, OS/2 FDISK)\n", 491}, + {"Bad offset in primary extended partition\n", 492}, + {"Warning: deleting partitions after %d\n", 493}, + {"Warning: extra link pointer in partition table %d\n", 494}, + {"Warning: ignoring extra data in partition table %d\n", 495}, {"\ 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", 493}, - {"Note: sector size is %d (not %d)\n", 494}, - {"You will not be able to write the partition table.\n", 495}, +\n", 496}, + {"Note: sector size is %d (not %d)\n", 497}, + {"You will not be able to write the partition table.\n", 498}, {"\ This disk has both DOS and BSD magic.\n\ -Give the 'b' command to go to BSD mode.\n", 496}, +Give the 'b' command to go to BSD mode.\n", 499}, {"\ Device contains neither a valid DOS partition table, nor Sun, SGI or OSF \ -disklabel\n", 497}, - {"Internal error\n", 498}, - {"Ignoring extra extended partition %d\n", 499}, +disklabel\n", 500}, + {"Internal error\n", 501}, + {"Ignoring extra extended partition %d\n", 502}, {"\ Warning: invalid flag 0x%04x of partition table %d will be corrected by w\ -(rite)\n", 500}, +(rite)\n", 503}, {"\ \n\ -got EOF thrice - exiting..\n", 501}, - {"Hex code (type L to list codes): ", 502}, - {"%s (%u-%u, default %u): ", 503}, - {"Using default value %u\n", 504}, - {"Value out of range.\n", 505}, - {"Partition number", 506}, - {"Warning: partition %d has empty type\n", 507}, - {"Selected partition %d\n", 508}, - {"No partition is defined yet!\n", 509}, - {"All primary partitions have been defined already!\n", 510}, - {"cylinder", 511}, - {"sector", 512}, - {"Changing display/entry units to %s\n", 513}, - {"WARNING: Partition %d is an extended partition\n", 514}, - {"DOS Compatibility flag is set\n", 515}, - {"DOS Compatibility flag is not set\n", 516}, - {"Partition %d does not exist yet!\n", 517}, +got EOF thrice - exiting..\n", 504}, + {"Hex code (type L to list codes): ", 505}, + {"%s (%u-%u, default %u): ", 506}, + {"Using default value %u\n", 507}, + {"Value out of range.\n", 508}, + {"Partition number", 509}, + {"Warning: partition %d has empty type\n", 510}, + {"Selected partition %d\n", 511}, + {"No partition is defined yet!\n", 512}, + {"All primary partitions have been defined already!\n", 513}, + {"cylinder", 514}, + {"sector", 515}, + {"Changing display/entry units to %s\n", 516}, + {"WARNING: Partition %d is an extended partition\n", 517}, + {"DOS Compatibility flag is set\n", 518}, + {"DOS Compatibility flag is not set\n", 519}, + {"Partition %d does not exist yet!\n", 520}, {"\ 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", 518}, +a partition using the `d' command.\n", 521}, {"\ You cannot change a partition into an extended one or vice versa\n\ -Delete it first.\n", 519}, +Delete it first.\n", 522}, {"\ Consider leaving partition 3 as Whole disk (5),\n\ as SunOS/Solaris expects it and even Linux likes it.\n\ -\n", 520}, +\n", 523}, {"\ Consider leaving partition 9 as volume header (0),\n\ and partition 11 as entire volume (6)as IRIX expects it.\n\ -\n", 521}, - {"Changed system type of partition %d to %x (%s)\n", 522}, - {"Partition %d has different physical/logical beginnings (non-Linux?):\n", 523}, - {" phys=(%d, %d, %d) ", 524}, - {"logical=(%d, %d, %d)\n", 525}, - {"Partition %d has different physical/logical endings:\n", 526}, - {"Partition %i does not start on cylinder boundary:\n", 527}, - {"should be (%d, %d, 1)\n", 528}, - {"Partition %i does not end on cylinder boundary.\n", 529}, - {"should be (%d, %d, %d)\n", 530}, +\n", 524}, + {"Changed system type of partition %d to %x (%s)\n", 525}, + {"Partition %d has different physical/logical beginnings (non-Linux?):\n", 526}, + {" phys=(%d, %d, %d) ", 527}, + {"logical=(%d, %d, %d)\n", 528}, + {"Partition %d has different physical/logical endings:\n", 529}, + {"Partition %i does not start on cylinder boundary:\n", 530}, + {"should be (%d, %d, 1)\n", 531}, + {"Partition %i does not end on cylinder boundary.\n", 532}, + {"should be (%d, %d, %d)\n", 533}, {"\ \n\ -Disk %s: %ld MB, %lld bytes\n", 531}, +Disk %s: %ld MB, %lld bytes\n", 534}, {"\ \n\ -Disk %s: %ld.%ld GB, %lld bytes\n", 532}, - {"%d heads, %d sectors/track, %d cylinders", 533}, - {", total %llu sectors", 534}, +Disk %s: %ld.%ld GB, %lld bytes\n", 535}, + {"%d heads, %d sectors/track, %d cylinders", 536}, + {", total %llu sectors", 537}, {"\ Units = %s of %d * %d = %d bytes\n\ -\n", 535}, +\n", 538}, {"\ Nothing to do. Ordering is correct already.\n\ -\n", 536}, - {"%*s Boot Start End Blocks Id System\n", 537}, - {"Device", 538}, +\n", 539}, + {"%*s Boot Start End Blocks Id System\n", 540}, + {"Device", 541}, {"\ \n\ -Partition table entries are not in disk order\n", 539}, +Partition table entries are not in disk order\n", 542}, {"\ \n\ Disk %s: %d heads, %d sectors, %d cylinders\n\ -\n", 540}, - {"Nr AF Hd Sec Cyl Hd Sec Cyl Start Size ID\n", 541}, - {"Warning: partition %d contains sector 0\n", 542}, - {"Partition %d: head %d greater than maximum %d\n", 543}, - {"Partition %d: sector %d greater than maximum %d\n", 544}, - {"Partitions %d: cylinder %d greater than maximum %d\n", 545}, - {"Partition %d: previous sectors %d disagrees with total %d\n", 546}, - {"Warning: bad start-of-data in partition %d\n", 547}, - {"Warning: partition %d overlaps partition %d.\n", 548}, - {"Warning: partition %d is empty\n", 549}, - {"Logical partition %d not entirely in partition %d\n", 550}, - {"Total allocated sectors %d greater than the maximum %lld\n", 551}, - {"%lld unallocated sectors\n", 552}, - {"Partition %d is already defined. Delete it before re-adding it.\n", 553}, - {"First %s", 554}, - {"Sector %d is already allocated\n", 555}, - {"No free sectors available\n", 556}, - {"Last %s or +size or +sizeM or +sizeK", 557}, +\n", 543}, + {"Nr AF Hd Sec Cyl Hd Sec Cyl Start Size ID\n", 544}, + {"Warning: partition %d contains sector 0\n", 545}, + {"Partition %d: head %d greater than maximum %d\n", 546}, + {"Partition %d: sector %d greater than maximum %d\n", 547}, + {"Partitions %d: cylinder %d greater than maximum %d\n", 548}, + {"Partition %d: previous sectors %d disagrees with total %d\n", 549}, + {"Warning: bad start-of-data in partition %d\n", 550}, + {"Warning: partition %d overlaps partition %d.\n", 551}, + {"Warning: partition %d is empty\n", 552}, + {"Logical partition %d not entirely in partition %d\n", 553}, + {"Total allocated sectors %d greater than the maximum %lld\n", 554}, + {"%lld unallocated sectors\n", 555}, + {"Partition %d is already defined. Delete it before re-adding it.\n", 556}, + {"First %s", 557}, + {"Sector %d is already allocated\n", 558}, + {"No free sectors available\n", 559}, + {"Last %s or +size or +sizeM or +sizeK", 560}, {"\ \tSorry - this fdisk cannot handle AIX disk labels.\n\ \tIf you want to add DOS-type partitions, create\n\ \ta new empty DOS partition table first. (Use o.)\n\ -\tWARNING: This will destroy the present disk contents.\n", 558}, - {"The maximum number of partitions has been created\n", 559}, - {"You must delete some partition and add an extended partition first\n", 560}, - {"All logical partitions are in use\n", 561}, - {"Adding a primary partition\n", 562}, +\tWARNING: This will destroy the present disk contents.\n", 561}, + {"The maximum number of partitions has been created\n", 562}, + {"You must delete some partition and add an extended partition first\n", 563}, + {"All logical partitions are in use\n", 564}, + {"Adding a primary partition\n", 565}, {"\ Command action\n\ %s\n\ - p primary partition (1-4)\n", 563}, - {"l logical (5 or over)", 564}, - {"e extended", 565}, - {"Invalid partition number for type `%c'\n", 566}, + p primary partition (1-4)\n", 566}, + {"l logical (5 or over)", 567}, + {"e extended", 568}, + {"Invalid partition number for type `%c'\n", 569}, {"\ The partition table has been altered!\n\ -\n", 567}, - {"Calling ioctl() to re-read partition table.\n", 568}, +\n", 570}, + {"Calling ioctl() to re-read partition table.\n", 571}, {"\ \n\ WARNING: Re-reading the partition table failed with error %d: %s.\n\ The kernel still uses the old table.\n\ -The new table will be used at the next reboot.\n", 569}, +The new table will be used at the next reboot.\n", 572}, {"\ \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", 570}, - {"Syncing disks.\n", 571}, - {"Partition %d has no data area\n", 572}, - {"New beginning of data", 573}, - {"Expert command (m for help): ", 574}, - {"Number of cylinders", 575}, - {"Number of heads", 576}, - {"Number of sectors", 577}, - {"Warning: setting sector offset for DOS compatiblity\n", 578}, - {"Disk %s doesn't contain a valid partition table\n", 579}, - {"Cannot open %s\n", 580}, - {"cannot open %s\n", 581}, - {"%c: unknown command\n", 582}, - {"This kernel finds the sector size itself - -b option ignored\n", 583}, +information.\n", 573}, + {"Syncing disks.\n", 574}, + {"Partition %d has no data area\n", 575}, + {"New beginning of data", 576}, + {"Expert command (m for help): ", 577}, + {"Number of cylinders", 578}, + {"Number of heads", 579}, + {"Number of sectors", 580}, + {"Warning: setting sector offset for DOS compatiblity\n", 581}, + {"Disk %s doesn't contain a valid partition table\n", 582}, + {"Cannot open %s\n", 583}, + {"cannot open %s\n", 584}, + {"%c: unknown command\n", 585}, + {"This kernel finds the sector size itself - -b option ignored\n", 586}, {"\ Warning: the -b (set sector size) option should be used with one specified \ -device\n", 584}, - {"Detected an OSF/1 disklabel on %s, entering disklabel mode.\n", 585}, - {"Command (m for help): ", 586}, +device\n", 587}, + {"Detected an OSF/1 disklabel on %s, entering disklabel mode.\n", 588}, + {"Command (m for help): ", 589}, {"\ \n\ -The current boot file is: %s\n", 587}, - {"Please enter the name of the new boot file: ", 588}, - {"Boot file unchanged\n", 589}, +The current boot file is: %s\n", 590}, + {"Please enter the name of the new boot file: ", 591}, + {"Boot file unchanged\n", 592}, {"\ \n\ \tSorry, no experts menu for SGI partition tables available.\n\ -\n", 590}, +\n", 593}, {"\ \n\ \tThere is a valid AIX label on this disk.\n\ @@ -777,94 +780,94 @@ The current boot file is: %s\n", 587}, \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).", 591}, +\t machine. (Otherwise you become an AIXpert).", 594}, {"\ \n\ -BSD label for device: %s\n", 592}, - {" d delete a BSD partition", 593}, - {" e edit drive data", 594}, - {" i install bootstrap", 595}, - {" l list known filesystem types", 596}, - {" n add a new BSD partition", 597}, - {" p print BSD partition table", 598}, - {" s show complete disklabel", 599}, - {" t change a partition's filesystem id", 600}, - {" u change units (cylinders/sectors)", 601}, - {" w write disklabel to disk", 602}, - {" x link BSD partition to non-BSD partition", 603}, - {"Partition %s has invalid starting sector 0.\n", 604}, - {"Reading disklabel of %s at sector %d.\n", 605}, - {"There is no *BSD partition on %s.\n", 606}, - {"BSD disklabel command (m for help): ", 607}, - {"type: %s\n", 608}, - {"type: %d\n", 609}, - {"disk: %.*s\n", 610}, - {"label: %.*s\n", 611}, - {"flags:", 612}, - {" removable", 613}, - {" ecc", 614}, - {" badsect", 615}, - {"bytes/sector: %ld\n", 616}, - {"sectors/track: %ld\n", 617}, - {"tracks/cylinder: %ld\n", 618}, - {"sectors/cylinder: %ld\n", 619}, - {"cylinders: %ld\n", 620}, - {"rpm: %d\n", 621}, - {"interleave: %d\n", 622}, - {"trackskew: %d\n", 623}, - {"cylinderskew: %d\n", 624}, - {"headswitch: %ld\t\t# milliseconds\n", 625}, - {"track-to-track seek: %ld\t# milliseconds\n", 626}, - {"drivedata: ", 627}, +BSD label for device: %s\n", 595}, + {" d delete a BSD partition", 596}, + {" e edit drive data", 597}, + {" i install bootstrap", 598}, + {" l list known filesystem types", 599}, + {" n add a new BSD partition", 600}, + {" p print BSD partition table", 601}, + {" s show complete disklabel", 602}, + {" t change a partition's filesystem id", 603}, + {" u change units (cylinders/sectors)", 604}, + {" w write disklabel to disk", 605}, + {" x link BSD partition to non-BSD partition", 606}, + {"Partition %s has invalid starting sector 0.\n", 607}, + {"Reading disklabel of %s at sector %d.\n", 608}, + {"There is no *BSD partition on %s.\n", 609}, + {"BSD disklabel command (m for help): ", 610}, + {"type: %s\n", 611}, + {"type: %d\n", 612}, + {"disk: %.*s\n", 613}, + {"label: %.*s\n", 614}, + {"flags:", 615}, + {" removable", 616}, + {" ecc", 617}, + {" badsect", 618}, + {"bytes/sector: %ld\n", 619}, + {"sectors/track: %ld\n", 620}, + {"tracks/cylinder: %ld\n", 621}, + {"sectors/cylinder: %ld\n", 622}, + {"cylinders: %ld\n", 623}, + {"rpm: %d\n", 624}, + {"interleave: %d\n", 625}, + {"trackskew: %d\n", 626}, + {"cylinderskew: %d\n", 627}, + {"headswitch: %ld\t\t# milliseconds\n", 628}, + {"track-to-track seek: %ld\t# milliseconds\n", 629}, + {"drivedata: ", 630}, {"\ \n\ -%d partitions:\n", 628}, - {"# start end size fstype [fsize bsize cpg]\n", 629}, - {"Writing disklabel to %s.\n", 630}, - {"%s contains no disklabel.\n", 631}, - {"Do you want to create a disklabel? (y/n) ", 632}, - {"bytes/sector", 633}, - {"sectors/track", 634}, - {"tracks/cylinder", 635}, - {"sectors/cylinder", 636}, - {"Must be <= sectors/track * tracks/cylinder (default).\n", 637}, - {"rpm", 638}, - {"interleave", 639}, - {"trackskew", 640}, - {"cylinderskew", 641}, - {"headswitch", 642}, - {"track-to-track seek", 643}, - {"Bootstrap: %sboot -> boot%s (%s): ", 644}, - {"Bootstrap overlaps with disk label!\n", 645}, - {"Bootstrap installed on %s.\n", 646}, - {"Partition (a-%c): ", 647}, - {"This partition already exists.\n", 648}, - {"Warning: too many partitions (%d, maximum is %d).\n", 649}, +%d partitions:\n", 631}, + {"# start end size fstype [fsize bsize cpg]\n", 632}, + {"Writing disklabel to %s.\n", 633}, + {"%s contains no disklabel.\n", 634}, + {"Do you want to create a disklabel? (y/n) ", 635}, + {"bytes/sector", 636}, + {"sectors/track", 637}, + {"tracks/cylinder", 638}, + {"sectors/cylinder", 639}, + {"Must be <= sectors/track * tracks/cylinder (default).\n", 640}, + {"rpm", 641}, + {"interleave", 642}, + {"trackskew", 643}, + {"cylinderskew", 644}, + {"headswitch", 645}, + {"track-to-track seek", 646}, + {"Bootstrap: %sboot -> boot%s (%s): ", 647}, + {"Bootstrap overlaps with disk label!\n", 648}, + {"Bootstrap installed on %s.\n", 649}, + {"Partition (a-%c): ", 650}, + {"This partition already exists.\n", 651}, + {"Warning: too many partitions (%d, maximum is %d).\n", 652}, {"\ \n\ -Syncing disks.\n", 650}, - {"SGI volhdr", 651}, - {"SGI trkrepl", 652}, - {"SGI secrepl", 653}, - {"SGI raw", 654}, - {"SGI bsd", 655}, - {"SGI sysv", 656}, - {"SGI volume", 657}, - {"SGI efs", 658}, - {"SGI lvol", 659}, - {"SGI rlvol", 660}, - {"SGI xfs", 661}, - {"SGI xfslog", 662}, - {"SGI xlv", 663}, - {"SGI xvm", 664}, - {"Linux swap", 665}, - {"Linux native", 666}, - {"Linux LVM", 667}, - {"Linux RAID", 668}, +Syncing disks.\n", 653}, + {"SGI volhdr", 654}, + {"SGI trkrepl", 655}, + {"SGI secrepl", 656}, + {"SGI raw", 657}, + {"SGI bsd", 658}, + {"SGI sysv", 659}, + {"SGI volume", 660}, + {"SGI efs", 661}, + {"SGI lvol", 662}, + {"SGI rlvol", 663}, + {"SGI xfs", 664}, + {"SGI xfslog", 665}, + {"SGI xlv", 666}, + {"SGI xvm", 667}, + {"Linux swap", 668}, + {"Linux native", 669}, + {"Linux LVM", 670}, + {"Linux RAID", 671}, {"\ According to MIPS Computer Systems, Inc the Label must not contain more than \ -512 bytes\n", 669}, - {"Detected sgi disklabel with wrong checksum.\n", 670}, +512 bytes\n", 672}, + {"Detected sgi disklabel with wrong checksum.\n", 673}, {"\ \n\ Disk %s (SGI disk label): %d heads, %d sectors\n\ @@ -872,145 +875,145 @@ Disk %s (SGI disk label): %d heads, %d sectors\n\ %d extra sects/cyl, interleave %d:1\n\ %s\n\ Units = %s of %d * 512 bytes\n\ -\n", 671}, +\n", 674}, {"\ \n\ Disk %s (SGI disk label): %d heads, %d sectors, %d cylinders\n\ Units = %s of %d * 512 bytes\n\ -\n", 672}, +\n", 675}, {"\ ----- partitions -----\n\ -Pt# %*s Info Start End Sectors Id System\n", 673}, +Pt# %*s Info Start End Sectors Id System\n", 676}, {"\ ----- Bootinfo -----\n\ Bootfile: %s\n\ ------ Directory Entries -----\n", 674}, - {"%2d: %-10s sector%5u size%8u\n", 675}, +----- Directory Entries -----\n", 677}, + {"%2d: %-10s sector%5u size%8u\n", 678}, {"\ \n\ Invalid Bootfile!\n\ \tThe bootfile must be an absolute non-zero pathname,\n\ -\te.g. \"/unix\" or \"/unix.save\".\n", 676}, +\te.g. \"/unix\" or \"/unix.save\".\n", 679}, {"\ \n\ -\tName of Bootfile too long: 16 bytes maximum.\n", 677}, +\tName of Bootfile too long: 16 bytes maximum.\n", 680}, {"\ \n\ -\tBootfile must have a fully qualified pathname.\n", 678}, +\tBootfile must have a fully qualified pathname.\n", 681}, {"\ \n\ \tBe aware, that the bootfile is not checked for existence.\n\ -\tSGI's default is \"/unix\" and for backup \"/unix.save\".\n", 679}, +\tSGI's default is \"/unix\" and for backup \"/unix.save\".\n", 682}, {"\ \n\ -\tBootfile is changed to \"%s\".\n", 680}, - {"More than one entire disk entry present.\n", 681}, - {"No partitions defined\n", 682}, - {"IRIX likes when Partition 11 covers the entire disk.\n", 683}, +\tBootfile is changed to \"%s\".\n", 683}, + {"More than one entire disk entry present.\n", 684}, + {"No partitions defined\n", 685}, + {"IRIX likes when Partition 11 covers the entire disk.\n", 686}, {"\ The entire disk partition should start at block 0,\n\ -not at diskblock %d.\n", 684}, +not at diskblock %d.\n", 687}, {"\ The entire disk partition is only %d diskblock large,\n\ -but the disk is %d diskblocks long.\n", 685}, - {"One Partition (#11) should cover the entire disk.\n", 686}, - {"Partition %d does not start on cylinder boundary.\n", 687}, - {"Partition %d does not end on cylinder boundary.\n", 688}, - {"The Partition %d and %d overlap by %d sectors.\n", 689}, - {"Unused gap of %8u sectors - sectors %8u-%u\n", 690}, +but the disk is %d diskblocks long.\n", 688}, + {"One Partition (#11) should cover the entire disk.\n", 689}, + {"Partition %d does not start on cylinder boundary.\n", 690}, + {"Partition %d does not end on cylinder boundary.\n", 691}, + {"The Partition %d and %d overlap by %d sectors.\n", 692}, + {"Unused gap of %8u sectors - sectors %8u-%u\n", 693}, {"\ \n\ -The boot partition does not exist.\n", 691}, +The boot partition does not exist.\n", 694}, {"\ \n\ -The swap partition does not exist.\n", 692}, +The swap partition does not exist.\n", 695}, {"\ \n\ -The swap partition has no swap type.\n", 693}, - {"\tYou have chosen an unusual boot file name.\n", 694}, - {"Sorry You may change the Tag of non-empty partitions.\n", 695}, +The swap partition has no swap type.\n", 696}, + {"\tYou have chosen an unusual boot file name.\n", 697}, + {"Sorry You may change the Tag of non-empty partitions.\n", 698}, {"\ 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", 696}, - {"YES\n", 697}, - {"Do You know, You got a partition overlap on the disk?\n", 698}, - {"Attempting to generate entire disk entry automatically.\n", 699}, - {"The entire disk is already covered with partitions.\n", 700}, - {"You got a partition overlap on the disk. Fix it first!\n", 701}, +Type YES if you are sure about tagging this partition differently.\n", 699}, + {"YES\n", 700}, + {"Do You know, You got a partition overlap on the disk?\n", 701}, + {"Attempting to generate entire disk entry automatically.\n", 702}, + {"The entire disk is already covered with partitions.\n", 703}, + {"You got a partition overlap on the disk. Fix it first!\n", 704}, {"\ It is highly recommended that eleventh partition\n\ -covers the entire disk and is of type `SGI volume'\n", 702}, - {"You will get a partition overlap on the disk. Fix it first!\n", 703}, - {" Last %s", 704}, +covers the entire disk and is of type `SGI volume'\n", 705}, + {"You will get a partition overlap on the disk. Fix it first!\n", 706}, + {" Last %s", 707}, {"\ 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 unrecoverably lost.\n\ -\n", 705}, +\n", 708}, {"\ Warning: BLKGETSIZE ioctl failed on %s. Using geometry cylinder value of %\ d.\n\ -This value may be truncated for devices > 33.8 GB.\n", 706}, - {"Trying to keep parameters of partition %d.\n", 707}, - {"ID=%02x\tSTART=%d\tLENGTH=%d\n", 708}, - {"Empty", 709}, - {"SunOS root", 710}, - {"SunOS swap", 711}, - {"SunOS usr", 712}, - {"Whole disk", 713}, - {"SunOS stand", 714}, - {"SunOS var", 715}, - {"SunOS home", 716}, - {"Linux raid autodetect", 717}, +This value may be truncated for devices > 33.8 GB.\n", 709}, + {"Trying to keep parameters of partition %d.\n", 710}, + {"ID=%02x\tSTART=%d\tLENGTH=%d\n", 711}, + {"Empty", 712}, + {"SunOS root", 713}, + {"SunOS swap", 714}, + {"SunOS usr", 715}, + {"Whole disk", 716}, + {"SunOS stand", 717}, + {"SunOS var", 718}, + {"SunOS home", 719}, + {"Linux raid autodetect", 720}, {"\ 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", 718}, - {"Autoconfigure found a %s%s%s\n", 719}, +or force a fresh label (s command in main menu)\n", 721}, + {"Autoconfigure found a %s%s%s\n", 722}, {"\ 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", 720}, +\n", 723}, {"\ Drive type\n\ ? auto configure\n\ - 0 custom (with hardware detected defaults)", 721}, - {"Select type (? for auto, 0 for custom): ", 722}, - {"Autoconfigure failed.\n", 723}, - {"Sectors/track", 724}, - {"Alternate cylinders", 725}, - {"Physical cylinders", 726}, - {"Rotation speed (rpm)", 727}, - {"Interleave factor", 728}, - {"Extra sectors per cylinder", 729}, - {"You may change all the disk params from the x menu", 730}, - {"3,5\" floppy", 731}, - {"Linux custom", 732}, - {"Partition %d doesn't end on cylinder boundary\n", 733}, - {"Partition %d overlaps with others in sectors %d-%d\n", 734}, - {"Unused gap - sectors 0-%d\n", 735}, - {"Unused gap - sectors %d-%d\n", 736}, + 0 custom (with hardware detected defaults)", 724}, + {"Select type (? for auto, 0 for custom): ", 725}, + {"Autoconfigure failed.\n", 726}, + {"Sectors/track", 727}, + {"Alternate cylinders", 728}, + {"Physical cylinders", 729}, + {"Rotation speed (rpm)", 730}, + {"Interleave factor", 731}, + {"Extra sectors per cylinder", 732}, + {"You may change all the disk params from the x menu", 733}, + {"3,5\" floppy", 734}, + {"Linux custom", 735}, + {"Partition %d doesn't end on cylinder boundary\n", 736}, + {"Partition %d overlaps with others in sectors %d-%d\n", 737}, + {"Unused gap - sectors 0-%d\n", 738}, + {"Unused gap - sectors %d-%d\n", 739}, {"\ Other partitions already cover the whole disk.\n\ -Delete some/shrink them before retry.\n", 737}, +Delete some/shrink them before retry.\n", 740}, {"\ 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", 738}, +to %d %s\n", 741}, {"\ If you want to maintain SunOS/Solaris compatibility, consider leaving this\n\ -partition as Whole disk (5), starting at 0, with %u sectors\n", 739}, +partition as Whole disk (5), starting at 0, with %u sectors\n", 742}, {"\ 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): ", 740}, +tagged with 82 (Linux swap): ", 743}, {"\ \n\ Disk %s (Sun disk label): %d heads, %d sectors, %d rpm\n\ @@ -1018,462 +1021,462 @@ Disk %s (Sun disk label): %d heads, %d sectors, %d rpm\n\ %d extra sects/cyl, interleave %d:1\n\ %s\n\ Units = %s of %d * 512 bytes\n\ -\n", 741}, +\n", 744}, {"\ \n\ Disk %s (Sun disk label): %d heads, %d sectors, %d cylinders\n\ Units = %s of %d * 512 bytes\n\ -\n", 742}, - {"%*s Flag Start End Blocks Id System\n", 743}, - {"Number of alternate cylinders", 744}, - {"Number of physical cylinders", 745}, - {"FAT12", 746}, - {"XENIX root", 747}, - {"XENIX usr", 748}, - {"FAT16 <32M", 749}, - {"Extended", 750}, - {"FAT16", 751}, - {"HPFS/NTFS", 752}, - {"AIX", 753}, - {"AIX bootable", 754}, - {"OS/2 Boot Manager", 755}, - {"W95 FAT32", 756}, - {"W95 FAT32 (LBA)", 757}, - {"W95 FAT16 (LBA)", 758}, - {"W95 Ext'd (LBA)", 759}, - {"OPUS", 760}, - {"Hidden FAT12", 761}, - {"Compaq diagnostics", 762}, - {"Hidden FAT16 <32M", 763}, - {"Hidden FAT16", 764}, - {"Hidden HPFS/NTFS", 765}, - {"AST SmartSleep", 766}, - {"Hidden W95 FAT32", 767}, - {"Hidden W95 FAT32 (LBA)", 768}, - {"Hidden W95 FAT16 (LBA)", 769}, - {"NEC DOS", 770}, - {"Plan 9", 771}, - {"PartitionMagic recovery", 772}, - {"Venix 80286", 773}, - {"PPC PReP Boot", 774}, - {"SFS", 775}, - {"QNX4.x", 776}, - {"QNX4.x 2nd part", 777}, - {"QNX4.x 3rd part", 778}, - {"OnTrack DM", 779}, - {"OnTrack DM6 Aux1", 780}, - {"CP/M", 781}, - {"OnTrack DM6 Aux3", 782}, - {"OnTrackDM6", 783}, - {"EZ-Drive", 784}, - {"Golden Bow", 785}, - {"Priam Edisk", 786}, - {"SpeedStor", 787}, - {"GNU HURD or SysV", 788}, - {"Novell Netware 286", 789}, - {"Novell Netware 386", 790}, - {"DiskSecure Multi-Boot", 791}, - {"PC/IX", 792}, - {"Old Minix", 793}, - {"Minix / old Linux", 794}, - {"Linux swap / Solaris", 795}, - {"OS/2 hidden C: drive", 796}, - {"Linux extended", 797}, - {"NTFS volume set", 798}, - {"Amoeba", 799}, - {"Amoeba BBT", 800}, - {"BSD/OS", 801}, - {"IBM Thinkpad hibernation", 802}, - {"FreeBSD", 803}, - {"OpenBSD", 804}, - {"NeXTSTEP", 805}, - {"Darwin UFS", 806}, - {"NetBSD", 807}, - {"Darwin boot", 808}, - {"BSDI fs", 809}, - {"BSDI swap", 810}, - {"Boot Wizard hidden", 811}, - {"Solaris boot", 812}, - {"DRDOS/sec (FAT-12)", 813}, - {"DRDOS/sec (FAT-16 < 32M)", 814}, - {"DRDOS/sec (FAT-16)", 815}, - {"Syrinx", 816}, - {"Non-FS data", 817}, - {"CP/M / CTOS / ...", 818}, - {"Dell Utility", 819}, - {"BootIt", 820}, - {"DOS access", 821}, - {"DOS R/O", 822}, - {"BeOS fs", 823}, - {"EFI GPT", 824}, - {"EFI (FAT-12/16/32)", 825}, - {"Linux/PA-RISC boot", 826}, - {"DOS secondary", 827}, - {"LANstep", 828}, - {"BBT", 829}, - {"seek error on %s - cannot seek to %lu\n", 830}, - {"seek error: wanted 0x%08x%08x, got 0x%08x%08x\n", 831}, - {"out of memory - giving up\n", 832}, - {"read error on %s - cannot read sector %lu\n", 833}, - {"ERROR: sector %lu does not have an msdos signature\n", 834}, - {"write error on %s - cannot write sector %lu\n", 835}, - {"cannot open partition sector save file (%s)\n", 836}, - {"write error on %s\n", 837}, - {"cannot stat partition restore file (%s)\n", 838}, - {"partition restore file has wrong size - not restoring\n", 839}, - {"out of memory?\n", 840}, - {"cannot open partition restore file (%s)\n", 841}, - {"error reading %s\n", 842}, - {"cannot open device %s for writing\n", 843}, - {"error writing sector %lu on %s\n", 844}, - {"Disk %s: cannot get geometry\n", 845}, - {"Disk %s: cannot get size\n", 846}, +\n", 745}, + {"%*s Flag Start End Blocks Id System\n", 746}, + {"Number of alternate cylinders", 747}, + {"Number of physical cylinders", 748}, + {"FAT12", 749}, + {"XENIX root", 750}, + {"XENIX usr", 751}, + {"FAT16 <32M", 752}, + {"Extended", 753}, + {"FAT16", 754}, + {"HPFS/NTFS", 755}, + {"AIX", 756}, + {"AIX bootable", 757}, + {"OS/2 Boot Manager", 758}, + {"W95 FAT32", 759}, + {"W95 FAT32 (LBA)", 760}, + {"W95 FAT16 (LBA)", 761}, + {"W95 Ext'd (LBA)", 762}, + {"OPUS", 763}, + {"Hidden FAT12", 764}, + {"Compaq diagnostics", 765}, + {"Hidden FAT16 <32M", 766}, + {"Hidden FAT16", 767}, + {"Hidden HPFS/NTFS", 768}, + {"AST SmartSleep", 769}, + {"Hidden W95 FAT32", 770}, + {"Hidden W95 FAT32 (LBA)", 771}, + {"Hidden W95 FAT16 (LBA)", 772}, + {"NEC DOS", 773}, + {"Plan 9", 774}, + {"PartitionMagic recovery", 775}, + {"Venix 80286", 776}, + {"PPC PReP Boot", 777}, + {"SFS", 778}, + {"QNX4.x", 779}, + {"QNX4.x 2nd part", 780}, + {"QNX4.x 3rd part", 781}, + {"OnTrack DM", 782}, + {"OnTrack DM6 Aux1", 783}, + {"CP/M", 784}, + {"OnTrack DM6 Aux3", 785}, + {"OnTrackDM6", 786}, + {"EZ-Drive", 787}, + {"Golden Bow", 788}, + {"Priam Edisk", 789}, + {"SpeedStor", 790}, + {"GNU HURD or SysV", 791}, + {"Novell Netware 286", 792}, + {"Novell Netware 386", 793}, + {"DiskSecure Multi-Boot", 794}, + {"PC/IX", 795}, + {"Old Minix", 796}, + {"Minix / old Linux", 797}, + {"Linux swap / Solaris", 798}, + {"OS/2 hidden C: drive", 799}, + {"Linux extended", 800}, + {"NTFS volume set", 801}, + {"Amoeba", 802}, + {"Amoeba BBT", 803}, + {"BSD/OS", 804}, + {"IBM Thinkpad hibernation", 805}, + {"FreeBSD", 806}, + {"OpenBSD", 807}, + {"NeXTSTEP", 808}, + {"Darwin UFS", 809}, + {"NetBSD", 810}, + {"Darwin boot", 811}, + {"BSDI fs", 812}, + {"BSDI swap", 813}, + {"Boot Wizard hidden", 814}, + {"Solaris boot", 815}, + {"DRDOS/sec (FAT-12)", 816}, + {"DRDOS/sec (FAT-16 < 32M)", 817}, + {"DRDOS/sec (FAT-16)", 818}, + {"Syrinx", 819}, + {"Non-FS data", 820}, + {"CP/M / CTOS / ...", 821}, + {"Dell Utility", 822}, + {"BootIt", 823}, + {"DOS access", 824}, + {"DOS R/O", 825}, + {"BeOS fs", 826}, + {"EFI GPT", 827}, + {"EFI (FAT-12/16/32)", 828}, + {"Linux/PA-RISC boot", 829}, + {"DOS secondary", 830}, + {"LANstep", 831}, + {"BBT", 832}, + {"seek error on %s - cannot seek to %lu\n", 833}, + {"seek error: wanted 0x%08x%08x, got 0x%08x%08x\n", 834}, + {"out of memory - giving up\n", 835}, + {"read error on %s - cannot read sector %lu\n", 836}, + {"ERROR: sector %lu does not have an msdos signature\n", 837}, + {"write error on %s - cannot write sector %lu\n", 838}, + {"cannot open partition sector save file (%s)\n", 839}, + {"write error on %s\n", 840}, + {"cannot stat partition restore file (%s)\n", 841}, + {"partition restore file has wrong size - not restoring\n", 842}, + {"out of memory?\n", 843}, + {"cannot open partition restore file (%s)\n", 844}, + {"error reading %s\n", 845}, + {"cannot open device %s for writing\n", 846}, + {"error writing sector %lu on %s\n", 847}, + {"Disk %s: cannot get geometry\n", 848}, + {"Disk %s: cannot get size\n", 849}, {"\ Warning: start=%lu - 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", 847}, - {"Warning: HDIO_GETGEO says that there are %lu heads\n", 848}, - {"Warning: HDIO_GETGEO says that there are %lu sectors\n", 849}, - {"Warning: BLKGETSIZE/HDIO_GETGEO says that there are %lu cylinders\n", 850}, +[Use the --force option if you really want this]\n", 850}, + {"Warning: HDIO_GETGEO says that there are %lu heads\n", 851}, + {"Warning: HDIO_GETGEO says that there are %lu sectors\n", 852}, + {"Warning: BLKGETSIZE/HDIO_GETGEO says that there are %lu cylinders\n", 853}, {"\ Warning: unlikely number of sectors (%lu) - usually at most 63\n\ -This will give problems with all software that uses C/H/S addressing.\n", 851}, +This will give problems with all software that uses C/H/S addressing.\n", 854}, {"\ \n\ -Disk %s: %lu cylinders, %lu heads, %lu sectors/track\n", 852}, +Disk %s: %lu cylinders, %lu heads, %lu sectors/track\n", 855}, {"\ -%s of partition %s has impossible value for head: %lu (should be in 0-%lu)\n", 853}, +%s of partition %s has impossible value for head: %lu (should be in 0-%lu)\n", 856}, {"\ %s of partition %s has impossible value for sector: %lu (should be in 1-%\ -lu)\n", 854}, +lu)\n", 857}, {"\ %s of partition %s has impossible value for cylinders: %lu (should be in 0-%\ -lu)\n", 855}, +lu)\n", 858}, {"\ Id Name\n\ -\n", 856}, - {"Re-reading the partition table ...\n", 857}, +\n", 859}, + {"Re-reading the partition table ...\n", 860}, {"\ The command to re-read the partition table failed\n\ -Reboot your system now, before using mkfs\n", 858}, - {"Error closing %s\n", 859}, - {"%s: no such partition\n", 860}, - {"unrecognized format - using sectors\n", 861}, - {"# partition table of %s\n", 862}, - {"unimplemented format - using %s\n", 863}, +Reboot your system now, before using mkfs\n", 861}, + {"Error closing %s\n", 862}, + {"%s: no such partition\n", 863}, + {"unrecognized format - using sectors\n", 864}, + {"# partition table of %s\n", 865}, + {"unimplemented format - using %s\n", 866}, {"\ Units = cylinders of %lu bytes, blocks of 1024 bytes, counting from %d\n\ -\n", 864}, - {" Device Boot Start End #cyls #blocks Id System\n", 865}, +\n", 867}, + {" Device Boot Start End #cyls #blocks Id System\n", 868}, {"\ Units = sectors of 512 bytes, counting from %d\n\ -\n", 866}, - {" Device Boot Start End #sectors Id System\n", 867}, +\n", 869}, + {" Device Boot Start End #sectors Id System\n", 870}, {"\ Units = blocks of 1024 bytes, counting from %d\n\ -\n", 868}, - {" Device Boot Start End #blocks Id System\n", 869}, +\n", 871}, + {" Device Boot Start End #blocks Id System\n", 872}, {"\ Units = mebibytes of 1048576 bytes, blocks of 1024 bytes, counting from %d\n\ -\n", 870}, - {" Device Boot Start End MiB #blocks Id System\n", 871}, - {"\t\tstart: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n", 872}, - {"\t\tend: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n", 873}, - {"partition ends on cylinder %ld, beyond the end of the disk\n", 874}, - {"No partitions found\n", 875}, +\n", 873}, + {" Device Boot Start End MiB #blocks Id System\n", 874}, + {"\t\tstart: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n", 875}, + {"\t\tend: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n", 876}, + {"partition ends on cylinder %ld, beyond the end of the disk\n", 877}, + {"No partitions found\n", 878}, {"\ Warning: The partition table 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", 876}, - {"no partition table present.\n", 877}, - {"strange, only %d partitions defined.\n", 878}, - {"Warning: partition %s has size 0 but is not marked Empty\n", 879}, - {"Warning: partition %s has size 0 and is bootable\n", 880}, - {"Warning: partition %s has size 0 and nonzero start\n", 881}, - {"Warning: partition %s ", 882}, - {"is not contained in partition %s\n", 883}, - {"Warning: partitions %s ", 884}, - {"and %s overlap\n", 885}, +For this listing I'll assume that geometry.\n", 879}, + {"no partition table present.\n", 880}, + {"strange, only %d partitions defined.\n", 881}, + {"Warning: partition %s has size 0 but is not marked Empty\n", 882}, + {"Warning: partition %s has size 0 and is bootable\n", 883}, + {"Warning: partition %s has size 0 and nonzero start\n", 884}, + {"Warning: partition %s ", 885}, + {"is not contained in partition %s\n", 886}, + {"Warning: partitions %s ", 887}, + {"and %s overlap\n", 888}, {"\ Warning: partition %s contains part of the partition table (sector %lu),\n\ -and will destroy it when filled\n", 886}, - {"Warning: partition %s starts at sector 0\n", 887}, - {"Warning: partition %s extends past end of disk\n", 888}, +and will destroy it when filled\n", 889}, + {"Warning: partition %s starts at sector 0\n", 890}, + {"Warning: partition %s extends past end of disk\n", 891}, {"\ Among the primary partitions, at most one can be extended\n\ - (although this is not a problem under Linux)\n", 889}, - {"Warning: partition %s does not start at a cylinder boundary\n", 890}, - {"Warning: partition %s does not end at a cylinder boundary\n", 891}, + (although this is not a problem under Linux)\n", 892}, + {"Warning: partition %s does not start at a cylinder boundary\n", 893}, + {"Warning: partition %s does not end at a cylinder boundary\n", 894}, {"\ 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", 892}, +This does not matter for LILO, but the DOS MBR will not boot this disk.\n", 895}, {"\ Warning: usually one can boot from primary partitions only\n\ -LILO disregards the `bootable' flag.\n", 893}, +LILO disregards the `bootable' flag.\n", 896}, {"\ 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", 894}, - {"start", 895}, +This does not matter for LILO, but the DOS MBR will not boot this disk.\n", 897}, + {"start", 898}, {"\ -partition %s: start: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n", 896}, - {"end", 897}, - {"partition %s: end: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n", 898}, - {"partition %s ends on cylinder %ld, beyond the end of the disk\n", 899}, +partition %s: start: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n", 899}, + {"end", 900}, + {"partition %s: end: (c,h,s) expected (%ld,%ld,%ld) found (%ld,%ld,%ld)\n", 901}, + {"partition %s ends on cylinder %ld, beyond the end of the disk\n", 902}, {"\ Warning: shifted start of the extd partition from %ld to %ld\n\ -(For listing purposes only. Do not change its contents.)\n", 900}, +(For listing purposes only. Do not change its contents.)\n", 903}, {"\ Warning: extended partition does not start at a cylinder boundary.\n\ -DOS and Linux will interpret the contents differently.\n", 901}, - {"too many partitions - ignoring those past nr (%d)\n", 902}, - {"tree of partitions?\n", 903}, - {"detected Disk Manager - unable to handle that\n", 904}, - {"DM6 signature found - giving up\n", 905}, - {"strange..., an extended partition of size 0?\n", 906}, - {"strange..., a BSD partition of size 0?\n", 907}, - {" %s: unrecognized partition table type\n", 908}, - {"-n flag was given: Nothing changed\n", 909}, - {"Failed saving the old sectors - aborting\n", 910}, - {"Failed writing the partition on %s\n", 911}, - {"long or incomplete input line - quitting\n", 912}, - {"input error: `=' expected after %s field\n", 913}, - {"input error: unexpected character %c after %s field\n", 914}, - {"unrecognized input: %s\n", 915}, - {"number too big\n", 916}, - {"trailing junk after number\n", 917}, - {"no room for partition descriptor\n", 918}, - {"cannot build surrounding extended partition\n", 919}, - {"too many input fields\n", 920}, - {"No room for more\n", 921}, - {"Illegal type\n", 922}, - {"Warning: given size (%lu) exceeds max allowable size (%lu)\n", 923}, - {"Warning: empty partition\n", 924}, - {"Warning: bad partition start (earliest %lu)\n", 925}, - {"unrecognized bootable flag - choose - or *\n", 926}, - {"partial c,h,s specification?\n", 927}, - {"Extended partition not where expected\n", 928}, - {"bad input\n", 929}, - {"too many partitions\n", 930}, +DOS and Linux will interpret the contents differently.\n", 904}, + {"too many partitions - ignoring those past nr (%d)\n", 905}, + {"tree of partitions?\n", 906}, + {"detected Disk Manager - unable to handle that\n", 907}, + {"DM6 signature found - giving up\n", 908}, + {"strange..., an extended partition of size 0?\n", 909}, + {"strange..., a BSD partition of size 0?\n", 910}, + {" %s: unrecognized partition table type\n", 911}, + {"-n flag was given: Nothing changed\n", 912}, + {"Failed saving the old sectors - aborting\n", 913}, + {"Failed writing the partition on %s\n", 914}, + {"long or incomplete input line - quitting\n", 915}, + {"input error: `=' expected after %s field\n", 916}, + {"input error: unexpected character %c after %s field\n", 917}, + {"unrecognized input: %s\n", 918}, + {"number too big\n", 919}, + {"trailing junk after number\n", 920}, + {"no room for partition descriptor\n", 921}, + {"cannot build surrounding extended partition\n", 922}, + {"too many input fields\n", 923}, + {"No room for more\n", 924}, + {"Illegal type\n", 925}, + {"Warning: given size (%lu) exceeds max allowable size (%lu)\n", 926}, + {"Warning: empty partition\n", 927}, + {"Warning: bad partition start (earliest %lu)\n", 928}, + {"unrecognized bootable flag - choose - or *\n", 929}, + {"partial c,h,s specification?\n", 930}, + {"Extended partition not where expected\n", 931}, + {"bad input\n", 932}, + {"too many partitions\n", 933}, {"\ Input in the following format; absent fields get a default value.\n\ \n\ -Usually you only need to specify and (and perhaps ).\n", 931}, - {"version", 932}, - {"Usage: %s [options] device ...\n", 933}, - {"device: something like /dev/hda or /dev/sda", 934}, - {"useful options:", 935}, - {" -s [or --show-size]: list size of a partition", 936}, - {" -c [or --id]: print or change partition Id", 937}, - {" -l [or --list]: list partitions of each device", 938}, - {" -d [or --dump]: idem, but in a format suitable for later input", 939}, - {" -i [or --increment]: number cylinders etc. from 1 instead of from 0", 940}, +Usually you only need to specify and (and perhaps ).\n", 934}, + {"version", 935}, + {"Usage: %s [options] device ...\n", 936}, + {"device: something like /dev/hda or /dev/sda", 937}, + {"useful options:", 938}, + {" -s [or --show-size]: list size of a partition", 939}, + {" -c [or --id]: print or change partition Id", 940}, + {" -l [or --list]: list partitions of each device", 941}, + {" -d [or --dump]: idem, but in a format suitable for later input", 942}, + {" -i [or --increment]: number cylinders etc. from 1 instead of from 0", 943}, {"\ -uS, -uB, -uC, -uM: accept/report in units of sectors/blocks/cylinders/\ -MB", 941}, - {" -T [or --list-types]:list the known partition types", 942}, - {" -D [or --DOS]: for DOS-compatibility: waste a little space", 943}, - {" -R [or --re-read]: make kernel reread partition table", 944}, - {" -N# : change only the partition with number #", 945}, - {" -n : do not actually write to disk", 946}, - {"\ - -O file : save the sectors that will be overwritten to file", 947}, - {" -I file : restore these sectors again", 948}, - {" -v [or --version]: print version", 949}, - {" -? [or --help]: print this message", 950}, - {"dangerous options:", 951}, - {" -g [or --show-geometry]: print the kernel's idea of the geometry", 952}, +MB", 944}, + {" -T [or --list-types]:list the known partition types", 945}, + {" -D [or --DOS]: for DOS-compatibility: waste a little space", 946}, + {" -R [or --re-read]: make kernel reread partition table", 947}, + {" -N# : change only the partition with number #", 948}, + {" -n : do not actually write to disk", 949}, + {"\ + -O file : save the sectors that will be overwritten to file", 950}, + {" -I file : restore these sectors again", 951}, + {" -v [or --version]: print version", 952}, + {" -? [or --help]: print this message", 953}, + {"dangerous options:", 954}, + {" -g [or --show-geometry]: print the kernel's idea of the geometry", 955}, {"\ -x [or --show-extended]: also list extended partitions on output\n\ - or expect descriptors for them on input", 953}, - {"\ - -L [or --Linux]: do not complain about things irrelevant for Linux", 954}, - {" -q [or --quiet]: suppress warning messages", 955}, - {" You can override the detected geometry using:", 956}, - {" -C# [or --cylinders #]:set the number of cylinders to use", 957}, - {" -H# [or --heads #]: set the number of heads to use", 958}, - {" -S# [or --sectors #]: set the number of sectors to use", 959}, - {"You can disable all consistency checking with:", 960}, - {" -f [or --force]: do what I say, even if it is stupid", 961}, - {"Usage:", 962}, - {"%s device\t\t list active partitions on device\n", 963}, - {"%s device n1 n2 ... activate partitions n1 ..., inactivate the rest\n", 964}, - {"%s -An device\t activate partition n, inactivate the other ones\n", 965}, - {"no command?\n", 966}, - {"total: %llu blocks\n", 967}, - {"usage: sfdisk --print-id device partition-number\n", 968}, - {"usage: sfdisk --change-id device partition-number Id\n", 969}, - {"usage: sfdisk --id device partition-number [Id]\n", 970}, - {"can specify only one device (except with -l or -s)\n", 971}, - {"cannot open %s read-write\n", 972}, - {"cannot open %s for reading\n", 973}, - {"%s: OK\n", 974}, - {"%s: %ld cylinders, %ld heads, %ld sectors/track\n", 975}, - {"Cannot get size of %s\n", 976}, - {"bad active byte: 0x%x instead of 0x80\n", 977}, + or expect descriptors for them on input", 956}, + {"\ + -L [or --Linux]: do not complain about things irrelevant for Linux", 957}, + {" -q [or --quiet]: suppress warning messages", 958}, + {" You can override the detected geometry using:", 959}, + {" -C# [or --cylinders #]:set the number of cylinders to use", 960}, + {" -H# [or --heads #]: set the number of heads to use", 961}, + {" -S# [or --sectors #]: set the number of sectors to use", 962}, + {"You can disable all consistency checking with:", 963}, + {" -f [or --force]: do what I say, even if it is stupid", 964}, + {"Usage:", 965}, + {"%s device\t\t list active partitions on device\n", 966}, + {"%s device n1 n2 ... activate partitions n1 ..., inactivate the rest\n", 967}, + {"%s -An device\t activate partition n, inactivate the other ones\n", 968}, + {"no command?\n", 969}, + {"total: %llu blocks\n", 970}, + {"usage: sfdisk --print-id device partition-number\n", 971}, + {"usage: sfdisk --change-id device partition-number Id\n", 972}, + {"usage: sfdisk --id device partition-number [Id]\n", 973}, + {"can specify only one device (except with -l or -s)\n", 974}, + {"cannot open %s read-write\n", 975}, + {"cannot open %s for reading\n", 976}, + {"%s: OK\n", 977}, + {"%s: %ld cylinders, %ld heads, %ld sectors/track\n", 978}, + {"Cannot get size of %s\n", 979}, + {"bad active byte: 0x%x instead of 0x80\n", 980}, {"\ Done\n\ -\n", 978}, +\n", 981}, {"\ 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", 979}, - {"partition %s has id %x and is not hidden\n", 980}, - {"Bad Id %lx\n", 981}, - {"This disk is currently in use.\n", 982}, - {"Fatal error: cannot find %s\n", 983}, - {"Warning: %s is not a block device\n", 984}, - {"Checking that no-one is using this disk right now ...\n", 985}, +but the DOS MBR will only boot a disk with 1 active partition.\n", 982}, + {"partition %s has id %x and is not hidden\n", 983}, + {"Bad Id %lx\n", 984}, + {"This disk is currently in use.\n", 985}, + {"Fatal error: cannot find %s\n", 986}, + {"Warning: %s is not a block device\n", 987}, + {"Checking that no-one is using this disk right now ...\n", 988}, {"\ \n\ This disk is currently in use - repartitioning is probably a bad idea.\n\ Umount all file systems, and swapoff all swap partitions on this disk.\n\ -Use the --no-reread flag to suppress this check.\n", 986}, - {"Use the --force flag to overrule all checks.\n", 987}, - {"OK\n", 988}, - {"Old situation:\n", 989}, - {"Partition %d does not exist, cannot change it\n", 990}, - {"New situation:\n", 991}, +Use the --no-reread flag to suppress this check.\n", 989}, + {"Use the --force flag to overrule all checks.\n", 990}, + {"OK\n", 991}, + {"Old situation:\n", 992}, + {"Partition %d does not exist, cannot change it\n", 993}, + {"New situation:\n", 994}, {"\ I don't like these partitions - nothing changed.\n\ -(If you really want this, use the --force option.)\n", 992}, - {"I don't like this - probably you should answer No\n", 993}, - {"Are you satisfied with this? [ynq] ", 994}, - {"Do you want to write this to disk? [ynq] ", 995}, +(If you really want this, use the --force option.)\n", 995}, + {"I don't like this - probably you should answer No\n", 996}, + {"Are you satisfied with this? [ynq] ", 997}, + {"Do you want to write this to disk? [ynq] ", 998}, {"\ \n\ -sfdisk: premature end of input\n", 996}, - {"Quitting - nothing changed\n", 997}, - {"Please answer one of y,n,q\n", 998}, +sfdisk: premature end of input\n", 999}, + {"Quitting - nothing changed\n", 1000}, + {"Please answer one of y,n,q\n", 1001}, {"\ Successfully wrote the new partition table\n\ -\n", 999}, +\n", 1002}, {"\ 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", 1000}, - {"Try `getopt --help' for more information.\n", 1001}, - {"empty long option after -l or --long argument", 1002}, - {"unknown shell after -s or --shell argument", 1003}, - {"Usage: getopt optstring parameters\n", 1004}, - {" getopt [options] [--] optstring parameters\n", 1005}, - {" getopt [options] -o|--options optstring [options] [--]\n", 1006}, - {" parameters\n", 1007}, - {"\ - -a, --alternative Allow long options starting with single -\n", 1008}, - {" -h, --help This small usage guide\n", 1009}, - {" -l, --longoptions=longopts Long options to be recognized\n", 1010}, - {"\ - -n, --name=progname The name under which errors are reported\n", 1011}, - {" -o, --options=optstring Short options to be recognized\n", 1012}, - {" -q, --quiet Disable error reporting by getopt(3)\n", 1013}, - {" -Q, --quiet-output No normal output\n", 1014}, - {" -s, --shell=shell Set shell quoting conventions\n", 1015}, - {" -T, --test Test for getopt(1) version\n", 1016}, - {" -u, --unqote Do not quote the output\n", 1017}, - {" -V, --version Output version information\n", 1018}, - {"missing optstring argument", 1019}, - {"getopt (enhanced) 1.1.3\n", 1020}, - {"internal error, contact the author.", 1021}, - {"booted from MILO\n", 1022}, - {"Ruffian BCD clock\n", 1023}, - {"clockport adjusted to 0x%x\n", 1024}, - {"funky TOY!\n", 1025}, - {"%s: atomic %s failed for 1000 iterations!", 1026}, - {"Cannot open /dev/port: %s", 1027}, - {"I failed to get permission because I didn't try.\n", 1028}, - {"%s is unable to get I/O port access: the iopl(3) call failed.\n", 1029}, - {"Probably you need root privileges.\n", 1030}, - {"Assuming hardware clock is kept in %s time.\n", 1031}, - {"UTC", 1032}, - {"local", 1033}, - {"%s: Warning: unrecognized third line in adjtime file\n", 1034}, - {"(Expected: `UTC' or `LOCAL' or nothing.)\n", 1035}, - {"Last drift adjustment done at %ld seconds after 1969\n", 1036}, - {"Last calibration done at %ld seconds after 1969\n", 1037}, - {"Hardware clock is on %s time\n", 1038}, - {"unknown", 1039}, - {"Waiting for clock tick...\n", 1040}, - {"...got clock tick\n", 1041}, - {"Invalid values in hardware clock: %4d/%.2d/%.2d %.2d:%.2d:%.2d\n", 1042}, - {"Hw clock time : %4d/%.2d/%.2d %.2d:%.2d:%.2d = %ld seconds since 1969\n", 1043}, - {"Time read from Hardware Clock: %4d/%.2d/%.2d %02d:%02d:%02d\n", 1044}, - {"Setting Hardware Clock to %.2d:%.2d:%.2d = %ld seconds since 1969\n", 1045}, - {"Clock not changed - testing only.\n", 1046}, +(See fdisk(8).)\n", 1003}, + {"Try `getopt --help' for more information.\n", 1004}, + {"empty long option after -l or --long argument", 1005}, + {"unknown shell after -s or --shell argument", 1006}, + {"Usage: getopt optstring parameters\n", 1007}, + {" getopt [options] [--] optstring parameters\n", 1008}, + {" getopt [options] -o|--options optstring [options] [--]\n", 1009}, + {" parameters\n", 1010}, + {"\ + -a, --alternative Allow long options starting with single -\n", 1011}, + {" -h, --help This small usage guide\n", 1012}, + {" -l, --longoptions=longopts Long options to be recognized\n", 1013}, + {"\ + -n, --name=progname The name under which errors are reported\n", 1014}, + {" -o, --options=optstring Short options to be recognized\n", 1015}, + {" -q, --quiet Disable error reporting by getopt(3)\n", 1016}, + {" -Q, --quiet-output No normal output\n", 1017}, + {" -s, --shell=shell Set shell quoting conventions\n", 1018}, + {" -T, --test Test for getopt(1) version\n", 1019}, + {" -u, --unqote Do not quote the output\n", 1020}, + {" -V, --version Output version information\n", 1021}, + {"missing optstring argument", 1022}, + {"getopt (enhanced) 1.1.3\n", 1023}, + {"internal error, contact the author.", 1024}, + {"booted from MILO\n", 1025}, + {"Ruffian BCD clock\n", 1026}, + {"clockport adjusted to 0x%x\n", 1027}, + {"funky TOY!\n", 1028}, + {"%s: atomic %s failed for 1000 iterations!", 1029}, + {"Cannot open /dev/port: %s", 1030}, + {"I failed to get permission because I didn't try.\n", 1031}, + {"%s is unable to get I/O port access: the iopl(3) call failed.\n", 1032}, + {"Probably you need root privileges.\n", 1033}, + {"Assuming hardware clock is kept in %s time.\n", 1034}, + {"UTC", 1035}, + {"local", 1036}, + {"%s: Warning: unrecognized third line in adjtime file\n", 1037}, + {"(Expected: `UTC' or `LOCAL' or nothing.)\n", 1038}, + {"Last drift adjustment done at %ld seconds after 1969\n", 1039}, + {"Last calibration done at %ld seconds after 1969\n", 1040}, + {"Hardware clock is on %s time\n", 1041}, + {"unknown", 1042}, + {"Waiting for clock tick...\n", 1043}, + {"...got clock tick\n", 1044}, + {"Invalid values in hardware clock: %4d/%.2d/%.2d %.2d:%.2d:%.2d\n", 1045}, + {"Hw clock time : %4d/%.2d/%.2d %.2d:%.2d:%.2d = %ld seconds since 1969\n", 1046}, + {"Time read from Hardware Clock: %4d/%.2d/%.2d %02d:%02d:%02d\n", 1047}, + {"Setting Hardware Clock to %.2d:%.2d:%.2d = %ld seconds since 1969\n", 1048}, + {"Clock not changed - testing only.\n", 1049}, {"\ Time elapsed since reference time has been %.6f seconds.\n\ -Delaying further to reach the next full second.\n", 1047}, +Delaying further to reach the next full second.\n", 1050}, {"\ 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", 1048}, - {"%s %.6f seconds\n", 1049}, - {"No --date option specified.\n", 1050}, - {"--date argument too long\n", 1051}, +50th day of month) or beyond the range we can handle (e.g. Year 2095).\n", 1051}, + {"%s %.6f seconds\n", 1052}, + {"No --date option specified.\n", 1053}, + {"--date argument too long\n", 1054}, {"\ The value of the --date option is not a valid date.\n\ -In particular, it contains quotation marks.\n", 1052}, - {"Issuing date command: %s\n", 1053}, - {"Unable to run 'date' program in /bin/sh shell. popen() failed", 1054}, - {"response from date command = %s\n", 1055}, +In particular, it contains quotation marks.\n", 1055}, + {"Issuing date command: %s\n", 1056}, + {"Unable to run 'date' program in /bin/sh shell. popen() failed", 1057}, + {"response from date command = %s\n", 1058}, {"\ The date command issued by %s returned unexpected results.\n\ The command was:\n\ %s\n\ The response was:\n\ - %s\n", 1056}, + %s\n", 1059}, {"\ 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\n\ The response was:\n\ - %s\n", 1057}, - {"date string %s equates to %ld seconds since 1969.\n", 1058}, + %s\n", 1060}, + {"date string %s equates to %ld seconds since 1969.\n", 1061}, {"\ The Hardware Clock does not contain a valid time, so we cannot set the \ -System Time from it.\n", 1059}, - {"Calling settimeofday:\n", 1060}, - {"\ttv.tv_sec = %ld, tv.tv_usec = %ld\n", 1061}, - {"\ttz.tz_minuteswest = %d\n", 1062}, - {"Not setting system clock because running in test mode.\n", 1063}, - {"Must be superuser to set system clock.\n", 1064}, - {"settimeofday() failed", 1065}, +System Time from it.\n", 1062}, + {"Calling settimeofday:\n", 1063}, + {"\ttv.tv_sec = %ld, tv.tv_usec = %ld\n", 1064}, + {"\ttz.tz_minuteswest = %d\n", 1065}, + {"Not setting system clock because running in test mode.\n", 1066}, + {"Must be superuser to set system clock.\n", 1067}, + {"settimeofday() failed", 1068}, {"\ Not adjusting drift factor because the Hardware Clock previously contained \ -garbage.\n", 1066}, +garbage.\n", 1069}, {"\ Not adjusting drift factor because last calibration time is zero,\n\ -so history is bad and calibration startover is necessary.\n", 1067}, +so history is bad and calibration startover is necessary.\n", 1070}, {"\ Not adjusting drift factor because it has been less than a day since the \ -last calibration.\n", 1068}, +last calibration.\n", 1071}, {"\ 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", 1069}, - {"Time since last adjustment is %d seconds\n", 1070}, - {"Need to insert %d seconds and refer time back %.6f seconds ago\n", 1071}, - {"Not updating adjtime file because of testing mode.\n", 1072}, +Adjusting drift factor by %f seconds/day\n", 1072}, + {"Time since last adjustment is %d seconds\n", 1073}, + {"Need to insert %d seconds and refer time back %.6f seconds ago\n", 1074}, + {"Not updating adjtime file because of testing mode.\n", 1075}, {"\ Would have written the following to %s:\n\ -%s", 1073}, - {"Drift adjustment parameters not updated.\n", 1074}, +%s", 1076}, + {"Drift adjustment parameters not updated.\n", 1077}, {"\ -The Hardware Clock does not contain a valid time, so we cannot adjust it.\n", 1075}, - {"Needed adjustment is less than one second, so not setting clock.\n", 1076}, - {"Using %s.\n", 1077}, - {"No usable clock interface found.\n", 1078}, - {"Unable to set system clock.\n", 1079}, +The Hardware Clock does not contain a valid time, so we cannot adjust it.\n", 1078}, + {"Needed adjustment is less than one second, so not setting clock.\n", 1079}, + {"Using %s.\n", 1080}, + {"No usable clock interface found.\n", 1081}, + {"Unable to set system clock.\n", 1082}, {"\ 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", 1080}, - {"Unable to get the epoch value from the kernel.\n", 1081}, - {"Kernel is assuming an epoch value of %lu\n", 1082}, +(and thus is presumably not running on an Alpha now). No action taken.\n", 1083}, + {"Unable to get the epoch value from the kernel.\n", 1084}, + {"Kernel is assuming an epoch value of %lu\n", 1085}, {"\ To set the epoch value, you must use the 'epoch' option to tell to what \ -value to set it.\n", 1083}, - {"Not setting the epoch to %d - testing only.\n", 1084}, - {"Unable to set the epoch value in the kernel.\n", 1085}, +value to set it.\n", 1086}, + {"Not setting the epoch to %d - testing only.\n", 1087}, + {"Unable to set the epoch value in the kernel.\n", 1088}, {"\ hwclock - query and set the hardware clock (RTC)\n\ \n\ @@ -1501,556 +1504,557 @@ Options: \n\ --epoch=year specifies the year which is the beginning of the \n\ hardware clock's epoch value\n\ --noadjfile do not access /etc/adjtime. Requires the use of\n\ - either --utc or --localtime\n", 1086}, + either --utc or --localtime\n", 1089}, {"\ --jensen, --arc, --srm, --funky-toy\n\ - tell hwclock the type of alpha you have (see hwclock(8))\n", 1087}, - {"%s takes no non-option arguments. You supplied %d.\n", 1088}, + tell hwclock the type of alpha you have (see hwclock(8))\n", 1090}, + {"%s takes no non-option arguments. You supplied %d.\n", 1091}, {"\ You have specified multiple functions.\n\ -You can only perform one function at a time.\n", 1089}, +You can only perform one function at a time.\n", 1092}, {"\ %s: The --utc and --localtime options are mutually exclusive. You specified \ -both.\n", 1090}, +both.\n", 1093}, {"\ %s: The --adjust and --noadjfile options are mutually exclusive. You \ -specified both.\n", 1091}, - {"%s: With --noadjfile, you must specify either --utc or --localtime\n", 1092}, - {"No usable set-to time. Cannot set clock.\n", 1093}, - {"Sorry, only the superuser can change the Hardware Clock.\n", 1094}, - {"Sorry, only the superuser can change the System Clock.\n", 1095}, +specified both.\n", 1094}, + {"%s: With --noadjfile, you must specify either --utc or --localtime\n", 1095}, + {"No usable set-to time. Cannot set clock.\n", 1096}, + {"Sorry, only the superuser can change the Hardware Clock.\n", 1097}, + {"Sorry, only the superuser can change the System Clock.\n", 1098}, {"\ Sorry, only the superuser can change the Hardware Clock epoch in the \ -kernel.\n", 1096}, - {"Cannot access the Hardware Clock via any known method.\n", 1097}, +kernel.\n", 1099}, + {"Cannot access the Hardware Clock via any known method.\n", 1100}, {"\ Use the --debug option to see the details of our search for an access \ -method.\n", 1098}, - {"Waiting in loop for time from KDGHWCLK to change\n", 1099}, - {"KDGHWCLK ioctl to read time failed", 1100}, - {"Timed out waiting for time change.\n", 1101}, - {"KDGHWCLK ioctl to read time failed in loop", 1102}, - {"ioctl() failed to read time from %s", 1103}, - {"ioctl KDSHWCLK failed", 1104}, - {"Can't open /dev/tty1 or /dev/vc/1", 1105}, - {"KDGHWCLK ioctl failed", 1106}, - {"open() of %s failed", 1107}, - {"ioctl() to %s to read the time failed.\n", 1108}, - {"Waiting in loop for time from %s to change\n", 1109}, - {"%s does not have interrupt functions. ", 1110}, - {"read() to %s to wait for clock tick failed", 1111}, - {"select() to %s to wait for clock tick failed", 1112}, - {"select() to %s to wait for clock tick timed out\n", 1113}, - {"ioctl() to %s to turn off update interrupts failed", 1114}, - {"ioctl() to %s to turn on update interrupts failed unexpectedly", 1115}, - {"ioctl() to %s to set the time failed.\n", 1116}, - {"ioctl(%s) was successful.\n", 1117}, - {"Open of %s failed", 1118}, +method.\n", 1101}, + {"Waiting in loop for time from KDGHWCLK to change\n", 1102}, + {"KDGHWCLK ioctl to read time failed", 1103}, + {"Timed out waiting for time change.\n", 1104}, + {"KDGHWCLK ioctl to read time failed in loop", 1105}, + {"ioctl() failed to read time from %s", 1106}, + {"ioctl KDSHWCLK failed", 1107}, + {"Can't open /dev/tty1 or /dev/vc/1", 1108}, + {"KDGHWCLK ioctl failed", 1109}, + {"open() of %s failed", 1110}, + {"ioctl() to %s to read the time failed.\n", 1111}, + {"Waiting in loop for time from %s to change\n", 1112}, + {"%s does not have interrupt functions. ", 1113}, + {"read() to %s to wait for clock tick failed", 1114}, + {"select() to %s to wait for clock tick failed", 1115}, + {"select() to %s to wait for clock tick timed out\n", 1116}, + {"ioctl() to %s to turn off update interrupts failed", 1117}, + {"ioctl() to %s to turn on update interrupts failed unexpectedly", 1118}, + {"ioctl() to %s to set the time failed.\n", 1119}, + {"ioctl(%s) was successful.\n", 1120}, + {"Open of %s failed", 1121}, {"\ To manipulate the epoch value in the kernel, we must access the Linux 'rtc' \ device driver via the device special file %s. This file does not exist on \ -this system.\n", 1119}, - {"Unable to open %s", 1120}, - {"ioctl(RTC_EPOCH_READ) to %s failed", 1121}, - {"we have read epoch %ld from %s with RTC_EPOCH_READ ioctl.\n", 1122}, - {"The epoch value may not be less than 1900. You requested %ld\n", 1123}, - {"setting epoch to %ld with RTC_EPOCH_SET ioctl to %s.\n", 1124}, - {"\ -The kernel device driver for %s does not have the RTC_EPOCH_SET ioctl.\n", 1125}, - {"ioctl(RTC_EPOCH_SET) to %s failed", 1126}, - {"calling open_tty\n", 1127}, - {"calling termio_init\n", 1128}, - {"writing init string\n", 1129}, - {"before autobaud\n", 1130}, - {"waiting for cr-lf\n", 1131}, - {"read %c\n", 1132}, - {"reading login name\n", 1133}, - {"%s: can't exec %s: %m", 1134}, - {"can't malloc initstring", 1135}, - {"bad timeout value: %s", 1136}, - {"after getopt loop\n", 1137}, - {"exiting parseargs\n", 1138}, - {"entered parse_speeds\n", 1139}, - {"bad speed: %s", 1140}, - {"too many alternate speeds", 1141}, - {"exiting parsespeeds\n", 1142}, - {"/dev: chdir() failed: %m", 1143}, - {"/dev/%s: not a character device", 1144}, - {"open(2)\n", 1145}, - {"/dev/%s: cannot open as standard input: %m", 1146}, - {"%s: not open for read/write", 1147}, - {"duping\n", 1148}, - {"%s: dup problem: %m", 1149}, - {"term_io 2\n", 1150}, - {"user", 1151}, - {"users", 1152}, - {"%s: read: %m", 1153}, - {"%s: input overrun", 1154}, +this system.\n", 1122}, + {"Unable to open %s", 1123}, + {"ioctl(RTC_EPOCH_READ) to %s failed", 1124}, + {"we have read epoch %ld from %s with RTC_EPOCH_READ ioctl.\n", 1125}, + {"The epoch value may not be less than 1900. You requested %ld\n", 1126}, + {"setting epoch to %ld with RTC_EPOCH_SET ioctl to %s.\n", 1127}, + {"\ +The kernel device driver for %s does not have the RTC_EPOCH_SET ioctl.\n", 1128}, + {"ioctl(RTC_EPOCH_SET) to %s failed", 1129}, + {"calling open_tty\n", 1130}, + {"calling termio_init\n", 1131}, + {"writing init string\n", 1132}, + {"before autobaud\n", 1133}, + {"waiting for cr-lf\n", 1134}, + {"read %c\n", 1135}, + {"reading login name\n", 1136}, + {"%s: can't exec %s: %m", 1137}, + {"can't malloc initstring", 1138}, + {"bad timeout value: %s", 1139}, + {"after getopt loop\n", 1140}, + {"exiting parseargs\n", 1141}, + {"entered parse_speeds\n", 1142}, + {"bad speed: %s", 1143}, + {"too many alternate speeds", 1144}, + {"exiting parsespeeds\n", 1145}, + {"/dev: chdir() failed: %m", 1146}, + {"/dev/%s: not a character device", 1147}, + {"open(2)\n", 1148}, + {"/dev/%s: cannot open as standard input: %m", 1149}, + {"%s: not open for read/write", 1150}, + {"duping\n", 1151}, + {"%s: dup problem: %m", 1152}, + {"term_io 2\n", 1153}, + {"user", 1154}, + {"users", 1155}, + {"%s: read: %m", 1156}, + {"%s: input overrun", 1157}, {"\ Usage: %s [-hiLmw] [-l login_program] [-t timeout] [-I initstring] [-H \ login_host] baud_rate,... line [termtype]\n\ or\t[-hiLmw] [-l login_program] [-t timeout] [-I initstring] [-H login_host] \ -line baud_rate,... [termtype]\n", 1155}, - {"login: memory low, login may fail\n", 1156}, - {"can't malloc for ttyclass", 1157}, - {"can't malloc for grplist", 1158}, - {"Login on %s from %s denied by default.\n", 1159}, - {"Login on %s from %s denied.\n", 1160}, - {"%s: you (user %d) don't exist.\n", 1161}, - {"%s: user \"%s\" does not exist.\n", 1162}, - {"%s: can only change local entries; use yp%s instead.\n", 1163}, - {"Unknown user context", 1164}, - {"%s: %s is not authorized to change the finger info of %s\n", 1165}, - {"%s: Can't set default context for /etc/passwd", 1166}, - {"Changing finger information for %s.\n", 1167}, - {"Password error.", 1168}, - {"Password: ", 1169}, - {"Incorrect password.", 1170}, - {"Finger information not changed.\n", 1171}, - {"Usage: %s [ -f full-name ] [ -o office ] ", 1172}, +line baud_rate,... [termtype]\n", 1158}, + {"login: memory low, login may fail\n", 1159}, + {"can't malloc for ttyclass", 1160}, + {"can't malloc for grplist", 1161}, + {"Login on %s from %s denied by default.\n", 1162}, + {"Login on %s from %s denied.\n", 1163}, + {"%s: you (user %d) don't exist.\n", 1164}, + {"%s: user \"%s\" does not exist.\n", 1165}, + {"%s: can only change local entries; use yp%s instead.\n", 1166}, + {"Unknown user context", 1167}, + {"%s: %s is not authorized to change the finger info of %s\n", 1168}, + {"%s: Can't set default context for /etc/passwd", 1169}, + {"Changing finger information for %s.\n", 1170}, + {"Password error.", 1171}, + {"Password: ", 1172}, + {"Incorrect password.", 1173}, + {"Finger information not changed.\n", 1174}, + {"Usage: %s [ -f full-name ] [ -o office ] ", 1175}, {"\ [ -p office-phone ]\n\ -\t[ -h home-phone ] ", 1173}, - {"[ --help ] [ --version ]\n", 1174}, +\t[ -h home-phone ] ", 1176}, + {"[ --help ] [ --version ]\n", 1177}, {"\ \n\ -Aborted.\n", 1175}, - {"field is too long.\n", 1176}, - {"'%c' is not allowed.\n", 1177}, - {"Control characters are not allowed.\n", 1178}, - {"Finger information *NOT* changed. Try again later.\n", 1179}, - {"Finger information changed.\n", 1180}, - {"malloc failed", 1181}, - {"%s: %s is not authorized to change the shell of %s\n", 1182}, +Aborted.\n", 1178}, + {"field is too long.\n", 1179}, + {"'%c' is not allowed.\n", 1180}, + {"Control characters are not allowed.\n", 1181}, + {"Finger information *NOT* changed. Try again later.\n", 1182}, + {"Finger information changed.\n", 1183}, + {"malloc failed", 1184}, + {"%s: %s is not authorized to change the shell of %s\n", 1185}, {"\ %s: Running UID doesn't match UID of user we're altering, shell change \ -denied\n", 1183}, - {"%s: Your shell is not in /etc/shells, shell change denied\n", 1184}, - {"Changing shell for %s.\n", 1185}, - {"New shell", 1186}, - {"Shell not changed.\n", 1187}, - {"Shell *NOT* changed. Try again later.\n", 1188}, - {"Shell changed.\n", 1189}, +denied\n", 1186}, + {"%s: Your shell is not in /etc/shells, shell change denied\n", 1187}, + {"Changing shell for %s.\n", 1188}, + {"New shell", 1189}, + {"Shell not changed.\n", 1190}, + {"Shell *NOT* changed. Try again later.\n", 1191}, + {"Shell changed.\n", 1192}, {"\ Usage: %s [ -s shell ] [ --list-shells ] [ --help ] [ --version ]\n\ - [ username ]\n", 1190}, - {"%s: shell must be a full path name.\n", 1191}, - {"%s: \"%s\" does not exist.\n", 1192}, - {"%s: \"%s\" is not executable.\n", 1193}, - {"%s: '%c' is not allowed.\n", 1194}, - {"%s: Control characters are not allowed.\n", 1195}, - {"Warning: \"%s\" is not listed in /etc/shells\n", 1196}, - {"%s: \"%s\" is not listed in /etc/shells.\n", 1197}, - {"%s: use -l option to see list\n", 1198}, - {"Warning: \"%s\" is not listed in /etc/shells.\n", 1199}, - {"Use %s -l to see list.\n", 1200}, - {"No known shells.\n", 1201}, - {"couldn't open /dev/urandom", 1202}, - {"couldn't read random data from /dev/urandom", 1203}, - {"can't open %s for reading", 1204}, - {"can't stat(%s)", 1205}, - {"%s doesn't have the correct filemodes", 1206}, - {"can't read data from %s", 1207}, - {"Can't read %s, exiting.", 1208}, - {"usage: last [-#] [-f file] [-t tty] [-h hostname] [user ...]\n", 1209}, - {" still logged in", 1210}, + [ username ]\n", 1193}, + {"%s: shell must be a full path name.\n", 1194}, + {"%s: \"%s\" does not exist.\n", 1195}, + {"%s: \"%s\" is not executable.\n", 1196}, + {"%s: '%c' is not allowed.\n", 1197}, + {"%s: Control characters are not allowed.\n", 1198}, + {"Warning: \"%s\" is not listed in /etc/shells\n", 1199}, + {"%s: \"%s\" is not listed in /etc/shells.\n", 1200}, + {"%s: use -l option to see list\n", 1201}, + {"Warning: \"%s\" is not listed in /etc/shells.\n", 1202}, + {"Use %s -l to see list.\n", 1203}, + {"No known shells.\n", 1204}, + {"couldn't open /dev/urandom", 1205}, + {"couldn't read random data from /dev/urandom", 1206}, + {"can't open %s for reading", 1207}, + {"can't stat(%s)", 1208}, + {"%s doesn't have the correct filemodes", 1209}, + {"can't read data from %s", 1210}, + {"Can't read %s, exiting.", 1211}, + {"usage: last [-#] [-f file] [-t tty] [-h hostname] [user ...]\n", 1212}, + {" still logged in", 1213}, {"\ \n\ -wtmp begins %s", 1211}, - {"last: malloc failure.\n", 1212}, - {"last: gethostname", 1213}, +wtmp begins %s", 1214}, + {"last: malloc failure.\n", 1215}, + {"last: gethostname", 1216}, {"\ \n\ -interrupted %10.10s %5.5s \n", 1214}, - {"FATAL: can't reopen tty: %s", 1215}, - {"FATAL: bad tty", 1216}, - {"login: -h for super-user only.\n", 1217}, - {"usage: login [-fp] [username]\n", 1218}, - {"login: PAM Failure, aborting: %s\n", 1219}, - {"Couldn't initialize PAM: %s", 1220}, - {"login: ", 1221}, - {"FAILED LOGIN %d FROM %s FOR %s, %s", 1222}, +interrupted %10.10s %5.5s \n", 1217}, + {"FATAL: can't reopen tty: %s", 1218}, + {"FATAL: bad tty", 1219}, + {"login: -h for super-user only.\n", 1220}, + {"usage: login [-fp] [username]\n", 1221}, + {"login: PAM Failure, aborting: %s\n", 1222}, + {"Couldn't initialize PAM: %s", 1223}, + {"login: ", 1224}, + {"FAILED LOGIN %d FROM %s FOR %s, %s", 1225}, {"\ Login incorrect\n\ -\n", 1223}, - {"TOO MANY LOGIN TRIES (%d) FROM %s FOR %s, %s", 1224}, - {"FAILED LOGIN SESSION FROM %s FOR %s, %s", 1225}, +\n", 1226}, + {"TOO MANY LOGIN TRIES (%d) FROM %s FOR %s, %s", 1227}, + {"FAILED LOGIN SESSION FROM %s FOR %s, %s", 1228}, {"\ \n\ -Login incorrect\n", 1226}, +Login incorrect\n", 1229}, {"\ \n\ -Session setup problem, abort.\n", 1227}, - {"NULL user name in %s:%d. Abort.", 1228}, - {"Invalid user name \"%s\" in %s:%d. Abort.", 1229}, - {"login: Out of memory\n", 1230}, - {"Illegal username", 1231}, - {"%s login refused on this terminal.\n", 1232}, - {"LOGIN %s REFUSED FROM %s ON TTY %s", 1233}, - {"LOGIN %s REFUSED ON TTY %s", 1234}, - {"Login incorrect\n", 1235}, +Session setup problem, abort.\n", 1230}, + {"NULL user name in %s:%d. Abort.", 1231}, + {"Invalid user name \"%s\" in %s:%d. Abort.", 1232}, + {"login: Out of memory\n", 1233}, + {"Illegal username", 1234}, + {"%s login refused on this terminal.\n", 1235}, + {"LOGIN %s REFUSED FROM %s ON TTY %s", 1236}, + {"LOGIN %s REFUSED ON TTY %s", 1237}, + {"Login incorrect\n", 1238}, {"\ Too many users logged on already.\n\ -Try again later.\n", 1236}, - {"You have too many processes running.\n", 1237}, - {"DIALUP AT %s BY %s", 1238}, - {"ROOT LOGIN ON %s FROM %s", 1239}, - {"ROOT LOGIN ON %s", 1240}, - {"LOGIN ON %s BY %s FROM %s", 1241}, - {"LOGIN ON %s BY %s", 1242}, - {"You have new mail.\n", 1243}, - {"You have mail.\n", 1244}, - {"login: failure forking: %s", 1245}, - {"TIOCSCTTY failed: %m", 1246}, - {"setuid() failed", 1247}, - {"No directory %s!\n", 1248}, - {"Logging in with home = \"/\".\n", 1249}, - {"login: no memory for shell script.\n", 1250}, - {"login: couldn't exec shell script: %s.\n", 1251}, - {"login: no shell: %s.\n", 1252}, +Try again later.\n", 1239}, + {"You have too many processes running.\n", 1240}, + {"DIALUP AT %s BY %s", 1241}, + {"ROOT LOGIN ON %s FROM %s", 1242}, + {"ROOT LOGIN ON %s", 1243}, + {"LOGIN ON %s BY %s FROM %s", 1244}, + {"LOGIN ON %s BY %s", 1245}, + {"You have new mail.\n", 1246}, + {"You have mail.\n", 1247}, + {"login: failure forking: %s", 1248}, + {"TIOCSCTTY failed: %m", 1249}, + {"setuid() failed", 1250}, + {"No directory %s!\n", 1251}, + {"Logging in with home = \"/\".\n", 1252}, + {"login: no memory for shell script.\n", 1253}, + {"login: couldn't exec shell script: %s.\n", 1254}, + {"login: no shell: %s.\n", 1255}, {"\ \n\ -%s login: ", 1253}, - {"login name much too long.\n", 1254}, - {"NAME too long", 1255}, - {"login names may not start with '-'.\n", 1256}, - {"too many bare linefeeds.\n", 1257}, - {"EXCESSIVE linefeeds", 1258}, - {"Login timed out after %d seconds\n", 1259}, - {"Last login: %.*s ", 1260}, - {"from %.*s\n", 1261}, - {"on %.*s\n", 1262}, - {"LOGIN FAILURE FROM %s, %s", 1263}, - {"LOGIN FAILURE ON %s, %s", 1264}, - {"%d LOGIN FAILURES FROM %s, %s", 1265}, - {"%d LOGIN FAILURES ON %s, %s", 1266}, - {"is y\n", 1267}, - {"is n\n", 1268}, - {"usage: mesg [y | n]\n", 1269}, - {"newgrp: Who are you?", 1270}, - {"newgrp: setgid", 1271}, - {"newgrp: No such group.", 1272}, - {"newgrp: Permission denied", 1273}, - {"newgrp: setuid", 1274}, - {"No shell", 1275}, - {"The password must have at least 6 characters, try again.\n", 1276}, +%s login: ", 1256}, + {"login name much too long.\n", 1257}, + {"NAME too long", 1258}, + {"login names may not start with '-'.\n", 1259}, + {"too many bare linefeeds.\n", 1260}, + {"EXCESSIVE linefeeds", 1261}, + {"Login timed out after %d seconds\n", 1262}, + {"Last login: %.*s ", 1263}, + {"from %.*s\n", 1264}, + {"on %.*s\n", 1265}, + {"LOGIN FAILURE FROM %s, %s", 1266}, + {"LOGIN FAILURE ON %s, %s", 1267}, + {"%d LOGIN FAILURES FROM %s, %s", 1268}, + {"%d LOGIN FAILURES ON %s, %s", 1269}, + {"is y\n", 1270}, + {"is n\n", 1271}, + {"usage: mesg [y | n]\n", 1272}, + {"newgrp: Who are you?", 1273}, + {"newgrp: setgid", 1274}, + {"newgrp: No such group.", 1275}, + {"newgrp: Permission denied", 1276}, + {"newgrp: setuid", 1277}, + {"No shell", 1278}, + {"The password must have at least 6 characters, try again.\n", 1279}, {"\ The password must contain characters out of two of the following\n\ classes: upper and lower case letters, digits and non alphanumeric\n\ -characters. See passwd(1) for more information.\n", 1277}, - {"You cannot reuse the old password.\n", 1278}, - {"Please don't use something like your username as password!\n", 1279}, - {"Please don't use something like your realname as password!\n", 1280}, - {"Usage: passwd [username [password]]\n", 1281}, - {"Only root may use the one and two argument forms.\n", 1282}, - {"Usage: passwd [-foqsvV] [user [password]]\n", 1283}, - {"Can't exec %s: %s\n", 1284}, - {"Cannot find login name", 1285}, - {"Only root can change the password for others.\n", 1286}, - {"Too many arguments.\n", 1287}, - {"Can't find username anywhere. Is `%s' really a user?", 1288}, - {"Sorry, I can only change local passwords. Use yppasswd instead.", 1289}, - {"UID and username does not match, imposter!", 1290}, - {"Changing password for %s\n", 1291}, - {"Enter old password: ", 1292}, - {"Illegal password, imposter.", 1293}, - {"Enter new password: ", 1294}, - {"Password not changed.", 1295}, - {"Re-type new password: ", 1296}, - {"You misspelled it. Password not changed.", 1297}, - {"password changed, user %s", 1298}, - {"ROOT PASSWORD CHANGED", 1299}, - {"password changed by root, user %s", 1300}, - {"calling setpwnam to set password.\n", 1301}, - {"Password *NOT* changed. Try again later.\n", 1302}, - {"Password changed.\n", 1303}, - {"Usage: shutdown [-h|-r] [-fqs] [now|hh:ss|+mins]\n", 1304}, - {"Shutdown process aborted", 1305}, - {"%s: Only root can shut a system down.\n", 1306}, - {"That must be tomorrow, can't you wait till then?\n", 1307}, - {"for maintenance; bounce, bounce", 1308}, - {"timeout = %d, quiet = %d, reboot = %d\n", 1309}, - {"The system is being shut down within 5 minutes", 1310}, - {"Login is therefore prohibited.", 1311}, - {"rebooted by %s: %s", 1312}, - {"halted by %s: %s", 1313}, +characters. See passwd(1) for more information.\n", 1280}, + {"You cannot reuse the old password.\n", 1281}, + {"Please don't use something like your username as password!\n", 1282}, + {"Please don't use something like your realname as password!\n", 1283}, + {"Usage: passwd [username [password]]\n", 1284}, + {"Only root may use the one and two argument forms.\n", 1285}, + {"Usage: passwd [-foqsvV] [user [password]]\n", 1286}, + {"Can't exec %s: %s\n", 1287}, + {"Cannot find login name", 1288}, + {"Only root can change the password for others.\n", 1289}, + {"Too many arguments.\n", 1290}, + {"Can't find username anywhere. Is `%s' really a user?", 1291}, + {"Sorry, I can only change local passwords. Use yppasswd instead.", 1292}, + {"UID and username does not match, imposter!", 1293}, + {"Changing password for %s\n", 1294}, + {"Enter old password: ", 1295}, + {"Illegal password, imposter.", 1296}, + {"Enter new password: ", 1297}, + {"Password not changed.", 1298}, + {"Re-type new password: ", 1299}, + {"You misspelled it. Password not changed.", 1300}, + {"password changed, user %s", 1301}, + {"ROOT PASSWORD CHANGED", 1302}, + {"password changed by root, user %s", 1303}, + {"calling setpwnam to set password.\n", 1304}, + {"Password *NOT* changed. Try again later.\n", 1305}, + {"Password changed.\n", 1306}, + {"Usage: shutdown [-h|-r] [-fqs] [now|hh:ss|+mins]\n", 1307}, + {"Shutdown process aborted", 1308}, + {"%s: Only root can shut a system down.\n", 1309}, + {"That must be tomorrow, can't you wait till then?\n", 1310}, + {"for maintenance; bounce, bounce", 1311}, + {"timeout = %d, quiet = %d, reboot = %d\n", 1312}, + {"The system is being shut down within 5 minutes", 1313}, + {"Login is therefore prohibited.", 1314}, + {"rebooted by %s: %s", 1315}, + {"halted by %s: %s", 1316}, {"\ \n\ -Why am I still alive after reboot?", 1314}, +Why am I still alive after reboot?", 1317}, {"\ \n\ -Now you can turn off the power...", 1315}, - {"Calling kernel power-off facility...\n", 1316}, - {"Error powering off\t%s\n", 1317}, - {"Executing the program \"%s\" ...\n", 1318}, - {"Error executing\t%s\n", 1319}, - {"URGENT: broadcast message from %s:", 1320}, - {"System going down in %d hours %d minutes", 1321}, - {"System going down in 1 hour %d minutes", 1322}, - {"System going down in %d minutes\n", 1323}, - {"System going down in 1 minute\n", 1324}, - {"System going down IMMEDIATELY!\n", 1325}, - {"\t... %s ...\n", 1326}, - {"Cannot fork for swapoff. Shrug!", 1327}, - {"Cannot exec swapoff, hoping umount will do the trick.", 1328}, - {"Cannot fork for umount, trying manually.", 1329}, - {"Cannot exec %s, trying umount.\n", 1330}, - {"Cannot exec umount, giving up on umount.", 1331}, - {"Unmounting any remaining filesystems...", 1332}, - {"shutdown: Couldn't umount %s: %s\n", 1333}, - {"Booting to single user mode.\n", 1334}, - {"exec of single user shell failed\n", 1335}, - {"fork of single user shell failed\n", 1336}, - {"error opening fifo\n", 1337}, - {"error setting close-on-exec on /dev/initctl", 1338}, - {"error running finalprog\n", 1339}, - {"error forking finalprog\n", 1340}, +Now you can turn off the power...", 1318}, + {"Calling kernel power-off facility...\n", 1319}, + {"Error powering off\t%s\n", 1320}, + {"Executing the program \"%s\" ...\n", 1321}, + {"Error executing\t%s\n", 1322}, + {"URGENT: broadcast message from %s:", 1323}, + {"System going down in %d hours %d minutes", 1324}, + {"System going down in 1 hour %d minutes", 1325}, + {"System going down in %d minutes\n", 1326}, + {"System going down in 1 minute\n", 1327}, + {"System going down IMMEDIATELY!\n", 1328}, + {"\t... %s ...\n", 1329}, + {"Cannot fork for swapoff. Shrug!", 1330}, + {"Cannot exec swapoff, hoping umount will do the trick.", 1331}, + {"Cannot fork for umount, trying manually.", 1332}, + {"Cannot exec %s, trying umount.\n", 1333}, + {"Cannot exec umount, giving up on umount.", 1334}, + {"Unmounting any remaining filesystems...", 1335}, + {"shutdown: Couldn't umount %s: %s\n", 1336}, + {"Booting to single user mode.\n", 1337}, + {"exec of single user shell failed\n", 1338}, + {"fork of single user shell failed\n", 1339}, + {"error opening fifo\n", 1340}, + {"error setting close-on-exec on /dev/initctl", 1341}, + {"error running finalprog\n", 1342}, + {"error forking finalprog\n", 1343}, {"\ \n\ -Wrong password.\n", 1341}, - {"lstat of path failed\n", 1342}, - {"stat of path failed\n", 1343}, - {"open of directory failed\n", 1344}, - {"fork failed\n", 1345}, - {"exec failed\n", 1346}, - {"cannot open inittab\n", 1347}, - {"no TERM or cannot stat tty\n", 1348}, - {"error stopping service: \"%s\"", 1349}, - {"too many iov's (change code in wall/ttymsg.c)", 1350}, - {"excessively long line arg", 1351}, - {"cannot fork", 1352}, - {"fork: %s", 1353}, - {"%s: BAD ERROR", 1354}, - {"%s: the password file is busy.\n", 1355}, - {"%s: the group file is busy.\n", 1356}, - {"%s: the %s file is busy (%s present)\n", 1357}, - {"%s: can't link %s: %s\n", 1358}, - {"%s: Can't get context for %s", 1359}, - {"%s: Can't set context for %s", 1360}, - {"%s: can't unlock %s: %s (your changes are still in %s)\n", 1361}, - {"%s: Cannot fork\n", 1362}, - {"%s: %s unchanged\n", 1363}, - {"%s: no changes made\n", 1364}, - {"You are using shadow groups on this system.\n", 1365}, - {"You are using shadow passwords on this system.\n", 1366}, - {"Would you like to edit %s now [y/n]? ", 1367}, - {"usage: %s [file]\n", 1368}, - {"%s: can't open temporary file.\n", 1369}, - {"Broadcast Message from %s@%s", 1370}, - {"%s: will not read %s - use stdin.\n", 1371}, - {"%s: can't read %s.\n", 1372}, - {"%s: can't stat temporary file.\n", 1373}, - {"%s: can't read temporary file.\n", 1374}, - {"illegal month value: use 1-12", 1375}, - {"illegal year value: use 1-9999", 1376}, - {"%s %d", 1377}, - {"usage: cal [-13smjyV] [[month] year]\n", 1378}, - {"usage: %s [+format] [day month year]\n", 1379}, - {"St. Tib's Day", 1380}, - {"%s: unknown signal %s\n", 1381}, - {"%s: can't find process \"%s\"\n", 1382}, - {"%s: unknown signal %s; valid signals:\n", 1383}, - {"usage: %s [ -s signal | -p ] [ -a ] pid ...\n", 1384}, - {" %s -l [ signal ]\n", 1385}, - {"logger: %s: %s.\n", 1386}, - {"logger: unknown facility name: %s.\n", 1387}, - {"logger: unknown priority name: %s.\n", 1388}, - {"\ -usage: logger [-is] [-f file] [-p pri] [-t tag] [-u socket] [ message ... ]\n", 1389}, - {"usage: look [-dfa] [-t char] string [file]\n", 1390}, - {"Could not open %s\n", 1391}, - {"Got %d bytes from %s\n", 1392}, - {"namei: unable to get current directory - %s\n", 1393}, - {"namei: unable to chdir to %s - %s (%d)\n", 1394}, - {"usage: namei [-mx] pathname [pathname ...]\n", 1395}, - {"namei: could not chdir to root!\n", 1396}, - {"namei: could not stat root!\n", 1397}, - {"namei: buf overflow\n", 1398}, - {" ? could not chdir into %s - %s (%d)\n", 1399}, - {" ? problems reading symlink %s - %s (%d)\n", 1400}, - {" *** EXCEEDED UNIX LIMIT OF SYMLINKS ***\n", 1401}, - {"namei: unknown file type 0%06o on file %s\n", 1402}, - {"%s: out of memory\n", 1403}, - {"%s: renaming %s to %s failed: %s\n", 1404}, - {"call: %s from to files...\n", 1405}, +Wrong password.\n", 1344}, + {"lstat of path failed\n", 1345}, + {"stat of path failed\n", 1346}, + {"open of directory failed\n", 1347}, + {"fork failed\n", 1348}, + {"exec failed\n", 1349}, + {"cannot open inittab\n", 1350}, + {"no TERM or cannot stat tty\n", 1351}, + {"error stopping service: \"%s\"", 1352}, + {"too many iov's (change code in wall/ttymsg.c)", 1353}, + {"excessively long line arg", 1354}, + {"cannot fork", 1355}, + {"fork: %s", 1356}, + {"%s: BAD ERROR", 1357}, + {"%s: the password file is busy.\n", 1358}, + {"%s: the group file is busy.\n", 1359}, + {"%s: the %s file is busy (%s present)\n", 1360}, + {"%s: can't link %s: %s\n", 1361}, + {"%s: Can't get context for %s", 1362}, + {"%s: Can't set context for %s", 1363}, + {"%s: can't unlock %s: %s (your changes are still in %s)\n", 1364}, + {"%s: Cannot fork\n", 1365}, + {"%s: %s unchanged\n", 1366}, + {"%s: no changes made\n", 1367}, + {"You are using shadow groups on this system.\n", 1368}, + {"You are using shadow passwords on this system.\n", 1369}, + {"Would you like to edit %s now [y/n]? ", 1370}, + {"usage: %s [file]\n", 1371}, + {"%s: can't open temporary file.\n", 1372}, + {"Broadcast Message from %s@%s", 1373}, + {"%s: will not read %s - use stdin.\n", 1374}, + {"%s: can't read %s.\n", 1375}, + {"%s: can't stat temporary file.\n", 1376}, + {"%s: can't read temporary file.\n", 1377}, + {"illegal month value: use 1-12", 1378}, + {"illegal year value: use 1-9999", 1379}, + {"%s %d", 1380}, + {"usage: cal [-13smjyV] [[month] year]\n", 1381}, + {"usage: %s [+format] [day month year]\n", 1382}, + {"St. Tib's Day", 1383}, + {"%s: unknown signal %s\n", 1384}, + {"%s: can't find process \"%s\"\n", 1385}, + {"%s: unknown signal %s; valid signals:\n", 1386}, + {"usage: %s [ -s signal | -p ] [ -a ] pid ...\n", 1387}, + {" %s -l [ signal ]\n", 1388}, + {"logger: %s: %s.\n", 1389}, + {"logger: unknown facility name: %s.\n", 1390}, + {"logger: unknown priority name: %s.\n", 1391}, + {"\ +usage: logger [-is] [-f file] [-p pri] [-t tag] [-u socket] [ message ... ]\n", 1392}, + {"usage: look [-dfa] [-t char] string [file]\n", 1393}, + {"Could not open %s\n", 1394}, + {"Got %d bytes from %s\n", 1395}, + {"namei: unable to get current directory - %s\n", 1396}, + {"namei: unable to chdir to %s - %s (%d)\n", 1397}, + {"usage: namei [-mx] pathname [pathname ...]\n", 1398}, + {"namei: could not chdir to root!\n", 1399}, + {"namei: could not stat root!\n", 1400}, + {"namei: buf overflow\n", 1401}, + {" ? could not chdir into %s - %s (%d)\n", 1402}, + {" ? problems reading symlink %s - %s (%d)\n", 1403}, + {" *** EXCEEDED UNIX LIMIT OF SYMLINKS ***\n", 1404}, + {"namei: unknown file type 0%06o on file %s\n", 1405}, + {"%s: out of memory\n", 1406}, + {"%s: renaming %s to %s failed: %s\n", 1407}, + {"call: %s from to files...\n", 1408}, {"\ Warning: `%s' is a link.\n\ Use `%s [options] %s' if you really want to use it.\n\ -Script not started.\n", 1406}, - {"usage: script [-a] [-f] [-q] [-t] [file]\n", 1407}, - {"Script started, file is %s\n", 1408}, - {"Script started on %s", 1409}, +Script not started.\n", 1409}, + {"usage: script [-a] [-f] [-q] [-t] [file]\n", 1410}, + {"Script started, file is %s\n", 1411}, + {"Script started on %s", 1412}, {"\ \n\ -Script done on %s", 1410}, - {"Script done, file is %s\n", 1411}, - {"openpty failed\n", 1412}, - {"Out of pty's\n", 1413}, - {"%s: Argument error, usage\n", 1414}, - {" [ -term terminal_name ]\n", 1415}, - {" [ -reset ]\n", 1416}, - {" [ -initialize ]\n", 1417}, - {" [ -cursor [on|off] ]\n", 1418}, - {" [ -snow [on|off] ]\n", 1419}, - {" [ -softscroll [on|off] ]\n", 1420}, - {" [ -repeat [on|off] ]\n", 1421}, - {" [ -appcursorkeys [on|off] ]\n", 1422}, - {" [ -linewrap [on|off] ]\n", 1423}, - {" [ -default ]\n", 1424}, - {" [ -foreground black|blue|green|cyan", 1425}, - {"|red|magenta|yellow|white|default ]\n", 1426}, - {" [ -background black|blue|green|cyan", 1427}, - {" [ -ulcolor black|grey|blue|green|cyan", 1428}, - {"|red|magenta|yellow|white ]\n", 1429}, - {" [ -ulcolor bright blue|green|cyan", 1430}, - {" [ -hbcolor black|grey|blue|green|cyan", 1431}, - {" [ -hbcolor bright blue|green|cyan", 1432}, - {" [ -standout [ attr ] ]\n", 1433}, - {" [ -inversescreen [on|off] ]\n", 1434}, - {" [ -bold [on|off] ]\n", 1435}, - {" [ -half-bright [on|off] ]\n", 1436}, - {" [ -blink [on|off] ]\n", 1437}, - {" [ -reverse [on|off] ]\n", 1438}, - {" [ -underline [on|off] ]\n", 1439}, - {" [ -store ]\n", 1440}, - {" [ -clear [all|rest] ]\n", 1441}, - {" [ -tabs [ tab1 tab2 tab3 ... ] ] (tabn = 1-160)\n", 1442}, - {" [ -clrtabs [ tab1 tab2 tab3 ... ] ] (tabn = 1-160)\n", 1443}, - {" [ -regtabs [1-160] ]\n", 1444}, - {" [ -blank [0-60] ]\n", 1445}, - {" [ -dump [1-NR_CONSOLES] ]\n", 1446}, - {" [ -append [1-NR_CONSOLES] ]\n", 1447}, - {" [ -file dumpfilename ]\n", 1448}, - {" [ -msg [on|off] ]\n", 1449}, - {" [ -msglevel [0-8] ]\n", 1450}, - {" [ -powersave [on|vsync|hsync|powerdown|off] ]\n", 1451}, - {" [ -powerdown [0-60] ]\n", 1452}, - {" [ -blength [0-2000] ]\n", 1453}, - {" [ -bfreq freqnumber ]\n", 1454}, - {"cannot (un)set powersave mode\n", 1455}, - {"klogctl error: %s\n", 1456}, - {"Error reading %s\n", 1457}, - {"Error writing screendump\n", 1458}, - {"couldn't read %s, and cannot ioctl dump\n", 1459}, - {"%s: $TERM is not defined.\n", 1460}, - {"whereis [ -sbmu ] [ -SBM dir ... -f ] name...\n", 1461}, - {"write: can't find your tty's name\n", 1462}, - {"write: you have write permission turned off.\n", 1463}, - {"write: %s is not logged in on %s.\n", 1464}, - {"write: %s has messages disabled on %s\n", 1465}, - {"usage: write user [tty]\n", 1466}, - {"write: %s is not logged in\n", 1467}, - {"write: %s has messages disabled\n", 1468}, - {"write: %s is logged in more than once; writing to %s\n", 1469}, - {"Message from %s@%s (as %s) on %s at %s ...", 1470}, - {"Message from %s@%s on %s at %s ...", 1471}, - {"warning: error reading %s: %s", 1472}, - {"warning: can't open %s: %s", 1473}, - {"mount: could not open %s - using %s instead\n", 1474}, - {"can't create lock file %s: %s (use -n flag to override)", 1475}, - {"can't link lock file %s: %s (use -n flag to override)", 1476}, - {"can't open lock file %s: %s (use -n flag to override)", 1477}, - {"Can't lock lock file %s: %s\n", 1478}, - {"can't lock lock file %s: %s", 1479}, - {"timed out", 1480}, +Script done on %s", 1413}, + {"Script done, file is %s\n", 1414}, + {"openpty failed\n", 1415}, + {"Out of pty's\n", 1416}, + {"%s: Argument error, usage\n", 1417}, + {" [ -term terminal_name ]\n", 1418}, + {" [ -reset ]\n", 1419}, + {" [ -initialize ]\n", 1420}, + {" [ -cursor [on|off] ]\n", 1421}, + {" [ -snow [on|off] ]\n", 1422}, + {" [ -softscroll [on|off] ]\n", 1423}, + {" [ -repeat [on|off] ]\n", 1424}, + {" [ -appcursorkeys [on|off] ]\n", 1425}, + {" [ -linewrap [on|off] ]\n", 1426}, + {" [ -default ]\n", 1427}, + {" [ -foreground black|blue|green|cyan", 1428}, + {"|red|magenta|yellow|white|default ]\n", 1429}, + {" [ -background black|blue|green|cyan", 1430}, + {" [ -ulcolor black|grey|blue|green|cyan", 1431}, + {"|red|magenta|yellow|white ]\n", 1432}, + {" [ -ulcolor bright blue|green|cyan", 1433}, + {" [ -hbcolor black|grey|blue|green|cyan", 1434}, + {" [ -hbcolor bright blue|green|cyan", 1435}, + {" [ -standout [ attr ] ]\n", 1436}, + {" [ -inversescreen [on|off] ]\n", 1437}, + {" [ -bold [on|off] ]\n", 1438}, + {" [ -half-bright [on|off] ]\n", 1439}, + {" [ -blink [on|off] ]\n", 1440}, + {" [ -reverse [on|off] ]\n", 1441}, + {" [ -underline [on|off] ]\n", 1442}, + {" [ -store ]\n", 1443}, + {" [ -clear [all|rest] ]\n", 1444}, + {" [ -tabs [ tab1 tab2 tab3 ... ] ] (tabn = 1-160)\n", 1445}, + {" [ -clrtabs [ tab1 tab2 tab3 ... ] ] (tabn = 1-160)\n", 1446}, + {" [ -regtabs [1-160] ]\n", 1447}, + {" [ -blank [0-60] ]\n", 1448}, + {" [ -dump [1-NR_CONSOLES] ]\n", 1449}, + {" [ -append [1-NR_CONSOLES] ]\n", 1450}, + {" [ -file dumpfilename ]\n", 1451}, + {" [ -msg [on|off] ]\n", 1452}, + {" [ -msglevel [0-8] ]\n", 1453}, + {" [ -powersave [on|vsync|hsync|powerdown|off] ]\n", 1454}, + {" [ -powerdown [0-60] ]\n", 1455}, + {" [ -blength [0-2000] ]\n", 1456}, + {" [ -bfreq freqnumber ]\n", 1457}, + {"cannot (un)set powersave mode\n", 1458}, + {"klogctl error: %s\n", 1459}, + {"Error reading %s\n", 1460}, + {"Error writing screendump\n", 1461}, + {"couldn't read %s, and cannot ioctl dump\n", 1462}, + {"%s: $TERM is not defined.\n", 1463}, + {"whereis [ -sbmu ] [ -SBM dir ... -f ] name...\n", 1464}, + {"write: can't find your tty's name\n", 1465}, + {"write: you have write permission turned off.\n", 1466}, + {"write: %s is not logged in on %s.\n", 1467}, + {"write: %s has messages disabled on %s\n", 1468}, + {"usage: write user [tty]\n", 1469}, + {"write: %s is not logged in\n", 1470}, + {"write: %s has messages disabled\n", 1471}, + {"write: %s is logged in more than once; writing to %s\n", 1472}, + {"Message from %s@%s (as %s) on %s at %s ...", 1473}, + {"Message from %s@%s on %s at %s ...", 1474}, + {"warning: error reading %s: %s", 1475}, + {"warning: can't open %s: %s", 1476}, + {"mount: could not open %s - using %s instead\n", 1477}, + {"can't create lock file %s: %s (use -n flag to override)", 1478}, + {"can't link lock file %s: %s (use -n flag to override)", 1479}, + {"can't open lock file %s: %s (use -n flag to override)", 1480}, + {"Can't lock lock file %s: %s\n", 1481}, + {"can't lock lock file %s: %s", 1482}, + {"timed out", 1483}, {"\ Cannot create link %s\n\ -Perhaps there is a stale lock file?\n", 1481}, - {"cannot open %s (%s) - mtab not updated", 1482}, - {"error writing %s: %s", 1483}, - {"error changing mode of %s: %s\n", 1484}, - {"can't rename %s to %s: %s\n", 1485}, - {"loop: can't open device %s: %s\n", 1486}, - {", offset %lld", 1487}, - {", sizelimit %lld", 1488}, - {", encryption %s (type %d)", 1489}, - {", offset %d", 1490}, - {", encryption type %d\n", 1491}, - {"loop: can't get info on device %s: %s\n", 1492}, - {"mount: could not find any device /dev/loop#", 1493}, +Perhaps there is a stale lock file?\n", 1484}, + {"cannot open %s (%s) - mtab not updated", 1485}, + {"error writing %s: %s", 1486}, + {"error changing mode of %s: %s\n", 1487}, + {"can't rename %s to %s: %s\n", 1488}, + {"loop: can't open device %s: %s\n", 1489}, + {", offset %lld", 1490}, + {", sizelimit %lld", 1491}, + {", encryption %s (type %d)", 1492}, + {", offset %d", 1493}, + {", encryption type %d\n", 1494}, + {"loop: can't get info on device %s: %s\n", 1495}, + {"mount: could not find any device /dev/loop#", 1496}, {"\ mount: Could not find any loop device. Maybe this kernel does not know\n\ - about the loop device? (If so, recompile or `modprobe loop'.)", 1494}, - {"mount: could not find any free loop device", 1495}, - {"Couldn't lock into memory, exiting.\n", 1496}, - {"set_loop(%s,%s,%llu): success\n", 1497}, - {"loop: can't delete device %s: %s\n", 1498}, - {"del_loop(%s): success\n", 1499}, - {"This mount was compiled without loop support. Please recompile.\n", 1500}, + about the loop device? (If so, recompile or `modprobe loop'.)", 1497}, + {"mount: could not find any free loop device", 1498}, + {"Couldn't lock into memory, exiting.\n", 1499}, + {"set_loop(%s,%s,%llu): success\n", 1500}, + {"loop: can't delete device %s: %s\n", 1501}, + {"del_loop(%s): success\n", 1502}, + {"This mount was compiled without loop support. Please recompile.\n", 1503}, {"\ usage:\n\ %s loop_device # give info\n\ %s -d loop_device # delete\n\ - %s [ -e encryption ] [ -o offset ] loop_device file # setup\n", 1501}, - {"not enough memory", 1502}, - {"No loop support was available at compile time. Please recompile.\n", 1503}, - {"[mntent]: warning: no final newline at the end of %s\n", 1504}, - {"[mntent]: line %d in %s is bad%s\n", 1505}, - {"; rest of file ignored", 1506}, - {"mount: according to mtab, %s is already mounted on %s", 1507}, - {"mount: according to mtab, %s is mounted on %s", 1508}, - {"mount: can't open %s for writing: %s", 1509}, - {"mount: error writing %s: %s", 1510}, - {"mount: error changing mode of %s: %s", 1511}, - {"%s looks like swapspace - not mounted", 1512}, - {"mount failed", 1513}, - {"mount: only root can mount %s on %s", 1514}, - {"mount: loop device specified twice", 1515}, - {"mount: type specified twice", 1516}, - {"mount: skipping the setup of a loop device\n", 1517}, - {"mount: going to use the loop device %s\n", 1518}, - {"mount: failed setting up loop device\n", 1519}, - {"mount: setup loop device successfully\n", 1520}, - {"mount: can't open %s: %s", 1521}, - {"mount: argument to -p or --pass-fd must be a number", 1522}, - {"mount: cannot open %s for setting speed", 1523}, - {"mount: cannot set speed: %s", 1524}, - {"mount: cannot fork: %s", 1525}, - {"mount: this version was compiled without support for the type `nfs'", 1526}, - {"mount: failed with nfs mount version 4, trying 3..\n", 1527}, - {"\ -mount: I could not determine the filesystem type, and none was specified", 1528}, - {"mount: you must specify the filesystem type", 1529}, - {"mount: mount failed", 1530}, - {"mount: mount point %s is not a directory", 1531}, - {"mount: permission denied", 1532}, - {"mount: must be superuser to use mount", 1533}, - {"mount: %s is busy", 1534}, - {"mount: proc already mounted", 1535}, - {"mount: %s already mounted or %s busy", 1536}, - {"mount: mount point %s does not exist", 1537}, - {"mount: mount point %s is a symbolic link to nowhere", 1538}, - {"mount: special device %s does not exist", 1539}, + %s [ -e encryption ] [ -o offset ] loop_device file # setup\n", 1504}, + {"not enough memory", 1505}, + {"No loop support was available at compile time. Please recompile.\n", 1506}, + {"[mntent]: warning: no final newline at the end of %s\n", 1507}, + {"[mntent]: line %d in %s is bad%s\n", 1508}, + {"; rest of file ignored", 1509}, + {"mount: according to mtab, %s is already mounted on %s", 1510}, + {"mount: according to mtab, %s is mounted on %s", 1511}, + {"mount: can't open %s for writing: %s", 1512}, + {"mount: error writing %s: %s", 1513}, + {"mount: error changing mode of %s: %s", 1514}, + {"%s looks like swapspace - not mounted", 1515}, + {"mount failed", 1516}, + {"mount: only root can mount %s on %s", 1517}, + {"mount: loop device specified twice", 1518}, + {"mount: type specified twice", 1519}, + {"mount: skipping the setup of a loop device\n", 1520}, + {"mount: going to use the loop device %s\n", 1521}, + {"mount: failed setting up loop device\n", 1522}, + {"mount: setup loop device successfully\n", 1523}, + {"mount: can't open %s: %s", 1524}, + {"mount: argument to -p or --pass-fd must be a number", 1525}, + {"mount: cannot open %s for setting speed", 1526}, + {"mount: cannot set speed: %s", 1527}, + {"mount: cannot fork: %s", 1528}, + {"mount: this version was compiled without support for the type `nfs'", 1529}, + {"mount: failed with nfs mount version 4, trying 3..\n", 1530}, + {"\ +mount: I could not determine the filesystem type, and none was specified", 1531}, + {"mount: you must specify the filesystem type", 1532}, + {"mount: mount failed", 1533}, + {"mount: mount point %s is not a directory", 1534}, + {"mount: permission denied", 1535}, + {"mount: must be superuser to use mount", 1536}, + {"mount: %s is busy", 1537}, + {"mount: proc already mounted", 1538}, + {"mount: %s already mounted or %s busy", 1539}, + {"mount: mount point %s does not exist", 1540}, + {"mount: mount point %s is a symbolic link to nowhere", 1541}, + {"mount: special device %s does not exist", 1542}, {"\ mount: special device %s does not exist\n\ - (a path prefix is not a directory)\n", 1540}, - {"mount: %s not mounted already, or bad option", 1541}, + (a path prefix is not a directory)\n", 1543}, + {"mount: %s not mounted already, or bad option", 1544}, {"\ mount: wrong fs type, bad option, bad superblock on %s,\n\ - or too many mounted file systems", 1542}, - {"mount table full", 1543}, - {"mount: %s: can't read superblock", 1544}, - {"mount: %s: unknown device", 1545}, - {"mount: fs type %s not supported by kernel", 1546}, - {"mount: probably you meant %s", 1547}, - {"mount: maybe you meant iso9660 ?", 1548}, - {"mount: %s has wrong device number or fs type %s not supported", 1549}, - {"mount: %s is not a block device, and stat fails?", 1550}, + or too many mounted file systems", 1545}, + {"mount table full", 1546}, + {"mount: %s: can't read superblock", 1547}, + {"mount: %s: unknown device", 1548}, + {"mount: unknown filesystem type '%s'", 1549}, + {"mount: probably you meant %s", 1550}, + {"mount: maybe you meant 'iso9660'?", 1551}, + {"mount: maybe you meant 'vfat'?", 1552}, + {"mount: %s has wrong device number or fs type %s not supported", 1553}, + {"mount: %s is not a block device, and stat fails?", 1554}, {"\ mount: the kernel does not recognize %s as a block device\n\ - (maybe `insmod driver'?)", 1551}, - {"mount: %s is not a block device (maybe try `-o loop'?)", 1552}, - {"mount: %s is not a block device", 1553}, - {"mount: %s is not a valid block device", 1554}, - {"block device ", 1555}, - {"mount: cannot mount %s%s read-only", 1556}, - {"mount: %s%s is write-protected but explicit `-w' flag given", 1557}, - {"mount: %s%s is write-protected, mounting read-only", 1558}, - {"mount: no type was given - I'll assume nfs because of the colon\n", 1559}, - {"mount: no type was given - I'll assume smbfs because of the // prefix\n", 1560}, - {"mount: backgrounding \"%s\"\n", 1561}, - {"mount: giving up \"%s\"\n", 1562}, - {"mount: %s already mounted on %s\n", 1563}, + (maybe `insmod driver'?)", 1555}, + {"mount: %s is not a block device (maybe try `-o loop'?)", 1556}, + {"mount: %s is not a block device", 1557}, + {"mount: %s is not a valid block device", 1558}, + {"block device ", 1559}, + {"mount: cannot mount %s%s read-only", 1560}, + {"mount: %s%s is write-protected but explicit `-w' flag given", 1561}, + {"mount: %s%s is write-protected, mounting read-only", 1562}, + {"mount: no type was given - I'll assume nfs because of the colon\n", 1563}, + {"mount: no type was given - I'll assume smbfs because of the // prefix\n", 1564}, + {"mount: backgrounding \"%s\"\n", 1565}, + {"mount: giving up \"%s\"\n", 1566}, + {"mount: %s already mounted on %s\n", 1567}, {"\ Usage: mount -V : print version\n\ mount -h : print this help\n\ @@ -2072,290 +2076,290 @@ or move a subtree:\n\ A device can be given by name, say /dev/hda1 or /dev/cdrom,\n\ or by label, using -L label or by uuid, using -U uuid .\n\ Other options: [-nfFrsvw] [-o options] [-p passwdfd].\n\ -For many more details, say man 8 mount .\n", 1564}, - {"mount: only root can do that", 1565}, - {"mount: no %s found - creating it..\n", 1566}, - {"mount: no such partition found", 1567}, - {"mount: mounting %s\n", 1568}, - {"nothing was mounted", 1569}, - {"mount: cannot find %s in %s", 1570}, - {"mount: can't find %s in %s or %s", 1571}, - {"\ -mount: could not open %s, so UUID and LABEL conversion cannot be done.\n", 1572}, - {"mount: bad UUID", 1573}, - {"mount: error while guessing filesystem type\n", 1574}, - {"mount: you didn't specify a filesystem type for %s\n", 1575}, - {" I will try all types mentioned in %s or %s\n", 1576}, - {" and it looks like this is swapspace\n", 1577}, - {" I will try type %s\n", 1578}, - {"Trying %s\n", 1579}, - {"mount: excessively long host:dir argument\n", 1580}, - {"mount: warning: multiple hostnames not supported\n", 1581}, - {"mount: directory to mount not in host:dir format\n", 1582}, - {"mount: can't get address for %s\n", 1583}, - {"mount: got bad hp->h_length\n", 1584}, - {"mount: excessively long option argument\n", 1585}, - {"Warning: Unrecognized proto= option.\n", 1586}, - {"Warning: Option namlen is not supported.\n", 1587}, - {"unknown nfs mount parameter: %s=%d\n", 1588}, - {"Warning: option nolock is not supported.\n", 1589}, - {"unknown nfs mount option: %s%s\n", 1590}, - {"mount: got bad hp->h_length?\n", 1591}, - {"NFS over TCP is not supported.\n", 1592}, - {"nfs socket", 1593}, - {"nfs bindresvport", 1594}, - {"nfs server reported service unavailable", 1595}, - {"used portmapper to find NFS port\n", 1596}, - {"using port %d for nfs deamon\n", 1597}, - {"nfs connect", 1598}, - {"unknown nfs status return value: %d", 1599}, - {"bug in xstrndup call", 1600}, +For many more details, say man 8 mount .\n", 1568}, + {"mount: only root can do that", 1569}, + {"mount: no %s found - creating it..\n", 1570}, + {"mount: no such partition found", 1571}, + {"mount: mounting %s\n", 1572}, + {"nothing was mounted", 1573}, + {"mount: cannot find %s in %s", 1574}, + {"mount: can't find %s in %s or %s", 1575}, + {"\ +mount: could not open %s, so UUID and LABEL conversion cannot be done.\n", 1576}, + {"mount: bad UUID", 1577}, + {"mount: error while guessing filesystem type\n", 1578}, + {"mount: you didn't specify a filesystem type for %s\n", 1579}, + {" I will try all types mentioned in %s or %s\n", 1580}, + {" and it looks like this is swapspace\n", 1581}, + {" I will try type %s\n", 1582}, + {"Trying %s\n", 1583}, + {"mount: excessively long host:dir argument\n", 1584}, + {"mount: warning: multiple hostnames not supported\n", 1585}, + {"mount: directory to mount not in host:dir format\n", 1586}, + {"mount: can't get address for %s\n", 1587}, + {"mount: got bad hp->h_length\n", 1588}, + {"mount: excessively long option argument\n", 1589}, + {"Warning: Unrecognized proto= option.\n", 1590}, + {"Warning: Option namlen is not supported.\n", 1591}, + {"unknown nfs mount parameter: %s=%d\n", 1592}, + {"Warning: option nolock is not supported.\n", 1593}, + {"unknown nfs mount option: %s%s\n", 1594}, + {"mount: got bad hp->h_length?\n", 1595}, + {"NFS over TCP is not supported.\n", 1596}, + {"nfs socket", 1597}, + {"nfs bindresvport", 1598}, + {"nfs server reported service unavailable", 1599}, + {"used portmapper to find NFS port\n", 1600}, + {"using port %d for nfs deamon\n", 1601}, + {"nfs connect", 1602}, + {"unknown nfs status return value: %d", 1603}, + {"bug in xstrndup call", 1604}, {"\ usage: %s [-hV]\n\ %s -a [-e] [-v]\n\ %s [-v] [-p priority] special ...\n\ - %s [-s]\n", 1601}, + %s [-s]\n", 1605}, {"\ usage: %s [-hV]\n\ %s -a [-v]\n\ - %s [-v] special ...\n", 1602}, - {"%s on %s\n", 1603}, - {"swapon: cannot stat %s: %s\n", 1604}, - {"swapon: warning: %s has insecure permissions %04o, %04o suggested\n", 1605}, - {"swapon: Skipping file %s - it appears to have holes.\n", 1606}, - {"Not superuser.\n", 1607}, - {"%s: cannot open %s: %s\n", 1608}, - {"umount: compiled without support for -f\n", 1609}, - {"host: %s, directory: %s\n", 1610}, - {"umount: can't get address for %s\n", 1611}, - {"umount: got bad hostp->h_length\n", 1612}, - {"umount: %s: invalid block device", 1613}, - {"umount: %s: not mounted", 1614}, - {"umount: %s: can't write superblock", 1615}, - {"umount: %s: device is busy", 1616}, - {"umount: %s: not found", 1617}, - {"umount: %s: must be superuser to umount", 1618}, - {"umount: %s: block devices not permitted on fs", 1619}, - {"umount: %s: %s", 1620}, - {"no umount2, trying umount...\n", 1621}, - {"could not umount %s - trying %s instead\n", 1622}, - {"umount: %s busy - remounted read-only\n", 1623}, - {"umount: could not remount %s read-only\n", 1624}, - {"%s umounted\n", 1625}, - {"umount: cannot find list of filesystems to unmount", 1626}, + %s [-v] special ...\n", 1606}, + {"%s on %s\n", 1607}, + {"swapon: cannot stat %s: %s\n", 1608}, + {"swapon: warning: %s has insecure permissions %04o, %04o suggested\n", 1609}, + {"swapon: Skipping file %s - it appears to have holes.\n", 1610}, + {"Not superuser.\n", 1611}, + {"%s: cannot open %s: %s\n", 1612}, + {"umount: compiled without support for -f\n", 1613}, + {"host: %s, directory: %s\n", 1614}, + {"umount: can't get address for %s\n", 1615}, + {"umount: got bad hostp->h_length\n", 1616}, + {"umount: %s: invalid block device", 1617}, + {"umount: %s: not mounted", 1618}, + {"umount: %s: can't write superblock", 1619}, + {"umount: %s: device is busy", 1620}, + {"umount: %s: not found", 1621}, + {"umount: %s: must be superuser to umount", 1622}, + {"umount: %s: block devices not permitted on fs", 1623}, + {"umount: %s: %s", 1624}, + {"no umount2, trying umount...\n", 1625}, + {"could not umount %s - trying %s instead\n", 1626}, + {"umount: %s busy - remounted read-only\n", 1627}, + {"umount: could not remount %s read-only\n", 1628}, + {"%s umounted\n", 1629}, + {"umount: cannot find list of filesystems to unmount", 1630}, {"\ Usage: umount [-hV]\n\ umount -a [-f] [-r] [-n] [-v] [-t vfstypes] [-O opts]\n\ - umount [-f] [-r] [-n] [-v] special | node...\n", 1627}, - {"Trying to umount %s\n", 1628}, - {"Could not find %s in mtab\n", 1629}, - {"umount: %s is not mounted (according to mtab)", 1630}, - {"umount: it seems %s is mounted multiple times", 1631}, - {"umount: %s is not in the fstab (and you are not root)", 1632}, - {"umount: %s mount disagrees with the fstab", 1633}, - {"umount: only %s can unmount %s from %s", 1634}, - {"umount: only root can do that", 1635}, - {"You must be root to set the Ctrl-Alt-Del behaviour.\n", 1636}, - {"Usage: ctrlaltdel hard|soft\n", 1637}, + umount [-f] [-r] [-n] [-v] special | node...\n", 1631}, + {"Trying to umount %s\n", 1632}, + {"Could not find %s in mtab\n", 1633}, + {"umount: %s is not mounted (according to mtab)", 1634}, + {"umount: it seems %s is mounted multiple times", 1635}, + {"umount: %s is not in the fstab (and you are not root)", 1636}, + {"umount: %s mount disagrees with the fstab", 1637}, + {"umount: only %s can unmount %s from %s", 1638}, + {"umount: only root can do that", 1639}, + {"You must be root to set the Ctrl-Alt-Del behaviour.\n", 1640}, + {"Usage: ctrlaltdel hard|soft\n", 1641}, {"\ File %s, For threshold value %lu, Maximum characters in fifo were %d,\n\ -and the maximum transfer rate in characters/second was %f\n", 1638}, +and the maximum transfer rate in characters/second was %f\n", 1642}, {"\ 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", 1639}, - {"Invalid interval value: %s\n", 1640}, - {"Invalid set value: %s\n", 1641}, - {"Invalid default value: %s\n", 1642}, - {"Invalid set time value: %s\n", 1643}, - {"Invalid default time value: %s\n", 1644}, +and the maximum transfer rate in characters/second was %f\n", 1643}, + {"Invalid interval value: %s\n", 1644}, + {"Invalid set value: %s\n", 1645}, + {"Invalid default value: %s\n", 1646}, + {"Invalid set time value: %s\n", 1647}, + {"Invalid default time value: %s\n", 1648}, {"\ Usage: %s [-q [-i interval]] ([-s value]|[-S value]) ([-t value]|[-T value]) \ -[-g|-G] file [file...]\n", 1645}, - {"Can't open %s: %s\n", 1646}, - {"Can't set %s to threshold %d: %s\n", 1647}, - {"Can't set %s to time threshold %d: %s\n", 1648}, - {"Can't get threshold for %s: %s\n", 1649}, - {"Can't get timeout for %s: %s\n", 1650}, - {"%s: %ld current threshold and %ld current timeout\n", 1651}, - {"%s: %ld default threshold and %ld default timeout\n", 1652}, - {"Can't set signal handler", 1653}, - {"gettimeofday failed", 1654}, - {"Can't issue CYGETMON on %s: %s\n", 1655}, - {"\ -%s: %lu ints, %lu/%lu chars; fifo: %lu thresh, %lu tmout, %lu max, %lu now\n", 1656}, - {" %f int/sec; %f rec, %f send (char/sec)\n", 1657}, - {"\ -%s: %lu ints, %lu chars; fifo: %lu thresh, %lu tmout, %lu max, %lu now\n", 1658}, - {" %f int/sec; %f rec (char/sec)\n", 1659}, - {"Usage: %s [-c] [-n level] [-s bufsize]\n", 1660}, - {"invalid id: %s\n", 1661}, - {"cannot remove id %s (%s)\n", 1662}, - {"deprecated usage: %s {shm | msg | sem} id ...\n", 1663}, - {"unknown resource type: %s\n", 1664}, - {"resource(s) deleted\n", 1665}, +[-g|-G] file [file...]\n", 1649}, + {"Can't open %s: %s\n", 1650}, + {"Can't set %s to threshold %d: %s\n", 1651}, + {"Can't set %s to time threshold %d: %s\n", 1652}, + {"Can't get threshold for %s: %s\n", 1653}, + {"Can't get timeout for %s: %s\n", 1654}, + {"%s: %ld current threshold and %ld current timeout\n", 1655}, + {"%s: %ld default threshold and %ld default timeout\n", 1656}, + {"Can't set signal handler", 1657}, + {"gettimeofday failed", 1658}, + {"Can't issue CYGETMON on %s: %s\n", 1659}, + {"\ +%s: %lu ints, %lu/%lu chars; fifo: %lu thresh, %lu tmout, %lu max, %lu now\n", 1660}, + {" %f int/sec; %f rec, %f send (char/sec)\n", 1661}, + {"\ +%s: %lu ints, %lu chars; fifo: %lu thresh, %lu tmout, %lu max, %lu now\n", 1662}, + {" %f int/sec; %f rec (char/sec)\n", 1663}, + {"Usage: %s [-c] [-n level] [-s bufsize]\n", 1664}, + {"invalid id: %s\n", 1665}, + {"cannot remove id %s (%s)\n", 1666}, + {"deprecated usage: %s {shm | msg | sem} id ...\n", 1667}, + {"unknown resource type: %s\n", 1668}, + {"resource(s) deleted\n", 1669}, {"\ usage: %s [ [-q msqid] [-m shmid] [-s semid]\n\ - [-Q msgkey] [-M shmkey] [-S semkey] ... ]\n", 1666}, - {"%s: illegal option -- %c\n", 1667}, - {"%s: illegal key (%s)\n", 1668}, - {"permission denied for key", 1669}, - {"already removed key", 1670}, - {"invalid key", 1671}, - {"unknown error in key", 1672}, - {"permission denied for id", 1673}, - {"invalid id", 1674}, - {"already removed id", 1675}, - {"unknown error in id", 1676}, - {"%s: %s (%s)\n", 1677}, - {"%s: unknown argument: %s\n", 1678}, - {"usage : %s -asmq -tclup \n", 1679}, - {"\t%s [-s -m -q] -i id\n", 1680}, - {"\t%s -h for help.\n", 1681}, - {"\ -%s provides information on ipc facilities for which you have read access.\n", 1682}, + [-Q msgkey] [-M shmkey] [-S semkey] ... ]\n", 1670}, + {"%s: illegal option -- %c\n", 1671}, + {"%s: illegal key (%s)\n", 1672}, + {"permission denied for key", 1673}, + {"already removed key", 1674}, + {"invalid key", 1675}, + {"unknown error in key", 1676}, + {"permission denied for id", 1677}, + {"invalid id", 1678}, + {"already removed id", 1679}, + {"unknown error in id", 1680}, + {"%s: %s (%s)\n", 1681}, + {"%s: unknown argument: %s\n", 1682}, + {"usage : %s -asmq -tclup \n", 1683}, + {"\t%s [-s -m -q] -i id\n", 1684}, + {"\t%s -h for help.\n", 1685}, + {"\ +%s provides information on ipc facilities for which you have read access.\n", 1686}, {"\ Resource Specification:\n\ \t-m : shared_mem\n\ -\t-q : messages\n", 1683}, +\t-q : messages\n", 1687}, {"\ \t-s : semaphores\n\ -\t-a : all (default)\n", 1684}, +\t-a : all (default)\n", 1688}, {"\ Output Format:\n\ \t-t : time\n\ \t-p : pid\n\ -\t-c : creator\n", 1685}, +\t-c : creator\n", 1689}, {"\ \t-l : limits\n\ -\t-u : summary\n", 1686}, - {"-i id [-s -q -m] : details on resource identified by id\n", 1687}, - {"kernel not configured for shared memory\n", 1688}, - {"------ Shared Memory Limits --------\n", 1689}, - {"max number of segments = %lu\n", 1690}, - {"max seg size (kbytes) = %lu\n", 1691}, - {"max total shared memory (pages) = %lu\n", 1692}, - {"min seg size (bytes) = %lu\n", 1693}, - {"------ Shared Memory Status --------\n", 1694}, - {"segments allocated %d\n", 1695}, - {"pages allocated %ld\n", 1696}, - {"pages resident %ld\n", 1697}, - {"pages swapped %ld\n", 1698}, - {"Swap performance: %ld attempts\t %ld successes\n", 1699}, - {"------ Shared Memory Segment Creators/Owners --------\n", 1700}, - {"%-10s %-10s %-10s %-10s %-10s %-10s\n", 1701}, - {"shmid", 1702}, - {"perms", 1703}, - {"cuid", 1704}, - {"cgid", 1705}, - {"uid", 1706}, - {"gid", 1707}, - {"------ Shared Memory Attach/Detach/Change Times --------\n", 1708}, - {"%-10s %-10s %-20s %-20s %-20s\n", 1709}, - {"owner", 1710}, - {"attached", 1711}, - {"detached", 1712}, - {"changed", 1713}, - {"------ Shared Memory Creator/Last-op --------\n", 1714}, - {"%-10s %-10s %-10s %-10s\n", 1715}, - {"cpid", 1716}, - {"lpid", 1717}, - {"------ Shared Memory Segments --------\n", 1718}, - {"%-10s %-10s %-10s %-10s %-10s %-10s %-12s\n", 1719}, - {"key", 1720}, - {"bytes", 1721}, - {"nattch", 1722}, - {"status", 1723}, - {"Not set", 1724}, - {"dest", 1725}, - {"locked", 1726}, - {"kernel not configured for semaphores\n", 1727}, - {"------ Semaphore Limits --------\n", 1728}, - {"max number of arrays = %d\n", 1729}, - {"max semaphores per array = %d\n", 1730}, - {"max semaphores system wide = %d\n", 1731}, - {"max ops per semop call = %d\n", 1732}, - {"semaphore max value = %d\n", 1733}, - {"------ Semaphore Status --------\n", 1734}, - {"used arrays = %d\n", 1735}, - {"allocated semaphores = %d\n", 1736}, - {"------ Semaphore Arrays Creators/Owners --------\n", 1737}, - {"semid", 1738}, - {"------ Shared Memory Operation/Change Times --------\n", 1739}, - {"%-8s %-10s %-26.24s %-26.24s\n", 1740}, - {"last-op", 1741}, - {"last-changed", 1742}, - {"------ Semaphore Arrays --------\n", 1743}, - {"%-10s %-10s %-10s %-10s %-10s\n", 1744}, - {"nsems", 1745}, - {"kernel not configured for message queues\n", 1746}, - {"------ Messages: Limits --------\n", 1747}, - {"max queues system wide = %d\n", 1748}, - {"max size of message (bytes) = %d\n", 1749}, - {"default max size of queue (bytes) = %d\n", 1750}, - {"------ Messages: Status --------\n", 1751}, - {"allocated queues = %d\n", 1752}, - {"used headers = %d\n", 1753}, - {"used space = %d bytes\n", 1754}, - {"------ Message Queues: Creators/Owners --------\n", 1755}, - {"msqid", 1756}, - {"------ Message Queues Send/Recv/Change Times --------\n", 1757}, - {"%-8s %-10s %-20s %-20s %-20s\n", 1758}, - {"send", 1759}, - {"recv", 1760}, - {"change", 1761}, - {"------ Message Queues PIDs --------\n", 1762}, - {"lspid", 1763}, - {"lrpid", 1764}, - {"------ Message Queues --------\n", 1765}, - {"%-10s %-10s %-10s %-10s %-12s %-12s\n", 1766}, - {"used-bytes", 1767}, - {"messages", 1768}, +\t-u : summary\n", 1690}, + {"-i id [-s -q -m] : details on resource identified by id\n", 1691}, + {"kernel not configured for shared memory\n", 1692}, + {"------ Shared Memory Limits --------\n", 1693}, + {"max number of segments = %lu\n", 1694}, + {"max seg size (kbytes) = %lu\n", 1695}, + {"max total shared memory (pages) = %lu\n", 1696}, + {"min seg size (bytes) = %lu\n", 1697}, + {"------ Shared Memory Status --------\n", 1698}, + {"segments allocated %d\n", 1699}, + {"pages allocated %ld\n", 1700}, + {"pages resident %ld\n", 1701}, + {"pages swapped %ld\n", 1702}, + {"Swap performance: %ld attempts\t %ld successes\n", 1703}, + {"------ Shared Memory Segment Creators/Owners --------\n", 1704}, + {"%-10s %-10s %-10s %-10s %-10s %-10s\n", 1705}, + {"shmid", 1706}, + {"perms", 1707}, + {"cuid", 1708}, + {"cgid", 1709}, + {"uid", 1710}, + {"gid", 1711}, + {"------ Shared Memory Attach/Detach/Change Times --------\n", 1712}, + {"%-10s %-10s %-20s %-20s %-20s\n", 1713}, + {"owner", 1714}, + {"attached", 1715}, + {"detached", 1716}, + {"changed", 1717}, + {"------ Shared Memory Creator/Last-op --------\n", 1718}, + {"%-10s %-10s %-10s %-10s\n", 1719}, + {"cpid", 1720}, + {"lpid", 1721}, + {"------ Shared Memory Segments --------\n", 1722}, + {"%-10s %-10s %-10s %-10s %-10s %-10s %-12s\n", 1723}, + {"key", 1724}, + {"bytes", 1725}, + {"nattch", 1726}, + {"status", 1727}, + {"Not set", 1728}, + {"dest", 1729}, + {"locked", 1730}, + {"kernel not configured for semaphores\n", 1731}, + {"------ Semaphore Limits --------\n", 1732}, + {"max number of arrays = %d\n", 1733}, + {"max semaphores per array = %d\n", 1734}, + {"max semaphores system wide = %d\n", 1735}, + {"max ops per semop call = %d\n", 1736}, + {"semaphore max value = %d\n", 1737}, + {"------ Semaphore Status --------\n", 1738}, + {"used arrays = %d\n", 1739}, + {"allocated semaphores = %d\n", 1740}, + {"------ Semaphore Arrays Creators/Owners --------\n", 1741}, + {"semid", 1742}, + {"------ Shared Memory Operation/Change Times --------\n", 1743}, + {"%-8s %-10s %-26.24s %-26.24s\n", 1744}, + {"last-op", 1745}, + {"last-changed", 1746}, + {"------ Semaphore Arrays --------\n", 1747}, + {"%-10s %-10s %-10s %-10s %-10s\n", 1748}, + {"nsems", 1749}, + {"kernel not configured for message queues\n", 1750}, + {"------ Messages: Limits --------\n", 1751}, + {"max queues system wide = %d\n", 1752}, + {"max size of message (bytes) = %d\n", 1753}, + {"default max size of queue (bytes) = %d\n", 1754}, + {"------ Messages: Status --------\n", 1755}, + {"allocated queues = %d\n", 1756}, + {"used headers = %d\n", 1757}, + {"used space = %d bytes\n", 1758}, + {"------ Message Queues: Creators/Owners --------\n", 1759}, + {"msqid", 1760}, + {"------ Message Queues Send/Recv/Change Times --------\n", 1761}, + {"%-8s %-10s %-20s %-20s %-20s\n", 1762}, + {"send", 1763}, + {"recv", 1764}, + {"change", 1765}, + {"------ Message Queues PIDs --------\n", 1766}, + {"lspid", 1767}, + {"lrpid", 1768}, + {"------ Message Queues --------\n", 1769}, + {"%-10s %-10s %-10s %-10s %-12s %-12s\n", 1770}, + {"used-bytes", 1771}, + {"messages", 1772}, {"\ \n\ -Shared memory Segment shmid=%d\n", 1769}, - {"uid=%d\tgid=%d\tcuid=%d\tcgid=%d\n", 1770}, - {"mode=%#o\taccess_perms=%#o\n", 1771}, - {"bytes=%ld\tlpid=%d\tcpid=%d\tnattch=%ld\n", 1772}, - {"att_time=%-26.24s\n", 1773}, - {"det_time=%-26.24s\n", 1774}, - {"change_time=%-26.24s\n", 1775}, +Shared memory Segment shmid=%d\n", 1773}, + {"uid=%d\tgid=%d\tcuid=%d\tcgid=%d\n", 1774}, + {"mode=%#o\taccess_perms=%#o\n", 1775}, + {"bytes=%ld\tlpid=%d\tcpid=%d\tnattch=%ld\n", 1776}, + {"att_time=%-26.24s\n", 1777}, + {"det_time=%-26.24s\n", 1778}, + {"change_time=%-26.24s\n", 1779}, {"\ \n\ -Message Queue msqid=%d\n", 1776}, - {"uid=%d\tgid=%d\tcuid=%d\tcgid=%d\tmode=%#o\n", 1777}, - {"cbytes=%ld\tqbytes=%ld\tqnum=%ld\tlspid=%d\tlrpid=%d\n", 1778}, - {"send_time=%-26.24s\n", 1779}, - {"rcv_time=%-26.24s\n", 1780}, +Message Queue msqid=%d\n", 1780}, + {"uid=%d\tgid=%d\tcuid=%d\tcgid=%d\tmode=%#o\n", 1781}, + {"cbytes=%ld\tqbytes=%ld\tqnum=%ld\tlspid=%d\tlrpid=%d\n", 1782}, + {"send_time=%-26.24s\n", 1783}, + {"rcv_time=%-26.24s\n", 1784}, {"\ \n\ -Semaphore Array semid=%d\n", 1781}, - {"uid=%d\t gid=%d\t cuid=%d\t cgid=%d\n", 1782}, - {"mode=%#o, access_perms=%#o\n", 1783}, - {"nsems = %ld\n", 1784}, - {"otime = %-26.24s\n", 1785}, - {"ctime = %-26.24s\n", 1786}, - {"semnum", 1787}, - {"value", 1788}, - {"ncount", 1789}, - {"zcount", 1790}, - {"pid", 1791}, - {"usage: rdev [ -rv ] [ -o OFFSET ] [ IMAGE [ VALUE [ OFFSET ] ] ]", 1792}, - {"\ - rdev /dev/fd0 (or rdev /linux, etc.) displays the current ROOT device", 1793}, - {" rdev /dev/fd0 /dev/hda2 sets ROOT to /dev/hda2", 1794}, - {" rdev -R /dev/fd0 1 set the ROOTFLAGS (readonly status)", 1795}, - {" rdev -r /dev/fd0 627 set the RAMDISK size", 1796}, - {" rdev -v /dev/fd0 1 set the bootup VIDEOMODE", 1797}, - {" rdev -o N ... use the byte offset N", 1798}, - {" rootflags ... same as rdev -R", 1799}, - {" ramsize ... same as rdev -r", 1800}, - {" vidmode ... same as rdev -v", 1801}, - {"\ -Note: video modes are: -3=Ask, -2=Extended, -1=NormalVga, 1=key1, 2=key2,...", 1802}, - {" use -R 1 to mount root readonly, -R 0 for read/write.", 1803}, - {"missing comma", 1804}, - {"out of memory", 1805}, +Semaphore Array semid=%d\n", 1785}, + {"uid=%d\t gid=%d\t cuid=%d\t cgid=%d\n", 1786}, + {"mode=%#o, access_perms=%#o\n", 1787}, + {"nsems = %ld\n", 1788}, + {"otime = %-26.24s\n", 1789}, + {"ctime = %-26.24s\n", 1790}, + {"semnum", 1791}, + {"value", 1792}, + {"ncount", 1793}, + {"zcount", 1794}, + {"pid", 1795}, + {"usage: rdev [ -rv ] [ -o OFFSET ] [ IMAGE [ VALUE [ OFFSET ] ] ]", 1796}, + {"\ + rdev /dev/fd0 (or rdev /linux, etc.) displays the current ROOT device", 1797}, + {" rdev /dev/fd0 /dev/hda2 sets ROOT to /dev/hda2", 1798}, + {" rdev -R /dev/fd0 1 set the ROOTFLAGS (readonly status)", 1799}, + {" rdev -r /dev/fd0 627 set the RAMDISK size", 1800}, + {" rdev -v /dev/fd0 1 set the bootup VIDEOMODE", 1801}, + {" rdev -o N ... use the byte offset N", 1802}, + {" rootflags ... same as rdev -R", 1803}, + {" ramsize ... same as rdev -r", 1804}, + {" vidmode ... same as rdev -v", 1805}, + {"\ +Note: video modes are: -3=Ask, -2=Extended, -1=NormalVga, 1=key1, 2=key2,...", 1806}, + {" use -R 1 to mount root readonly, -R 0 for read/write.", 1807}, + {"missing comma", 1808}, + {"out of memory", 1809}, {"\ %s: Usage: \"%s [options]\n\ \t -m (defaults: \"%s\" and\n\ @@ -2369,76 +2373,76 @@ Note: video modes are: -3=Ask, -2=Extended, -1=NormalVga, 1=key1, 2=key2,...", 1 \t -s print individual counters within functions\n\ \t -r reset all the counters (root only)\n\ \t -n disable byte order auto-detection\n\ -\t -V print version and exit\n", 1806}, - {"%s version %s\n", 1807}, - {"Sampling_step: %i\n", 1808}, - {"%s: %s(%i): wrong map line\n", 1809}, - {"%s: can't find \"_stext\" in %s\n", 1810}, - {"%s: profile address out of range. Wrong map file?\n", 1811}, - {"total", 1812}, - {"\ -usage: renice priority [ [ -p ] pids ] [ [ -g ] pgrps ] [ [ -u ] users ]\n", 1813}, - {"renice: %s: unknown user\n", 1814}, - {"renice: %s: bad value\n", 1815}, - {"getpriority", 1816}, - {"setpriority", 1817}, - {"%d: old priority %d, new priority %d\n", 1818}, - {"usage: %s program [arg ...]\n", 1819}, +\t -V print version and exit\n", 1810}, + {"%s version %s\n", 1811}, + {"Sampling_step: %i\n", 1812}, + {"%s: %s(%i): wrong map line\n", 1813}, + {"%s: can't find \"_stext\" in %s\n", 1814}, + {"%s: profile address out of range. Wrong map file?\n", 1815}, + {"total", 1816}, + {"\ +usage: renice priority [ [ -p ] pids ] [ [ -g ] pgrps ] [ [ -u ] users ]\n", 1817}, + {"renice: %s: unknown user\n", 1818}, + {"renice: %s: bad value\n", 1819}, + {"getpriority", 1820}, + {"setpriority", 1821}, + {"%d: old priority %d, new priority %d\n", 1822}, + {"usage: %s program [arg ...]\n", 1823}, {"\ Usage: %s [ -i | -t