Module Name: src Committed By: dsl Date: Sat Mar 10 18:42:19 UTC 2012
Modified Files: src/usr.sbin/installboot: installboot.8 src/usr.sbin/installboot/arch: i386.c Log Message: Some FAT16 filesystems don't have 'hidden sectors' correctly set to the offset of the filesystem on the disk. Let '-b s1blk' be used to fix the value. To generate a diff of this commit: cvs rdiff -u -r1.84 -r1.85 src/usr.sbin/installboot/installboot.8 cvs rdiff -u -r1.37 -r1.38 src/usr.sbin/installboot/arch/i386.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.sbin/installboot/installboot.8 diff -u src/usr.sbin/installboot/installboot.8:1.84 src/usr.sbin/installboot/installboot.8:1.85 --- src/usr.sbin/installboot/installboot.8:1.84 Sat Feb 11 07:27:25 2012 +++ src/usr.sbin/installboot/installboot.8 Sat Mar 10 18:42:18 2012 @@ -1,4 +1,4 @@ -.\" $NetBSD: installboot.8,v 1.84 2012/02/11 07:27:25 ast Exp $ +.\" $NetBSD: installboot.8,v 1.85 2012/03/10 18:42:18 dsl Exp $ .\" .\" Copyright (c) 2002-2012 The NetBSD Foundation, Inc. .\" All rights reserved. @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd February 11, 2012 +.Dd March 10, 2012 .Dt INSTALLBOOT 8 .Os .Sh NAME @@ -165,6 +165,7 @@ at block number .Ar s1bno instead of the default location for the machine and file system type. .Sy [ alpha , +.Sy i386/amd64 (bootxx_fat16 only) , .Sy pmax , .Sy vax ] . @@ -453,6 +454,12 @@ any It also uses the information in the .Ql Boot Parameter Block to get the media and filesytem properties. +The +.Ql hidden sectors +field of the BPB must the offset of the partition in the disk. +This can be set using the +.Fl b Ar s1bno +option. . .It Pa /usr/mdec/bootxx_ffsv1 Primary bootstrap for Index: src/usr.sbin/installboot/arch/i386.c diff -u src/usr.sbin/installboot/arch/i386.c:1.37 src/usr.sbin/installboot/arch/i386.c:1.38 --- src/usr.sbin/installboot/arch/i386.c:1.37 Sun Aug 14 17:50:17 2011 +++ src/usr.sbin/installboot/arch/i386.c Sat Mar 10 18:42:18 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: i386.c,v 1.37 2011/08/14 17:50:17 christos Exp $ */ +/* $NetBSD: i386.c,v 1.38 2012/03/10 18:42:18 dsl Exp $ */ /*- * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ #include <sys/cdefs.h> #if !defined(__lint) -__RCSID("$NetBSD: i386.c,v 1.37 2011/08/14 17:50:17 christos Exp $"); +__RCSID("$NetBSD: i386.c,v 1.38 2012/03/10 18:42:18 dsl Exp $"); #endif /* !__lint */ #include <sys/param.h> @@ -79,13 +79,15 @@ struct ib_mach ib_mach_i386 = { "i386", i386_setboot, no_clearboot, i386_editboot, IB_RESETVIDEO | IB_CONSOLE | IB_CONSPEED | IB_CONSADDR | IB_KEYMAP | IB_PASSWORD | IB_TIMEOUT | - IB_MODULES | IB_BOOTCONF }; + IB_MODULES | IB_BOOTCONF | + IB_STAGE1START }; struct ib_mach ib_mach_amd64 = { "amd64", i386_setboot, no_clearboot, i386_editboot, IB_RESETVIDEO | IB_CONSOLE | IB_CONSPEED | IB_CONSADDR | IB_KEYMAP | IB_PASSWORD | IB_TIMEOUT | - IB_MODULES | IB_BOOTCONF }; + IB_MODULES | IB_BOOTCONF | + IB_STAGE1START }; /* * Attempting to write the 'labelsector' (or a sector near it - within 8k?) @@ -440,6 +442,9 @@ i386_setboot(ib_params *params) /* Old BPB is shorter, leave zero filled */ u = disk_buf.b[1]; } + if (params->s1start != 0) + /* Fixup physical offset of filesytem */ + bpb->bpbHiddenSecs = htole32(params->s1start); memcpy(bootstrap.b + 2, disk_buf.b + 2, u); } #undef USE_F