* Copyright (c) 1986, 1990 The Regents of the University of California.
* %sccs.include.redist.c%
"@(#) Copyright (c) 1986, 1990 The Regents of the University of California.\n\
static char sccsid
[] = "@(#)installboot.c 7.4 (Berkeley) %G%";
int maxbootsize
= 16 * 7 * 512; /* XXX */
* The boot program won't fit in the boot area of a file system so we
* have to place it outside the file systems. By convention, this means
* that if the 'a' partition is being used for '/', it is offset one
* cylinder into the disk and the boot program goes into that one cylinder.
* Also by convention, the 'c' partition is defined to be the entire disk
* including this boot cylinder. If these conventions are not adhered to,
* the potential for disaster is enormous.
char *dev
, *standalonecode
;
standalonecode
= argv
[1];
ifd
= open(standalonecode
, 0);
while ((len
= read(ifd
, block
, bsize
)) > 0) {
if ((maxbootsize
-= bsize
) < 0) {
printf("%s: too big\n", standalonecode
);
bzero(&block
[len
], bsize
-len
);
if (write(ofd
, block
, bsize
) != bsize
) {
printf("Usage: installboot bootprog device\n");
printf("\t\"bootprog\" is a LIF format file < %d bytes long\n",
printf("\t\"device\" must be the 'c' partition of a bootable disk\n");
printf("WARNING!! If the 'c' partition contains a file system, %s\n",