Disabled isohybrid MBR production on request of H. Peter Anvin

This commit is contained in:
Thomas Schmitt 2010-04-01 14:14:00 +00:00
parent 1e4e51edfe
commit 7878f1f039
4 changed files with 108 additions and 96 deletions

View File

@ -9,7 +9,7 @@
.\" First parameter, NAME, should be all caps .\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1) .\" 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. .\" Please adjust this date whenever revising the manpage.
.\" .\"
.\" Some roff macros, for reference: .\" Some roff macros, for reference:
@ -380,11 +380,6 @@ Emulation -as mkisofs supports the example options out of the ISOLINUX wiki.
.br .br
The support for other boot image types is sparse. The support for other boot image types is sparse.
.br .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 .PP
\fBACL\fR \fBACL\fR
are an advanced way of controlling access permissions to file objects. Neither 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 .br
A bootspec is a word of the form name=value and is used to describe the 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 activation of a ISOLINUX boot image by an El Torito record.
a MBR. The names "dir" and "bin_path" lead to boot image activation. The names "dir" and "bin_path" lead to boot image activation.
.br .br
On all media types this is possible within the first session. In further 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 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 It is subject to normal -overwrite and -reassure processing if there is already
a file with the same name. a file with the same name.
.br .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 .TP
.B Character sets: .B Character sets:
.PP .PP
@ -3036,8 +3027,6 @@ same name and hardcoded argument "on", e.g. -acl "on".
Explicit arguments are expected by --stdio_sync Explicit arguments are expected by --stdio_sync
and --scdbackup_tag. and --scdbackup_tag.
.br .br
Quite special is isolinux_mbr= (see -boot_image isolinux isohybrid=).
.br
Personalites "\fBxorrisofs\fR", "\fBgenisoimage\fR", Personalites "\fBxorrisofs\fR", "\fBgenisoimage\fR",
and "\fBgenisofs\fR" are aliases for "mkisofs". and "\fBgenisofs\fR" are aliases for "mkisofs".
.br .br
@ -3854,4 +3843,3 @@ Thanks to Andy Polyakov who invented emulated growing,
to Derek Foreman and Ben Jansens who once founded libburn. to Derek Foreman and Ben Jansens who once founded libburn.
.br .br
Compliments towards Joerg Schilling whose cdrtools served me for ten years. Compliments towards Joerg Schilling whose cdrtools served me for ten years.

View File

