From e536bc7c874452cef9c8c9f24d93a7972b756e8c Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 22 Jun 2004 22:58:07 +0000 Subject: Teach mkhybrid how to create an El Torito non-emulation boot CD, with a 2,048-byte boot sector. ok weingart@ --- gnu/usr.sbin/mkhybrid/src/eltorito.c | 17 ++++++++++++++--- gnu/usr.sbin/mkhybrid/src/mkhybrid.8tbl | 18 +++++++++++------- gnu/usr.sbin/mkhybrid/src/mkhybrid_man.html | 19 +++++++++++-------- 3 files changed, 36 insertions(+), 18 deletions(-) (limited to 'gnu') diff --git a/gnu/usr.sbin/mkhybrid/src/eltorito.c b/gnu/usr.sbin/mkhybrid/src/eltorito.c index 15bcc559907..de1beb7c26b 100644 --- a/gnu/usr.sbin/mkhybrid/src/eltorito.c +++ b/gnu/usr.sbin/mkhybrid/src/eltorito.c @@ -21,7 +21,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -static char rcsid[] ="$Id: eltorito.c,v 1.1 2000/10/10 20:40:14 beck Exp $"; +static char rcsid[] ="$Id: eltorito.c,v 1.2 2004/06/22 22:58:06 tom Exp $"; #include #include @@ -252,6 +252,15 @@ void FDECL1(get_torito_desc, struct eltorito_boot_descriptor *, boot_desc) #endif /* APPLE_HYB */ fprintf(stderr,"Emulating a 1.2 meg floppy\n"); } + else if (nsectors == 4 ) + { + default_desc.boot_media[0] = EL_TORITO_MEDIA_NOEMUL; +#ifdef APPLE_HYB + /* NON-HFS change */ + if (verbose > 0 ) +#endif /* APPLE_HYB */ + fprintf(stderr,"No-emulation CD boot sector\n"); + } else { fprintf(stderr,"\nError - boot image is not the an allowable size.\n"); @@ -260,9 +269,11 @@ void FDECL1(get_torito_desc, struct eltorito_boot_descriptor *, boot_desc) /* - * FOR NOW LOAD 1 SECTOR, JUST LIKE FLOPPY BOOT!!! + * FOR NOW LOAD 1 SECTOR, JUST LIKE FLOPPY BOOT, unless it's no-emulation + * boot. */ - nsectors = 1; + if (default_desc.boot_media[0] != EL_TORITO_MEDIA_NOEMUL) + nsectors = 1; set_721(default_desc.nsect, (unsigned int) nsectors ); #ifdef DEBUG_TORITO fprintf(stderr,"Extent of boot images is %d\n",get_733(de->isorec.extent)); diff --git a/gnu/usr.sbin/mkhybrid/src/mkhybrid.8tbl b/gnu/usr.sbin/mkhybrid/src/mkhybrid.8tbl index b32c1b51708..1895c56f0b0 100644 --- a/gnu/usr.sbin/mkhybrid/src/mkhybrid.8tbl +++ b/gnu/usr.sbin/mkhybrid/src/mkhybrid.8tbl @@ -2,7 +2,7 @@ .\" To print, first run through tbl .\" -*- nroff -*- .\" -.\" $Id: mkhybrid.8tbl,v 1.1 2001/10/04 17:36:19 wilfried Exp $ +.\" $Id: mkhybrid.8tbl,v 1.2 2004/06/22 22:58:06 tom Exp $ .\" .TH MKHYBRID 8 "7 April 1999" "Version 1.12b5.1" .SH NAME @@ -413,13 +413,17 @@ an "El Torito" bootable CD. The pathname must be relative to the source path specified to .B mkhybrid. This option is required to make a bootable CD. -The boot image must be exactly the size of either a 1.2, 1.44, or a 2.88 -meg floppy, and +The boot image must be exactly the size of one of a 1.2, 1.44, or +2.88 MB floppy, or of a 2 KB CD sector, +and .B mkhybrid -will use this size when creating the output iso9660 -filesystem. It is assumed that the first 512 byte sector should be read -from the boot image (it is essentially emulating a normal floppy drive). -This will work, for example, if the boot image is a LILO based boot floppy. +will use this size when creating the output iso9660 filesystem. +If the boot file is 2 KB long, a no-emulation boot CD will be created, +and the whole 2 KB will be read on boot. +If the boot file is a floppy image, +then only the first 512-byte sector will be read from the boot image +(it is emulating a normal floppy drive). +This will work, for example, if the boot image is a LILO-based boot floppy. .TP .BI \-C " last_sess_start,next_sess_start This option is needed when diff --git a/gnu/usr.sbin/mkhybrid/src/mkhybrid_man.html b/gnu/usr.sbin/mkhybrid/src/mkhybrid_man.html index 18ae3f1b49c..2f4be64d128 100644 --- a/gnu/usr.sbin/mkhybrid/src/mkhybrid_man.html +++ b/gnu/usr.sbin/mkhybrid/src/mkhybrid_man.html @@ -191,15 +191,18 @@ Specifies the path and filename of the boot image to be used when making an "El Torito" bootable CD. The pathname must be relative to the source path - specified to mkhybrid. This option is required to + specified to mkhybrid. This option is required to make a bootable CD. The boot image must be exactly - the size of either a 1.2, 1.44, or a 2.88 meg - floppy, and mkhybrid will use this size when creat- - ing the output iso9660 filesystem. It is assumed - that the first 512 byte sector should be read from - the boot image (it is essentially emulating a nor- - mal floppy drive). This will work, for example, if - the boot image is a LILO based boot floppy. + the size of one of a 1.2, 1.44, or 2.88 MB floppy, + or of a 2 KB CD sector, and mkhybrid will use this + size when creating the output iso9660 filesystem. + If the boot file is 2 KB long, a no-emulation boot + CD will be created, and the whole 2 KB will be read + on boot. If the boot file is a floppy image, then + only the first 512-byte sector will be read from + the boot image (it is emulating a normal floppy + drive). This will work, for example, if the boot + image is a LILO-based boot floppy. -C last_sess_start,next_sess_start This option is needed when mkisofs is used to cre- -- cgit v1.2.3