diff options
Diffstat (limited to 'release/sysinstall/disks.c')
-rw-r--r-- | release/sysinstall/disks.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/release/sysinstall/disks.c b/release/sysinstall/disks.c index 5297551..25108a4 100644 --- a/release/sysinstall/disks.c +++ b/release/sysinstall/disks.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id: disks.c,v 1.96 1998/03/19 15:07:20 jkh Exp $ + * $Id: disks.c,v 1.97 1998/03/23 05:59:10 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -484,9 +484,19 @@ diskPartition(Device *dev) * disk (i.e., the disklabel starts at sector 0), even in cases where the user has requested * booteasy or a "standard" MBR -- both would be fatal in this case. */ +#if 0 if ((d->chunks->part->flags & CHUNK_FORCE_ALL) != CHUNK_FORCE_ALL && (mbrContents = getBootMgr(d->name)) != NULL) Set_Boot_Mgr(d, mbrContents); +#else + /* + * Don't offer to update the MBR on this disk if the first "real" chunk looks like + * a FreeBSD "all disk" partition, or the disk is entirely FreeBSD. + */ + if (((d->chunks->part->type != freebsd) || (d->chunks->part->offset > 1)) && + (mbrContents = getBootMgr(d->name)) != NULL) + Set_Boot_Mgr(d, mbrContents); +#endif break; default: @@ -611,6 +621,9 @@ diskPartitionWrite(dialogMenuItem *self) if (isDebug()) msgDebug("diskPartitionWrite: Examining %d devices\n", deviceCount(devs)); cp = variable_get(DISK_PARTITIONED); + if (cp && !strcmp(cp, "written")) + return DITEM_SUCCESS; + for (i = 0; devs[i]; i++) { Chunk *c1; Disk *d = (Disk *)devs[i]->private; |