@ -4837,7 +4837,13 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->boot_image_emul= 0; m->boot_image_emul= 0;
m->boot_image_cat_path[0]= 0; m->boot_image_cat_path[0]= 0;
m->boot_image_load_size= 4 * 512; /* hearsay out of libisofs/demo/iso.c */ m->boot_image_load_size= 4 * 512; /* hearsay out of libisofs/demo/iso.c */
#ifdef Xorriso_with_isohybriD
m->boot_image_isohybrid= 1; m->boot_image_isohybrid= 1;
#else
m->boot_image_isohybrid= 0;
#endif
m->loaded_boot_bin_lba= 0; m->loaded_boot_bin_lba= 0;
m->loaded_boot_cat_path[0]= 0; m->loaded_boot_cat_path[0]= 0;
m->allow_graft_points= 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)) if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2); Xorriso_status_result(xorriso,filter,fp,flag&2);
} }
#ifdef Xorriso_with_isohybriD
if(strcmp(form, "isolinux") == 0) { if(strcmp(form, "isolinux") == 0) {
static char modes[4][6]= {"off", "auto", "on", "force"}; static char modes[4][6]= {"off", "auto", "on", "force"};
is_default= (xorriso->boot_image_isohybrid == 1); 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)) if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2); Xorriso_status_result(xorriso,filter,fp,flag&2);
} }
#endif /* Xorriso_with_isohybriD */
sprintf(line,"-cd %s\n", sprintf(line,"-cd %s\n",
(xorriso->wdi[0] ? Text_shellsafe(xorriso->wdi,sfe,0) : "'/'")); (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", " -boot-load-size # Set numbers of load sectors",
" -no-emul-boot Boot image is 'no emulation' image", " -no-emul-boot Boot image is 'no emulation' image",
" -boot-info-table Patch boot image with info table", " -boot-info-table Patch boot image with info table",
#ifdef Xorriso_with_isohybriD
" isolinux_mbr=on|auto|off Control eventual isohybrid MBR generation", " isolinux_mbr=on|auto|off Control eventual isohybrid MBR generation",
#endif
" --stdio_sync on|off|number Control forced output to disk files", " --stdio_sync on|off|number Control forced output to disk files",
" -z, -transparent-compression", " -z, -transparent-compression",
" Enable transparent compression of files", " Enable transparent compression of files",
@ -13629,6 +13640,9 @@ show_status:;
} }
xorriso->boot_image_load_size= num; xorriso->boot_image_load_size= num;
} else if(strncmp(treatpt, "isohybrid=", 10) == 0) { } else if(strncmp(treatpt, "isohybrid=", 10) == 0) {
#ifdef Xorriso_with_isohybriD
if(strcmp(treatpt + 10, "off") == 0) if(strcmp(treatpt + 10, "off") == 0)
xorriso->boot_image_isohybrid= 0; xorriso->boot_image_isohybrid= 0;
else if(strcmp(treatpt + 10, "auto") == 0) else if(strcmp(treatpt + 10, "auto") == 0)
@ -13648,6 +13662,19 @@ show_status:;
return(0); 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 } else
was_ok= 0; was_ok= 0;
} else } else

View File

