From 1b3480301a0cc38390f2d9ae54a942066e6ea9be Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Tue, 30 Sep 2008 17:50:14 +0000 Subject: [PATCH] Small adjustments about -boot_image --- libisoburn/trunk/xorriso/xorriso.1 | 14 +++---- libisoburn/trunk/xorriso/xorriso_timestamp.h | 2 +- libisoburn/trunk/xorriso/xorrisoburn.c | 43 ++++---------------- 3 files changed, 15 insertions(+), 44 deletions(-) diff --git a/libisoburn/trunk/xorriso/xorriso.1 b/libisoburn/trunk/xorriso/xorriso.1 index c49a7f30..6d55ead6 100644 --- a/libisoburn/trunk/xorriso/xorriso.1 +++ b/libisoburn/trunk/xorriso/xorriso.1 @@ -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 diff --git a/libisoburn/trunk/xorriso/xorriso_timestamp.h b/libisoburn/trunk/xorriso/xorriso_timestamp.h index d35f3f01..77f58a9d 100644 --- a/libisoburn/trunk/xorriso/xorriso_timestamp.h +++ b/libisoburn/trunk/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2008.09.30.102753" +#define Xorriso_timestamP "2008.09.30.174925" diff --git a/libisoburn/trunk/xorriso/xorrisoburn.c b/libisoburn/trunk/xorriso/xorrisoburn.c index 47fd3a1e..836aa7a1 100644 --- a/libisoburn/trunk/xorriso/xorrisoburn.c +++ b/libisoburn/trunk/xorriso/xorrisoburn.c @@ -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);