Browse Source

Enabled GPT type GUIDs with -append_partition, -boot_image any iso_mbr_part_type=, and -as mkisofs -iso_mbr_part_type

master
Thomas Schmitt 3 years ago
parent
commit
fc71cec8f7
  1. 6
      xorriso/base_obj.c
  2. 8
      xorriso/emulators.c
  3. 49
      xorriso/iso_img.c
  4. 24
      xorriso/lib_mgt.c
  5. 35
      xorriso/misc_funct.c
  6. 15
      xorriso/misc_funct.h
  7. 32
      xorriso/opts_a_c.c
  8. 10
      xorriso/text_io.c
  9. 84
      xorriso/write_run.c
  10. 25
      xorriso/xorriso.1
  11. 140
      xorriso/xorriso.info
  12. 25
      xorriso/xorriso.texi
  13. 12
      xorriso/xorriso_private.h
  14. 8
      xorriso/xorrisoburn.h
  15. 26
      xorriso/xorrisofs.1
  16. 176
      xorriso/xorrisofs.info
  17. 26
      xorriso/xorrisofs.texi

6
xorriso/base_obj.c

@ -3,7 +3,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2017 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2019 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -290,11 +290,15 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
for(i= 0; i < Xorriso_max_appended_partitionS; i++) {
m->appended_partitions[i]= NULL;
m->appended_part_types[i]= 0;
memset(m->appended_part_type_guids[i], 0, 16);
m->appended_part_gpt_flags[i]= 0;
}
m->appended_as_gpt= 0;
m->appended_as_apm= 0;
m->part_like_isohybrid= 0;
m->iso_mbr_part_type= -1;
memset(m->iso_gpt_type_guid, 0, 16);
m->iso_mbr_part_flag= 0;
memset(m->gpt_guid, 0, 16);
m->gpt_guid_mode= 0;
m->ascii_disc_label[0]= 0;

8
xorriso/emulators.c

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2018 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2019 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -880,7 +880,8 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag)
" -isohybrid-gpt-hfsplus Mark El Torito boot image as HFS+ in GPT",
" -isohybrid-apm-hfsplus Mark El Torito boot image as HFS+ in APM",
" -part_like_isohybrid Mark in MBR, GPT, APM without -isohybrid-mbr",
" -iso_mbr_part_type Set type byte of ISO partition in MBR",
" -iso_mbr_part_type Set type byte or GUID of ISO partition in MBR",
" or type GUID if a GPT ISO partition emerges.",
" --gpt_disk_guid GUID Set GPT disk GUID or choose automatic GUID",
" -G FILE, -generic-boot FILE Set generic boot image name",
" --embedded-boot FILE Alias of -G",
@ -908,7 +909,8 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag)
" -chrp-boot Alias of -chrp-boot-part",
" -prep-boot-part DISKFILE Set data source for MBR partition type 0x41",
" -append_partition NUMBER TYPE FILE",
" Append FILE after image. TYPE is hex: 0x..",
" Append FILE after image. TYPE is hex: 0x.. or",
" a GUID to be used if -appended_part_as_gpt.",
" -appended_part_as_gpt mark appended partitions in GPT instead of MBR.",
" -appended_part_as_apm mark appended partitions in APM.",
" --modification-date=YYYYMMDDhhmmsscc",

