Date: Sat, 24 Mar 2007 09:40:08 GMT From: Maxim Konovalov <maxim@macomnet.ru> To: freebsd-bugs@FreeBSD.org Subject: bin/110182 Message-ID: <200703240940.l2O9e80S022494@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/110182; it has been noted by GNATS. From: Maxim Konovalov <maxim@macomnet.ru> To: bug-followup@freebsd.org Cc: Subject: bin/110182 Date: Sat, 24 Mar 2007 12:34:03 +0300 (MSK) A bit polished patch inlined. Index: fdisk.8 =================================================================== RCS file: /home/ncvs/src/sbin/fdisk/fdisk.8,v retrieving revision 1.38 diff -u -p -r1.38 fdisk.8 --- fdisk.8 12 Dec 2006 15:26:25 -0000 1.38 +++ fdisk.8 24 Mar 2007 00:13:23 -0000 @@ -1,6 +1,6 @@ .\" $FreeBSD: src/sbin/fdisk/fdisk.8,v 1.38 2006/12/12 15:26:25 ru Exp $ .\" -.Dd December 12, 2006 +.Dd March 24, 2007 .Dt FDISK 8 .Os .Sh NAME @@ -8,7 +8,7 @@ .Nd PC slice table maintenance utility .Sh SYNOPSIS .Nm -.Op Fl BIaistu +.Op Fl BIaipstu .Op Fl b Ar bootcode .Op Fl 1234 .Op Ar disk @@ -109,6 +109,12 @@ Initialize sector 0 slice table for one .Fx slice covering the entire disk. +.It Fl p +Print a slice table in +.Nm +configuration file format and exit; see +.Sx CONFIGURATION FILE , +below. .It Fl s Print summary information and exit. .It Fl t Index: fdisk.c =================================================================== RCS file: /home/ncvs/src/sbin/fdisk/fdisk.c,v retrieving revision 1.82 diff -u -p -r1.82 fdisk.c --- fdisk.c 18 Jun 2006 22:02:22 -0000 1.82 +++ fdisk.c 23 Mar 2007 23:17:40 -0000 @@ -120,6 +120,7 @@ static int s_flag = 0; /* Print a summ static int t_flag = 0; /* test only */ static char *f_flag = NULL; /* Read config info from file */ static int v_flag = 0; /* Be verbose */ +static int print_config_flag = 0; static struct part_type { @@ -247,7 +248,7 @@ main(int argc, char *argv[]) int partition = -1; struct dos_partition *partp; - while ((c = getopt(argc, argv, "BIab:f:istuv1234")) != -1) + while ((c = getopt(argc, argv, "BIab:f:ipstuv1234")) != -1) switch (c) { case 'B': B_flag = 1; @@ -267,6 +268,9 @@ main(int argc, char *argv[]) case 'i': i_flag = 1; break; + case 'p': + print_config_flag = 1; + break; case 's': s_flag = 1; break; @@ -322,6 +326,30 @@ main(int argc, char *argv[]) free(mboot.bootinst); mboot.bootinst = NULL; + if (print_config_flag) { + if (read_s0()) + err(1, "read_s0"); + + printf("# %s\n", disk); + printf("g c%d h%d s%d\n", dos_cyls, dos_heads, dos_sectors); + + for (i = 0; i < NDOSPART; i++) { + partp = ((struct dos_partition *) &mboot.parts) + i; + + if (partp->dp_start == 0 && partp->dp_size == 0) + continue; + + printf ("p %d 0x%02x %lu %lu\n", i + 1, partp->dp_typ, + (u_long) partp->dp_start, (u_long) partp->dp_size); + + /* + * Fill flags for the partition. + */ + if (partp->dp_flag & 0x80) + printf ("a %d\n", i + 1); + } + exit(0); + } if (s_flag) { if (read_s0()) err(1, "read_s0"); @@ -413,7 +441,7 @@ static void usage() { fprintf(stderr, "%s%s", - "usage: fdisk [-BIaistu] [-b bootcode] [-1234] [disk]\n", + "usage: fdisk [-BIaipstu] [-b bootcode] [-1234] [disk]\n", " fdisk -f configfile [-itv] [disk]\n"); exit(1); } %%% -- Maxim Konovalov
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200703240940.l2O9e80S022494>