diff options
author | Todd C. Miller <millert@cvs.openbsd.org> | 1997-09-30 21:59:44 +0000 |
---|---|---|
committer | Todd C. Miller <millert@cvs.openbsd.org> | 1997-09-30 21:59:44 +0000 |
commit | e9e698545240ef4fcd5c34db4b7110d42c3e0ff3 (patch) | |
tree | 8012a17140132f19252a2997ee7c76cce81556b8 /sys/arch | |
parent | d7ef8c12f83ba03c9cbf557d7b7cc90642ff786e (diff) |
Don't blithely use geometry from the disk. Get it from sysctl or
the user.
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/i386/stand/installboot/installboot.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/sys/arch/i386/stand/installboot/installboot.c b/sys/arch/i386/stand/installboot/installboot.c index a9d140d4b9e..e45551725a5 100644 --- a/sys/arch/i386/stand/installboot/installboot.c +++ b/sys/arch/i386/stand/installboot/installboot.c @@ -1,4 +1,4 @@ -/* $OpenBSD: installboot.c,v 1.13 1997/09/24 23:10:03 mickey Exp $ */ +/* $OpenBSD: installboot.c,v 1.14 1997/09/30 21:59:43 millert Exp $ */ /* $NetBSD: installboot.c,v 1.5 1995/11/17 23:23:50 gwr Exp $ */ /* @@ -158,7 +158,8 @@ main(argc, argv) if (nsectors == -1) nsectors = BIOSNSECTS(geo); } - } + } else if (nheads == -1 || nsectors == -1) + errx(1, "Unable to get BIOS geometry, must specify -h and -s"); /* Open and check raw disk device */ if ((devfd = opendev(dev, (nowrite? O_RDONLY:O_RDWR), @@ -430,10 +431,8 @@ loadblocknums(boot, devfd, dl) if (dl->d_type != 0 && dl->d_type < DTYPE_FLOPPY) { /* adjust disklabel w/ synthetic geometry */ - if (nsectors > 0) - dl->d_nsectors = nsectors; - if (nheads > 0) - dl->d_secpercyl = dl->d_nsectors * nheads; + dl->d_nsectors = nsectors; + dl->d_secpercyl = dl->d_nsectors * nheads; } if (verbose) |