49
xorriso/iso_img.c

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2016 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2019 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -627,7 +627,7 @@ int Xorriso_boot_status_non_mbr(struct XorrisO *xorriso, IsoImage *image,
int Xorriso_append_part_status(struct XorrisO *xorriso, IsoImage *image,
char *filter, FILE *fp, int flag)
{
int i, is_default;
int i, l, is_default;
is_default= (xorriso->appended_as_gpt == 0);
sprintf(xorriso->result_line, "-boot_image any appended_part_as=%s\n",
@ -637,8 +637,16 @@ int Xorriso_append_part_status(struct XorrisO *xorriso, IsoImage *image,
for(i= 0; i < Xorriso_max_appended_partitionS; i++) {
if(xorriso->appended_partitions[i] == NULL)
continue;
sprintf(xorriso->result_line, "-append_partition %d 0x%2.2x ",
i + 1, (unsigned int) xorriso->appended_part_types[i]);
sprintf(xorriso->result_line, "-append_partition %d ", i + 1);
l= strlen(xorriso->result_line);
if(xorriso->appended_part_gpt_flags[i] & 1) {
Xorriso__format_guid(xorriso->appended_part_type_guids[i],
xorriso->result_line + l, 0);
strcpy(xorriso->result_line + l + 32, " ");
} else {
sprintf(xorriso->result_line + l, "0x%2.2x ",
(unsigned int) xorriso->appended_part_types[i]);
}
Text_shellsafe(xorriso->appended_partitions[i], xorriso->result_line, 1);
strcat(xorriso->result_line, "\n");
Xorriso_status_result(xorriso, filter, fp, flag & 2);
@ -1654,12 +1662,12 @@ static int Xorriso_scan_report_lines(struct XorrisO *xorriso,
int appended_partition= 0;
#endif
int iso_mbr_part_type= -1;
int iso_mbr_part_type= -1, iso_gpt_part_idx= -1;
unsigned int prev_pltf= 0;
unsigned long int sa_options= 0, partno, id_tag, perms, start_cyl, num_blocks;
unsigned long int part_status, part_type, start_block, partition_offset= 0;
uint32_t high_block= 0;
char name[24], *textpt, *contentpt, *buf= NULL;
char name[24], *textpt, *contentpt, *buf= NULL, part_type_text[37];
char **lines= NULL;
double num[8];
char *cat_path= "";
@ -1687,6 +1695,7 @@ static int Xorriso_scan_report_lines(struct XorrisO *xorriso,
struct gpt_par {
int ptype; /* 0= unknown, 1= gpt-basdat, 2=gpt-hfsplus, 3=EFI */
uint8_t type_guid[16];
int is_gap;
int has_path;
char *path;
@ -1942,13 +1951,18 @@ static int Xorriso_scan_report_lines(struct XorrisO *xorriso,
gpts[idx].ptype= 3; /* EFI System Partition */
else
gpts[idx].ptype= 0;
Xorriso_parse_guid(xorriso, textpt, gpts[idx].type_guid, 1);
} else if(strcmp(name, "GPT start and size :") == 0) {
idx= num[0] - 1;
if(num[2] > 0)
appended_as_gpt= 1;
gpts[idx].start_block= num[1];
gpts[idx].block_count= num[2];
start_block= gpts[idx].start_block= num[1];
num_blocks= gpts[idx].block_count= num[2];
if(start_block == partition_offset * 4 &&
(start_block + num_blocks) >= high_block * 4 &&
iso_gpt_part_idx < 0)
iso_gpt_part_idx= idx;
} else if(strcmp(name, "GPT partition path :") == 0) {
idx= num[0] - 1;
@ -2210,9 +2224,13 @@ static int Xorriso_scan_report_lines(struct XorrisO *xorriso,
}
}
if(mbr_idx >= mbr_count) {
if(appended_as_gpt == 1)
if(appended_as_gpt == 1) {
appended_as_gpt= 2;
sprintf(buf, "-append_partition %d 0x%lx ", idx + 1, part_type);
Xorriso__format_guid(gpts[idx].type_guid, part_type_text, 0);
} else {
sprintf(part_type_text, "0x%lx", part_type);
}
sprintf(buf, "-append_partition %d %s ", idx + 1, part_type_text);
Xorriso_add_intvl_adr(xorriso, buf, (uint64_t) num[1],
(uint64_t) (num[1] + num[2] - 1.0), "d",
imported_iso);
@ -2476,7 +2494,16 @@ static int Xorriso_scan_report_lines(struct XorrisO *xorriso,
Xorriso_record_cmd_linE
did_sysarea= 1;
}
if(iso_mbr_part_type >= 0) {
if(iso_gpt_part_idx >= 0) {
if(mkisofs)
sprintf(buf, "-iso_mbr_part_type ");
else
sprintf(buf, "-boot_image any iso_mbr_part_type=");
Xorriso__format_guid(gpts[iso_gpt_part_idx].type_guid, buf + strlen(buf),
0);
Xorriso_record_cmd_linE
} else if(iso_mbr_part_type >= 0) {
if(mkisofs)
sprintf(buf, "-iso_mbr_part_type 0x%2.2x",
(unsigned int) iso_mbr_part_type);

24
xorriso/lib_mgt.c

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2016 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2019 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -979,26 +979,14 @@ int Xorriso_set_data_cache(struct XorrisO *xorriso, void *o,
return(ret);
}
int Xorriso_format_guid(struct XorrisO *xorriso, uint8_t guid[16], char *line,
int flag)
{
int i;
line[0]= 0;
for(i= 3; i >= 0; i--)
sprintf(line + strlen(line), "%-2.2x", guid[i]);
sprintf(line + strlen(line), "-");
for(i= 5; i >= 4; i--)
sprintf(line + strlen(line), "%-2.2x", guid[i]);
sprintf(line + strlen(line), "-");
for(i= 7; i >= 6; i--)
sprintf(line + strlen(line), "%-2.2x", guid[i]);
sprintf(line + strlen(line), "-");
for(i= 8; i < 10; i++)
sprintf(line + strlen(line), "%-2.2x", guid[i]);
sprintf(line + strlen(line), "-");
for(i= 10; i < 16; i++)
sprintf(line + strlen(line), "%-2.2x", guid[i]);
/* >>> Maybe let the user switch between hex string and structured text */;
Xorriso__format_guid(guid, line, 1);
return(1);
}

35
xorriso/misc_funct.c

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2012 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2019 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -1334,3 +1334,36 @@ int Xorriso__exchange_prefix(char *source_prefix, char *target_prefix,
return(1);
}
/* @param text takes result, must provide at least 37 characters of storage
@param flag bit0= structured text format (else hex string)
*/
int Xorriso__format_guid(uint8_t guid[16], char *text, int flag)
{
int i;
if(flag & 1) {
/* Structured text */
text[0]= 0;
for(i= 3; i >= 0; i--)
sprintf(text + strlen(text), "%-2.2x", (unsigned int) guid[i]);
sprintf(text + strlen(text), "-");
for(i= 5; i >= 4; i--)
sprintf(text + strlen(text), "%-2.2x", (unsigned int) guid[i]);
sprintf(text + strlen(text), "-");
for(i= 7; i >= 6; i--)
sprintf(text + strlen(text), "%-2.2x", (unsigned int) guid[i]);
sprintf(text + strlen(text), "-");
for(i= 8; i <= 9; i++)
sprintf(text + strlen(text), "%-2.2x", (unsigned int) guid[i]);
sprintf(text + strlen(text), "-");
for(i= 10; i <= 15; i++)
sprintf(text + strlen(text), "%-2.2x", (unsigned int) guid[i]);
} else {
/* Plain hex string */
for(i= 0; i < 16; i++)
sprintf(text + i * 2, "%-2.2x", (unsigned int) guid[i]);
}
return(1);
}

15
xorriso/misc_funct.h

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2012 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2019 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -14,6 +14,14 @@
#include <regex.h>
#ifdef HAVE_STDINT_H
#include <stdint.h>
#else
#ifdef HAVE_INTTYPES_H
#include <inttypes.h>
#endif
#endif
char *Text_shellsafe(char *in_text, char *out_text, int flag);
@ -101,5 +109,10 @@ int Xorriso__to_upper(char *in, char *out, int out_size, int flag);
int Xorriso__exchange_prefix(char *source_prefix, char *target_prefix,
char *eff_source, char *eff_target, int flag);
/* @param text takes result, must provide at least 37 characters of storage
@param flag bit0= structured text format (else hex string)
*/
int Xorriso__format_guid(uint8_t guid[16], char *text, int flag);
#endif /* ! Xorriso_pvt_misc_includeD */

32
xorriso/opts_a_c.c

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2017 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2019 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -295,9 +295,10 @@ ex:;
int Xorriso_option_append_partition(struct XorrisO *xorriso, char *partno_text,
char *type_text, char *image_path, int flag)
{
int partno = 0, type_code= -1, i;
int partno = 0, type_code= -1, i, guid_valid= 0, ret;
unsigned int unum;
char *tpt;
uint8_t guid[16];
static char *part_type_names[] = {"FAT12", "FAT16", "Linux", "", NULL};
static int part_type_codes[] = { 0x01, 0x06, 0x83, 0x00};
@ -314,6 +315,12 @@ int Xorriso_option_append_partition(struct XorrisO *xorriso, char *partno_text,
break;
if(part_type_names[i] != NULL)
type_code= part_type_codes[i];
if(type_code < 0) {
ret= Xorriso_parse_type_guid(xorriso, type_text, guid, &type_code, 0);
if(ret > 0)
guid_valid= 1;
}
if(type_code < 0) {
tpt= type_text;
if(strncmp(tpt, "0x", 2) == 0)
@ -325,7 +332,7 @@ int Xorriso_option_append_partition(struct XorrisO *xorriso, char *partno_text,
if(unum > 0xff) {
bad_type:;
sprintf(xorriso->info_text,
"-append_partition: Partition type '%s' is out of range (0x00...0xff)",
"-append_partition: Partition type '%s' is out of range (0x00...0xff or GUID)",
type_text);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
@ -341,6 +348,12 @@ bad_type:;
return(-1);
}
xorriso->appended_part_types[partno - 1]= type_code;
if(guid_valid) {
memcpy(xorriso->appended_part_type_guids[partno - 1], guid, 16);
xorriso->appended_part_gpt_flags[partno - 1]|= 1;
} else {
xorriso->appended_part_gpt_flags[partno - 1]&= ~1;
}
return(1);
}
@ -683,7 +696,7 @@ int Xorriso_option_boot_image(struct XorrisO *xorriso, char *form,
char *treatment, int flag)
{
int was_ok= 1, ret, isolinux_grub= 0, count, bin_count, parm_len;
int palohdrversion;
int palohdrversion, type_code;
unsigned int u;
char *formpt, *treatpt, *eff_path= NULL, *eqpt, parm[20];
uint8_t sn[8];
@ -1097,6 +1110,7 @@ treatment_patch:;
} else if(strncmp(treatpt, "iso_mbr_part_type=", 18) == 0) {
ret= 256;
xorriso->iso_mbr_part_flag&= ~1;
if(strncmp(treatpt + 18, "default", 2) == 0) {
ret= -1;
} else if(strncmp(treatpt + 18, "0x", 2) == 0) {
@ -1104,8 +1118,16 @@ treatment_patch:;
sscanf(treatpt + 20, "%x", &u);
ret= u;
} else {
sscanf(treatpt + 18, "%d", &ret);
ret= Xorriso_parse_type_guid(xorriso, treatpt + 18,
xorriso->iso_gpt_type_guid, &type_code, 0);
if(ret > 0) {
ret= type_code;
xorriso->iso_mbr_part_flag|= 1;
} else {
sscanf(treatpt + 18, "%d", &ret);
}
}
if(ret < -1 || ret > 0xff) {
sprintf(xorriso->info_text,
"-boot_image %s : iso_mbr_part_type='%s' wrong (\"default\", 0 ... 255, 0x00 ... 0xff)",

10
xorriso/text_io.c

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2016 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2019 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -3067,11 +3067,15 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
is_default= (xorriso->iso_mbr_part_type == -1);
sprintf(line, "-boot_image any iso_mbr_part_type=");
if(xorriso->iso_mbr_part_type == -1)
if(xorriso->iso_mbr_part_flag & 1) {
Xorriso__format_guid(xorriso->iso_gpt_type_guid, line + strlen(line), 0);
strcat(line, "\n");
} else if(xorriso->iso_mbr_part_type == -1) {
sprintf(line + strlen(line), "default\n");
else
} else {
sprintf(line + strlen(line), "0x%-2.2x\n",
(unsigned int) xorriso->iso_mbr_part_type);
}
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);

84
xorriso/write_run.c

@ -958,11 +958,16 @@ int Xorriso_make_iso_write_opts(struct XorrisO *xorriso, IsoImage *image,
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_part_type_guid(sopts, i + 1,
xorriso->appended_part_type_guids[i],
xorriso->appended_part_gpt_flags[i] & 1);
}
isoburn_igopt_set_appended_as_gpt(sopts, xorriso->appended_as_gpt);
isoburn_igopt_set_appended_as_apm(sopts, xorriso->appended_as_apm);
isoburn_igopt_set_part_like_isohybrid(sopts, xorriso->part_like_isohybrid);
isoburn_igopt_set_iso_mbr_part_type(sopts, xorriso->iso_mbr_part_type);
isoburn_igopt_set_iso_type_guid(sopts, xorriso->iso_gpt_type_guid,
xorriso->iso_mbr_part_flag & 1);
isoburn_igopt_set_gpt_guid(sopts, xorriso->gpt_guid, xorriso->gpt_guid_mode);
isoburn_igopt_set_disc_label(sopts, xorriso->ascii_disc_label);
isoburn_igopt_set_hfsp_serial_number(sopts, xorriso->hfsp_serial_number);
@ -3125,20 +3130,14 @@ ex:;
}
int Xorriso_parse_gpt_guid(struct XorrisO *xorriso, char *text, int flag)
/* @param flag bit0= no error message
*/
int Xorriso_parse_guid(struct XorrisO *xorriso, char *text,
uint8_t guid[16], int flag)
{
int bin_count= 0, ret;
uint8_t u[16], tr;
if(strcmp(text, "random") == 0) {
xorriso->gpt_guid_mode= 0;
return(1);
}
if(strcmp(text, "modification-date") == 0 ||
strcmp(text, "volume_date_uuid") == 0) {
xorriso->gpt_guid_mode= 2;
return(1);
}
/* Try RFC 4122 : big endian XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Translate to UEFI: first three components to little-endian
*/
@ -3163,8 +3162,7 @@ int Xorriso_parse_gpt_guid(struct XorrisO *xorriso, char *text, int flag)
ret= Hex_to_bin(text + 24, 6, &bin_count, u + 10, 0);
if(ret < 0 || bin_count != 6)
goto malformed;
xorriso->gpt_guid_mode= 1;
memcpy(xorriso->gpt_guid, u, 16);
memcpy(guid, u, 16);
return(1);
}
}
@ -3172,15 +3170,67 @@ int Xorriso_parse_gpt_guid(struct XorrisO *xorriso, char *text, int flag)
ret= Hex_to_bin(text, 16, &bin_count, u, 0);
if(ret < 0 || bin_count != 16)
goto malformed;
xorriso->gpt_guid_mode= 1;
memcpy(xorriso->gpt_guid, u, 16);
memcpy(guid, u, 16);
return(1);
}
malformed:;
sprintf(xorriso->info_text, "Malformed GUID string: ");
Text_shellsafe(text, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
if(!(flag & 1)) {
sprintf(xorriso->info_text, "Malformed GUID string: ");
Text_shellsafe(text, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
}
return(0);
}
int Xorriso_parse_gpt_guid(struct XorrisO *xorriso, char *text, int flag)
{
int ret;
if(strcmp(text, "random") == 0) {
xorriso->gpt_guid_mode= 0;
return(1);
}
if(strcmp(text, "modification-date") == 0 ||
strcmp(text, "volume_date_uuid") == 0) {
xorriso->gpt_guid_mode= 2;
return(1);
}
ret= Xorriso_parse_guid(xorriso, text, xorriso->gpt_guid, 0);
if(ret <= 0)
return(ret);
xorriso->gpt_guid_mode= 1;
return(1);
}
/* @return Tells the recognition status
0= not recognized as GUID
1= non-EFI type GUID
2= EFI type GUID
*/
int Xorriso_parse_type_guid(struct XorrisO *xorriso, char *text,
uint8_t guid[16], int *mbr_type, int flag)
{
int j, ret;
static uint8_t efi_sys_uuid[16] = {
0x28, 0x73, 0x2a, 0xc1, 0x1f, 0xf8, 0xd2, 0x11,
0xba, 0x4b, 0x00, 0xa0, 0xc9, 0x3e, 0xc9, 0x3b
};
ret= Xorriso_parse_guid(xorriso, text, guid, 1);
if(ret > 0) {
for(j= 0; j < 16; j++)
if(guid[j] != efi_sys_uuid[j])
break;
if(j >= 16) {
*mbr_type= 0xef;
return(2);
} else {
*mbr_type= 0x83;
return(1);
}
}
return(0);
}

25
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.5.1, Nov 11, 2018"
.TH XORRISO 1 "Version 1.5.1, Feb 16, 2019"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -3226,7 +3226,7 @@ is not the same as \-indev. The Source component is ignored.
"appended_partition_NNN" with a decimal number NNN works only for \-boot_image
bootspecs which announce El Torito boot image paths: bin_path=, efi_path=.
The number gives the partition number as used with the corresponding
option \-append_partition.
command \-append_partition.
.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
@ -3473,13 +3473,20 @@ Appended partitions get mentioned in APM if other APM partitions emerge.
.br
\fB\-boot_image any iso_mbr_part_type=\fRnumber sets the partition type
of the MBR partition which represents the ISO or at least protects it.
.br
Number may be 0x00 to 0xff. The text "default" re\-enables the default types
of the various occasions to create an ISO MBR partition.
.br
This is without effect if no such partition emerges by other settings or
if the partition type is prescribed mandatorily like 0xee for GPT protective
MBR or 0x96 for CHRP.
.br
If instead a type_guid is given by a 32\-digit hex string like
a2a0d0ebe5b9334487c068b6b72699c7 or by a structured text like
EBD0A0A2\-B9E5\-4433\-87C0\-68B6B72699C7, then it will be used as partition type
if the ISO filesystem appears as partition in GPT.
In MBR, C12A7328\-F81F\-11D2\-BA4B\-00A0C93EC93B will be mapped to 0xef.
Any other GUID will be mapped to 0x83.
.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
image is converted to a count of 512 byte blocks, and an offset of 4 is added.
@ -3695,8 +3702,14 @@ MBR 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".
yield usable results. For a list of MBR partition type codes search the
Internet for "Partition Types" or run fdisk command "L".
.br
type_code may also be a type GUID as plain hex string like
a2a0d0ebe5b9334487c068b6b72699c7 or as structured text like
EBD0A0A2\-B9E5\-4433\-87C0\-68B6B72699C7. It will be used if the partition is
mentioned in GPT. In MBR, C12A7328\-F81F\-11D2\-BA4B\-00A0C93EC93B will be mapped
to 0xef. Any other GUID will be mapped to 0x83.
.br
If some other command causes the production of GPT, then the appended
partitions will be mentioned there too.
@ -6183,7 +6196,7 @@ Thomas Schmitt <scdbackup@gmx.net>
.br
for libburnia\-project.org
.SH COPYRIGHT
Copyright (c) 2007 \- 2018 Thomas Schmitt
Copyright (c) 2007 \- 2019 Thomas Schmitt
.br
Permission is granted to distribute this text freely. It shall only be
modified in sync with the technical properties of \fBxorriso\fR.

140
xorriso/xorriso.info

@ -2732,7 +2732,7 @@ The component Flags modifies the further interpretation:
"appended_partition_NNN" with a decimal number NNN works only for
-boot_image bootspecs which announce El Torito boot image paths:
bin_path=, efi_path=. The number gives the partition number as used
with the corresponding option -append_partition.
with the corresponding command -append_partition.
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
@ -2927,12 +2927,18 @@ Examples:
APM if other APM partitions emerge.
*-boot_image any iso_mbr_part_type=*number sets the partition type
of the MBR partition which represents the ISO or at least protects
it. Number may be 0x00 to 0xff. The text "default" re-enables the
it.
Number may be 0x00 to 0xff. The text "default" re-enables the
default types of the various occasions to create an ISO MBR
partition.
This is without effect if no such partition emerges by other
settings or if the partition type is prescribed mandatorily like
0xee for GPT protective MBR or 0x96 for CHRP.
partition. This is without effect if no such partition emerges by
other settings or if the partition type is prescribed mandatorily
like 0xee for GPT protective MBR or 0x96 for CHRP.
If instead a type_guid is given by a 32-digit hex string like
a2a0d0ebe5b9334487c068b6b72699c7 or by a structured text like
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7, then it will be used as
partition type if the ISO filesystem appears as partition in GPT.
In MBR, C12A7328-F81F-11D2-BA4B-00A0C93EC93B will be mapped to
0xef. Any other GUID will be mapped to 0x83.
*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 an
@ -3114,8 +3120,14 @@ Examples:
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".
usable results. For a list of MBR partition type codes search the
Internet for "Partition Types" or run fdisk command "L".
type_code may also be a type GUID as plain hex string like
a2a0d0ebe5b9334487c068b6b72699c7 or as structured text like
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7. It will be used if the
partition is mentioned in GPT. In MBR,
C12A7328-F81F-11D2-BA4B-00A0C93EC93B will be mapped to 0xef. Any
other GUID will be mapped to 0x83.
If some other command causes the production of GPT, then the
appended partitions will be mentioned there too.
The disk_path must provide the necessary data bytes at commit time.
@ -5234,7 +5246,7 @@ for libburnia-project.org
15.2 Copyright
==============
Copyright (c) 2007 - 2018 Thomas Schmitt
Copyright (c) 2007 - 2019 Thomas Schmitt
Permission is granted to distribute this text freely. It shall only be
modified in sync with the technical properties of 'xorriso'. If you
make use of the license to derive modified versions of 'xorriso' then
@ -5269,7 +5281,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -alter_date sets timestamps in ISO image: Manip. (line 139)
* -alter_date_r sets timestamps in ISO image: Manip. (line 174)
* -append_partition adds arbitrary file after image end: Bootable.
(line 415)
(line 421)
* -application_id sets application id: SetWrite. (line 191)
* -application_use sets application use field: SetWrite. (line 266)
* -as emulates mkisofs or cdrecord: Emulation. (line 13)
@ -5513,12 +5525,12 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* ACL, show in ISO image, -getfacl: Navigate. (line 60)
* ACL, show in ISO image, -getfacl_r: Navigate. (line 66)
* ACL, _definition: Extras. (line 50)
* APM block size: Bootable. (line 406)
* APM block size: Bootable. (line 412)
* APM, _definition: Extras. (line 42)
* Appendable media, _definition: Media. (line 38)
* Appended Filesystem Image, -append_partition: Bootable. (line 415)
* Appended partition, in APM: Bootable. (line 283)
* Appended partition, in MBR or GPT: Bootable. (line 276)
* Appended Filesystem Image, -append_partition: Bootable. (line 421)
* Appended partition, in APM: Bootable. (line 289)
* Appended partition, in MBR or GPT: Bootable. (line 282)
* Automatic execution order, of arguments, -x: ArgSort. (line 16)
* Backslash Interpretation, _definition: Processing. (line 53)
* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 246)
@ -5536,15 +5548,15 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Character set, learn from image, -auto_charset: Loading. (line 125)
* Character Set, of terminal, -local_charset: Charset. (line 57)
* Character Set, _definition: Charset. (line 6)
* CHRP partition, _definition: Bootable. (line 288)
* CHRP partition, _definition: Bootable. (line 294)
* Closed media, _definition: Media. (line 44)
* Comment, #: Scripting. (line 156)
* Control, signal handling, -signal_handling: Exception. (line 66)
* Create, new ISO image, _definition: Methods. (line 7)
* Cylinder alignment, _definition: Bootable. (line 332)
* Cylinder size, _definition: Bootable. (line 317)
* Cylinder alignment, _definition: Bootable. (line 338)
* Cylinder size, _definition: Bootable. (line 323)
* Damaged track and session, close, -close_damaged: Writing. (line 164)
* DEC Alpha SRM boot sector, production: Bootable. (line 392)
* DEC Alpha SRM boot sector, production: Bootable. (line 398)
* Delete, from ISO image, -rm: Manip. (line 20)
* Delete, from ISO image, -rm_r: Manip. (line 26)
* Delete, ISO directory, -rmdir: Manip. (line 29)
@ -5575,7 +5587,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Drive, _definition: Drives. (line 6)
* EA, _definition: Extras. (line 66)
* ECMA-119, _definition: Model. (line 6)
* EFI system partition, _definition: Bootable. (line 297)
* EFI system partition, _definition: Bootable. (line 303)
* El Torito, _definition: Extras. (line 19)
* Emulation, -as: Emulation. (line 13)
* Emulation, .mkisofsrc, -read_mkisofsrc: Emulation. (line 155)
@ -5605,10 +5617,10 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Group, in ISO image, -chgrp_r: Manip. (line 53)
* Growing, _definition: Methods. (line 20)
* Hard links, control handling, -hardlinks: Loading. (line 136)
* HFS+ allocation block size: Bootable. (line 403)
* HFS+ serial number: Bootable. (line 400)
* HFS+ allocation block size: Bootable. (line 409)
* HFS+ serial number: Bootable. (line 406)
* hidden, set in ISO image, -hide: Manip. (line 177)
* HP-PA boot sector, production: Bootable. (line 375)
* HP-PA boot sector, production: Bootable. (line 381)
* Image reading, cache size, -data_cache_size: Loading. (line 352)
* Image, demand volume ID, -assert_volid: Loading. (line 113)
* Image, discard pending changes, -rollback: Writing. (line 9)
@ -5664,7 +5676,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Linux device type, -scsi_dev_family: AqDrive. (line 43)
* List delimiter, _definition: Processing. (line 9)
* Local Character Set, _definition: Charset. (line 11)
* MBR bootable/active flag, enforce: Bootable. (line 343)
* MBR bootable/active flag, enforce: Bootable. (line 349)
* MBR, set, -boot_image system_area=: Bootable. (line 200)
* MBR, _definition: Extras. (line 27)
* MD5, control handling, -md5: Loading. (line 192)
@ -5672,7 +5684,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Media, format, -format: Writing. (line 87)
* Media, list formats, -list_formats: Writing. (line 129)
* Media, list write speeds, -list_speeds: Writing. (line 140)
* MIPS boot file, activation: Bootable. (line 354)
* MIPS boot file, activation: Bootable. (line 360)
* mkisofs, Emulation: Emulation. (line 17)
* Modifying, _definition: Methods. (line 28)
* Multi-session media, _definition: Media. (line 7)
@ -5699,15 +5711,15 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Ownership, global in ISO image, -uid: SetWrite. (line 284)
* Ownership, in ISO image, -chown: Manip. (line 43)
* Ownership, in ISO image, -chown_r: Manip. (line 47)
* Partition offset, _definition: Bootable. (line 307)
* Partition table, _definition: Bootable. (line 257)
* Partition offset, _definition: Bootable. (line 313)
* Partition table, _definition: Bootable. (line 263)
* Pathspec, _definition: SetInsert. (line 117)
* Pattern expansion, for disk paths, -disk_pattern: Insert. (line 34)
* Pattern expansion, for ISO paths, -iso_rr_pattern: Manip. (line 10)
* Pattern expansion, _definition: Processing. (line 25)
* Permissions, in ISO image, -chmod: Manip. (line 55)
* Permissions, in ISO image, -chmod_r: Manip. (line 66)
* PReP partition, _definition: Bootable. (line 292)
* PReP partition, _definition: Bootable. (line 298)
* Problems, reporting: Bugreport. (line 6)
* Process, consolidate text output, -pkt_output: Frontend. (line 7)
* Process, control abort on error, -abort_on: Exception. (line 27)
@ -5767,8 +5779,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Session, select as input, -load: Loading. (line 33)
* Session, _definition: Model. (line 6)
* Sorting order, for -x, -list_arg_sorting: ArgSort. (line 26)
* SUN Disk Label, production: Bootable. (line 365)
* SUN SPARC boot images, activation: Bootable. (line 438)
* SUN Disk Label, production: Bootable. (line 371)
* SUN SPARC boot images, activation: Bootable. (line 450)
* Symbolic link, create, -lns: Insert. (line 181)
* System area, _definition: Bootable. (line 200)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 298)
@ -5837,40 +5849,40 @@ Node: Filter104114
Node: Writing108736
Node: SetWrite118892
Node: Bootable143651
Node: Jigdo169846
Node: Charset174105
Node: Exception177434
Node: DialogCtl183563
Node: Inquiry186165
Node: Navigate195049
Node: Verify203506
Node: Restore213977
Node: Emulation222590
Node: Scripting233049
Node: Frontend240832
Node: Examples250458
Node: ExDevices251636
Node: ExCreate252297
Node: ExDialog253597
Node: ExGrowing254868
Node: ExModifying255677
Node: ExBootable256187
Node: ExCharset256742
Node: ExPseudo257638
Node: ExCdrecord258565
Node: ExMkisofs258885
Node: ExGrowisofs260783
Node: ExException261937
Node: ExTime262395
Node: ExIncBackup262853
Node: ExRestore266879
Node: ExRecovery267825
Node: Files268397
Node: Environ269731
Node: Seealso270440
Node: Bugreport271157
Node: Legal271748
Node: CommandIdx272760
Node: ConceptIdx290094
Node: Jigdo170608
Node: Charset174867
Node: Exception178196
Node: DialogCtl184325
Node: Inquiry186927
Node: Navigate195811
Node: Verify204268
Node: Restore214739
Node: Emulation223352
Node: Scripting233811
Node: Frontend241594
Node: Examples251220
Node: ExDevices252398
Node: ExCreate253059
Node: ExDialog254359
Node: ExGrowing255630
Node: ExModifying256439
Node: ExBootable256949
Node: ExCharset257504
Node: ExPseudo258400
Node: ExCdrecord259327
Node: ExMkisofs259647
Node: ExGrowisofs261545
Node: ExException262699
Node: ExTime263157
Node: ExIncBackup263615
Node: ExRestore267641
Node: ExRecovery268587
Node: Files269159
Node: Environ270493
Node: Seealso271202
Node: Bugreport271919
Node: Legal272510
Node: CommandIdx273522
Node: ConceptIdx290856

End Tag Table

25
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.5.1, Nov 11, 2018"
@c man .TH XORRISO 1 "Version 1.5.1, Feb 16, 2019"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -3762,7 +3762,7 @@ is not the same as -indev. The Source component is ignored.
"appended_partition_NNN" with a decimal number NNN works only for -boot_image
bootspecs which announce El Torito boot image paths: bin_path=, efi_path=.
The number gives the partition number as used with the corresponding
option -append_partition.
command -append_partition.
@*
The component Interval consists of two byte address numbers separated by a "-" character. E.g. "0-429" means to read bytes 0 to 429.
@*
@ -4021,13 +4021,20 @@ Appended partitions get mentioned in APM if other APM partitions emerge.
@*
@strong{-boot_image any iso_mbr_part_type=}number sets the partition type
of the MBR partition which represents the ISO or at least protects it.
@*
Number may be 0x00 to 0xff. The text "default" re-enables the default types
of the various occasions to create an ISO MBR partition.
@*
This is without effect if no such partition emerges by other settings or
if the partition type is prescribed mandatorily like 0xee for GPT protective
MBR or 0x96 for CHRP.
@*
If instead a type_guid is given by a 32-digit hex string like
a2a0d0ebe5b9334487c068b6b72699c7 or by a structured text like
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7, then it will be used as partition type
if the ISO filesystem appears as partition in GPT.
In MBR, C12A7328-F81F-11D2-BA4B-00A0C93EC93B will be mapped to 0xef.
Any other GUID will be mapped to 0x83.
@*
@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
image is converted to a count of 512 byte blocks, and an offset of 4 is added.
@ -4265,8 +4272,14 @@ MBR 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".
yield usable results. For a list of MBR partition type codes search the
Internet for "Partition Types" or run fdisk command "L".
@*
type_code may also be a type GUID as plain hex string like
a2a0d0ebe5b9334487c068b6b72699c7 or as structured text like
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7. It will be used if the partition is
mentioned in GPT. In MBR, C12A7328-F81F-11D2-BA4B-00A0C93EC93B will be mapped
to 0xef. Any other GUID will be mapped to 0x83.
@*
If some other command causes the production of GPT, then the appended
partitions will be mentioned there too.
@ -7238,7 +7251,7 @@ Thomas Schmitt <scdbackup@@gmx.net>
for libburnia-project.org
@c man .SH COPYRIGHT
@section Copyright
Copyright (c) 2007 - 2018 Thomas Schmitt
Copyright (c) 2007 - 2019 Thomas Schmitt
@*
Permission is granted to distribute this text freely. It shall only be
modified in sync with the technical properties of @command{xorriso}.

12
xorriso/xorriso_private.h

@ -2,7 +2,7 @@
/* Command line oriented batch and dialog tool which creates, loads,
manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2017 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2019 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -495,6 +495,11 @@ struct XorrisO { /* the global context of xorriso */
/* Path and type of image files to be appended as MBR partitions */
char *appended_partitions[Xorriso_max_appended_partitionS];
uint8_t appended_part_types[Xorriso_max_appended_partitionS];
uint8_t appended_part_type_guids[Xorriso_max_appended_partitionS][16];
/* Flags in case that appended partitions show up in GPT:
bit0= appended_part_type_guids is valid
*/
uint8_t appended_part_gpt_flags[Xorriso_max_appended_partitionS];
/* If 1: With appended partitions: create protective MBR and mark by GPT */
int appended_as_gpt;
/* If 1: With appended partitions: mark by APM */
@ -507,6 +512,11 @@ struct XorrisO { /* the global context of xorriso */
if not real GPT or CHRP.
*/
int iso_mbr_part_type;
uint8_t iso_gpt_type_guid[16];
int iso_mbr_part_flag;
/* Flags in case that the partition table is GPT:
bit0= iso_gpt_type_guid is valid
*/
/* See libisoburn.h isoburn_igopt_set_gpt_guid() */
uint8_t gpt_guid[16];

8
xorriso/xorrisoburn.h

@ -4,7 +4,7 @@
a command line oriented batch and dialog tool which creates, loads,
manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2018 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2019 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -642,8 +642,14 @@ int Xorriso_truncate_path_comps(struct XorrisO *xorriso, char *path,
int Xorriso_graftable_pathspec(struct XorrisO *xorriso, char *in_pathspec,
char *pathspec, int flag);
int Xorriso_parse_guid(struct XorrisO *xorriso, char *text,
uint8_t guid[16], int flag);
int Xorriso_parse_gpt_guid(struct XorrisO *xorriso, char *text, int flag);
int Xorriso_parse_type_guid(struct XorrisO *xorriso, char *text,
uint8_t guid[16], int *mbr_type, int flag);
int Xorriso_format_guid(struct XorrisO *xorriso, uint8_t guid[16], char *line,
int flag);

26
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.5.1, Nov 11, 2018"
.TH XORRISOFS 1 "Version 1.5.1, Feb 16, 2019"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -1241,15 +1241,22 @@ No MBR partition of type 0xee emerges, even if GPT gets produced.
Gaps between GPT and APM partitions will not be filled by more partitions.
Appended partitions get mentioned in APM if other APM partitions emerge.
.TP
\fB\-iso_mbr_part_type\fR "default"|number
\fB\-iso_mbr_part_type\fR "default"|number|type_guid
Set the partition type
of the MBR partition which represents the ISO or at least protects it.
of the MBR or GPT partition which represents the ISO or at least protects it.
.br
Number may be 0x00 to 0xff. The text "default" re\-enables the default types
of the various occasions to create an ISO MBR partition.
.br
This is without effect if no such partition emerges by other settings or
if the partition type is prescribed mandatorily like 0xee for GPT protective
MBR or 0x96 for CHRP.
.br
If instead a type_guid is given by a 32\-digit hex string like
a2a0d0ebe5b9334487c068b6b72699c7 or by a structured text like
EBD0A0A2\-B9E5\-4433\-87C0\-68B6B72699C7, then it will be used as partition type
if the ISO filesystem appears as partition in GPT.
In MBR, C12A7328\-F81F\-11D2\-BA4B\-00A0C93EC93B will be mapped to 0xef.
Any other GUID will be mapped to 0x83.
.TP
\fB--protective-msdos-label\fR
Patch the System Area by a simple PC\-DOS partition table where partition 1
@ -1335,7 +1342,14 @@ 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 the partition appears in GPT then type_code 0xef is mapped to the EFI System
Partition Type GUID. All others get mapped to Basic Data Type GUID.
.br
type_code may also be a type GUID as plain hex string like
a2a0d0ebe5b9334487c068b6b72699c7 or as structured text like
EBD0A0A2\-B9E5\-4433\-87C0\-68B6B72699C7. It will be used if the partition is
mentioned in GPT. In MBR, C12A7328\-F81F\-11D2\-BA4B\-00A0C93EC93B will be mapped
to 0xef. Any other GUID will be mapped to 0x83.
.br
If some other command causes the production of GPT, then the appended
partitions will be mentioned there too, even if not \-appended_part_as_gpt
@ -2173,7 +2187,7 @@ Thomas Schmitt <scdbackup@gmx.net>
.br
for libburnia\-project.org
.SH COPYRIGHT
Copyright (c) 2011 \- 2018 Thomas Schmitt
Copyright (c) 2011 \- 2019 Thomas Schmitt
.br
Permission is granted to distribute this text freely. It shall only be
modified in sync with the technical properties of xorriso. If you make use

176
xorriso/xorrisofs.info

@ -1086,14 +1086,20 @@ Examples:
Gaps between GPT and APM partitions will not be filled by more
partitions. Appended partitions get mentioned in APM if other APM
partitions emerge.
-iso_mbr_part_type "default"|number
Set the partition type of the MBR partition which represents the
ISO or at least protects it. Number may be 0x00 to 0xff. The text
"default" re-enables the default types of the various occasions to
create an ISO MBR partition.
This is without effect if no such partition emerges by other
settings or if the partition type is prescribed mandatorily like
0xee for GPT protective MBR or 0x96 for CHRP.
-iso_mbr_part_type "default"|number|type_guid
Set the partition type of the MBR or GPT partition which represents
the ISO or at least protects it.
Number may be 0x00 to 0xff. The text "default" re-enables the
default types of the various occasions to create an ISO MBR
partition. This is without effect if no such partition emerges by
other settings or if the partition type is prescribed mandatorily
like 0xee for GPT protective MBR or 0x96 for CHRP.
If instead a type_guid is given by a 32-digit hex string like
a2a0d0ebe5b9334487c068b6b72699c7 or by a structured text like
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7, then it will be used as
partition type if the ISO filesystem appears as partition in GPT.
In MBR, C12A7328-F81F-11D2-BA4B-00A0C93EC93B will be mapped to
0xef. Any other GUID will be mapped to 0x83.
--protective-msdos-label
Patch the System Area by a simple PC-DOS partition table where
partition 1 claims the range of the ISO image but leaves the first
@ -1163,8 +1169,16 @@ Examples:
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.
"Partition Types" or run fdisk command "L". If the partition
appears in GPT then type_code 0xef is mapped to the EFI System
Partition Type GUID. All others get mapped to Basic Data Type GUID.
type_code may also be a type GUID as plain hex string like
a2a0d0ebe5b9334487c068b6b72699c7 or as structured text like
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7. It will be used if the
partition is mentioned in GPT. In MBR,
C12A7328-F81F-11D2-BA4B-00A0C93EC93B will be mapped to 0xef. Any
other GUID will be mapped to 0x83.
If some other command causes the production of GPT, then the
appended partitions will be mentioned there too, even if not
-appended_part_as_gpt is given.
@ -1909,7 +1923,7 @@ for libburnia-project.org
11.2 Copyright
==============
Copyright (c) 2011 - 2018 Thomas Schmitt
Copyright (c) 2011 - 2019 Thomas Schmitt
Permission is granted to distribute this text freely. It shall only be
modified in sync with the technical properties of xorriso. If you make
use of the license to derive modified versions of xorriso then you are
@ -1941,13 +1955,13 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* --embedded-boot Fill System Area e.g. by MBR: SystemArea. (line 79)
* --emul-toc enable table-of-content emulation: SetProduct. (line 33)
* --for_backup Enable backup fidelity: SetExtras. (line 92)
* --gpt_disk_guid GPT GUID: SystemArea. (line 231)
* --gpt_disk_guid GPT GUID: SystemArea. (line 245)
* --grub2-boot-info Patch El Torito boot image: Bootable. (line 109)
* --grub2-mbr Install modern GRUB2 MBR: SystemArea. (line 81)
* --grub2-sparc-core SUN SPARC core file: SystemArea. (line 286)
* --grub2-sparc-core SUN SPARC core file: SystemArea. (line 300)
* --hardlinks Recording of hardlink relations: SetExtras. (line 130)
* --mbr-force-bootable Enforce MBR bootable/active flag: SystemArea.
(line 139)
(line 145)
* --md5 Recording of MD5 checksums: SetExtras. (line 122)
* --modification-date set ISO image timestamps: ImageId. (line 70)
* --no-emul-toc no table-of-content emulation: SetProduct. (line 41)
@ -1961,7 +1975,7 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
(line 73)
* --old-root-no-md5 disable MD5 with -old-root: SetInsert. (line 91)
* --protective-msdos-label Patch System Area partition table: SystemArea.
(line 135)
(line 141)
* --quoted_path_list read pathspecs from disk file: SetInsert.
(line 12)
* --scdbackup_tag Recording of MD5 checksum: SetExtras. (line 138)
@ -1978,16 +1992,16 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -A set Application Id: ImageId. (line 34)
* -abstract set Abstract File path: ImageId. (line 57)
* -allow-lowercase lowercase in ISO file names: SetCompl. (line 42)
* -alpha-boot DEC Alpha SRM bootloader: SystemArea. (line 309)
* -alpha-boot DEC Alpha SRM bootloader: SystemArea. (line 323)
* -appended_part_as_apm Appended partitions in APM: SystemArea.
(line 215)
(line 229)
* -appended_part_as_gpt Appended partitions in GPT: SystemArea.
(line 209)
(line 223)
* -append_partition Append MBR or GPT partition after image: SystemArea.
(line 189)
(line 195)
* -appid set Application Id: ImageId. (line 41)
* -b El Torito PC-BIOS boot image: Bootable. (line 38)
* -B SUN SPARC boot images: SystemArea. (line 271)
* -B SUN SPARC boot images: SystemArea. (line 285)
* -biblio set Biblio File path: ImageId. (line 62)
* -boot-info-table Patch El Torito boot image: Bootable. (line 104)
* -boot-load-size El Torito boot image load size: Bootable. (line 72)
@ -1998,8 +2012,8 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -checksum_algorithm_iso choose .jigdo checksums: Jigdo. (line 72)
* -checksum_algorithm_template choose .template checksums: Jigdo.
(line 78)
* -chrp-boot CHRP partition: SystemArea. (line 253)
* -chrp-boot-part CHRP partition: SystemArea. (line 244)
* -chrp-boot CHRP partition: SystemArea. (line 267)
* -chrp-boot-part CHRP partition: SystemArea. (line 258)
* -copyright set Copyright File path: ImageId. (line 66)
* -D allow deep directory hierachies: SetExtras. (line 60)
* -d omit trailing dot in ISO file names: SetCompl. (line 50)
@ -2010,7 +2024,7 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -disallow_dir_id_ext enforce ISO level 1 directory names: SetCompl.
(line 23)
* -e El Torito EFI boot image: Bootable. (line 53)
* -efi-boot-part EFI boot partition: SystemArea. (line 221)
* -efi-boot-part EFI boot partition: SystemArea. (line 235)
* -eltorito-alt-boot begin next boot catalog entry: Bootable. (line 47)
* -eltorito-boot El Torito PC-BIOS boot image: Bootable. (line 45)
* -eltorito-catalog El Torito boot catalog name: Bootable. (line 119)
@ -2056,12 +2070,12 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
(line 15)
* -hide-rr-moved set deep directory relocation target: SetExtras.
(line 90)
* -hppa-bootloader HP-PA bootloader file: SystemArea. (line 298)
* -hppa-cmdline HP-PA PALO command line: SystemArea. (line 292)
* -hppa-hdrversion HP-PA PALO header version: SystemArea. (line 306)
* -hppa-kernel_32 HP-PA kernel_32 file: SystemArea. (line 300)
* -hppa-kernel_64 HP-PA kernel_64 file: SystemArea. (line 302)
* -hppa-ramdisk HP-PA ramdisk file: SystemArea. (line 304)
* -hppa-bootloader HP-PA bootloader file: SystemArea. (line 312)
* -hppa-cmdline HP-PA PALO command line: SystemArea. (line 306)
* -hppa-hdrversion HP-PA PALO header version: SystemArea. (line 320)
* -hppa-kernel_32 HP-PA kernel_32 file: SystemArea. (line 314)
* -hppa-kernel_64 HP-PA kernel_64 file: SystemArea. (line 316)
* -hppa-ramdisk HP-PA ramdisk file: SystemArea. (line 318)
* -input-charset set character set of disk file names: Charset.
(line 17)
* -iso-level define ISO 9660 limitations: SetCompl. (line 7)
@ -2092,8 +2106,8 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -max-iso9660-filenames allow 37 characters in ISO file names: SetCompl.
(line 61)
* -md5-list set path of readable .md5: Jigdo. (line 67)
* -mips-boot MIPS Big Endian boot image: SystemArea. (line 260)
* -mipsel-boot MIPS Little Endian boot image: SystemArea. (line 266)
* -mips-boot MIPS Big Endian boot image: SystemArea. (line 274)
* -mipsel-boot MIPS Little Endian boot image: SystemArea. (line 280)
* -N omit version number in ISO file names: SetCompl. (line 64)
* -no-emul-boot El Torito boot image emulation: Bootable. (line 86)
* -no-pad do not add zeros to ISO tree: SetProduct. (line 101)
@ -2109,15 +2123,15 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T