From af30d86501552207d40e83f6a88aff0be21bcb4e Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Thu, 1 Apr 2010 14:14:00 +0000 Subject: [PATCH] Disabled isohybrid MBR production on request of H. Peter Anvin --- libisoburn/trunk/xorriso/xorriso.1 | 18 +--- libisoburn/trunk/xorriso/xorriso.c | 27 ++++++ libisoburn/trunk/xorriso/xorriso.info | 124 ++++++++++++-------------- libisoburn/trunk/xorriso/xorriso.texi | 35 +++++--- 4 files changed, 108 insertions(+), 96 deletions(-) diff --git a/libisoburn/trunk/xorriso/xorriso.1 b/libisoburn/trunk/xorriso/xorriso.1 index c4ca744f..90926c1c 100644 --- a/libisoburn/trunk/xorriso/xorriso.1 +++ b/libisoburn/trunk/xorriso/xorriso.1 @@ -9,7 +9,7 @@ .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) -.TH XORRISO 1 "Mar 17, 2010" +.TH XORRISO 1 "Mar 18, 2010" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -380,11 +380,6 @@ Emulation -as mkisofs supports the example options out of the ISOLINUX wiki. .br The support for other boot image types is sparse. .br -An MBR is generated together with the El Torito boot record if the boot image -bears the isohybrid signature of ISOLINUX 3.72 or later. It will occupy the -first 512 bytes of the emerging ISO image and enable booting from media which -appear as hard disk rather than as CDROM. An MBR does not hamper CDROM booting. -The MBR of a follow-up session can get in effect only on overwriteable media. .PP \fBACL\fR are an advanced way of controlling access permissions to file objects. Neither @@ -2134,8 +2129,8 @@ Most safe is the default: -boot_image "any" "discard". .br A bootspec is a word of the form name=value and is used to describe the -activation of a ISOLINUX boot image by an El Torito record and eventually -a MBR. The names "dir" and "bin_path" lead to boot image activation. +activation of a ISOLINUX boot image by an El Torito record. +The names "dir" and "bin_path" lead to boot image activation. .br On all media types this is possible within the first session. In further sessions an existing boot image can get replaced by a new one, but depending @@ -2165,10 +2160,6 @@ cat_path at -commit time. It is subject to normal -overwrite and -reassure processing if there is already a file with the same name. .br -Bootspec "isohybrid=off" disables MBR generation, "isohybrid=on" prevents the -write session if not the isohybrid signature is found in the bin_path file. -Default is "isohybrid=auto" which silently omits the MBR if the signature is -missing. .TP .B Character sets: .PP @@ -3036,8 +3027,6 @@ same name and hardcoded argument "on", e.g. -acl "on". Explicit arguments are expected by --stdio_sync and --scdbackup_tag. .br -Quite special is isolinux_mbr= (see -boot_image isolinux isohybrid=). -.br Personalites "\fBxorrisofs\fR", "\fBgenisoimage\fR", and "\fBgenisofs\fR" are aliases for "mkisofs". .br @@ -3854,4 +3843,3 @@ Thanks to Andy Polyakov who invented emulated growing, to Derek Foreman and Ben Jansens who once founded libburn. .br Compliments towards Joerg Schilling whose cdrtools served me for ten years. - diff --git a/libisoburn/trunk/xorriso/xorriso.c b/libisoburn/trunk/xorriso/xorriso.c index 7e5df97b..5739113f 100644 --- a/libisoburn/trunk/xorriso/xorriso.c +++ b/libisoburn/trunk/xorriso/xorriso.c @@ -4837,7 +4837,13 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag) m->boot_image_emul= 0; m->boot_image_cat_path[0]= 0; m->boot_image_load_size= 4 * 512; /* hearsay out of libisofs/demo/iso.c */ + +#ifdef Xorriso_with_isohybriD m->boot_image_isohybrid= 1; +#else + m->boot_image_isohybrid= 0; +#endif + m->loaded_boot_bin_lba= 0; m->loaded_boot_cat_path[0]= 0; m->allow_graft_points= 0; @@ -6905,6 +6911,8 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag) if(!(is_default && no_defaults)) Xorriso_status_result(xorriso,filter,fp,flag&2); } + +#ifdef Xorriso_with_isohybriD if(strcmp(form, "isolinux") == 0) { static char modes[4][6]= {"off", "auto", "on", "force"}; is_default= (xorriso->boot_image_isohybrid == 1); @@ -6913,6 +6921,7 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag) if(!(is_default && no_defaults)) Xorriso_status_result(xorriso,filter,fp,flag&2); } +#endif /* Xorriso_with_isohybriD */ sprintf(line,"-cd %s\n", (xorriso->wdi[0] ? Text_shellsafe(xorriso->wdi,sfe,0) : "'/'")); @@ -11012,7 +11021,9 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag) " -boot-load-size # Set numbers of load sectors", " -no-emul-boot Boot image is 'no emulation' image", " -boot-info-table Patch boot image with info table", +#ifdef Xorriso_with_isohybriD " isolinux_mbr=on|auto|off Control eventual isohybrid MBR generation", +#endif " --stdio_sync on|off|number Control forced output to disk files", " -z, -transparent-compression", " Enable transparent compression of files", @@ -13629,6 +13640,9 @@ show_status:; } xorriso->boot_image_load_size= num; } else if(strncmp(treatpt, "isohybrid=", 10) == 0) { + +#ifdef Xorriso_with_isohybriD + if(strcmp(treatpt + 10, "off") == 0) xorriso->boot_image_isohybrid= 0; else if(strcmp(treatpt + 10, "auto") == 0) @@ -13648,6 +13662,19 @@ show_status:; return(0); } + +#else + + if(strcmp(treatpt + 10, "off") == 0) { + xorriso->boot_image_isohybrid= 0; + } else { + sprintf(xorriso->info_text, + "isohybrid MBR generation has been disabled on request of its inventor H. Peter Anvin on 31 Mar 2010"); + Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); + } + +#endif /* ! Xorriso_with_isohybriD */ + } else was_ok= 0; } else diff --git a/libisoburn/trunk/xorriso/xorriso.info b/libisoburn/trunk/xorriso/xorriso.info index d8860169..f6c8cf9c 100644 --- a/libisoburn/trunk/xorriso/xorriso.info +++ b/libisoburn/trunk/xorriso/xorriso.info @@ -338,14 +338,8 @@ xorriso is able to create or maintain an El Torito object which makes such an image bootable. For details see option -boot_image. Emulation -as mkisofs supports the example options out of the ISOLINUX wiki. The support for other boot image types is sparse. -An MBR is generated together with the El Torito boot record if the boot -image bears the isohybrid signature of ISOLINUX 3.72 or later. It will -occupy the first 512 bytes of the emerging ISO image and enable booting -from media which appear as hard disk rather than as CDROM. An MBR does -not hamper CDROM booting. The MBR of a follow-up session can get in -effect only on overwriteable media. - *ACL* are an advanced way of controlling access permissions to file +*ACL* are an advanced way of controlling access permissions to file objects. Neither ISO 9660 nor Rock Ridge specify a way to record ACLs. So libisofs has introduced a standard conformant extension named AAIP for that purpose. It uses this extension if enabled by option *-acl*. @@ -1923,8 +1917,8 @@ unless one can assume overwriteable media. A bootspec is a word of the form name=value and is used to describe the activation of a ISOLINUX boot image by an El Torito - record and eventually a MBR. The names "dir" and "bin_path" lead - to boot image activation. + record. The names "dir" and "bin_path" lead to boot image + activation. On all media types this is possible within the first session. In further sessions an existing boot image can get replaced by a new one, but depending on the media type this may have few effect at @@ -1945,10 +1939,6 @@ unless one can assume overwriteable media. with address cat_path at -commit time. It is subject to normal -overwrite and -reassure processing if there is already a file with the same name. - Bootspec "isohybrid=off" disables MBR generation, "isohybrid=on" - prevents the write session if not the isohybrid signature is found - in the bin_path file. Default is "isohybrid=auto" which silently - omits the MBR if the signature is missing.  File: xorriso.info, Node: Charset, Next: Exception, Prev: Bootable, Up: Options @@ -2737,8 +2727,6 @@ programs trigger comparable actions. xorriso options with the same name and hardcoded argument "on", e.g. -acl "on". Explicit arguments are expected by --stdio_sync and --scdbackup_tag. - Quite special is isolinux_mbr= (see -boot_image isolinux - isohybrid=). Personalites "*xorrisofs*", "*genisoimage*", and "*genisofs*" are aliases for "mkisofs". If xorriso is started with one of the leafnames "xorrisofs", @@ -3624,7 +3612,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -out_charset sets output character set: SetWrite. (line 95) * -outdev aquires a drive for output: AqDrive. (line 29) * -overwrite enables overwriting in ISO: SetInsert. (line 127) -* -pacifier controls pacifier text form: Emulation. (line 94) +* -pacifier controls pacifier text form: Emulation. (line 92) * -padding sets amount of image padding: SetWrite. (line 178) * -page set terminal geometry: DialogCtl. (line 15) * -paste_in copies file into disk file: Restore. (line 117) @@ -3651,7 +3639,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -rollback discards pending changes: Writing. (line 9) * -rollback_end ends program without writing: Scripting. (line 125) * -rom_toc_scan searches for sessions: Loading. (line 189) -* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 104) +* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 102) * -scsi_log reports SCSI commands: Scripting. (line 113) * -session_log logs written sessions: Scripting. (line 104) * -session_string composes session info line: Inquiry. (line 56) @@ -3695,7 +3683,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top [index] * Menu: -* ACL, _definiton: Extras. (line 35) +* ACL, _definiton: Extras. (line 29) * ACL, control handling, -acl: Loading. (line 128) * ACL, set in ISO image, -setfacl: Manip. (line 73) * ACL, set in ISO image, -setfacl_list: Manip. (line 100) @@ -3706,11 +3694,11 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Backslash Interpretation, _definition: Processing. (line 49) * Backup, enable fast incremental, -disk_dev_ino: Loading. (line 168) * Backup, enable features, -for_backup: Loading. (line 163) -* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 104) +* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 102) * Blank media, _definition: Media. (line 25) * Blind growing, _definition: Methods. (line 40) * Bootability, control, -boot_image: Bootable. (line 20) -* cdrecord, Emulation: Emulation. (line 61) +* cdrecord, Emulation: Emulation. (line 59) * Character Set, _definition: Charset. (line 6) * Character Set, for input, -in_charset: Loading. (line 73) * Character Set, for input/output, -charset: Charset. (line 43) @@ -3745,9 +3733,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Drive, write and eject, -commit_eject: Writing. (line 40) * El Torito, _definiton: Extras. (line 19) * Emulation, -as: Emulation. (line 13) -* Emulation, cdrecord, -as: Emulation. (line 61) +* Emulation, cdrecord, -as: Emulation. (line 59) * Emulation, mkisofs, -as: Emulation. (line 16) -* Emulation, pacifier form, -pacifier: Emulation. (line 94) +* Emulation, pacifier form, -pacifier: Emulation. (line 92) * Examples: Examples. (line 6) * Filter, _definition: Filter. (line 6) * Filter, apply to file tree, -set_filter_r: Filter. (line 84) @@ -3904,7 +3892,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Write, predict image size, -print_size: Inquiry. (line 69) * Write, set speed, -speed: SetWrite. (line 121) * Write, simulation, -dummy: SetWrite. (line 161) -* xattr, _definiton: Extras. (line 49) +* xattr, _definiton: Extras. (line 43) * xattr, control handling, -xattr: Loading. (line 136) * xattr, set in ISO image, -setfattr: Manip. (line 110) * xattr, set in ISO image, -setfattr_list: Manip. (line 126) @@ -3922,50 +3910,50 @@ Node: Media6072 Node: Methods8502 Node: Drives11049 Node: Extras14315 -Node: Processing17640 -Node: Dialog21136 -Node: Options22793 -Node: AqDrive24361 -Node: Loading27267 -Node: Insert39700 -Node: SetInsert48057 -Node: Manip56624 -Node: CmdFind64500 -Node: Filter73058 -Node: Writing77407 -Node: SetWrite83696 -Node: Bootable92573 -Node: Charset96290 -Node: Exception99044 -Node: DialogCtl103559 -Node: Inquiry105904 -Node: Navigate110044 -Node: Verify117398 -Node: Restore125818 -Node: Emulation132474 -Node: Scripting138580 -Node: Frontend144142 -Node: Examples145343 -Node: ExDevices146512 -Node: ExCreate146994 -Node: ExDialog148268 -Node: ExGrowing149530 -Node: ExModifying150332 -Node: ExBootable150833 -Node: ExCharset151380 -Node: ExPseudo152208 -Node: ExCdrecord153102 -Node: ExMkisofs153417 -Node: ExGrowisofs154420 -Node: ExException155544 -Node: ExTime155998 -Node: ExIncBackup156457 -Node: ExRestore159929 -Node: ExRecovery160898 -Node: Files161463 -Node: Seealso162050 -Node: Legal162574 -Node: CommandIdx163496 -Node: ConceptIdx176724 +Node: Processing17246 +Node: Dialog20742 +Node: Options22399 +Node: AqDrive23967 +Node: Loading26873 +Node: Insert39306 +Node: SetInsert47663 +Node: Manip56230 +Node: CmdFind64106 +Node: Filter72664 +Node: Writing77013 +Node: SetWrite83302 +Node: Bootable92179 +Node: Charset95615 +Node: Exception98369 +Node: DialogCtl102884 +Node: Inquiry105229 +Node: Navigate109369 +Node: Verify116723 +Node: Restore125143 +Node: Emulation131799 +Node: Scripting137825 +Node: Frontend143387 +Node: Examples144588 +Node: ExDevices145757 +Node: ExCreate146239 +Node: ExDialog147513 +Node: ExGrowing148775 +Node: ExModifying149577 +Node: ExBootable150078 +Node: ExCharset150625 +Node: ExPseudo151453 +Node: ExCdrecord152347 +Node: ExMkisofs152662 +Node: ExGrowisofs153665 +Node: ExException154789 +Node: ExTime155243 +Node: ExIncBackup155702 +Node: ExRestore159174 +Node: ExRecovery160143 +Node: Files160708 +Node: Seealso161295 +Node: Legal161819 +Node: CommandIdx162741 +Node: ConceptIdx175969  End Tag Table diff --git a/libisoburn/trunk/xorriso/xorriso.texi b/libisoburn/trunk/xorriso/xorriso.texi index dd679dcc..cc868d28 100644 --- a/libisoburn/trunk/xorriso/xorriso.texi +++ b/libisoburn/trunk/xorriso/xorriso.texi @@ -508,11 +508,17 @@ Emulation -as mkisofs supports the example options out of the ISOLINUX wiki. @* The support for other boot image types is sparse. @* -An MBR is generated together with the El Torito boot record if the boot image -bears the isohybrid signature of ISOLINUX 3.72 or later. It will occupy the -first 512 bytes of the emerging ISO image and enable booting from media which -appear as hard disk rather than as CDROM. An MBR does not hamper CDROM booting. -The MBR of a follow-up session can get in effect only on overwriteable media. +@c +@c >>> isohybrid MBR generation has been disabled on request +@c >>> of its inventor H. Peter Anvin on 31 Mar 2010 +@c +@c An MBR is generated together with the El Torito boot record if the +@c boot image bears the isohybrid signature of ISOLINUX 3.72 or later. +@c It will occupy the first 512 bytes of the emerging ISO image and +@c enable booting from media which appear as hard disk rather than +@c as CDROM. An MBR does not hamper CDROM booting. The MBR of a +@c follow-up session can get in effect only on overwriteable media. +@c @c man .PP @sp 1 @cindex ACL, _definiton @@ -2580,8 +2586,9 @@ Most safe is the default: -boot_image "any" "discard". @sp 1 A bootspec is a word of the form name=value and is used to describe the -activation of a ISOLINUX boot image by an El Torito record and eventually -a MBR. The names "dir" and "bin_path" lead to boot image activation. +activation of a ISOLINUX boot image by an El Torito record. +@c and eventually a MBR. +The names "dir" and "bin_path" lead to boot image activation. @* On all media types this is possible within the first session. In further sessions an existing boot image can get replaced by a new one, but depending @@ -2611,10 +2618,12 @@ cat_path at -commit time. It is subject to normal -overwrite and -reassure processing if there is already a file with the same name. @* -Bootspec "isohybrid=off" disables MBR generation, "isohybrid=on" prevents the -write session if not the isohybrid signature is found in the bin_path file. -Default is "isohybrid=auto" which silently omits the MBR if the signature is -missing. +@c +@c Bootspec "isohybrid=off" disables MBR generation, "isohybrid=on" +@c prevents the write session if not the isohybrid signature is found +@c in the bin_path file. Default is "isohybrid=auto" which silently +@c omits the MBR if the signature is missing. +@c @end table @c man .TP @c man .B Character sets: @@ -3650,8 +3659,8 @@ same name and hardcoded argument "on", e.g. -acl "on". Explicit arguments are expected by @minus{}@minus{}stdio_sync and @minus{}@minus{}scdbackup_tag. @* -Quite special is isolinux_mbr= (see -boot_image isolinux isohybrid=). -@* +@c Quite special is isolinux_mbr= (see -boot_image isolinux isohybrid=). +@c @* Personalites "@strong{xorrisofs}", "@strong{genisoimage}", and "@strong{genisofs}" are aliases for "mkisofs". @*