@ -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 such an image bootable. For details see option -boot_image. Emulation
-as mkisofs supports the example options out of the ISOLINUX wiki. -as mkisofs supports the example options out of the ISOLINUX wiki.
The support for other boot image types is sparse. 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. objects. Neither ISO 9660 nor Rock Ridge specify a way to record ACLs.
So libisofs has introduced a standard conformant extension named AAIP So libisofs has introduced a standard conformant extension named AAIP
for that purpose. It uses this extension if enabled by option *-acl*. 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 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 describe the activation of a ISOLINUX boot image by an El Torito
record and eventually a MBR. The names "dir" and "bin_path" lead record. The names "dir" and "bin_path" lead to boot image
to boot image activation. activation.
On all media types this is possible within the first session. In On all media types this is possible within the first session. In
further sessions an existing boot image can get replaced by a new 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 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 with address cat_path at -commit time. It is subject to normal
-overwrite and -reassure processing if there is already a file -overwrite and -reassure processing if there is already a file
with the same name. 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 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", xorriso options with the same name and hardcoded argument "on",
e.g. -acl "on". Explicit arguments are expected by --stdio_sync e.g. -acl "on". Explicit arguments are expected by --stdio_sync
and --scdbackup_tag. and --scdbackup_tag.
Quite special is isolinux_mbr= (see -boot_image isolinux
isohybrid=).
Personalites "*xorrisofs*", "*genisoimage*", and "*genisofs*" are Personalites "*xorrisofs*", "*genisoimage*", and "*genisofs*" are
aliases for "mkisofs". aliases for "mkisofs".
If xorriso is started with one of the leafnames "xorrisofs", 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) * -out_charset sets output character set: SetWrite. (line 95)
* -outdev aquires a drive for output: AqDrive. (line 29) * -outdev aquires a drive for output: AqDrive. (line 29)
* -overwrite enables overwriting in ISO: SetInsert. (line 127) * -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) * -padding sets amount of image padding: SetWrite. (line 178)
* -page set terminal geometry: DialogCtl. (line 15) * -page set terminal geometry: DialogCtl. (line 15)
* -paste_in copies file into disk file: Restore. (line 117) * -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 discards pending changes: Writing. (line 9)
* -rollback_end ends program without writing: Scripting. (line 125) * -rollback_end ends program without writing: Scripting. (line 125)
* -rom_toc_scan searches for sessions: Loading. (line 189) * -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) * -scsi_log reports SCSI commands: Scripting. (line 113)
* -session_log logs written sessions: Scripting. (line 104) * -session_log logs written sessions: Scripting. (line 104)
* -session_string composes session info line: Inquiry. (line 56) * -session_string composes session info line: Inquiry. (line 56)
@ -3695,7 +3683,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
[index] [index]
* Menu: * Menu:
* ACL, _definiton: Extras. (line 35) * ACL, _definiton: Extras. (line 29)
* ACL, control handling, -acl: Loading. (line 128) * ACL, control handling, -acl: Loading. (line 128)
* ACL, set in ISO image, -setfacl: Manip. (line 73) * ACL, set in ISO image, -setfacl: Manip. (line 73)
* ACL, set in ISO image, -setfacl_list: Manip. (line 100) * 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) * Backslash Interpretation, _definition: Processing. (line 49)
* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 168) * Backup, enable fast incremental, -disk_dev_ino: Loading. (line 168)
* Backup, enable features, -for_backup: Loading. (line 163) * 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) * Blank media, _definition: Media. (line 25)
* Blind growing, _definition: Methods. (line 40) * Blind growing, _definition: Methods. (line 40)
* Bootability, control, -boot_image: Bootable. (line 20) * 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, _definition: Charset. (line 6)
* Character Set, for input, -in_charset: Loading. (line 73) * Character Set, for input, -in_charset: Loading. (line 73)
* Character Set, for input/output, -charset: Charset. (line 43) * 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) * Drive, write and eject, -commit_eject: Writing. (line 40)
* El Torito, _definiton: Extras. (line 19) * El Torito, _definiton: Extras. (line 19)
* Emulation, -as: Emulation. (line 13) * Emulation, -as: Emulation. (line 13)
* Emulation, cdrecord, -as: Emulation. (line 61) * Emulation, cdrecord, -as: Emulation. (line 59)
* Emulation, mkisofs, -as: Emulation. (line 16) * Emulation, mkisofs, -as: Emulation. (line 16)
* Emulation, pacifier form, -pacifier: Emulation. (line 94) * Emulation, pacifier form, -pacifier: Emulation. (line 92)
* Examples: Examples. (line 6) * Examples: Examples. (line 6)
* Filter, _definition: Filter. (line 6) * Filter, _definition: Filter. (line 6)
* Filter, apply to file tree, -set_filter_r: Filter. (line 84) * 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, predict image size, -print_size: Inquiry. (line 69)
* Write, set speed, -speed: SetWrite. (line 121) * Write, set speed, -speed: SetWrite. (line 121)
* Write, simulation, -dummy: SetWrite. (line 161) * Write, simulation, -dummy: SetWrite. (line 161)
* xattr, _definiton: Extras. (line 49) * xattr, _definiton: Extras. (line 43)
* xattr, control handling, -xattr: Loading. (line 136) * xattr, control handling, -xattr: Loading. (line 136)
* xattr, set in ISO image, -setfattr: Manip. (line 110) * xattr, set in ISO image, -setfattr: Manip. (line 110)
* xattr, set in ISO image, -setfattr_list: Manip. (line 126) * xattr, set in ISO image, -setfattr_list: Manip. (line 126)
@ -3922,50 +3910,50 @@ Node: Media6072
Node: Methods8502 Node: Methods8502
Node: Drives11049 Node: Drives11049
Node: Extras14315 Node: Extras14315
Node: Processing17640 Node: Processing17246
Node: Dialog21136 Node: Dialog20742
Node: Options22793 Node: Options22399
Node: AqDrive24361 Node: AqDrive23967
Node: Loading27267 Node: Loading26873
Node: Insert39700 Node: Insert39306
Node: SetInsert48057 Node: SetInsert47663
Node: Manip56624 Node: Manip56230
Node: CmdFind64500 Node: CmdFind64106
Node: Filter73058 Node: Filter72664
Node: Writing77407 Node: Writing77013
Node: SetWrite83696 Node: SetWrite83302
Node: Bootable92573 Node: Bootable92179
Node: Charset96290 Node: Charset95615
Node: Exception99044 Node: Exception98369
Node: DialogCtl103559 Node: DialogCtl102884
Node: Inquiry105904 Node: Inquiry105229
Node: Navigate110044 Node: Navigate109369
Node: Verify117398 Node: Verify116723
Node: Restore125818 Node: Restore125143
Node: Emulation132474 Node: Emulation131799
Node: Scripting138580 Node: Scripting137825
Node: Frontend144142 Node: Frontend143387
Node: Examples145343 Node: Examples144588
Node: ExDevices146512 Node: ExDevices145757
Node: ExCreate146994 Node: ExCreate146239
Node: ExDialog148268 Node: ExDialog147513
Node: ExGrowing149530 Node: ExGrowing148775
Node: ExModifying150332 Node: ExModifying149577
Node: ExBootable150833 Node: ExBootable150078
Node: ExCharset151380 Node: ExCharset150625
Node: ExPseudo152208 Node: ExPseudo151453
Node: ExCdrecord153102 Node: ExCdrecord152347
Node: ExMkisofs153417 Node: ExMkisofs152662
Node: ExGrowisofs154420 Node: ExGrowisofs153665
Node: ExException155544 Node: ExException154789
Node: ExTime155998 Node: ExTime155243
Node: ExIncBackup156457 Node: ExIncBackup155702
Node: ExRestore159929 Node: ExRestore159174
Node: ExRecovery160898 Node: ExRecovery160143
Node: Files161463 Node: Files160708
Node: Seealso162050 Node: Seealso161295
Node: Legal162574 Node: Legal161819
Node: CommandIdx163496 Node: CommandIdx162741
Node: ConceptIdx176724 Node: ConceptIdx175969
 
