From 8fbd7bbf699f3226f85e714b5dfa25133c9f0dfd Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Thu, 23 Apr 2015 14:23:45 +0000 Subject: [PATCH] Enabled use of libisofs interval reader in xorriso --- libisoburn/trunk/xorriso/write_run.c | 149 ++++++++++-- libisoburn/trunk/xorriso/xorriso.1 | 74 +++++- libisoburn/trunk/xorriso/xorriso.info | 194 +++++++++------- libisoburn/trunk/xorriso/xorriso.texi | 77 ++++++- libisoburn/trunk/xorriso/xorriso_timestamp.h | 2 +- libisoburn/trunk/xorriso/xorrisofs.1 | 80 ++++++- libisoburn/trunk/xorriso/xorrisofs.info | 228 +++++++++++-------- libisoburn/trunk/xorriso/xorrisofs.texi | 86 ++++++- 8 files changed, 674 insertions(+), 216 deletions(-) diff --git a/libisoburn/trunk/xorriso/write_run.c b/libisoburn/trunk/xorriso/write_run.c index 935f8340..c1e26351 100644 --- a/libisoburn/trunk/xorriso/write_run.c +++ b/libisoburn/trunk/xorriso/write_run.c @@ -340,22 +340,69 @@ int Xorriso_auto_format(struct XorrisO *xorriso, int flag) } +/* @param flag bit0= fail on indev == outdev with "imported_iso" + bit1= fail on indev == NULL with "imported_iso" +*/ +int Xorriso_check_intvl_string(struct XorrisO *xorriso, char **part_image, + int flag) +{ + char *cpt, *ipt, *orig; + + orig= *part_image; + if(strncmp(*part_image, "--interval:", 11) != 0) + return(0); + if(strchr(*part_image + 11, ':') == NULL) + return(0); + (*part_image)+= 11; + if(!(flag & 3)) + return(1); + + cpt= strchr(*part_image, ':'); + ipt= strstr(*part_image, "imported_iso"); + if(ipt == NULL || ipt > cpt) + return(1); + + if((flag & 2) && xorriso->in_drive_handle == NULL) { + sprintf(xorriso->info_text, + "Interval reader lacks of -indev to read from \"imported_iso\""); + Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); + goto failure; + } + + if(!(flag & 1)) + return(1); + if(xorriso->out_drive_handle != xorriso->in_drive_handle) + return(1); + sprintf(xorriso->info_text, + "Interval reader may not read from \"imported_iso\" during write run to same drive"); + Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); + +failure:; + sprintf(xorriso->info_text, "Rejected: "); + Text_shellsafe(orig, xorriso->info_text, 1); + Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); + return(-1); +} + + int Xorriso_set_system_area(struct XorrisO *xorriso, struct burn_drive *drive, IsoImage *img, struct isoburn_imgen_opts *sopts, int flag) { int ret, options, system_area_options, iso_lba= -1, start_lba, image_blocks; - int sa_loaded; + int sa_loaded, read_count, i, read_sum= 0; char volid[33]; FILE *fp= NULL; - char *buf= NULL, *bufpt= NULL; - off_t hd_lba; + char *buf= NULL, *bufpt= NULL, *intvl; + uint8_t *intvl_buf; + off_t hd_lba, byte_count; unsigned char *ub; ElToritoBootImage *bootimg; IsoFile *bootimg_node; IsoNode *sparc_core_node; uint32_t offst; enum burn_disc_status state; + struct iso_interval_reader *ivr = NULL; if(xorriso->grub2_sparc_core[0]) { ret= Xorriso_node_from_path(xorriso, img, xorriso->grub2_sparc_core, @@ -447,19 +494,48 @@ int Xorriso_set_system_area(struct XorrisO *xorriso, struct burn_drive *drive, memset(buf, 0, 32768); {ret= 1; goto do_set;} } - ret= Xorriso_afile_fopen(xorriso, xorriso->system_area_disk_path, - "rb", &fp, 2); - if(ret <= 0) + + intvl= xorriso->system_area_disk_path; + ret= Xorriso_check_intvl_string(xorriso, &intvl, 2); + if(ret < 0) { {ret= 0; goto ex;} - ret= fread(buf, 1, 32768, fp); - if(ret < 32768) { - if(ferror(fp)) { + } else if(ret > 0) { + ret= iso_interval_reader_new(img, intvl, &ivr, &byte_count, 0); + Xorriso_process_msg_queues(xorriso, 0); + if(ret < 0) { +intvl_reader_err:; sprintf(xorriso->info_text, "Error when reading -boot_image system_area="); Text_shellsafe(xorriso->system_area_disk_path, xorriso->info_text, 1); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", 0); {ret= 0; goto ex;} } + for(i= 0; i < 16; i++) { + intvl_buf= (uint8_t *) (buf + 2048 * i); + ret= iso_interval_reader_read(ivr, intvl_buf, &read_count, 0); + Xorriso_process_msg_queues(xorriso, 0); + if(ret == 0) + break; + if(ret < 0) + goto intvl_reader_err; + read_sum+= read_count; + } + ret= read_sum; + } else { + ret= Xorriso_afile_fopen(xorriso, xorriso->system_area_disk_path, + "rb", &fp, 2); + if(ret <= 0) + {ret= 0; goto ex;} + ret= fread(buf, 1, 32768, fp); + if(ret < 32768) { + if(ferror(fp)) { + sprintf(xorriso->info_text, + "Error when reading -boot_image system_area="); + Text_shellsafe(xorriso->system_area_disk_path, xorriso->info_text, 1); + Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", 0); + {ret= 0; goto ex;} + } + } } do_set:; @@ -502,6 +578,7 @@ do_set:; ex:; if(fp != NULL && fp != stdin) fclose(fp); + iso_interval_reader_destroy(&ivr, 0); Xorriso_free_meM(buf); return(ret); } @@ -752,7 +829,7 @@ int Xorriso_retry_write_session(struct XorrisO *xorriso, int flag) int Xorriso_make_iso_write_opts(struct XorrisO *xorriso, IsoImage *image, struct isoburn_imgen_opts *sopts, int flag) { - int ext, i, ret, pad_by_libisofs= 0, is_bootable= 0, relax; + int ext, i, ret, pad_by_libisofs= 0, is_bootable= 0, relax, intvl_string= 0; char *out_cs, *part_image; IsoNode *root_node; uint32_t padding; @@ -814,12 +891,20 @@ int Xorriso_make_iso_write_opts(struct XorrisO *xorriso, IsoImage *image, xorriso->scdbackup_tag_time, xorriso->scdbackup_tag_written); if(xorriso->prep_partition[0]) { - ret= isoburn_igopt_set_prep_partition(sopts, xorriso->prep_partition, 0); + part_image= xorriso->prep_partition; + intvl_string= Xorriso_check_intvl_string(xorriso, &part_image, 3); + if(intvl_string < 0) + {ret= 0; goto ex;} + ret= isoburn_igopt_set_prep_partition(sopts, part_image, intvl_string); if(ret <= 0) {ret= 0; goto ex;} } if(xorriso->efi_boot_partition[0]) { - ret= isoburn_igopt_set_efi_bootp(sopts, xorriso->efi_boot_partition, 0); + part_image= xorriso->efi_boot_partition; + intvl_string= Xorriso_check_intvl_string(xorriso, &part_image, 3); + if(intvl_string < 0) + {ret= 0; goto ex;} + ret= isoburn_igopt_set_efi_bootp(sopts, part_image, intvl_string); if(ret <= 0) {ret= 0; goto ex;} } @@ -832,8 +917,12 @@ int Xorriso_make_iso_write_opts(struct XorrisO *xorriso, IsoImage *image, part_image= ""; else part_image= xorriso->appended_partitions[i]; + intvl_string= Xorriso_check_intvl_string(xorriso, &part_image, 3); + if(intvl_string < 0) + {ret= 0; goto ex;} isoburn_igopt_set_partition_img(sopts, i + 1, xorriso->appended_part_types[i], part_image); + isoburn_igopt_set_part_flag(sopts, i + 1, intvl_string); } isoburn_igopt_set_appended_as_gpt(sopts, xorriso->appended_as_gpt); isoburn_igopt_set_disc_label(sopts, xorriso->ascii_disc_label); @@ -2831,13 +2920,45 @@ int Xorriso_update_iso_lba0(struct XorrisO *xorriso, int iso_lba, int isosize, int Xorriso_set_system_area_path(struct XorrisO *xorriso, char *path, int flag) { int ret; - char *eff_src= NULL; + char *eff_src= NULL, *intvl; + struct iso_interval_reader *ivr= NULL; + off_t byte_count; + IsoImage *img= NULL; + struct burn_drive_info *source_dinfo; + struct burn_drive *source_drive; if(path[0] == 0) { xorriso->system_area_disk_path[0]= 0; {ret= 1; goto ex;} } Xorriso_alloc_meM(eff_src, char, SfileadrL); + + intvl = path; + ret = Xorriso_check_intvl_string(xorriso, &intvl, 0); + if(ret > 0) { + /* Check for syntactical correctness */ + if(xorriso->in_drive_handle != NULL) { + ret= Xorriso_get_drive_handles(xorriso, &source_dinfo, &source_drive, + "on attempt to verify interval reader string", 0); + if(ret<=0) + goto ex; + img= isoburn_get_attached_image(source_drive); + } + ret= iso_interval_reader_new(img, intvl, &ivr, &byte_count, 1); + Xorriso_process_msg_queues(xorriso, 0); + if(ret < 0) { + sprintf(xorriso->info_text, + "Given path for system area is not accepted by interval reader"); + Text_shellsafe(eff_src, xorriso->info_text, 1); + Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); + {ret= 0; goto ex;} + } + iso_interval_reader_destroy(&ivr, 0); + ret= Sfile_str(xorriso->system_area_disk_path, path, 0); + if(ret <= 0) + {ret= -1; goto ex;} + ret= 1; goto ex; + } ret= Xorriso_normalize_img_path(xorriso, xorriso->wdx, path, eff_src, 2|4|16); if(ret < 0) goto ex; @@ -2860,6 +2981,8 @@ int Xorriso_set_system_area_path(struct XorrisO *xorriso, char *path, int flag) ret= 1; ex: Xorriso_free_meM(eff_src); + if(img != NULL) + iso_image_unref(img); return(ret); } diff --git a/libisoburn/trunk/xorriso/xorriso.1 b/libisoburn/trunk/xorriso/xorriso.1 index 97252a58..daf34255 100644 --- a/libisoburn/trunk/xorriso/xorriso.1 +++ b/libisoburn/trunk/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, Feb 28, 2015" +.TH XORRISO 1 "Version 1.3.9, Apr 20, 2015" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -2925,6 +2925,60 @@ DEC Boot Block for old MIPS DECstation, SUN Disk Label for SPARC machines, HP\-PA boot sector for HP PA\-RISC machines, DEC Alpha SRM boot sector for old DEC Alpha machines. +.PP +Several of the following commands expect disk paths as input but also accept +description strings for the libisofs interval reader, which is able to cut +out data from disk files or \-indev and to zeroize parts of the content: +command \-append_partition, +boot specs system_area=, grub2_mbr=, prep_boot_part=, efi_boot_part=. +.br +The description string consists +of the following components, separated by colon ':' +.br + "\-\-interval:"Flags":"Interval":"Zeroizers":"Source +.br +The component "\-\-interval" states that this is not +a plain disk path but rather an interval reader description string. +The component Flags modifies the further interpretation: +.br +"local_fs" demands to read from a file depicted by the path in Source. +.br +"imported_iso" demands to read from the \-indev. This works only if \-outdev +is not the same as \-indev. The Source component is ignored. +.br +The component Interval consists of two byte address numbers separated by a "\-" character. E.g. "0\-429" means to read bytes 0 to 429. +.br +The component Zeroizers consists of zero or more comma separated strings. +They define which part of the read data to zeroize. Byte number 0 means +the byte read from the Interval start address. +Each string may be one of: +.br +"zero_mbrpt" demands to zeroize the MBR partition table if +bytes 510 and 511 bear the MBR signature 0x55 0xaa. +.br +"zero_gpt" demands to check for a GPT header in bytes 512 to 1023, +to zeroize it and its partition table blocks. +.br +"zero_apm" demands to check for an APM block 0 and to zeroize +its partition table blocks. +.br +Start_byte"\-"End_byte demands to zeroize the read\-in bytes beginning +with number Start_byte and ending after End_byte. +.br +The component Source is the file path with flag "local_fs", and ignored with +flag "imported_iso". +.br +Byte numbers may be scaled by a suffix out of {k,m,g,t,s,d} meaning +multiplication by {1024, 1024k, 1024m, 1024g, 2048, 512}. A scaled value +end number depicts the last byte of the scaled range. +.br +E.g. "0d\-0d" is "0\-511". +.br +Examples: +.br + "local_fs:0\-32767:zero_mbrpt,zero_gpt,440\-443:/tmp/template.iso" +.br + "imported_iso:45056d\-47103d::" .br .TP \fB\-boot_image\fR "any"|"isolinux"|"grub" @@ -3140,12 +3194,14 @@ marked in GPT only if GPT is produced because of other settings. the whole ISO image and has type 0x96. This is not compatible with any other feature that produces MBR partition entries. It makes GPT unrecognizable. .br -\fBprep_boot_part=\fR inserts the content of a data file into the image and +\fBprep_boot_part=\fRdisk_path inserts the content of a data file into +the image and marks it by an MBR partition of type 0x41. The parts of the ISO image before and after this partition will be covered by further MBR partitions. The data file is supposed to contain ELF executable code. .br -\fBefi_boot_part=\fR inserts the content of a data file into the image and +\fBefi_boot_part=\fRdisk_path inserts the content of a data file into +the image and marks it by a GPT partition. If not chrp_boot_part=on, then the first partition in MBR will have type 0xee to announce the presence of GPT. The data file is supposed to contain a FAT filesystem. @@ -3174,15 +3230,19 @@ the partition table. 0 chooses a default value. Maximum is 63. .br The product partition_sec_hd * partition_hd_cyl * 512 is the cylinder size. It should be divisible by 2048 in order to allow exact alignment. -If it is too small to describe the image size by at most 1024 cylinders, +With appended partitions and "appended_part_as=gpt" there +is no limit for the number of cylinders. Else there may be at most 1024 +of them. +If the cylinder size is too small to stay below the limit, then appropriate values of partition_hd_cyl are chosen with partition_sec_hd 32 or 63. If the image is larger than 8,422,686,720 bytes, -then the cylinder size constraints cannot be fulfilled. +then the cylinder size constraints cannot be fulfilled for MBR. .br \fBpartition_cyl_align=\fRmode controls image size alignment to an integer number of cylinders. It is prescribed by isohybrid specs and it seems to please program fdisk. Cylinder size must be divisible by 2048. -Images larger than 8,323,596,288 bytes cannot be aligned. +Images larger than 8,323,596,288 bytes cannot be aligned in MBR partition +table. .br Mode "auto" is default. Alignment by padding happens only with "isolinux" "partition_table=on". @@ -3240,7 +3300,7 @@ and version 4. For the appropriate value see in PALO source code: PALOHDRVERSION. .br \fBalpha_boot=\fRiso_rr_path declares a data file in the image to be the -DEC Alpha SRM Secondary Bootloader and causes production of a boot sector +DEC Alpha SRM Secondary Bootstrap Loader and causes production of a boot sector which points to it. This is mutually exclusive with production of other boot blocks like MBR. .br diff --git a/libisoburn/trunk/xorriso/xorriso.info b/libisoburn/trunk/xorriso/xorriso.info index 794c3dca..a9e526e2 100644 --- a/libisoburn/trunk/xorriso/xorriso.info +++ b/libisoburn/trunk/xorriso/xorriso.info @@ -2586,6 +2586,44 @@ Block for old MIPS DECstation, SUN Disk Label for SPARC machines, HP-PA boot sector for HP PA-RISC machines, DEC Alpha SRM boot sector for old DEC Alpha machines. + Several of the following commands expect disk paths as input but +also accept description strings for the libisofs interval reader, which +is able to cut out data from disk files or -indev and to zeroize parts +of the content: command -append_partition, boot specs system_area=, +grub2_mbr=, prep_boot_part=, efi_boot_part=. +The description string consists of the following components, separated +by colon ':' +"--interval:"Flags":"Interval":"Zeroizers":"Source +The component "--interval" states that this is not a plain disk path +but rather an interval reader description string. +The component Flags modifies the further interpretation: +"local_fs" demands to read from a file depicted by the path in Source. +"imported_iso" demands to read from the -indev. This works only if +-outdev is not the same as -indev. The Source component is ignored. +The component Interval consists of two byte address numbers separated +by a "-" character. E.g. "0-429" means to read bytes 0 to 429. +The component Zeroizers consists of zero or more comma separated +strings. They define which part of the read data to zeroize. Byte +number 0 means the byte read from the Interval start address. Each +string may be one of: +"zero_mbrpt" demands to zeroize the MBR partition table if bytes 510 +and 511 bear the MBR signature 0x55 0xaa. +"zero_gpt" demands to check for a GPT header in bytes 512 to 1023, to +zeroize it and its partition table blocks. +"zero_apm" demands to check for an APM block 0 and to zeroize its +partition table blocks. +Start_byte"-"End_byte demands to zeroize the read-in bytes beginning +with number Start_byte and ending after End_byte. +The component Source is the file path with flag "local_fs", and ignored +with flag "imported_iso". +Byte numbers may be scaled by a suffix out of {k,m,g,t,s,d} meaning +multiplication by {1024, 1024k, 1024m, 1024g, 2048, 512}. A scaled value +end number depicts the last byte of the scaled range. +E.g. "0d-0d" is "0-511". +Examples: +"local_fs:0-32767:zero_mbrpt,zero_gpt,440-443:/tmp/template.iso" +"imported_iso:45056d-47103d::" + -boot_image "any"|"isolinux"|"grub" "discard"|"keep"|"patch"|"show_status"|bootspec|"next" @@ -2754,16 +2792,16 @@ DEC Alpha machines. the whole ISO image and has type 0x96. This is not compatible with any other feature that produces MBR partition entries. It makes GPT unrecognizable. - *prep_boot_part=* inserts the content of a data file into the - image and marks it by an MBR partition of type 0x41. The parts of - the ISO image before and after this partition will be covered by - further MBR partitions. The data file is supposed to contain ELF - executable code. - *efi_boot_part=* inserts the content of a data file into the image - and marks it by a GPT partition. If not chrp_boot_part=on, then - the first partition in MBR will have type 0xee to announce the - presence of GPT. The data file is supposed to contain a FAT - filesystem. + *prep_boot_part=*disk_path inserts the content of a data file into + the image and marks it by an MBR partition of type 0x41. The parts + of the ISO image before and after this partition will be covered + by further MBR partitions. The data file is supposed to contain + ELF executable code. + *efi_boot_part=*disk_path inserts the content of a data file into + the image and marks it by a GPT partition. If not + chrp_boot_part=on, then the first partition in MBR will have type + 0xee to announce the presence of GPT. The data file is supposed + to contain a FAT filesystem. Instead of a disk_path, the word --efi-boot-image may be given. It exposes in GPT the content of the first El Torito EFI boot image as EFI system partition. EFI boot images are introduced by @@ -2785,16 +2823,19 @@ DEC Alpha machines. the partition table. 0 chooses a default value. Maximum is 63. The product partition_sec_hd * partition_hd_cyl * 512 is the cylinder size. It should be divisible by 2048 in order to allow - exact alignment. If it is too small to describe the image size by - at most 1024 cylinders, then appropriate values of - partition_hd_cyl are chosen with partition_sec_hd 32 or 63. If the - image is larger than 8,422,686,720 bytes, then the cylinder size - constraints cannot be fulfilled. + exact alignment. With appended partitions and + "appended_part_as=gpt" there is no limit for the number of + cylinders. Else there may be at most 1024 of them. If the + cylinder size is too small to stay below the limit, then + appropriate values of partition_hd_cyl are chosen with + partition_sec_hd 32 or 63. If the image is larger than + 8,422,686,720 bytes, then the cylinder size constraints cannot be + fulfilled for MBR. *partition_cyl_align=*mode controls image size alignment to an integer number of cylinders. It is prescribed by isohybrid specs and it seems to please program fdisk. Cylinder size must be divisible by 2048. Images larger than 8,323,596,288 bytes cannot - be aligned. + be aligned in MBR partition table. Mode "auto" is default. Alignment by padding happens only with "isolinux" "partition_table=on". Mode "on" causes alignment by padding with "partition_table=on" @@ -2840,9 +2881,9 @@ DEC Alpha machines. (default) and version 4. For the appropriate value see in PALO source code: PALOHDRVERSION. *alpha_boot=*iso_rr_path declares a data file in the image to be - the DEC Alpha SRM Secondary Bootloader and causes production of a - boot sector which points to it. This is mutually exclusive with - production of other boot blocks like MBR. + the DEC Alpha SRM Secondary Bootstrap Loader and causes production + of a boot sector which points to it. This is mutually exclusive + with production of other boot blocks like MBR. *mips_discard*, *sparc_discard*, *hppa_discard*, *alpha_discard* revoke any boot file declarations made for mips, mipsel, sparc, hppa, resp. alpha. This removes the ban on production of other @@ -5062,7 +5103,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 302) + (line 343) * -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) @@ -5072,7 +5113,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -ban_stdio_write demands real drive: Loading. (line 278) * -biblio_file sets biblio file name: SetWrite. (line 244) * -blank erases media: Writing. (line 61) -* -boot_image controls bootability: Bootable. (line 27) +* -boot_image controls bootability: Bootable. (line 65) * -calm_drive reduces drive activity: Loading. (line 267) * -cd sets working directory in ISO: Navigate. (line 7) * -cdx sets working directory on disk: Navigate. (line 16) @@ -5300,11 +5341,11 @@ 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 293) +* APM block size: Bootable. (line 334) * APM, _definition: Extras. (line 41) * Appendable media, _definition: Media. (line 38) -* Appended Filesystem Image, -append_partition: Bootable. (line 302) -* Appended partition, in MBR or GPT: Bootable. (line 185) +* Appended Filesystem Image, -append_partition: Bootable. (line 343) +* Appended partition, in MBR or GPT: Bootable. (line 223) * 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) @@ -5312,7 +5353,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 179) * Blank media, _definition: Media. (line 29) * Blind growing, _definition: Methods. (line 40) -* Bootability, control, -boot_image: Bootable. (line 27) +* Bootability, control, -boot_image: Bootable. (line 65) * Bugs, reporting: Bugreport. (line 6) * cdrecord, Emulation: Emulation. (line 118) * Character Set, _definition: Charset. (line 6) @@ -5321,15 +5362,15 @@ 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 190) +* CHRP partition, _definition: Bootable. (line 228) * 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 230) -* Cylinder size, _definition: Bootable. (line 219) +* Cylinder alignment, _definition: Bootable. (line 271) +* Cylinder size, _definition: Bootable. (line 257) * Damaged track and session, close, -close_damaged: Writing. (line 170) -* DEC Alpha SRM boot sector, production: Bootable. (line 279) +* DEC Alpha SRM boot sector, production: Bootable. (line 320) * Delete, from ISO image, -rm: Manip. (line 21) * Delete, from ISO image, -rm_r: Manip. (line 28) * Delete, ISO directory, -rmdir: Manip. (line 32) @@ -5360,7 +5401,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 199) +* EFI system partition, _definition: Bootable. (line 237) * El Torito, _definition: Extras. (line 19) * Emulation, -as: Emulation. (line 13) * Emulation, .mkisofsrc, -read_mkisofsrc: Emulation. (line 153) @@ -5387,10 +5428,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 290) -* HFS+ serial number: Bootable. (line 287) +* HFS+ allocation block size: Bootable. (line 331) +* HFS+ serial number: Bootable. (line 328) * hidden, set in ISO image, -hide: Manip. (line 191) -* HP-PA boot sector, production: Bootable. (line 262) +* HP-PA boot sector, production: Bootable. (line 303) * Image reading, cache size, -data_cache_size: Loading. (line 296) * Image, _definition: Model. (line 9) * Image, demand volume ID, -assert_volid: Loading. (line 108) @@ -5434,6 +5475,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Insert, paths, -cpr: Insert. (line 157) * Insert, pathspecs, -add: Insert. (line 47) * Insert, piece of data file, -cut_out: Insert. (line 131) +* Interval reader for system area and partitions: Bootable. (line 26) * ISO 9660, _definition: Model. (line 6) * iso_rr_path, _definition: Insert. (line 7) * Jigdo Template Extraction, -jigdo: Jigdo. (line 33) @@ -5442,13 +5484,13 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * List delimiter, _definition: Processing. (line 9) * Local Character Set, _definition: Charset. (line 11) * MBR, _definition: Extras. (line 26) -* MBR, set, -boot_image system_area=: Bootable. (line 136) +* MBR, set, -boot_image system_area=: Bootable. (line 174) * MD5, control handling, -md5: Loading. (line 183) * Media, erase, -blank: Writing. (line 61) * 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 241) +* MIPS boot file, activation: Bootable. (line 282) * mkisofs, Emulation: Emulation. (line 16) * Modifying, _definition: Methods. (line 27) * Multi-session media, _definition: Media. (line 7) @@ -5475,15 +5517,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 209) -* Partition table, _definition: Bootable. (line 166) +* Partition offset, _definition: Bootable. (line 247) +* Partition table, _definition: Bootable. (line 204) * 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 194) +* PReP partition, _definition: Bootable. (line 232) * Problems, reporting: Bugreport. (line 6) * Process, consolidate text output, -pkt_output: Frontend. (line 7) * Process, control abort on error, -abort_on: Exception. (line 27) @@ -5542,10 +5584,10 @@ 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 252) -* SUN SPARC boot images, activation: Bootable. (line 325) +* SUN Disk Label, production: Bootable. (line 293) +* SUN SPARC boot images, activation: Bootable. (line 366) * Symbolic link, create, -lns: Insert. (line 176) -* System area, _definition: Bootable. (line 136) +* System area, _definition: Bootable. (line 174) * Table-of-content, search sessions, -rom_toc_scan: Loading. (line 238) * Table-of-content, show, -toc: Inquiry. (line 28) * Timestamps, set in ISO image, -alter_date: Manip. (line 154) @@ -5561,7 +5603,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Verify, file tree checksums, -check_md5_r: Verify. (line 182) * Verify, preset -check_media, -check_media_defaults: Verify. (line 41) * Write, block size, -dvd_obs: SetWrite. (line 333) -* Write, bootability, -boot_image: Bootable. (line 27) +* Write, bootability, -boot_image: Bootable. (line 65) * Write, buffer syncing, -stdio_sync: SetWrite. (line 340) * Write, close media, -close: SetWrite. (line 359) * Write, compliance to specs, -compliance: SetWrite. (line 58) @@ -5611,39 +5653,39 @@ Node: Filter94447 Node: Writing99069 Node: SetWrite109200 Node: Bootable129906 -Node: Jigdo149506 -Node: Charset153753 -Node: Exception157068 -Node: DialogCtl163188 -Node: Inquiry165786 -Node: Navigate174124 -Node: Verify182422 -Node: Restore192249 -Node: Emulation200853 -Node: Scripting211241 -Node: Frontend219012 -Node: Examples228619 -Node: ExDevices229797 -Node: ExCreate230463 -Node: ExDialog231748 -Node: ExGrowing233013 -Node: ExModifying233818 -Node: ExBootable234322 -Node: ExCharset234874 -Node: ExPseudo235766 -Node: ExCdrecord236664 -Node: ExMkisofs236981 -Node: ExGrowisofs238321 -Node: ExException239456 -Node: ExTime239910 -Node: ExIncBackup240369 -Node: ExRestore244359 -Node: ExRecovery245292 -Node: Files245862 -Node: Seealso247161 -Node: Bugreport247884 -Node: Legal248465 -Node: CommandIdx249476 -Node: ConceptIdx266357 +Node: Jigdo151756 +Node: Charset156003 +Node: Exception159318 +Node: DialogCtl165438 +Node: Inquiry168036 +Node: Navigate176374 +Node: Verify184672 +Node: Restore194499 +Node: Emulation203103 +Node: Scripting213491 +Node: Frontend221262 +Node: Examples230869 +Node: ExDevices232047 +Node: ExCreate232713 +Node: ExDialog233998 +Node: ExGrowing235263 +Node: ExModifying236068 +Node: ExBootable236572 +Node: ExCharset237124 +Node: ExPseudo238016 +Node: ExCdrecord238914 +Node: ExMkisofs239231 +Node: ExGrowisofs240571 +Node: ExException241706 +Node: ExTime242160 +Node: ExIncBackup242619 +Node: ExRestore246609 +Node: ExRecovery247542 +Node: Files248112 +Node: Seealso249411 +Node: Bugreport250134 +Node: Legal250715 +Node: CommandIdx251726 +Node: ConceptIdx268607  End Tag Table diff --git a/libisoburn/trunk/xorriso/xorriso.texi b/libisoburn/trunk/xorriso/xorriso.texi index af0d189f..1503f6a5 100644 --- a/libisoburn/trunk/xorriso/xorriso.texi +++ b/libisoburn/trunk/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, Feb 28, 2015" +@c man .TH XORRISO 1 "Version 1.3.9, Apr 20, 2015" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -3438,6 +3438,63 @@ DEC Boot Block for old MIPS DECstation, SUN Disk Label for SPARC machines, HP-PA boot sector for HP PA-RISC machines, DEC Alpha SRM boot sector for old DEC Alpha machines. +@c man .PP +@sp 1 +@cindex Interval reader for system area and partitions +Several of the following commands expect disk paths as input but also accept +description strings for the libisofs interval reader, which is able to cut +out data from disk files or -indev and to zeroize parts of the content: +command -append_partition, +boot specs system_area=, grub2_mbr=, prep_boot_part=, efi_boot_part=. +@* +The description string consists +of the following components, separated by colon ':' +@* + "@minus{}@minus{}interval:"Flags":"Interval":"Zeroizers":"Source +@* +The component "@minus{}@minus{}interval" states that this is not +a plain disk path but rather an interval reader description string. +@* +The component Flags modifies the further interpretation: +@* +"local_fs" demands to read from a file depicted by the path in Source. +@* +"imported_iso" demands to read from the -indev. This works only if -outdev +is not the same as -indev. The Source component is ignored. +@* +The component Interval consists of two byte address numbers separated by a "-" character. E.g. "0-429" means to read bytes 0 to 429. +@* +The component Zeroizers consists of zero or more comma separated strings. +They define which part of the read data to zeroize. Byte number 0 means +the byte read from the Interval start address. +Each string may be one of: +@* +"zero_mbrpt" demands to zeroize the MBR partition table if +bytes 510 and 511 bear the MBR signature 0x55 0xaa. +@* +"zero_gpt" demands to check for a GPT header in bytes 512 to 1023, +to zeroize it and its partition table blocks. +@* +"zero_apm" demands to check for an APM block 0 and to zeroize +its partition table blocks. +@* +Start_byte"-"End_byte demands to zeroize the read-in bytes beginning +with number Start_byte and ending after End_byte. +@* +The component Source is the file path with flag "local_fs", and ignored with +flag "imported_iso". +@* +Byte numbers may be scaled by a suffix out of @{k,m,g,t,s,d@} meaning +multiplication by @{1024, 1024k, 1024m, 1024g, 2048, 512@}. A scaled value +end number depicts the last byte of the scaled range. +@* +E.g. "0d-0d" is "0-511". +@* +Examples: +@* + "local_fs:0-32767:zero_mbrpt,zero_gpt,440-443:/tmp/template.iso" +@* + "imported_iso:45056d-47103d::" @* @table @asis @sp 1 @@ -3668,13 +3725,15 @@ the whole ISO image and has type 0x96. This is not compatible with any other feature that produces MBR partition entries. It makes GPT unrecognizable. @* @cindex PReP partition, _definition -@strong{prep_boot_part=} inserts the content of a data file into the image and +@strong{prep_boot_part=}disk_path inserts the content of a data file into +the image and marks it by an MBR partition of type 0x41. The parts of the ISO image before and after this partition will be covered by further MBR partitions. The data file is supposed to contain ELF executable code. @* @cindex EFI system partition, _definition -@strong{efi_boot_part=} inserts the content of a data file into the image and +@strong{efi_boot_part=}disk_path inserts the content of a data file into +the image and marks it by a GPT partition. If not chrp_boot_part=on, then the first partition in MBR will have type 0xee to announce the presence of GPT. The data file is supposed to contain a FAT filesystem. @@ -3705,16 +3764,20 @@ the partition table. 0 chooses a default value. Maximum is 63. @* The product partition_sec_hd * partition_hd_cyl * 512 is the cylinder size. It should be divisible by 2048 in order to allow exact alignment. -If it is too small to describe the image size by at most 1024 cylinders, +With appended partitions and "appended_part_as=gpt" there +is no limit for the number of cylinders. Else there may be at most 1024 +of them. +If the cylinder size is too small to stay below the limit, then appropriate values of partition_hd_cyl are chosen with partition_sec_hd 32 or 63. If the image is larger than 8,422,686,720 bytes, -then the cylinder size constraints cannot be fulfilled. +then the cylinder size constraints cannot be fulfilled for MBR. @* @cindex Cylinder alignment, _definition @strong{partition_cyl_align=}mode controls image size alignment to an integer number of cylinders. It is prescribed by isohybrid specs and it seems to please program fdisk. Cylinder size must be divisible by 2048. -Images larger than 8,323,596,288 bytes cannot be aligned. +Images larger than 8,323,596,288 bytes cannot be aligned in MBR partition +table. @* Mode "auto" is default. Alignment by padding happens only with "isolinux" "partition_table=on". @@ -3776,7 +3839,7 @@ For the appropriate value see in PALO source code: PALOHDRVERSION. @* @cindex DEC Alpha SRM boot sector, production @strong{alpha_boot=}iso_rr_path declares a data file in the image to be the -DEC Alpha SRM Secondary Bootloader and causes production of a boot sector +DEC Alpha SRM Secondary Bootstrap Loader and causes production of a boot sector which points to it. This is mutually exclusive with production of other boot blocks like MBR. @* diff --git a/libisoburn/trunk/xorriso/xorriso_timestamp.h b/libisoburn/trunk/xorriso/xorriso_timestamp.h index 1611302d..703ae2ab 100644 --- a/libisoburn/trunk/xorriso/xorriso_timestamp.h +++ b/libisoburn/trunk/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2015.04.23.135054" +#define Xorriso_timestamP "2015.04.23.142257" diff --git a/libisoburn/trunk/xorriso/xorrisofs.1 b/libisoburn/trunk/xorriso/xorrisofs.1 index 0c72914f..21c145d5 100644 --- a/libisoburn/trunk/xorriso/xorrisofs.1 +++ b/libisoburn/trunk/xorriso/xorrisofs.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 XORRISOFS 1 "Version 1.3.9, Feb 28, 2015" +.TH XORRISOFS 1 "Version 1.3.9, Apr 21, 2015" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -1022,6 +1022,62 @@ MBR boot code. All three do not hamper El Torito booting from CDROM. MIPS Big Endian (SGI), MIPS Little Endian (DEC), SUN SPARC, HP\-PA, DEC Alpha. Those are mutually not combinable and also not combinable with MBR, GPT, or APM. +.PP +Several of the following options expect disk paths as input but also accept +description strings for the libisofs interval reader, which is able to cut +out data from disk files or \-indev and to zeroize parts of the content: +\-G, \-generic\-boot, \-\-embedded\-boot, \-\-grub2\-mbr, +\-isohybrid\-mbr, \-efi\-boot\-part, \-prep\-boot\-part, \-B, \-sparc\-boot, +\-append_partition. +.br +The description string consists +of the following components, separated by colon ':' +.br + "\-\-interval:"Flags":"Interval":"Zeroizers":"Source +.br +The component "\-\-interval" states that this is not +a plain disk path but rather a interval reader description string. +.br +The component Flags modifies the further interpretation: +.br +"local_fs" demands to read from a file depicted by the path in Source. +.br +"imported_iso" demands to read from the \-indev. This works only if \-outdev +is not the same as \-indev. The Source component is ignored. +.br +The component Interval consists of two byte address numbers separated by a "\-" character. E.g. "0\-429" means to read bytes 0 to 429. +.br +The component Zeroizers consists of zero or more comma separated strings. +They define which part of the read data to zeroize. Byte number 0 means +the byte read from the Interval start address. +Each string may be one of: +.br +"zero_mbrpt" demands to zeroize the MBR partition table if +bytes 510 and 511 bear the MBR signature 0x55 0xaa. +.br +"zero_gpt" demands to check for a GPT header in bytes 512 to 1023, +to zeroize it and its partition table blocks. +.br +"zero_apm" demands to check for an APM block 0 and to zeroize +its partition table blocks. +.br +Start_byte"\-"End_byte demands to zeroize the read\-in bytes beginning +with number Start_byte and ending after End_byte. +.br +The component Source is the file path with flag "local_fs", and ignored with +flag "imported_iso". +.br +Byte numbers may be scaled by a suffix out of {k,m,g,t,s,d} meaning +multiplication by {1024, 1024k, 1024m, 1024g, 2048, 512}. A scaled value +end number depicts the last byte of the scaled range. +.br +E.g. "0d\-0d" is "0\-511". +.br +Examples: +.br + "local_fs:0\-32767:zero_mbrpt,zero_gpt,440\-443:/tmp/template.iso" +.br + "imported_iso:45056d\-47103d::" .br .TP \fB\-G\fR disk_path @@ -1104,26 +1160,30 @@ to a loaded image. So the value defined here is only in effect if a new ISO image gets written. .TP \fB\-partition_hd_cyl\fR number -Set the number of heads per cylinder for the partition table. +Set the number of heads per cylinder for the MBR partition table. 0 chooses a default value. Maximum is 255. .TP \fB\-partition_sec_hd\fR number -Set the number of sectors per head for the partition table. +Set the number of sectors per head for the MBR partition table. 0 chooses a default value. Maximum is 63. .br The product partition_sec_hd * partition_hd_cyl * 512 is the cylinder size. It should be divisible by 2048 in order to allow exact alignment. -If it is too small to describe the image size by at most 1024 cylinders, +With appended partitions and \-appended_part_as_gpt there is no limit for +the number of cylinders. Else there may be at most 1024 of them. +If the cylinder size is too small to stay below the limit, then appropriate values of partition_hd_cyl are chosen with partition_sec_hd 32 or 63. If the image is larger than 8,422,686,720 bytes, -then the cylinder size constraints cannot be fulfilled. They seem not overly -important anyway. Flat block addresses in partition tables are good for 1 TiB. +then the cylinder size constraints cannot be fulfilled for MBR. +They seem not overly important anyway. +Flat block addresses in partition tables are good for 1 TiB. .TP \fB\-partition_cyl_align\fR mode Control image size alignment to an integer number of cylinders. It is prescribed by isohybrid specs and it seems to please program fdisk. Cylinder size must be divisible by 2048. -Images larger than 8,323,596,288 bytes cannot be aligned. +Images larger than 8,323,596,288 bytes cannot be aligned in MBR partition +table. .br Mode "auto" is default. Alignment by padding happens only if option \-isohybrid\-mbr is given. @@ -1147,15 +1207,17 @@ overwritten. .br partition_number may be 1 to 4. Number 1 will put the whole ISO image into the unclaimed space before partition 1. So together with most xorriso MBR -features, number 2 would be the most natural choice. +or GPT features, number 2 would be the most natural choice. .br The type_code may be "FAT12", "FAT16", "Linux", or a hexadecimal number between 0x00 and 0xff. Not all those numbers will yield usable results. For a list of codes search the Internet for "Partition Types" or run fdisk command "L". +This code matters only with MBR, not with GPT. .br If some other command causes the production of GPT, then the appended -partitions will be mentioned there too. +partitions will be mentioned there too, even if not \-appended_part_as_gpt +is given. .TP \fB\-appended_part_as_gpt\fR Marks partitions from \-append_partition in GPT rather than in MBR. diff --git a/libisoburn/trunk/xorriso/xorrisofs.info b/libisoburn/trunk/xorriso/xorrisofs.info index 6c7fd42a..3e8bf650 100644 --- a/libisoburn/trunk/xorriso/xorrisofs.info +++ b/libisoburn/trunk/xorriso/xorrisofs.info @@ -1003,6 +1003,45 @@ boot code. All three do not hamper El Torito booting from CDROM. MIPS Little Endian (DEC), SUN SPARC, HP-PA, DEC Alpha. Those are mutually not combinable and also not combinable with MBR, GPT, or APM. + Several of the following options expect disk paths as input but also +accept description strings for the libisofs interval reader, which is +able to cut out data from disk files or -indev and to zeroize parts of +the content: -G, -generic-boot, --embedded-boot, --grub2-mbr, +-isohybrid-mbr, -efi-boot-part, -prep-boot-part, -B, -sparc-boot, +-append_partition. +The description string consists of the following components, separated +by colon ':' +"--interval:"Flags":"Interval":"Zeroizers":"Source +The component "--interval" states that this is not a plain disk path +but rather a interval reader description string. +The component Flags modifies the further interpretation: +"local_fs" demands to read from a file depicted by the path in Source. +"imported_iso" demands to read from the -indev. This works only if +-outdev is not the same as -indev. The Source component is ignored. +The component Interval consists of two byte address numbers separated +by a "-" character. E.g. "0-429" means to read bytes 0 to 429. +The component Zeroizers consists of zero or more comma separated +strings. They define which part of the read data to zeroize. Byte +number 0 means the byte read from the Interval start address. Each +string may be one of: +"zero_mbrpt" demands to zeroize the MBR partition table if bytes 510 +and 511 bear the MBR signature 0x55 0xaa. +"zero_gpt" demands to check for a GPT header in bytes 512 to 1023, to +zeroize it and its partition table blocks. +"zero_apm" demands to check for an APM block 0 and to zeroize its +partition table blocks. +Start_byte"-"End_byte demands to zeroize the read-in bytes beginning +with number Start_byte and ending after End_byte. +The component Source is the file path with flag "local_fs", and ignored +with flag "imported_iso". +Byte numbers may be scaled by a suffix out of {k,m,g,t,s,d} meaning +multiplication by {1024, 1024k, 1024m, 1024g, 2048, 512}. A scaled value +end number depicts the last byte of the scaled range. +E.g. "0d-0d" is "0-511". +Examples: +"local_fs:0-32767:zero_mbrpt,zero_gpt,440-443:/tmp/template.iso" +"imported_iso:45056d-47103d::" + -G disk_path Copy at most 32768 bytes from the given disk file to the very start of the ISO image. @@ -1082,27 +1121,29 @@ mutually not combinable and also not combinable with MBR, GPT, or APM. effect if a new ISO image gets written. -partition_hd_cyl number - Set the number of heads per cylinder for the partition table. 0 - chooses a default value. Maximum is 255. + Set the number of heads per cylinder for the MBR partition table. + 0 chooses a default value. Maximum is 255. -partition_sec_hd number - Set the number of sectors per head for the partition table. 0 + Set the number of sectors per head for the MBR partition table. 0 chooses a default value. Maximum is 63. The product partition_sec_hd * partition_hd_cyl * 512 is the cylinder size. It should be divisible by 2048 in order to allow - exact alignment. If it is too small to describe the image size by - at most 1024 cylinders, then appropriate values of - partition_hd_cyl are chosen with partition_sec_hd 32 or 63. If the - image is larger than 8,422,686,720 bytes, then the cylinder size - constraints cannot be fulfilled. They seem not overly important - anyway. Flat block addresses in partition tables are good for 1 - TiB. + exact alignment. With appended partitions and + -appended_part_as_gpt there is no limit for the number of + cylinders. Else there may be at most 1024 of them. If the + cylinder size is too small to stay below the limit, then + appropriate values of partition_hd_cyl are chosen with + partition_sec_hd 32 or 63. If the image is larger than + 8,422,686,720 bytes, then the cylinder size constraints cannot be + fulfilled for MBR. They seem not overly important anyway. Flat + block addresses in partition tables are good for 1 TiB. -partition_cyl_align mode Control image size alignment to an integer number of cylinders. It is prescribed by isohybrid specs and it seems to please program fdisk. Cylinder size must be divisible by 2048. Images larger - than 8,323,596,288 bytes cannot be aligned. + than 8,323,596,288 bytes cannot be aligned in MBR partition table. Mode "auto" is default. Alignment by padding happens only if option -isohybrid-mbr is given. Mode "on" causes alignment by padding with option @@ -1120,14 +1161,16 @@ mutually not combinable and also not combinable with MBR, GPT, or APM. will get overwritten. partition_number may be 1 to 4. Number 1 will put the whole ISO image into the unclaimed space before partition 1. So together - with most xorriso MBR features, number 2 would be the most natural - choice. + with most xorriso MBR or GPT features, number 2 would be the most + natural choice. The type_code may be "FAT12", "FAT16", "Linux", or a hexadecimal number between 0x00 and 0xff. Not all those numbers will yield usable results. For a list of codes search the Internet for - "Partition Types" or run fdisk command "L". + "Partition Types" or run fdisk command "L". This code matters + only with MBR, not with GPT. If some other command causes the production of GPT, then the - appended partitions will be mentioned there too. + appended partitions will be mentioned there too, even if not + -appended_part_as_gpt is given. -appended_part_as_gpt Marks partitions from -append_partition in GPT rather than in MBR. @@ -1840,12 +1883,12 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T * --boot-catalog-hide Hide El Torito boot catalog: Bootable. (line 116) * --efi-boot El Torito EFI boot image: Bootable. (line 58) -* --embedded-boot Fill System Area e.g. by MBR: SystemArea. (line 38) +* --embedded-boot Fill System Area e.g. by MBR: SystemArea. (line 77) * --emul-toc enable table-of-content emulation: SetProduct. (line 37) * --for_backup Enable backup fidelity: SetExtras. (line 67) * --grub2-boot-info Patch El Torito boot image: Bootable. (line 101) -* --grub2-mbr Install modern GRUB2 MBR: SystemArea. (line 41) -* --grub2-sparc-core SUN SPARC core file: SystemArea. (line 219) +* --grub2-mbr Install modern GRUB2 MBR: SystemArea. (line 80) +* --grub2-sparc-core SUN SPARC core file: SystemArea. (line 262) * --hardlinks Recording of hardlink relations: SetExtras. (line 92) * --md5 Recording of MD5 checksums: SetExtras. (line 84) * --modification-date set ISO image timestamps: ImageId. (line 82) @@ -1860,7 +1903,7 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T (line 84) * --old-root-no-md5 disable MD5 with -old-root: SetInsert. (line 105) * --protective-msdos-label Patch System Area partition table: SystemArea. - (line 86) + (line 125) * --quoted_path_list read pathspecs from disk file: SetInsert. (line 13) * --scdbackup_tag Recording of MD5 checksum: SetExtras. (line 101) @@ -1876,14 +1919,14 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T * -A set Application Id: ImageId. (line 38) * -abstract set Abstract File path: ImageId. (line 66) * -allow-lowercase lowercase in ISO file names: SetCompl. (line 46) -* -alpha-boot DEC Alpha SRM bootloader: SystemArea. (line 249) -* -append_partition Append MBR partition after image: SystemArea. - (line 132) +* -alpha-boot DEC Alpha SRM bootloader: SystemArea. (line 292) +* -append_partition Append MBR or GPT partition after image: SystemArea. + (line 173) * -appended_part_as_gpt Appended partitions in GPT: SystemArea. - (line 151) + (line 194) * -appid set Application Id: ImageId. (line 46) * -b El Torito PC-BIOS boot image: Bootable. (line 32) -* -B SUN SPARC boot images: SystemArea. (line 201) +* -B SUN SPARC boot images: SystemArea. (line 244) * -biblio set Biblio File path: ImageId. (line 72) * -boot-info-table Patch El Torito boot image: Bootable. (line 95) * -boot-load-size El Torito boot image load size: Bootable. (line 63) @@ -1894,8 +1937,8 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T * -checksum_algorithm_iso choose .jigdo checksums: Jigdo. (line 80) * -checksum_algorithm_template choose .template checksums: Jigdo. (line 87) -* -chrp-boot CHRP partition: SystemArea. (line 179) -* -chrp-boot-part CHRP partition: SystemArea. (line 169) +* -chrp-boot CHRP partition: SystemArea. (line 222) +* -chrp-boot-part CHRP partition: SystemArea. (line 212) * -copyright set Copyright File path: ImageId. (line 77) * -D allow deep directory hierachies: SetExtras. (line 31) * -d omit trailing dot in ISO file names: SetCompl. (line 56) @@ -1906,7 +1949,7 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T * -disallow_dir_id_ext enforce ISO level 1 directory names: SetCompl. (line 24) * -e El Torito EFI boot image: Bootable. (line 50) -* -efi-boot-part EFI boot partition: SystemArea. (line 158) +* -efi-boot-part EFI boot partition: SystemArea. (line 201) * -eltorito-alt-boot begin next boot catalog entry: Bootable. (line 43) * -eltorito-boot El Torito PC-BIOS boot image: Bootable. (line 40) @@ -1922,8 +1965,8 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T * -follow-links follow symbolic links on disk: SetInsert. (line 28) * -full-iso9660-filenames allow 31 characters in ISO file names: SetCompl. (line 66) -* -G Fill System Area e.g. by MBR: SystemArea. (line 25) -* -generic-boot Fill System Area e.g. by MBR: SystemArea. (line 35) +* -G Fill System Area e.g. by MBR: SystemArea. (line 64) +* -generic-boot Fill System Area e.g. by MBR: SystemArea. (line 74) * -graft-points enable target=source pathspecs: SetInsert. (line 31) * -gui increase frequency of pacifier messages: Miscellaneous. (line 31) @@ -1951,22 +1994,22 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T (line 16) * -hide-rr-moved set deep directory relocation target: SetExtras. (line 64) -* -hppa-bootloader HP-PA bootloader file: SystemArea. (line 233) -* -hppa-cmdline HP-PA PALO command line: SystemArea. (line 226) -* -hppa-hdrversion HP-PA PALO header version: SystemArea. (line 245) -* -hppa-kernel_32 HP-PA kernel_32 file: SystemArea. (line 236) -* -hppa-kernel_64 HP-PA kernel_64 file: SystemArea. (line 239) -* -hppa-ramdisk HP-PA ramdisk file: SystemArea. (line 242) +* -hppa-bootloader HP-PA bootloader file: SystemArea. (line 276) +* -hppa-cmdline HP-PA PALO command line: SystemArea. (line 269) +* -hppa-hdrversion HP-PA PALO header version: SystemArea. (line 288) +* -hppa-kernel_32 HP-PA kernel_32 file: SystemArea. (line 279) +* -hppa-kernel_64 HP-PA kernel_64 file: SystemArea. (line 282) +* -hppa-ramdisk HP-PA ramdisk file: SystemArea. (line 285) * -input-charset set character set of disk file names: Charset. (line 17) * -iso-level define ISO 9660 limitations: SetCompl. (line 7) * -isohybrid-apm-hfsplus Mark boot image in APM: SystemArea. - (line 77) -* -isohybrid-gpt-basdat Mark boot image in GPT: SystemArea. (line 60) + (line 116) +* -isohybrid-gpt-basdat Mark boot image in GPT: SystemArea. (line 99) * -isohybrid-gpt-hfsplus Mark boot image in GPT: SystemArea. - (line 72) + (line 111) * -isohybrid-mbr Install ISOLINUX isohybrid MBR: SystemArea. - (line 48) + (line 87) * -J enable production of Joliet directory tree: SetExtras. (line 110) * -jigdo-exclude add exclusion pattern for .md5: Jigdo. (line 59) * -jigdo-force-md5 add check pattern for .md5: Jigdo. (line 52) @@ -1987,8 +2030,8 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T * -max-iso9660-filenames allow 37 characters in ISO file names: SetCompl. (line 69) * -md5-list set path of readable .md5: Jigdo. (line 73) -* -mips-boot MIPS Big Endian boot image: SystemArea. (line 188) -* -mipsel-boot MIPS Little Endian boot image: SystemArea. (line 195) +* -mips-boot MIPS Big Endian boot image: SystemArea. (line 231) +* -mipsel-boot MIPS Little Endian boot image: SystemArea. (line 238) * -N omit version number in ISO file names: SetCompl. (line 73) * -no-emul-boot El Torito boot image emulation: Bootable. (line 74) * -no-pad do not add zeros to ISO tree: SetProduct. (line 104) @@ -2006,13 +2049,13 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T * -p set Preparer Id: ImageId. (line 54) * -P set Publisher Id: ImageId. (line 30) * -pad add 300 KiB of zeros to ISO tree: SetProduct. (line 97) -* -partition_cyl_align Image size alignment: SystemArea. (line 120) -* -partition_hd_cyl MBR heads per cylinder: SystemArea. (line 103) +* -partition_cyl_align Image size alignment: SystemArea. (line 161) +* -partition_hd_cyl MBR heads per cylinder: SystemArea. (line 142) * -partition_offset Make mountable by partition 1: SystemArea. - (line 91) -* -partition_sec_hd MBR sectors per head: SystemArea. (line 107) + (line 130) +* -partition_sec_hd MBR sectors per head: SystemArea. (line 146) * -path-list read pathspecs from disk file: SetInsert. (line 8) -* -prep-boot-part PReP partition: SystemArea. (line 182) +* -prep-boot-part PReP partition: SystemArea. (line 225) * -preparer set Preparer Id: ImageId. (line 63) * -prev-session set path for loading existing ISO image: Loading. (line 22) @@ -2030,8 +2073,8 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T * -root redirect ISO root directory: SetInsert. (line 64) * -rr_reloc_dir set deep directory relocation target: SetExtras. (line 47) -* -sparc-boot SUN SPARC boot images: SystemArea. (line 213) -* -sparc-label SUN Disk Label text: SystemArea. (line 216) +* -sparc-boot SUN SPARC boot images: SystemArea. (line 256) +* -sparc-label SUN Disk Label text: SystemArea. (line 259) * -sysid set System Id: ImageId. (line 49) * -transparent-compression enable recognition of zisofs files: SetInsert. (line 61) @@ -2081,45 +2124,45 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top (line 101) * Bootability, boot image patching, -boot-info-table: Bootable. (line 95) -* Bootability, control, --grub2-sparc-core: SystemArea. (line 219) +* Bootability, control, --grub2-sparc-core: SystemArea. (line 262) * Bootability, control, --efi-boot: Bootable. (line 58) -* Bootability, control, -alpha-boot: SystemArea. (line 249) +* Bootability, control, -alpha-boot: SystemArea. (line 292) * Bootability, control, -b, -eltorito-boot: Bootable. (line 32) -* Bootability, control, -B, -sparc-boot: SystemArea. (line 201) +* Bootability, control, -B, -sparc-boot: SystemArea. (line 244) * Bootability, control, -e: Bootable. (line 50) -* Bootability, control, -hppa-bootloader: SystemArea. (line 233) -* Bootability, control, -hppa-cmdline: SystemArea. (line 226) -* Bootability, control, -hppa-hdrversion: SystemArea. (line 245) -* Bootability, control, -hppa-kernel_32: SystemArea. (line 236) -* Bootability, control, -hppa-kernel_64: SystemArea. (line 239) -* Bootability, control, -hppa-ramdisk: SystemArea. (line 242) -* Bootability, control, -mips-boot: SystemArea. (line 188) -* Bootability, control, -mipsel-boot: SystemArea. (line 195) +* Bootability, control, -hppa-bootloader: SystemArea. (line 276) +* Bootability, control, -hppa-cmdline: SystemArea. (line 269) +* Bootability, control, -hppa-hdrversion: SystemArea. (line 288) +* Bootability, control, -hppa-kernel_32: SystemArea. (line 279) +* Bootability, control, -hppa-kernel_64: SystemArea. (line 282) +* Bootability, control, -hppa-ramdisk: SystemArea. (line 285) +* Bootability, control, -mips-boot: SystemArea. (line 231) +* Bootability, control, -mipsel-boot: SystemArea. (line 238) * Bootability, El Torito section id string, -eltorito-id: Bootable. (line 82) * Bootability, El Torito selection criteria, -eltorito-selcrit: Bootable. (line 90) * Bootability, fill System Area e.g. by MBR, -G, --embedded-boot, -generic-boot: SystemArea. - (line 25) -* Bootability, for CHRP, -chrp-boot-part: SystemArea. (line 169) -* Bootability, for EFI, -efi-boot-part: SystemArea. (line 158) -* Bootability, for PReP, -prep-boot-part: SystemArea. (line 182) + (line 64) +* Bootability, for CHRP, -chrp-boot-part: SystemArea. (line 212) +* Bootability, for EFI, -efi-boot-part: SystemArea. (line 201) +* Bootability, for PReP, -prep-boot-part: SystemArea. (line 225) * Bootability, install ISOLINUX isohybrid MBR, -isohybrid-mbr: SystemArea. - (line 48) + (line 87) * Bootability, install modern GRUB2 MBR, --grub2-mbr: SystemArea. - (line 41) + (line 80) * Bootability, mark boot image in APM, -isohybrid-apm-hfsplus: SystemArea. - (line 77) + (line 116) * Bootability, mark boot image in GPT, -isohybrid-gpt-basdat: SystemArea. - (line 60) + (line 99) * Bootability, mark boot image in GPT, -isohybrid-gpt-hfsplus: SystemArea. - (line 72) + (line 111) * Bootability, next entry, -eltorito-alt-boot: Bootable. (line 43) * Bootability, no boot image emulation, -no-emul-boot: Bootable. (line 74) * Bootability, patch System Area partition table, --protective-msdos-label: SystemArea. - (line 86) -* Bootability, SUN Disk Label text, -sparc-label: SystemArea. (line 216) + (line 125) +* Bootability, SUN Disk Label text, -sparc-label: SystemArea. (line 259) * Bugs, reporting: Bugreport. (line 6) * Character Set, for disk file names, -input-charset: Charset. (line 17) @@ -2143,7 +2186,7 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Forced output, control, --stdio_sync: SetProduct. (line 25) * GPT, _definition: SystemArea. (line 13) * GPT, mark appended partitions, -appended_part_as_gpt: SystemArea. - (line 151) + (line 194) * HFS+, _definition: Standards. (line 32) * HFS+, enables production: SetExtras. (line 130) * HFS+, issue blessing ppc_bootdir, -hfs-bless: SetExtras. (line 188) @@ -2159,7 +2202,7 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Hiding, from ISO and Rock Ridge, -hide-list: SetHide. (line 16) * Hiding, from Joliet, -hide-joliet: SetHide. (line 20) * Hiding, from Joliet, -hide-joliet-list: SetHide. (line 25) -* Image size, alignment, -partition_cyl_align: SystemArea. (line 120) +* Image size, alignment, -partition_cyl_align: SystemArea. (line 161) * Incremental insertion, disable disk ino, --old-root-no-ino: SetInsert. (line 84) * Incremental insertion, disable MD5, --old-root-no-md5: SetInsert. @@ -2167,6 +2210,7 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Incremental insertion, enable disk devno, --old-root-devno: SetInsert. (line 97) * Incremental insertion, enable, -old-root: SetInsert. (line 70) +* Interval reader for system area and partitions: SystemArea. (line 24) * ISO 9660, _definition: Standards. (line 6) * ISO 9660:1999, _definition: Standards. (line 26) * ISO file names, 7-bit special characters, -relaxed-filenames: SetCompl. @@ -2212,14 +2256,14 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Links, follow on disk, -f, -follow-links: SetInsert. (line 24) * Links, record and load hard links, --hardlinks: SetExtras. (line 92) * MBR, _definition: SystemArea. (line 9) -* MBR, append partition, -append_partition: SystemArea. (line 132) -* MBR, sectors per head, -partition_sec_hd: SystemArea. (line 103) +* MBR, GPT, append partition, -append_partition: SystemArea. (line 173) +* MBR, sectors per head, -partition_sec_hd: SystemArea. (line 142) * MD5, record and load, --md5: SetExtras. (line 84) * Message output, increase frequency, -gui: Miscellaneous. (line 31) * Message output, redirect stderr, -log-file: Miscellaneous. (line 35) * Message output, suppress, -quiet: Miscellaneous. (line 27) * Mountability, by non-trivial partition 1, -partition_offset: SystemArea. - (line 91) + (line 130) * Options, list, -help: Miscellaneous. (line 23) * Output file, set address, -o, -output: SetProduct. (line 8) * Padding, 300 KiB, -pad: SetProduct. (line 97) @@ -2277,22 +2321,22 @@ Node: SetHide30591 Node: ImageId31899 Node: Bootable36067 Node: SystemArea41247 -Node: Charset53438 -Node: Jigdo54464 -Node: Miscellaneous58731 -Node: Examples60375 -Node: ExSimple60861 -Node: ExGraft61340 -Node: ExMkisofs62587 -Node: ExGrowisofs63840 -Node: ExIncBackup65012 -Node: ExIncBckAcc68130 -Node: ExBootable69806 -Node: Files71898 -Node: Seealso72972 -Node: Bugreport73628 -Node: Legal74209 -Node: CommandIdx75104 -Node: ConceptIdx90529 +Node: Charset55811 +Node: Jigdo56837 +Node: Miscellaneous61104 +Node: Examples62748 +Node: ExSimple63234 +Node: ExGraft63713 +Node: ExMkisofs64960 +Node: ExGrowisofs66213 +Node: ExIncBackup67385 +Node: ExIncBckAcc70503 +Node: ExBootable72179 +Node: Files74271 +Node: Seealso75345 +Node: Bugreport76001 +Node: Legal76582 +Node: CommandIdx77477 +Node: ConceptIdx92909  End Tag Table diff --git a/libisoburn/trunk/xorriso/xorrisofs.texi b/libisoburn/trunk/xorriso/xorrisofs.texi index b49a9246..21c7aba5 100644 --- a/libisoburn/trunk/xorriso/xorrisofs.texi +++ b/libisoburn/trunk/xorriso/xorrisofs.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 XORRISOFS 1 "Version 1.3.9, Feb 28, 2015" +@c man .TH XORRISOFS 1 "Version 1.3.9, Apr 21, 2015" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -1394,6 +1394,64 @@ MBR boot code. All three do not hamper El Torito booting from CDROM. MIPS Big Endian (SGI), MIPS Little Endian (DEC), SUN SPARC, HP-PA, DEC Alpha. Those are mutually not combinable and also not combinable with MBR, GPT, or APM. +@c man .PP +@sp 1 +@cindex Interval reader for system area and partitions +Several of the following options expect disk paths as input but also accept +description strings for the libisofs interval reader, which is able to cut +out data from disk files or -indev and to zeroize parts of the content: +-G, -generic-boot, @minus{}@minus{}embedded-boot, @minus{}@minus{}grub2-mbr, +-isohybrid-mbr, -efi-boot-part, -prep-boot-part, -B, -sparc-boot, +-append_partition. +@* +The description string consists +of the following components, separated by colon ':' +@* + "@minus{}@minus{}interval:"Flags":"Interval":"Zeroizers":"Source +@* +The component "@minus{}@minus{}interval" states that this is not +a plain disk path but rather a interval reader description string. +@* +The component Flags modifies the further interpretation: +@* +"local_fs" demands to read from a file depicted by the path in Source. +@* +"imported_iso" demands to read from the -indev. This works only if -outdev +is not the same as -indev. The Source component is ignored. +@* +The component Interval consists of two byte address numbers separated by a "-" character. E.g. "0-429" means to read bytes 0 to 429. +@* +The component Zeroizers consists of zero or more comma separated strings. +They define which part of the read data to zeroize. Byte number 0 means +the byte read from the Interval start address. +Each string may be one of: +@* +"zero_mbrpt" demands to zeroize the MBR partition table if +bytes 510 and 511 bear the MBR signature 0x55 0xaa. +@* +"zero_gpt" demands to check for a GPT header in bytes 512 to 1023, +to zeroize it and its partition table blocks. +@* +"zero_apm" demands to check for an APM block 0 and to zeroize +its partition table blocks. +@* +Start_byte"-"End_byte demands to zeroize the read-in bytes beginning +with number Start_byte and ending after End_byte. +@* +The component Source is the file path with flag "local_fs", and ignored with +flag "imported_iso". +@* +Byte numbers may be scaled by a suffix out of @{k,m,g,t,s,d@} meaning +multiplication by @{1024, 1024k, 1024m, 1024g, 2048, 512@}. A scaled value +end number depicts the last byte of the scaled range. +@* +E.g. "0d-0d" is "0-511". +@* +Examples: +@* + "local_fs:0-32767:zero_mbrpt,zero_gpt,440-443:/tmp/template.iso" +@* + "imported_iso:45056d-47103d::" @* @table @asis @sp 1 @@ -1498,22 +1556,25 @@ So the value defined here is only in effect if a new ISO image gets written. @item -partition_hd_cyl number @kindex -partition_hd_cyl MBR heads per cylinder @cindex MBR, sectors per head, -partition_sec_hd -Set the number of heads per cylinder for the partition table. +Set the number of heads per cylinder for the MBR partition table. 0 chooses a default value. Maximum is 255. @c man .TP @item -partition_sec_hd number @kindex -partition_sec_hd MBR sectors per head @cindex MBR, sectors per head, -partition_sec_hd -Set the number of sectors per head for the partition table. +Set the number of sectors per head for the MBR partition table. 0 chooses a default value. Maximum is 63. @* The product partition_sec_hd * partition_hd_cyl * 512 is the cylinder size. It should be divisible by 2048 in order to allow exact alignment. -If it is too small to describe the image size by at most 1024 cylinders, +With appended partitions and -appended_part_as_gpt there is no limit for +the number of cylinders. Else there may be at most 1024 of them. +If the cylinder size is too small to stay below the limit, then appropriate values of partition_hd_cyl are chosen with partition_sec_hd 32 or 63. If the image is larger than 8,422,686,720 bytes, -then the cylinder size constraints cannot be fulfilled. They seem not overly -important anyway. Flat block addresses in partition tables are good for 1 TiB. +then the cylinder size constraints cannot be fulfilled for MBR. +They seem not overly important anyway. +Flat block addresses in partition tables are good for 1 TiB. @c man .TP @item -partition_cyl_align mode @kindex -partition_cyl_align Image size alignment @@ -1521,7 +1582,8 @@ important anyway. Flat block addresses in partition tables are good for 1 TiB. Control image size alignment to an integer number of cylinders. It is prescribed by isohybrid specs and it seems to please program fdisk. Cylinder size must be divisible by 2048. -Images larger than 8,323,596,288 bytes cannot be aligned. +Images larger than 8,323,596,288 bytes cannot be aligned in MBR partition +table. @* Mode "auto" is default. Alignment by padding happens only if option -isohybrid-mbr is given. @@ -1534,8 +1596,8 @@ to an aligned size. Mode "off" disables alignment unconditionally. @c man .TP @item -append_partition partition_number type_code disk_path -@kindex -append_partition Append MBR partition after image -@cindex MBR, append partition, -append_partition +@kindex -append_partition Append MBR or GPT partition after image +@cindex MBR, GPT, append partition, -append_partition Cause a prepared filesystem image to be appended to the ISO image and to be described by a partition table entry in a boot block at the start of the emerging ISO image. The partition entry will bear the size of the submitted @@ -1547,15 +1609,17 @@ overwritten. @* partition_number may be 1 to 4. Number 1 will put the whole ISO image into the unclaimed space before partition 1. So together with most xorriso MBR -features, number 2 would be the most natural choice. +or GPT features, number 2 would be the most natural choice. @* The type_code may be "FAT12", "FAT16", "Linux", or a hexadecimal number between 0x00 and 0xff. Not all those numbers will yield usable results. For a list of codes search the Internet for "Partition Types" or run fdisk command "L". +This code matters only with MBR, not with GPT. @* If some other command causes the production of GPT, then the appended -partitions will be mentioned there too. +partitions will be mentioned there too, even if not -appended_part_as_gpt +is given. @c man .TP @item -appended_part_as_gpt @kindex -appended_part_as_gpt Appended partitions in GPT