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

This commit is contained in:
Thomas Schmitt 2019-02-18 13:19:32 +01:00
parent caf38e81ae
commit fc71cec8f7
17 changed files with 469 additions and 230 deletions

View File

@ -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;

View File

@ -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",

View File

@ -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);

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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 */

View File

@ -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)",

View File

@ -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);

View File

@ -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);
}

View File

@ -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.

View File

@ -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

View File

@ -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}.

View File

@ -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];

View File

@ -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);

View File

@ -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

View File

@ -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
* -p set Preparer Id: ImageId. (line 47)
* -P set Publisher Id: ImageId. (line 28)
* -pad add 300 KiB of zeros to ISO tree: SetProduct. (line 94)
* -partition_cyl_align Image size alignment: SystemArea. (line 178)
* -partition_hd_cyl MBR heads per cylinder: SystemArea. (line 161)
* -partition_cyl_align Image size alignment: SystemArea. (line 184)
* -partition_hd_cyl MBR heads per cylinder: SystemArea. (line 167)
* -partition_offset Make mountable by partition 1: SystemArea.
(line 150)
* -partition_sec_hd MBR sectors per head: SystemArea. (line 164)
(line 156)
* -partition_sec_hd MBR sectors per head: SystemArea. (line 170)
* -part_like_isohybrid Mark partitions like with isohybrid: SystemArea.
(line 120)
* -path-list read pathspecs from disk file: SetInsert. (line 8)
* -prep-boot-part PReP partition: SystemArea. (line 255)
* -prep-boot-part PReP partition: SystemArea. (line 269)
* -preparer set Preparer Id: ImageId. (line 55)
* -prev-session set path for loading existing ISO image: Loading.
(line 21)
@ -2134,8 +2148,8 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -root redirect ISO root directory: SetInsert. (line 55)
* -rr_reloc_dir set deep directory relocation target: SetExtras.
(line 74)
* -sparc-boot SUN SPARC boot images: SystemArea. (line 282)
* -sparc-label SUN Disk Label text: SystemArea. (line 284)
* -sparc-boot SUN SPARC boot images: SystemArea. (line 296)
* -sparc-label SUN Disk Label text: SystemArea. (line 298)
* -sysid set System Id: ImageId. (line 43)
* -transparent-compression enable recognition of zisofs files: SetInsert.
(line 53)
@ -2165,7 +2179,7 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Abstract File, set path, -abstract: ImageId. (line 57)
* ACL, record and load, --acl: SetExtras. (line 103)
* APM, mark appended partitions, -appended_part_as_apm: SystemArea.
(line 215)
(line 229)
* APM, _definition: SystemArea. (line 16)
* Application Id, set, -A, -appid: ImageId. (line 34)
* Backup, enable fidelity, --for_backup: SetExtras. (line 92)
@ -2189,31 +2203,31 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Bootability, boot image patching, -boot-info-table: Bootable.
(line 104)
* Bootability, bootable MBR partition, --mbr-force-bootable: SystemArea.
(line 139)
* Bootability, control, --grub2-sparc-core: SystemArea. (line 286)
(line 145)
* Bootability, control, --grub2-sparc-core: SystemArea. (line 300)
* Bootability, control, --efi-boot: Bootable. (line 59)
* Bootability, control, -alpha-boot: SystemArea. (line 309)
* Bootability, control, -alpha-boot: SystemArea. (line 323)
* Bootability, control, -b, -eltorito-boot: Bootable. (line 38)
* Bootability, control, -B, -sparc-boot: SystemArea. (line 271)
* Bootability, control, -B, -sparc-boot: SystemArea. (line 285)
* Bootability, control, -e: Bootable. (line 53)
* Bootability, control, -eltorito-platform: Bootable. (line 63)
* Bootability, control, -hppa-bootloader: SystemArea. (line 298)
* Bootability, control, -hppa-cmdline: SystemArea. (line 292)
* Bootability, control, -hppa-hdrversion: SystemArea. (line 306)
* Bootability, control, -hppa-kernel_32: SystemArea. (line 300)
* Bootability, control, -hppa-kernel_64: SystemArea. (line 302)
* Bootability, control, -hppa-ramdisk: SystemArea. (line 304)
* Bootability, control, -mips-boot: SystemArea. (line 260)
* Bootability, control, -mipsel-boot: SystemArea. (line 266)
* Bootability, control, -hppa-bootloader: SystemArea. (line 312)
* Bootability, control, -hppa-cmdline: SystemArea. (line 306)
* Bootability, control, -hppa-hdrversion: SystemArea. (line 320)
* Bootability, control, -hppa-kernel_32: SystemArea. (line 314)
* Bootability, control, -hppa-kernel_64: SystemArea. (line 316)
* Bootability, control, -hppa-ramdisk: SystemArea. (line 318)
* Bootability, control, -mips-boot: SystemArea. (line 274)
* Bootability, control, -mipsel-boot: SystemArea. (line 280)
* Bootability, El Torito section id string, -eltorito-id: Bootable.
(line 93)
* Bootability, El Torito selection criteria, -eltorito-selcrit: Bootable.
(line 100)
* Bootability, fill System Area e.g. by MBR, -G, --embedded-boot, -generic-boot: SystemArea.
(line 68)
* Bootability, for CHRP, -chrp-boot-part: SystemArea. (line 244)
* Bootability, for EFI, -efi-boot-part: SystemArea. (line 221)
* Bootability, for PReP, -prep-boot-part: SystemArea. (line 255)
* Bootability, for CHRP, -chrp-boot-part: SystemArea. (line 258)
* Bootability, for EFI, -efi-boot-part: SystemArea. (line 235)
* Bootability, for PReP, -prep-boot-part: SystemArea. (line 269)
* Bootability, install ISOLINUX isohybrid MBR, -isohybrid-mbr: SystemArea.
(line 87)
* Bootability, install modern GRUB2 MBR, --grub2-mbr: SystemArea.
@ -2230,8 +2244,8 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Bootability, partitions like with isohybrid, -part_like_isohybrid: SystemArea.
(line 120)
* Bootability, patch System Area partition table, --protective-msdos-label: SystemArea.
(line 135)
* Bootability, SUN Disk Label text, -sparc-label: SystemArea. (line 284)
(line 141)
* Bootability, SUN Disk Label text, -sparc-label: SystemArea. (line 298)
* Bootability, type of ISO MBR partition, -iso_mbr_part_type: SystemArea.
(line 127)
* Bugs, reporting: Bugreport. (line 6)
@ -2250,7 +2264,7 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Disk files, exclude, -hide-list: SetInsert. (line 44)
* Disk files, exclude, -m, -exclude, -x, -old-exclude: SetInsert.
(line 31)
* Disk GUID, for GPT, --gpt_disk_guid: SystemArea. (line 231)
* Disk GUID, for GPT, --gpt_disk_guid: SystemArea. (line 245)
* disk_path, _definition: Insert. (line 7)
* ECMA-119, _definition: Standards. (line 6)
* El Torito, _definition: Bootable. (line 13)
@ -2259,7 +2273,7 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* File timestamps, set all, --set_all_file_dates: SetExtras. (line 35)
* Forced output, control, --stdio_sync: SetProduct. (line 23)
* GPT, mark appended partitions, -appended_part_as_gpt: SystemArea.
(line 209)
(line 223)
* GPT, _definition: SystemArea. (line 13)
* Group, for all files, -gid: SetProduct. (line 83)
* HFS+, enables production: SetExtras. (line 164)
@ -2277,7 +2291,7 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Hiding, from ISO and Rock Ridge, -hide-list: SetHide. (line 15)
* Hiding, from Joliet, -hide-joliet: SetHide. (line 18)
* Hiding, from Joliet, -hide-joliet-list: SetHide. (line 22)
* Image size, alignment, -partition_cyl_align: SystemArea. (line 178)
* Image size, alignment, -partition_cyl_align: SystemArea. (line 184)
* Incremental insertion, disable disk ino, --old-root-no-ino: SetInsert.
(line 73)
* Incremental insertion, disable MD5, --old-root-no-md5: SetInsert.
@ -2331,16 +2345,16 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Joliet, _definition: Standards. (line 21)
* Links, follow on disk, -f, -follow-links: SetInsert. (line 22)
* Links, record and load hard links, --hardlinks: SetExtras. (line 130)
* MBR, GPT, append partition, -append_partition: SystemArea. (line 189)
* MBR, sectors per head, -partition_sec_hd: SystemArea. (line 161)
* MBR, sectors per head, -partition_sec_hd <1>: SystemArea. (line 164)
* MBR, GPT, append partition, -append_partition: SystemArea. (line 195)
* MBR, sectors per head, -partition_sec_hd: SystemArea. (line 167)
* MBR, sectors per head, -partition_sec_hd <1>: SystemArea. (line 170)
* MBR, _definition: SystemArea. (line 9)
* MD5, record and load, --md5: SetExtras. (line 122)
* Message output, increase frequency, -gui: Miscellaneous. (line 29)
* Message output, redirect stderr, -log-file: Miscellaneous. (line 33)
* Message output, suppress, -quiet: Miscellaneous. (line 25)
* Mountability, by non-trivial partition 1, -partition_offset: SystemArea.
(line 150)
(line 156)
* Options, list, -help: Miscellaneous. (line 21)
* Output file, set address, -o, -output: SetProduct. (line 8)
* Ownership, for all files, -uid: SetProduct. (line 79)
@ -2400,23 +2414,23 @@ Node: SetHide33398
Node: ImageId34702
Node: Bootable38984
Node: SystemArea45270
Node: Charset62636
Node: Jigdo63661
Node: Miscellaneous67938
Node: Examples69583
Node: ExSimple70077
Node: ExGraft70560
Node: ExMkisofs71860
Node: ExGrowisofs73669
Node: ExIncBackup74859
Node: ExIncBckAcc78036
Node: ExBootable79741
Node: Files83923
Node: Environ85018
Node: Seealso85789
Node: Bugreport86440
Node: Legal87033
Node: CommandIdx87930
Node: ConceptIdx103797
Node: Charset63502
Node: Jigdo64527
Node: Miscellaneous68804
Node: Examples70449
Node: ExSimple70943
Node: ExGraft71426
Node: ExMkisofs72726
Node: ExGrowisofs74535
Node: ExIncBackup75725
Node: ExIncBckAcc78902
Node: ExBootable80607
Node: Files84789
Node: Environ85884
Node: Seealso86655
Node: Bugreport87306
Node: Legal87899
Node: CommandIdx88796
Node: ConceptIdx104663

End Tag Table

View File

@ -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.5.1, Nov 11, 2018"
@c man .TH XORRISOFS 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:
@ -1645,17 +1645,24 @@ 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.
@c man .TP
@item -iso_mbr_part_type "default"|number
@item -iso_mbr_part_type "default"|number|type_guid
@kindex -iso_mbr_part_type Set type of ISO MBR partition
@cindex Bootability, type of ISO MBR partition, -iso_mbr_part_type
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.
@*
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.
@c man .TP
@item @minus{}@minus{}protective-msdos-label
@kindex @minus{}@minus{}protective-msdos-label Patch System Area partition table
@ -1755,7 +1762,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.
@*
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
@ -2836,7 +2850,7 @@ Thomas Schmitt <scdbackup@@gmx.net>
for libburnia-project.org
@c man .SH COPYRIGHT
@section 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