Small adjustments about -boot_image
This commit is contained in:
parent
6af8449f5a
commit
d5ec0342cc
@ -1369,18 +1369,18 @@ ISOLINUX wiki.
|
||||
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.
|
||||
Contrary to published specifications many BIOSes 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
|
||||
If ISOLINUX is known to be present on media then it is advised to patch it
|
||||
when a follow-up 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
|
||||
@ -1414,7 +1414,7 @@ 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 .
|
||||
directory /isolinux or in /boot/isolinux .
|
||||
In that case it suffices to use as bootspec the text "dir=/isolinux" or
|
||||
"dir=/boot/isolinux". E.g.:
|
||||
.br
|
||||
|
@ -1 +1 @@
|
||||
#define Xorriso_timestamP "2008.09.30.102753"
|
||||
#define Xorriso_timestamP "2008.09.30.174925"
|
||||
|
@ -952,6 +952,13 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
strcpy(cpt, "boot.cat");
|
||||
}
|
||||
|
||||
sprintf(xorriso->info_text, "Activating alleged isolinux boot image %s",
|
||||
Text_shellsafe(xorriso->boot_image_bin_path, sfe, 0));
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
||||
sprintf(xorriso->info_text, "Creating El Torito boot catalog file %s",
|
||||
Text_shellsafe(xorriso->boot_image_cat_path, sfe, 0));
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
||||
|
||||
ret= Xorriso_node_from_path(xorriso, image, xorriso->boot_image_bin_path,
|
||||
&node, 1);
|
||||
if(ret <= 0) {
|
||||
@ -6766,48 +6773,12 @@ int Xorriso_burn_track(struct XorrisO *xorriso, off_t write_start_address,
|
||||
ret= 0; goto ex;
|
||||
}
|
||||
|
||||
#ifndef NIX
|
||||
|
||||
if(flag & 1) {
|
||||
ret= Xorriso_update_iso_lba0(xorriso, nwa, isosize, head_buffer, NULL,
|
||||
flag & 2);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
/* Update ISO header at lba 0 */
|
||||
if((flag&1) && nwa >= 32) {
|
||||
if(!do_isosize) {
|
||||
/* head_buffer was not filled yet. Read it from output media. */
|
||||
ret= isoburn_read_iso_head(drive, nwa, &isosize, head_buffer, 2);
|
||||
if(ret<=0) {
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
sprintf(xorriso->info_text,
|
||||
"Cannot read freshly written ISO image head");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
ret= 0; goto ex;
|
||||
}
|
||||
}
|
||||
/* patch ISO header */
|
||||
full_size= nwa + isosize;
|
||||
headpt= head_buffer + 32*1024;
|
||||
for(i=0;i<4;i++)
|
||||
headpt[87-i]= headpt[80+i]= (full_size >> (8*i)) & 0xff;
|
||||
ret= burn_random_access_write(drive, (off_t) 0, head_buffer,
|
||||
(off_t) (64*1024), 1);
|
||||
if(ret<=0) {
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
sprintf(xorriso->info_text,
|
||||
"Cannot write new ISO image head to LBA 0");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
ret= 0; goto ex;
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* NIX */
|
||||
|
||||
sprintf(xorriso->info_text, "Writing to %s completed sucessfully.\n\n",
|
||||
Text_shellsafe(xorriso->outdev,sfe,0));
|
||||
Xorriso_info(xorriso, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user