Small adjustments about -boot_image
This commit is contained in:
parent
7e03f24050
commit
1b3480301a
@ -1369,18 +1369,18 @@ ISOLINUX wiki.
|
|||||||
The support for other boot image types is sparse.
|
The support for other boot image types is sparse.
|
||||||
.br
|
.br
|
||||||
|
|
||||||
Typically a BIOS will load an El Torito object from the first session on media
|
Contrary to published specifications many BIOSes will load an El Torito
|
||||||
and not from the last one, which gets mounted by default. This makes no
|
object from the first session on media and not from the last one, which
|
||||||
problems with overwriteable media, because they appear to inadverted readers
|
gets mounted by default. This makes no problems with overwriteable media,
|
||||||
as one single session.
|
because they appear to inadverted readers as one single session.
|
||||||
.br
|
.br
|
||||||
With multi-session media CD-R[W], DVD-R[W], DVD+R, this implies that the whole
|
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
|
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
|
session still has to bear all files which the booted system expects after
|
||||||
eventually mounting the ISO image.
|
eventually mounting the ISO image.
|
||||||
.br
|
.br
|
||||||
If ISOLINUX is known to be present on appendable media then it is advised
|
If ISOLINUX is known to be present on media then it is advised to patch it
|
||||||
to patch it when a new session gets written. But one should not rely on the
|
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
|
capability to influence the bootability of the existing sessions, unless one
|
||||||
can assume overwriteable media.
|
can assume overwriteable media.
|
||||||
.TP
|
.TP
|
||||||
@ -1414,7 +1414,7 @@ this may have few effect at boot time. See above.
|
|||||||
.br
|
.br
|
||||||
The ISOLINUX files have to be added to the ISO image by normal means
|
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
|
(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
|
In that case it suffices to use as bootspec the text "dir=/isolinux" or
|
||||||
"dir=/boot/isolinux". E.g.:
|
"dir=/boot/isolinux". E.g.:
|
||||||
.br
|
.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");
|
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,
|
ret= Xorriso_node_from_path(xorriso, image, xorriso->boot_image_bin_path,
|
||||||
&node, 1);
|
&node, 1);
|
||||||
if(ret <= 0) {
|
if(ret <= 0) {
|
||||||
@ -6766,48 +6773,12 @@ int Xorriso_burn_track(struct XorrisO *xorriso, off_t write_start_address,
|
|||||||
ret= 0; goto ex;
|
ret= 0; goto ex;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef NIX
|
|
||||||
|
|
||||||
if(flag & 1) {
|
if(flag & 1) {
|
||||||
ret= Xorriso_update_iso_lba0(xorriso, nwa, isosize, head_buffer, NULL,
|
ret= Xorriso_update_iso_lba0(xorriso, nwa, isosize, head_buffer, NULL,
|
||||||
flag & 2);
|
flag & 2);
|
||||||
if(ret <= 0)
|
if(ret <= 0)
|
||||||
goto ex;
|
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",
|
sprintf(xorriso->info_text, "Writing to %s completed sucessfully.\n\n",
|
||||||
Text_shellsafe(xorriso->outdev,sfe,0));
|
Text_shellsafe(xorriso->outdev,sfe,0));
|
||||||
Xorriso_info(xorriso, 0);
|
Xorriso_info(xorriso, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user