svn commit: r231020 - stable/9/usr.sbin/bsdinstall/partedit
Nathan Whitehorn
nwhitehorn at FreeBSD.org
Sun Feb 5 16:08:46 UTC 2012
Author: nwhitehorn
Date: Sun Feb 5 16:08:45 2012
New Revision: 231020
URL: http://svn.freebsd.org/changeset/base/231020
Log:
MFC r230309:
Warn if trying to install over an existing partition, which usually fails
anyway due to libarchive not being able to overwrite schg flags.
PR: bin/164278
Modified:
stable/9/usr.sbin/bsdinstall/partedit/partedit.c
Directory Properties:
stable/9/usr.sbin/bsdinstall/ (props changed)
stable/9/usr.sbin/bsdinstall/scripts/ (props changed)
Modified: stable/9/usr.sbin/bsdinstall/partedit/partedit.c
==============================================================================
--- stable/9/usr.sbin/bsdinstall/partedit/partedit.c Sun Feb 5 15:59:18 2012 (r231019)
+++ stable/9/usr.sbin/bsdinstall/partedit/partedit.c Sun Feb 5 16:08:45 2012 (r231020)
@@ -240,23 +240,41 @@ delete_part_metadata(const char *name)
static int
validate_setup(void)
{
- struct partition_metadata *md;
- int root_found = FALSE;
+ struct partition_metadata *md, *root = NULL;
+ int cancel;
TAILQ_FOREACH(md, &part_metadata, metadata) {
if (md->fstab != NULL && strcmp(md->fstab->fs_file, "/") == 0)
- root_found = TRUE;
+ root = md;
/* XXX: Check for duplicate mountpoints */
}
- if (!root_found) {
+ if (root == NULL) {
dialog_msgbox("Error", "No root partition was found. "
"The root FreeBSD partition must have a mountpoint of '/'.",
0, 0, TRUE);
return (FALSE);
}
+ /*
+ * Check for root partitions that we aren't formatting, which is
+ * usually a mistake
+ */
+ if (root->newfs == NULL) {
+ dialog_vars.defaultno = TRUE;
+ cancel = dialog_yesno("Warning", "The chosen root partition "
+ "has a preexisting filesystem. If it contains an existing "
+ "FreeBSD system, please update it with freebsd-update "
+ "instead of installing a new system on it. The partition "
+ "can also be erased by pressing \"No\" and then deleting "
+ "and recreating it. Are you sure you want to proceed?",
+ 0, 0);
+ dialog_vars.defaultno = FALSE;
+ if (cancel)
+ return (FALSE);
+ }
+
return (TRUE);
}
More information about the svn-src-stable-9
mailing list