mirror of
https://git.FreeBSD.org/src.git
synced 2025-02-02 17:08:56 +00:00
Usability enhancements: do not allow setting a mountpoint on bsdlabel
container partitions, which didn't do anything anyway, and check for an existing freebsd-boot partition before bothering the user to make one. PR: bin/160931 MFC after: 3 days
This commit is contained in:
parent
515dfc239d
commit
a780c996f4
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=226160
@ -892,6 +892,19 @@ addpartform:
|
||||
goto addpartform;
|
||||
}
|
||||
|
||||
/*
|
||||
* Error if this scheme needs nested partitions, this is one, and
|
||||
* a mountpoint was set.
|
||||
*/
|
||||
if (strcmp(items[0].text, "freebsd") == 0 &&
|
||||
strlen(items[2].text) > 0) {
|
||||
dialog_msgbox("Error", "Partitions of type \"freebsd\" are "
|
||||
"nested BSD-type partition schemes and cannot have "
|
||||
"mountpoints. After creating one, select it and press "
|
||||
"Create again to add the actual file systems.", 0, 0, TRUE);
|
||||
goto addpartform;
|
||||
}
|
||||
|
||||
/* If this is the root partition, check that this scheme is bootable */
|
||||
if (strcmp(items[2].text, "/") == 0 && !is_scheme_bootable(scheme)) {
|
||||
char message[512];
|
||||
@ -909,7 +922,23 @@ addpartform:
|
||||
* If this is the root partition, and we need a boot partition, ask
|
||||
* the user to add one.
|
||||
*/
|
||||
if (strcmp(items[2].text, "/") == 0 && bootpart_size(scheme) > 0) {
|
||||
|
||||
/* Check for existing freebsd-boot partition */
|
||||
LIST_FOREACH(pp, &geom->lg_provider, lg_provider) {
|
||||
struct partition_metadata *md;
|
||||
md = get_part_metadata(pp->lg_name, 0);
|
||||
if (md == NULL || !md->bootcode)
|
||||
continue;
|
||||
LIST_FOREACH(gc, &pp->lg_config, lg_config)
|
||||
if (strcmp(gc->lg_name, "type") == 0)
|
||||
break;
|
||||
if (gc != NULL && strcmp(gc->lg_val, "freebsd-boot") == 0)
|
||||
break;
|
||||
}
|
||||
|
||||
/* If there isn't one, and we need one, ask */
|
||||
if (strcmp(items[2].text, "/") == 0 && bootpart_size(scheme) > 0 &&
|
||||
pp == NULL) {
|
||||
if (interactive)
|
||||
choice = dialog_yesno("Boot Partition",
|
||||
"This partition scheme requires a boot partition "
|
||||
|
Loading…
x
Reference in New Issue
Block a user