From 3b6fb910e4409800aa70962d6dd6b094dc9496bb Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Tue, 30 Sep 2014 18:18:58 +0000 Subject: [PATCH] New -boot_image bootspecs partition_table=gpt_basdat, gpt_hfsplus, apm_hfsplus --- xorriso/opts_a_c.c | 22 ++++++- xorriso/xorriso.1 | 22 +++++-- xorriso/xorriso.info | 119 ++++++++++++++++++++---------------- xorriso/xorriso.texi | 22 +++++-- xorriso/xorriso_timestamp.h | 2 +- 5 files changed, 121 insertions(+), 66 deletions(-) diff --git a/xorriso/opts_a_c.c b/xorriso/opts_a_c.c index 0daa2704..525694d0 100644 --- a/xorriso/opts_a_c.c +++ b/xorriso/opts_a_c.c @@ -716,7 +716,7 @@ treatment_patch:; } else if(strcmp(treatpt, "discard")==0) { xorriso->keep_boot_image= 0; - xorriso->patch_isolinux_image= (xorriso->patch_isolinux_image & ~3) | 0; + xorriso->patch_isolinux_image= (xorriso->patch_isolinux_image & ~0x3ff) | 0; xorriso->boot_image_bin_path[0]= 0; xorriso->patch_system_area= 0; if((xorriso->system_area_options & 0xfc ) == 0) @@ -983,6 +983,26 @@ treatment_patch:; goto ex; } else was_ok= 0; + } else if(strncmp(treatpt, "partition_entry=", 16)==0) { + if(strcmp(formpt, "isolinux") != 0) { + sprintf(xorriso->info_text, + "-boot_image %s partition_entry=%s : Wrong type. Need \"isolinux\".", + formpt, treatpt + 16); + Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); + {ret= 0; goto ex;} + } + if(strcmp(treatpt + 16, "gpt_basdat") == 0) { + xorriso->patch_isolinux_image = (xorriso->patch_isolinux_image & ~0x0fc) | + (1 << 2); + } else if(strcmp(treatpt + 16, "gpt_hfsplus") == 0) { + xorriso->patch_isolinux_image = (xorriso->patch_isolinux_image & ~0x0fc) | + (2 << 2); + } else if(strcmp(treatpt + 16, "apm_hfsplus") == 0) { + xorriso->patch_isolinux_image = xorriso->patch_isolinux_image | (1 << 8); + } else if(strcmp(treatpt + 16, "off") == 0) { + xorriso->patch_isolinux_image = (xorriso->patch_isolinux_image & ~0x1fc); + } else + was_ok= 0; } else if(strncmp(treatpt, "partition_offset=", 17)==0) { u= 0; diff --git a/xorriso/xorriso.1 b/xorriso/xorriso.1 index 45e1128e..94a3903a 100644 --- a/xorriso/xorriso.1 +++ b/xorriso/xorriso.1 @@ -9,7 +9,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 "Version 1.3.9, Jun 28, 2014" +.TH XORRISO 1 "Version 1.3.9, Sep 28, 2014" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -2977,8 +2977,8 @@ on the media type this may have few effect at boot time. See above. The boot image and its supporting files have to be added to the ISO image by normal means (image loading, \-map, \-add, ...). In case of ISOLINUX the files should reside either in ISO image 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.: +In that case it suffices to use as bootspec the text "\fBdir=/isolinux\fR" +or "dir=/boot/isolinux". E.g.: .br \-boot_image isolinux dir=/boot/isolinux .br @@ -3056,10 +3056,22 @@ disk file to the very start of the ISO image. This System Area is reserved for system dependent boot software, e.g. an MBR which can be used to boot from USB stick or hard disk. .br -Other than a El Torito boot image, the file disk_path needs not to be added +Other than an El Torito boot image, the file disk_path needs not to be added to the ISO image. .br -\-boot_image isolinux system_area= implies "partition_table=on". +\fB\-boot_image isolinux system_area=\fR implies "partition_table=on". +In this case, the disk path should lead to one of the SYSLINUX files +isohdp[fp]x*.bin or to a file which was derived from one of those files. +E.g. to the first 512 bytes from an ISOLINUX isohybrid ISO image. +.br +In this case, El Torito boot images (dir=, bin_path=, efi_path=) +may be augmented by +\fBisolinux partition_entry=gpt_basdat\fR +or \fBisolinux partition_entry=gpt_hfsplus\fR, +and by \fBisolinux partition_entry=apm_hfsplus\fR. +The boot image will then be mentioned in GPT as Basic Data +or GPT HFS+ partition, and in APM as HFS+ partition. +The first three GPT partitions will also be marked by MBR partitions. .br \fBgrub2_mbr=\fRdisk_path works like "any" system_area= with additional patching for modern GRUB MBRs. The content start address of the first boot diff --git a/xorriso/xorriso.info b/xorriso/xorriso.info index 7d17727a..404f5ee7 100644 --- a/xorriso/xorriso.info +++ b/xorriso/xorriso.info @@ -2624,7 +2624,7 @@ filesystem and announced by an MBR partition table entry. ISO image by normal means (image loading, -map, -add, ...). In case of ISOLINUX the files should reside either in ISO image directory /isolinux or in /boot/isolinux . In that case it - suffices to use as bootspec the text "dir=/isolinux" or + suffices to use as bootspec the text "*dir=/isolinux*" or "dir=/boot/isolinux". E.g.: -boot_image isolinux dir=/boot/isolinux which bundles these individual settings: @@ -2686,9 +2686,20 @@ filesystem and announced by an MBR partition table entry. disk file to the very start of the ISO image. This System Area is reserved for system dependent boot software, e.g. an MBR which can be used to boot from USB stick or hard disk. - Other than a El Torito boot image, the file disk_path needs not to - be added to the ISO image. - -boot_image isolinux system_area= implies "partition_table=on". + Other than an El Torito boot image, the file disk_path needs not + to be added to the ISO image. + *-boot_image isolinux system_area=* implies "partition_table=on". + In this case, the disk path should lead to one of the SYSLINUX + files isohdp[fp]x*.bin or to a file which was derived from one of + those files. E.g. to the first 512 bytes from an ISOLINUX + isohybrid ISO image. + In this case, El Torito boot images (dir=, bin_path=, efi_path=) + may be augmented by *isolinux partition_entry=gpt_basdat* or + *isolinux partition_entry=gpt_hfsplus*, and by *isolinux + partition_entry=apm_hfsplus*. The boot image will then be + mentioned in GPT as Basic Data or GPT HFS+ partition, and in APM + as HFS+ partition. The first three GPT partitions will also be + marked by MBR partitions. *grub2_mbr=*disk_path works like "any" system_area= with additional patching for modern GRUB MBRs. The content start address of the first boot image is converted to a count of 512 byte blocks, and @@ -5006,7 +5017,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -alter_date sets timestamps in ISO image: Manip. (line 154) * -alter_date_r sets timestamps in ISO image: Manip. (line 187) * -append_partition adds arbitrary file after image end: Bootable. - (line 268) + (line 279) * -application_id sets application id: SetWrite. (line 196) * -application_use sets application use field: SetWrite. (line 262) * -as emulates mkisofs or cdrecord: Emulation. (line 13) @@ -5244,10 +5255,10 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * ACL, set in ISO image, -setfacl_r: Manip. (line 105) * ACL, show in ISO image, -getfacl: Navigate. (line 70) * ACL, show in ISO image, -getfacl_r: Navigate. (line 77) -* APM block size: Bootable. (line 259) +* APM block size: Bootable. (line 270) * APM, _definition: Extras. (line 41) * Appendable media, _definition: Media. (line 38) -* Appended Filesystem Image, -append_partition: Bootable. (line 268) +* Appended Filesystem Image, -append_partition: Bootable. (line 279) * Automatic execution order, of arguments, -x: ArgSort. (line 16) * Backslash Interpretation, _definition: Processing. (line 52) * Backup, enable fast incremental, -disk_dev_ino: Loading. (line 217) @@ -5264,13 +5275,13 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Character Set, for output, -out_charset: SetWrite. (line 276) * Character set, learn from image, -auto_charset: Loading. (line 122) * Character Set, of terminal, -local_charset: Charset. (line 58) -* CHRP partition, _definition: Bootable. (line 161) +* CHRP partition, _definition: Bootable. (line 172) * Closed media, _definition: Media. (line 43) * Comment, #: Scripting. (line 173) * Control, signal handling, -signal_handling: Exception. (line 69) * Create, new ISO image, _definition: Methods. (line 6) -* Cylinder alignment, _definition: Bootable. (line 201) -* Cylinder size, _definition: Bootable. (line 190) +* Cylinder alignment, _definition: Bootable. (line 212) +* Cylinder size, _definition: Bootable. (line 201) * Damaged track and session, close, -close_damaged: Writing. (line 170) * Delete, from ISO image, -rm: Manip. (line 21) * Delete, from ISO image, -rm_r: Manip. (line 28) @@ -5302,7 +5313,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Drive, write and eject, -commit_eject: Writing. (line 56) * EA, _definition: Extras. (line 65) * ECMA-119, _definition: Model. (line 6) -* EFI system partition, _definition: Bootable. (line 170) +* EFI system partition, _definition: Bootable. (line 181) * El Torito, _definition: Extras. (line 19) * Emulation, -as: Emulation. (line 13) * Emulation, .mkisofsrc, -read_mkisofsrc: Emulation. (line 153) @@ -5329,10 +5340,10 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Group, in ISO image, -chgrp_r: Manip. (line 62) * Growing, _definition: Methods. (line 19) * Hard links, control handling, -hardlinks: Loading. (line 134) -* HFS+ allocation block size: Bootable. (line 256) -* HFS+ serial number: Bootable. (line 253) +* HFS+ allocation block size: Bootable. (line 267) +* HFS+ serial number: Bootable. (line 264) * hidden, set in ISO image, -hide: Manip. (line 191) -* HP-PA boot sector, production: Bootable. (line 233) +* HP-PA boot sector, production: Bootable. (line 244) * Image reading, cache size, -data_cache_size: Loading. (line 296) * Image, _definition: Model. (line 9) * Image, demand volume ID, -assert_volid: Loading. (line 108) @@ -5390,7 +5401,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Media, format, -format: Writing. (line 91) * Media, list formats, -list_formats: Writing. (line 134) * Media, list write speeds, -list_speeds: Writing. (line 146) -* MIPS boot file, activation: Bootable. (line 212) +* MIPS boot file, activation: Bootable. (line 223) * mkisofs, Emulation: Emulation. (line 16) * Modifying, _definition: Methods. (line 27) * Multi-session media, _definition: Media. (line 7) @@ -5417,15 +5428,15 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Ownership, global in ISO image, -uid: SetWrite. (line 282) * Ownership, in ISO image, -chown: Manip. (line 49) * Ownership, in ISO image, -chown_r: Manip. (line 54) -* Partition offset, _definition: Bootable. (line 180) -* Partition table, _definition: Bootable. (line 141) +* Partition offset, _definition: Bootable. (line 191) +* Partition table, _definition: Bootable. (line 152) * Pathspec, _definition: SetInsert. (line 124) * Pattern expansion, _definition: Processing. (line 24) * Pattern expansion, for disk paths, -disk_pattern: Insert. (line 36) * Pattern expansion, for ISO paths, -iso_rr_pattern: Manip. (line 10) * Permissions, in ISO image, -chmod: Manip. (line 65) * Permissions, in ISO image, -chmod_r: Manip. (line 77) -* PReP partition, _definition: Bootable. (line 165) +* PReP partition, _definition: Bootable. (line 176) * Problems, reporting: Bugreport. (line 6) * Process, consolidate text output, -pkt_output: Frontend. (line 7) * Process, control abort on error, -abort_on: Exception. (line 27) @@ -5484,8 +5495,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Session, mount parameters, -mount_opts: Inquiry. (line 68) * Session, select as input, -load: Loading. (line 35) * Sorting order, for -x, -list_arg_sorting: ArgSort. (line 27) -* SUN Disk Label, production: Bootable. (line 223) -* SUN SPARC boot images, activation: Bootable. (line 289) +* SUN Disk Label, production: Bootable. (line 234) +* SUN SPARC boot images, activation: Bootable. (line 300) * Symbolic link, create, -lns: Insert. (line 176) * System area, _definition: Bootable. (line 127) * Table-of-content, search sessions, -rom_toc_scan: Loading. (line 238) @@ -5553,39 +5564,39 @@ Node: Filter94263 Node: Writing98885 Node: SetWrite109016 Node: Bootable129722 -Node: Jigdo147089 -Node: Charset151336 -Node: Exception154651 -Node: DialogCtl160771 -Node: Inquiry163369 -Node: Navigate170800 -Node: Verify179098 -Node: Restore188925 -Node: Emulation197529 -Node: Scripting207917 -Node: Frontend215688 -Node: Examples225295 -Node: ExDevices226473 -Node: ExCreate227139 -Node: ExDialog228424 -Node: ExGrowing229689 -Node: ExModifying230494 -Node: ExBootable230998 -Node: ExCharset231550 -Node: ExPseudo232442 -Node: ExCdrecord233340 -Node: ExMkisofs233657 -Node: ExGrowisofs234997 -Node: ExException236132 -Node: ExTime236586 -Node: ExIncBackup237045 -Node: ExRestore241035 -Node: ExRecovery241968 -Node: Files242538 -Node: Seealso243837 -Node: Bugreport244560 -Node: Legal245141 -Node: CommandIdx246152 -Node: ConceptIdx263033 +Node: Jigdo147755 +Node: Charset152002 +Node: Exception155317 +Node: DialogCtl161437 +Node: Inquiry164035 +Node: Navigate171466 +Node: Verify179764 +Node: Restore189591 +Node: Emulation198195 +Node: Scripting208583 +Node: Frontend216354 +Node: Examples225961 +Node: ExDevices227139 +Node: ExCreate227805 +Node: ExDialog229090 +Node: ExGrowing230355 +Node: ExModifying231160 +Node: ExBootable231664 +Node: ExCharset232216 +Node: ExPseudo233108 +Node: ExCdrecord234006 +Node: ExMkisofs234323 +Node: ExGrowisofs235663 +Node: ExException236798 +Node: ExTime237252 +Node: ExIncBackup237711 +Node: ExRestore241701 +Node: ExRecovery242634 +Node: Files243204 +Node: Seealso244503 +Node: Bugreport245226 +Node: Legal245807 +Node: CommandIdx246818 +Node: ConceptIdx263699  End Tag Table diff --git a/xorriso/xorriso.texi b/xorriso/xorriso.texi index caee3ad2..d9c68bd7 100644 --- a/xorriso/xorriso.texi +++ b/xorriso/xorriso.texi @@ -50,7 +50,7 @@ @c man .\" First parameter, NAME, should be all caps @c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection @c man .\" other parameters are allowed: see man(7), man(1) -@c man .TH XORRISO 1 "Version 1.3.9, Jun 28, 2014" +@c man .TH XORRISO 1 "Version 1.3.9, Sep 28, 2014" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -3498,8 +3498,8 @@ on the media type this may have few effect at boot time. See above. The boot image and its supporting files have to be added to the ISO image by normal means (image loading, -map, -add, ...). In case of ISOLINUX the files should reside either in ISO image 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.: +In that case it suffices to use as bootspec the text "@strong{dir=/isolinux}" +or "dir=/boot/isolinux". E.g.: @* -boot_image isolinux dir=/boot/isolinux @* @@ -3579,10 +3579,22 @@ disk file to the very start of the ISO image. This System Area is reserved for system dependent boot software, e.g. an MBR which can be used to boot from USB stick or hard disk. @* -Other than a El Torito boot image, the file disk_path needs not to be added +Other than an El Torito boot image, the file disk_path needs not to be added to the ISO image. @* --boot_image isolinux system_area= implies "partition_table=on". +@strong{-boot_image isolinux system_area=} implies "partition_table=on". +In this case, the disk path should lead to one of the SYSLINUX files +isohdp[fp]x*.bin or to a file which was derived from one of those files. +E.g. to the first 512 bytes from an ISOLINUX isohybrid ISO image. +@* +In this case, El Torito boot images (dir=, bin_path=, efi_path=) +may be augmented by +@strong{isolinux partition_entry=gpt_basdat} +or @strong{isolinux partition_entry=gpt_hfsplus}, +and by @strong{isolinux partition_entry=apm_hfsplus}. +The boot image will then be mentioned in GPT as Basic Data +or GPT HFS+ partition, and in APM as HFS+ partition. +The first three GPT partitions will also be marked by MBR partitions. @* @strong{grub2_mbr=}disk_path works like "any" system_area= with additional patching for modern GRUB MBRs. The content start address of the first boot diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index e06ba3b8..61764ad6 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2014.09.28.085819" +#define Xorriso_timestamP "2014.09.30.181738"