Adjustments about -boot_image after testing with various media types

This commit is contained in:
Thomas Schmitt 2008-09-30 10:28:46 +00:00
parent daadfc113d
commit 69a6b4f4a1
4 changed files with 36 additions and 20 deletions

View File

@ -2,7 +2,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 "Sep 26, 2008"
.TH XORRISO 1 "Sep 30, 2008"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -1367,6 +1367,22 @@ bootable. Emulation -as mkisofs supports the example options out of the
ISOLINUX wiki.
.br
The support for other boot image types is sparse.
.br
Typically a BIOS will load an El Torito object from the first session on media
and not from the last one, which gets mounted by default. This makes no
problems with overwriteable media, because they appear to inadverted readers
as one single session.
.br
With multi-session media CD-R[W], DVD-R[W], DVD+R, this implies that the whole
bootable system has to reside already in the first session and that the last
session still has to bear all files which the booted system expects after
eventually mounting the ISO image.
.br
If ISOLINUX is known to be present on appendable media then it is advised
to patch it when a new session gets written. But one should not rely on the
capability to influence the bootability of the existing sessions, unless one
can assume overwriteable media.
.TP
\fB\-boot_image\fR "any"|"isolinux" "discard"|"keep"|"patch"|bootspec
Defines the handling of an eventual El Torito object which has
@ -1378,7 +1394,7 @@ All types ("any") of El Torito boot images can be discarded or kept unaltered.
The latter makes only sense if the format of the boot image is
relocatable without content changes.
.br
An existing boot image of type "isolinux" can be discarded, or it can be
An existing boot image of type "isolinux" can be discarded or it can be
patched to match its relocation. In the latter case the resulting ISO image
stays bootable if the boot image was really produced by ISOLINUX.
.br
@ -1391,12 +1407,14 @@ boot image which is present on the input media.
Most safe is the default: "any" "discard".
.br
Regardless whether an El Torito boot image was detected or not, it is possible
to activate a set of ISOLINUX files for booting. An existing boot image gets
discarded, then.
The files have to be added to the ISO image by normal means (image loading,
-map, -add, ...) and should reside either in ISO image directory /isolinux or
/boot/isolinux .
On all media types it is possible to activate a set of ISOLINUX files
for booting 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 boot time. See above.
.br
The ISOLINUX files have to be added to the ISO image by normal means
(image loading, -map, -add, ...) and should reside either in ISO image
directory /isolinux or /boot/isolinux .
In that case it suffices to use as bootspec the text "dir=/isolinux" or
"dir=/boot/isolinux". E.g.:
.br
@ -2637,7 +2655,7 @@ to read and execute lines from the following files:
.br
The files are read in the sequence given above, but none of them is required
for xorriso to function properly.
.TP
.SS
.B Runtime control files:
.br
The default setting of -check_media abort_file= is:

View File

@ -9955,14 +9955,11 @@ int Xorriso_option_boot_image(struct XorrisO *xorriso, char *form,
} else
was_ok= 0;
} else if(strcmp(formpt, "isolinux")==0) {
if(strcmp(treatpt, "patch")==0) {
if(strcmp(treatpt, "patch")==0 ||
strcmp(treatpt, "keep")==0) { /* no real "keep" with ISOLINUX */
xorriso->keep_boot_image= 1;
xorriso->patch_isolinux_image= 1;
xorriso->boot_image_bin_path[0]= 0;
} else if(strcmp(treatpt, "keep")==0) {
xorriso->keep_boot_image= 1;
xorriso->patch_isolinux_image= 0;
xorriso->boot_image_bin_path[0]= 0;
} else if(strcmp(treatpt, "discard")==0) {
xorriso->keep_boot_image= 0;
xorriso->patch_isolinux_image= 0;
@ -11665,7 +11662,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" Generate Joliet info additional to Rock Ridge info.",
" -boot_image \"any\"|\"isolinux\" \"discard\"|\"keep\"|\"patch\"|\"dir=\"",
" \"bin_path=\"|\"cat_path=\"|\"load_size=\"",
" Whether to discard or keep an exiting El-Torito boot image.",
" Whether to discard or keep an exiting El Torito boot image.",
" ISOLINUX can be made bootable by dir=/ or dir=/isolinux",
" or dir=/boot/isolinux or by bin_path=... and cat_path=...",
" The ISOLINUX files need to be added to the ISO image by",
@ -11925,7 +11922,8 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
"",
"Compatibility emulation (argument list may be ended by list delimiter --):",
" -as mkisofs [-help|-version|-o|-R|-J|-V|-P|-f|-m|-exclude-list|-no-pad|",
" -M|-C|-graft-points|-path-list|pathspecs|-no-emul-boot|-b|-c]",
" -M|-C|-graft-points|-path-list|pathspecs|",
" -no-emul-boot|-b|-c|-boot-info-table|-boot-load-size]",
" Perform some mkisofs gestures, understand pathspecs as mkisofs",
" does. Commit happens outside emulation at usual occasions.",
" -as cdrecord [-help|-v|dev=|speed=|blank=|fs=|-eject|-atip|padsize=|path|-]",

View File

@ -1 +1 @@
#define Xorriso_timestamP "2008.09.30.102243"
#define Xorriso_timestamP "2008.09.30.102753"

View File

@ -643,7 +643,9 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, int flag)
Xorriso_process_msg_queues(xorriso,0);
isoburn_ropt_get_size_what(ropts, &size, &has_what);
if(has_what & isoburn_ropt_has_el_torito) {
if(xorriso->patch_isolinux_image)
if(xorriso->boot_image_bin_path[0])
boot_fate= "replaced by an isolinux image";
else if(xorriso->patch_isolinux_image)
boot_fate= "patched as isolinux image";
else if(xorriso->keep_boot_image)
boot_fate= "kept unchanged";
@ -867,7 +869,6 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
ElToritoBootImage *bootimg;
enum eltorito_boot_media_type emul_type= ELTORITO_NO_EMUL;
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
"on attempt to write", 2);
if(ret<=0)
@ -1094,7 +1095,6 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
{ret= 0; goto ex;}
}
isoburn_igopt_get_effective_lba(sopts, &(xorriso->session_lba));
ret= Xorriso_make_write_options(xorriso, drive, &burn_options, 0);