Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Jul 2002 16:12:38 +0200 (CEST)
From:      Thomas Zenker <thz@Lennartz-electronic.de>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   bin/40656: patch: sysinstall: scripted deletion of slices
Message-ID:  <200207161412.g6GECcss072883@mezcal.tue.le>

next in thread | raw e-mail | index | archive | help

>Number:         40656
>Category:       bin
>Synopsis:       patch: sysinstall: scripted deletion of slices
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jul 16 07:20:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Thomas Zenker
>Release:        FreeBSD 4.6-RELEASE i386
>Organization:
>Environment:
System: FreeBSD mezcal.tue.le 4.6-RELEASE FreeBSD 4.6-RELEASE #8: Mon Jun 10 11:22:51 CEST 2002 thz@mezcal.tue.le:/usr/obj/usr/src/sys/MEZCAL i386


	all versions of sysinstall
>Description:
	for automated installations it is often necessary to delete
	the previously existing fdisk partitions (slices) from the
	script, otherwise the results are not as expected.
>How-To-Repeat:
	a previously fdisk partitioned disk prevents successfull
	re-partitioning of a disk.
>Fix:

	introduce a new variable for sysinstall "deletePartition".
	For the moment it is only possible to give a argument of "all",
	which means to delete all slices. For deleting of a specific
	slice, it would be necessary to figure out how to a access it.
	The patch applies to current and stable. Man page update included.

Index: usr.sbin/sysinstall/disks.c
===================================================================
RCS file: /usr/cvs/FreeBSD/src/usr.sbin/sysinstall/disks.c,v
retrieving revision 1.132
diff -u -r1.132 disks.c
--- usr.sbin/sysinstall/disks.c	31 May 2002 17:03:01 -0000	1.132
+++ usr.sbin/sysinstall/disks.c	16 Jul 2002 13:12:09 -0000
@@ -869,6 +869,16 @@
 	d->bios_sect = strtol(cp + 1, 0, 0);
     }
 
+    cp = variable_get(VAR_DELPARTITION);
+    if (cp) {
+	if (strcmp(cp, "all") == 0) {
+	    for (i = 0; chunk_info[i]; i++)
+		Delete_Chunk(d, chunk_info[i]);
+	    variable_unset(VAR_DELPARTITION);
+	    record_chunks(d);
+	}
+    }
+
     cp = variable_get(VAR_PARTITION);
     if (cp) {
 	if (!strcmp(cp, "free")) {
Index: usr.sbin/sysinstall/sysinstall.h
===================================================================
RCS file: /usr/cvs/FreeBSD/src/usr.sbin/sysinstall/sysinstall.h,v
retrieving revision 1.228
diff -u -r1.228 sysinstall.h
--- usr.sbin/sysinstall/sysinstall.h	1 Jun 2002 14:50:14 -0000	1.228
+++ usr.sbin/sysinstall/sysinstall.h	16 Jul 2002 13:12:09 -0000
@@ -91,6 +91,7 @@
 #define VAR_BROWSER_PACKAGE		"browserPackage"
 #define VAR_CPIO_VERBOSITY		"cpioVerbose"
 #define VAR_DEBUG			"debug"
+#define VAR_DELPARTITION		"deletePartition"
 #define VAR_DESKSTYLE			"_deskStyle"
 #define VAR_DISK			"disk"
 #define VAR_DISKINTERACTIVE		"diskInteractive"
Index: usr.sbin/sysinstall/sysinstall.8
===================================================================
RCS file: /usr/cvs/FreeBSD/src/usr.sbin/sysinstall/sysinstall.8,v
retrieving revision 1.53
diff -u -r1.53 sysinstall.8
--- usr.sbin/sysinstall/sysinstall.8	14 Jul 2002 14:46:26 -0000	1.53
+++ usr.sbin/sysinstall/sysinstall.8	16 Jul 2002 13:12:09 -0000
@@ -287,6 +287,11 @@
 Default: none.
 .It diskInteractive
 If set, bring up the interactive disk partition editor.
+.It deletePartition
+can be set to
+.Ar all
+to delete all previously existing partitions.
+Default: nothing deleted.
 .El
 .Pp
 Note: Nothing is actually written to disk by this function, a explicit call to
>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200207161412.g6GECcss072883>