End Tag Table End Tag Table

View File

@ -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. The support for other boot image types is sparse.
@* @*
An MBR is generated together with the El Torito boot record if the boot image @c
bears the isohybrid signature of ISOLINUX 3.72 or later. It will occupy the @c >>> isohybrid MBR generation has been disabled on request
first 512 bytes of the emerging ISO image and enable booting from media which @c >>> of its inventor H. Peter Anvin on 31 Mar 2010
appear as hard disk rather than as CDROM. An MBR does not hamper CDROM booting. @c
The MBR of a follow-up session can get in effect only on overwriteable media. @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 @c man .PP
@sp 1 @sp 1
@cindex ACL, _definiton @cindex ACL, _definiton
@ -2580,8 +2586,9 @@ Most safe is the default: -boot_image "any" "discard".
@sp 1 @sp 1
A bootspec is a word of the form name=value and is used to describe the 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 activation of a ISOLINUX boot image by an El Torito record.
a MBR. The names "dir" and "bin_path" lead to boot image activation. @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 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 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 It is subject to normal -overwrite and -reassure processing if there is already
a file with the same name. a file with the same name.
@* @*
Bootspec "isohybrid=off" disables MBR generation, "isohybrid=on" prevents the @c
write session if not the isohybrid signature is found in the bin_path file. @c Bootspec "isohybrid=off" disables MBR generation, "isohybrid=on"
Default is "isohybrid=auto" which silently omits the MBR if the signature is @c prevents the write session if not the isohybrid signature is found
missing. @c in the bin_path file. Default is "isohybrid=auto" which silently
@c omits the MBR if the signature is missing.
@c
@end table @end table
@c man .TP @c man .TP
@c man .B Character sets: @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 Explicit arguments are expected by @minus{}@minus{}stdio_sync
and @minus{}@minus{}scdbackup_tag. 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}", Personalites "@strong{xorrisofs}", "@strong{genisoimage}",
and "@strong{genisofs}" are aliases for "mkisofs". and "@strong{genisofs}" are aliases for "mkisofs".
@* @*