New bootspec "gpt_disk_guid=", new -as mkisofs option --gpt_disk_guid, new -report_system_area mode "make_guid"

This commit is contained in:
Thomas Schmitt 2016-08-12 18:57:21 +00:00
parent 79a45f90f6
commit d4be334960
18 changed files with 322 additions and 113 deletions

View File

@ -292,6 +292,8 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->appended_as_gpt= 0;
m->appended_as_apm= 0;
m->part_like_isohybrid= 0;
memset(m->gpt_guid, 0, 16);
m->gpt_guid_mode= 0;
m->ascii_disc_label[0]= 0;
m->grub2_sparc_core[0]= 0;
memset(m->hfsp_serial_number, 0, 8);

View File

@ -653,7 +653,6 @@ int Xorriso_genisofs_count_args(struct XorrisO *xorriso, int argc, char **argv,
"-volid", "-old-exclude",
"-alpha-boot", "-hppa-cmdline", "-hppa-kernel-32", "-hppa-kernel-64",
"-hppa-bootloader", "-hppa-ramdisk", "-mips-boot", "-mipsel-boot",
"-alpha-boot",
"-jigdo-jigdo", "-jigdo-template", "-jigdo-min-file-size",
"-jigdo-force-md5", "-jigdo-exclude", "-jigdo-map", "-md5-list",
"-jigdo-template-compress",
@ -665,7 +664,7 @@ int Xorriso_genisofs_count_args(struct XorrisO *xorriso, int argc, char **argv,
"-hfsplus-block-size", "-apm-block-size", "--grub2-mbr",
"--grub2-sparc-core", "--sort-weight-list", "--sort-weight-patterns",
"-hppa-hdrversion", "-file_name_limit", "--set_all_file_dates",
""
"--gpt_disk_guid", ""
};
static char arg2_options[][41]= {
"-hfs-bless-by", "--scdbackup_tag", "--sort-weight",
@ -874,6 +873,7 @@ 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",
" --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",
" --protective-msdos-label Patch System Area by partition table",
@ -1908,7 +1908,8 @@ not_enough_args:;
strcmp(argpt, "-isohybrid-mbr") == 0 ||
strcmp(argpt, "--grub2-mbr") == 0 ||
strncmp(argpt, "-hppa-", 6) == 0 ||
strcmp(argpt, "-alpha-boot") == 0) {
strcmp(argpt, "-alpha-boot") == 0 ||
strcmp(argpt, "--gpt_disk_guid") == 0) {
if(i+1>=argc)
goto not_enough_args;
delay_opt_list[delay_opt_count++]= i;
@ -2479,6 +2480,14 @@ problem_handler_2:;
} else if(strcmp(argpt, "-part_like_isohybrid") == 0) {
xorriso->part_like_isohybrid= 1;
} else if(strcmp(argpt, "--gpt_disk_guid") == 0) {
if(i + 1 >= argc)
goto not_enough_args;
i++;
ret= Xorriso_parse_gpt_guid(xorriso, argv[i], 0);
if(ret <= 0)
goto problem_handler_boot;
} else if(strcmp(argpt, "-eltorito-alt-boot")==0) {
ret= Xorriso_genisofs_add_boot(xorriso, 0);
if(ret <= 0)

View File

@ -2755,6 +2755,14 @@ int Xorriso_report_system_area(struct XorrisO *xorriso, char *form, int flag)
ret = Xorriso_gpt_crc(xorriso, form + 11, 0);
goto ex;
} else if(strcmp(form, "make_guid") == 0 && !(flag & 1)) {
ret= Xorriso_make_guid(xorriso, xorriso->result_line, 0);
if(ret < 0)
goto ex;
strcat(xorriso->result_line, "\n");
Xorriso_result(xorriso,0);
goto ex;
} else {
sprintf(xorriso->info_text,
"%s form parameter not recognized: ",

View File

@ -980,3 +980,27 @@ int Xorriso_set_data_cache(struct XorrisO *xorriso, void *o,
}
int Xorriso_make_guid(struct XorrisO *xorriso, char *line, int flag)
{
uint8_t guid[16];
int i;
line[0]= 0;
iso_generate_gpt_guid(guid);
for(i= 0; i < 4; i++)
sprintf(line + strlen(line), "%-2.2x", guid[i]);
sprintf(line + strlen(line), "-");
for(i= 4; i < 6; i++)
sprintf(line + strlen(line), "%-2.2x", guid[i]);
sprintf(line + strlen(line), "-");
for(i= 6; i < 8; 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]);
return(1);
}

View File

@ -1083,10 +1083,12 @@ int Hex_to_bin(char *hex,
int i, l, acc;
l= strlen(hex);
if(l % 2 || l == 0)
if(((l % 2) && l < 2 * bin_size) || l == 0)
return(-1); /* malformed */
*bin_count= 0;
for(i= 0; i < l; i+= 2) {
if(*bin_count >= bin_size)
return(0); /* overflow */
if(hex[i] >= '0' && hex[i] <= '9')
acc= (hex[i] - '0') << 4;
else if(hex[i] >= 'A' && hex[i] <= 'F')
@ -1103,8 +1105,6 @@ int Hex_to_bin(char *hex,
acc|= (hex[i + 1] - 'a' + 10);
else
return(-1);
if(*bin_count >= bin_size)
return(0); /* overflow */
bin_data[*bin_count]= acc;
(*bin_count)++;
}

View File

@ -1074,6 +1074,11 @@ treatment_patch:;
} else
was_ok= 0;
} else if(strncmp(treatpt, "gpt_disk_guid=", 14) == 0) {
ret= Xorriso_parse_gpt_guid(xorriso, treatpt + 14, 0);
if(ret <= 0)
goto ex;
} else if(strncmp(treatpt, "part_like_isohybrid=", 20) == 0) {
if(strcmp(treatpt + 20, "on") == 0)
xorriso->part_like_isohybrid= 1;

View File

@ -1828,7 +1828,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" |\"partition_cyl_align=\"|\"mbr_force_bootable=\"",
" |\"system_area=\"|\"partition_table=on|off\"",
" |\"partition_entry=\"|\"appended_part_as=\"",
" |\"part_like_isohybrid=\"",
" |\"part_like_isohybrid=\"|\"gpt_disk_guid=\"",
" |\"chrp_boot_part=on|off=\"|\"prep_boot_part=\"",
" |\"efi_boot_part=\"|\"efi_boot_part=--efi-boot-image\"",
" |\"mips_path=\"|\"mipsel_path=\"|\"mips_discard\"",

View File

@ -3065,6 +3065,18 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->gpt_guid_mode == 0);
sprintf(line, "-boot_image any gpt_disk_guid=%s",
xorriso->gpt_guid_mode == 0 ? "random" :
xorriso->gpt_guid_mode == 2 ? "volume_date_uuid" : "");
if(xorriso->gpt_guid_mode == 1)
for(i= 0; i < 16; i++)
sprintf(line + strlen(line), "%-2.2x",
(unsigned int) xorriso->gpt_guid[i]);
strcat(line, "\n");
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
ret= ((xorriso->system_area_options & 0x3cfc) == 0x400);
is_default= (ret == 0);
sprintf(line, "-boot_image any chrp_boot_part=%s\n",

View File

@ -953,6 +953,7 @@ int Xorriso_make_iso_write_opts(struct XorrisO *xorriso, IsoImage *image,
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_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);
isoburn_igopt_set_hfsp_block_size(sopts, xorriso->hfsp_block_size,
@ -3062,3 +3063,57 @@ ex:;
return(ret);
}
int Xorriso_parse_gpt_guid(struct XorrisO *xorriso, char *text, int flag)
{
int bin_count= 0, ret;
uint8_t u[16];
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 */
if(strlen(text) == 36) {
if(text[8] == '-' && text[13] == '-' && text[18] == '-' && text[23] == '-'){
ret= Hex_to_bin(text, 4, &bin_count, u, 0);
if(ret < 0 || bin_count != 4)
goto malformed;
ret= Hex_to_bin(text + 9, 2, &bin_count, u + 4, 0);
if(ret < 0 || bin_count != 2)
goto malformed;
ret= Hex_to_bin(text + 14, 2, &bin_count, u + 6, 0);
if(ret < 0 || bin_count != 2)
goto malformed;
ret= Hex_to_bin(text + 19, 2, &bin_count, u + 8, 0);
if(ret < 0 || bin_count != 2)
goto malformed;
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);
return(1);
}
}
if(strlen(text) == 32) {
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);
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);
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.4.5, Aug 07, 2016"
.TH XORRISO 1 "Version 1.4.5, Aug 12, 2016"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -3354,6 +3354,19 @@ a disk file but nevertheless causes adjustments in the
loaded system area data. Such adjustments may get ordered by \-boot_image
commands.
.br
\fB\-boot_image any gpt_disk_guid=\fRvalue controls whether an emerging GPT
shall get a randomly generated disk GUID or whether the GUID is supplied by
the user.
Value "random" is default. Value "volume_date_uuid" produces a low quality
GUID from the value set by \-volume_date "uuid".
.br
A string of 32 hex digits, or a RFC 4122 compliant GUID string may be used to
set the disk GUID directly.
.br
E.g. gpt_disk_guid=2303cd2a\-73c7\-424a\-a298\-25632da7f446
.br
The partition GUIDs get generated by minimally varying the disk GUID.
.br
\fB\-boot_image any part_like_isohybrid=on\fR enables
\-boot_image isolinux partition_entry= even if no
\-boot_image isolinux system_area= is given.
@ -4145,6 +4158,9 @@ With mode \fBgpt_crc_of:\fRdisk_path read up to 32 KiB from the disk
file with the path given after the colon. Compute the GPT compliant CRC number
and print it to the result channel. The number is shown like "0x690fd979".
The special disk_path "\-" causes reading from standard input.
.br
With mode \fBmake_guid\fR print a pseudo\-random GUID in RFC 4122 format
to result channel.
.TP
.B Navigation in ISO image and disk filesystem:
.TP

View File

@ -2825,6 +2825,16 @@ Examples:
reading of a disk file but nevertheless causes adjustments in the
loaded system area data. Such adjustments may get ordered by
-boot_image commands.
*-boot_image any gpt_disk_guid=*value controls whether an emerging
GPT shall get a randomly generated disk GUID or whether the GUID is
supplied by the user. Value "random" is default. Value
"volume_date_uuid" produces a low quality GUID from the value set
by -volume_date "uuid".
A string of 32 hex digits, or a RFC 4122 compliant GUID string may
be used to set the disk GUID directly.
E.g. gpt_disk_guid=2303cd2a-73c7-424a-a298-25632da7f446
The partition GUIDs get generated by minimally varying the disk
GUID.
*-boot_image any part_like_isohybrid=on* enables -boot_image
isolinux partition_entry= even if no -boot_image isolinux
system_area= is given. No MBR partition of type 0xee emerges, even
@ -3478,6 +3488,8 @@ File: xorriso.info, Node: Inquiry, Next: Navigate, Prev: DialogCtl, Up: Comm
compliant CRC number and print it to the result channel. The
number is shown like "0x690fd979". The special disk_path "-"
causes reading from standard input.
With mode *make_guid* print a pseudo-random GUID in RFC 4122 format
to result channel.

File: xorriso.info, Node: Navigate, Next: Verify, Prev: Inquiry, Up: Commands
@ -5118,7 +5130,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -alter_date sets timestamps in ISO image: Manip. (line 136)
* -alter_date_r sets timestamps in ISO image: Manip. (line 171)
* -append_partition adds arbitrary file after image end: Bootable.
(line 378)
(line 388)
* -application_id sets application id: SetWrite. (line 191)
* -application_use sets application use field: SetWrite. (line 256)
* -as emulates mkisofs or cdrecord: Emulation. (line 13)
@ -5360,12 +5372,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 369)
* APM block size: Bootable. (line 379)
* APM, _definition: Extras. (line 42)
* Appendable media, _definition: Media. (line 38)
* Appended Filesystem Image, -append_partition: Bootable. (line 378)
* Appended partition, in APM: Bootable. (line 249)
* Appended partition, in MBR or GPT: Bootable. (line 242)
* Appended Filesystem Image, -append_partition: Bootable. (line 388)
* Appended partition, in APM: Bootable. (line 259)
* Appended partition, in MBR or GPT: Bootable. (line 252)
* Automatic execution order, of arguments, -x: ArgSort. (line 16)
* Backslash Interpretation, _definition: Processing. (line 53)
* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 226)
@ -5383,15 +5395,15 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Character set, learn from image, -auto_charset: Loading. (line 123)
* Character Set, of terminal, -local_charset: Charset. (line 57)
* Character Set, _definition: Charset. (line 6)
* CHRP partition, _definition: Bootable. (line 254)
* CHRP partition, _definition: Bootable. (line 264)
* 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 298)
* Cylinder size, _definition: Bootable. (line 283)
* Cylinder alignment, _definition: Bootable. (line 308)
* Cylinder size, _definition: Bootable. (line 293)
* Damaged track and session, close, -close_damaged: Writing. (line 164)
* DEC Alpha SRM boot sector, production: Bootable. (line 355)
* DEC Alpha SRM boot sector, production: Bootable. (line 365)
* Delete, from ISO image, -rm: Manip. (line 20)
* Delete, from ISO image, -rm_r: Manip. (line 26)
* Delete, ISO directory, -rmdir: Manip. (line 29)
@ -5422,7 +5434,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 263)
* EFI system partition, _definition: Bootable. (line 273)
* El Torito, _definition: Extras. (line 19)
* Emulation, -as: Emulation. (line 13)
* Emulation, .mkisofsrc, -read_mkisofsrc: Emulation. (line 155)
@ -5445,16 +5457,17 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Filter, _definition: Filter. (line 6)
* Frontend program, start at pipes, -launch_frontend: Frontend.
(line 141)
* GPT, control GUID, -boot_image gpt_disk_guid=: Bootable. (line 210)
* GPT, _definition: Extras. (line 39)
* Group, global in ISO image, -gid: SetWrite. (line 277)
* Group, in ISO image, -chgrp: Manip. (line 49)
* Group, in ISO image, -chgrp_r: Manip. (line 53)
* Growing, _definition: Methods. (line 20)
* Hard links, control handling, -hardlinks: Loading. (line 134)
* HFS+ allocation block size: Bootable. (line 366)
* HFS+ serial number: Bootable. (line 363)
* HFS+ allocation block size: Bootable. (line 376)
* HFS+ serial number: Bootable. (line 373)
* hidden, set in ISO image, -hide: Manip. (line 174)
* HP-PA boot sector, production: Bootable. (line 338)
* HP-PA boot sector, production: Bootable. (line 348)
* Image reading, cache size, -data_cache_size: Loading. (line 332)
* Image, demand volume ID, -assert_volid: Loading. (line 111)
* Image, discard pending changes, -rollback: Writing. (line 9)
@ -5508,7 +5521,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 309)
* MBR bootable/active flag, enforce: Bootable. (line 319)
* MBR, set, -boot_image system_area=: Bootable. (line 187)
* MBR, _definition: Extras. (line 27)
* MD5, control handling, -md5: Loading. (line 182)
@ -5516,7 +5529,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 317)
* MIPS boot file, activation: Bootable. (line 327)
* mkisofs, Emulation: Emulation. (line 17)
* Modifying, _definition: Methods. (line 28)
* Multi-session media, _definition: Media. (line 7)
@ -5543,15 +5556,15 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Ownership, global in ISO image, -uid: SetWrite. (line 274)
* Ownership, in ISO image, -chown: Manip. (line 43)
* Ownership, in ISO image, -chown_r: Manip. (line 47)
* Partition offset, _definition: Bootable. (line 273)
* Partition table, _definition: Bootable. (line 223)
* Partition offset, _definition: Bootable. (line 283)
* Partition table, _definition: Bootable. (line 233)
* 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 258)
* PReP partition, _definition: Bootable. (line 268)
* Problems, reporting: Bugreport. (line 6)
* Process, consolidate text output, -pkt_output: Frontend. (line 7)
* Process, control abort on error, -abort_on: Exception. (line 27)
@ -5611,8 +5624,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 328)
* SUN SPARC boot images, activation: Bootable. (line 401)
* SUN Disk Label, production: Bootable. (line 338)
* SUN SPARC boot images, activation: Bootable. (line 411)
* Symbolic link, create, -lns: Insert. (line 166)
* System area, _definition: Bootable. (line 187)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 278)
@ -5681,39 +5694,39 @@ Node: Filter100874
Node: Writing105496
Node: SetWrite115652
Node: Bootable139799
Node: Jigdo163782
Node: Charset168041
Node: Exception171370
Node: DialogCtl177499
Node: Inquiry180101
Node: Navigate188551
Node: Verify196846
Node: Restore206724
Node: Emulation215337
Node: Scripting225796
Node: Frontend233579
Node: Examples243205
Node: ExDevices244383
Node: ExCreate245044
Node: ExDialog246344
Node: ExGrowing247615
Node: ExModifying248424
Node: ExBootable248934
Node: ExCharset249489
Node: ExPseudo250385
Node: ExCdrecord251312
Node: ExMkisofs251632
Node: ExGrowisofs252989
Node: ExException254143
Node: ExTime254601
Node: ExIncBackup255059
Node: ExRestore259085
Node: ExRecovery260031
Node: Files260603
Node: Seealso261937
Node: Bugreport262652
Node: Legal263243
Node: CommandIdx264255
Node: ConceptIdx281443
Node: Jigdo164347
Node: Charset168606
Node: Exception171935
Node: DialogCtl178064
Node: Inquiry180666
Node: Navigate189213
Node: Verify197508
Node: Restore207386
Node: Emulation215999
Node: Scripting226458
Node: Frontend234241
Node: Examples243867
Node: ExDevices245045
Node: ExCreate245706
Node: ExDialog247006
Node: ExGrowing248277
Node: ExModifying249086
Node: ExBootable249596
Node: ExCharset250151
Node: ExPseudo251047
Node: ExCdrecord251974
Node: ExMkisofs252294
Node: ExGrowisofs253651
Node: ExException254805
Node: ExTime255263
Node: ExIncBackup255721
Node: ExRestore259747
Node: ExRecovery260693
Node: Files261265
Node: Seealso262599
Node: Bugreport263314
Node: Legal263905
Node: CommandIdx264917
Node: ConceptIdx282105

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.4.5, Aug 07, 2016"
@c man .TH XORRISO 1 "Version 1.4.5, Aug 12, 2016"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -3893,6 +3893,20 @@ a disk file but nevertheless causes adjustments in the
loaded system area data. Such adjustments may get ordered by -boot_image
commands.
@*
@cindex GPT, control GUID, -boot_image gpt_disk_guid=
@strong{-boot_image any gpt_disk_guid=}value controls whether an emerging GPT
shall get a randomly generated disk GUID or whether the GUID is supplied by
the user.
Value "random" is default. Value "volume_date_uuid" produces a low quality
GUID from the value set by -volume_date "uuid".
@*
A string of 32 hex digits, or a RFC 4122 compliant GUID string may be used to
set the disk GUID directly.
@*
E.g. gpt_disk_guid=2303cd2a-73c7-424a-a298-25632da7f446
@*
The partition GUIDs get generated by minimally varying the disk GUID.
@*
@strong{-boot_image any part_like_isohybrid=on} enables
-boot_image isolinux partition_entry= even if no
-boot_image isolinux system_area= is given.
@ -4782,6 +4796,9 @@ With mode @strong{gpt_crc_of:}disk_path read up to 32 KiB from the disk
file with the path given after the colon. Compute the GPT compliant CRC number
and print it to the result channel. The number is shown like "0x690fd979".
The special disk_path "-" causes reading from standard input.
@*
With mode @strong{make_guid} print a pseudo-random GUID in RFC 4122 format
to result channel.
@end table
@c man .TP
@c man .B Navigation in ISO image and disk filesystem:

View File

@ -497,6 +497,10 @@ struct XorrisO { /* the global context of xorriso */
/* If 1: Apply isohybrid gestures to non-isohybrid situations */
int part_like_isohybrid;
/* See libisoburn.h isoburn_igopt_set_gpt_guid() */
uint8_t gpt_guid[16];
int gpt_guid_mode;
/* Eventual name of the non-ISO aspect of the image. E.g. SUN ASCII label.
*/
char ascii_disc_label[Xorriso_disc_label_sizE];

View File

@ -1 +1 @@
#define Xorriso_timestamP "2016.08.12.184736"
#define Xorriso_timestamP "2016.08.12.185822"

View File

@ -642,5 +642,9 @@ 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_gpt_guid(struct XorrisO *xorriso, char *text, int flag);
int Xorriso_make_guid(struct XorrisO *xorriso, char *line, int flag);
#endif /* Xorrisoburn_includeD */

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.4.5, Aug 07, 2016"
.TH XORRISOFS 1 "Version 1.4.5, Aug 12, 2016"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -1300,6 +1300,19 @@ EFI system partition. EFI boot images are introduced by options \-e or
The affected EFI boot image cannot show up in HFS+ because it is stored
outside the HFS+ partition.
.TP
\fB--gpt_disk_guid\fR value
Control whether an emerging GPT shall get a randomly generated disk GUID
or whether the GUID is supplied by the user.
Value "random" is default. Value "modification\-date" produces a low quality
GUID from the value set by option \-\-modification\-date=.
.br
A string of 32 hex digits, or a RFC 4122 compliant GUID string may be used to
set the disk GUID directly.
.br
E.g. \-\-gpt_disk_guid 2303cd2a\-73c7\-424a\-a298\-25632da7f446
.br
The partition GUIDs get generated by minimally varying the disk GUID.
.TP
\fB\-chrp-boot-part\fR
Mark the block range of the whole emerging ISO image as MBR partition of type
0x96. This is not compatible with any other feature that produces MBR

View File

@ -1137,6 +1137,16 @@ Examples:
EFI system partition. EFI boot images are introduced by options -e
or --efi-boot. The affected EFI boot image cannot show up in HFS+
because it is stored outside the HFS+ partition.
--gpt_disk_guid value
Control whether an emerging GPT shall get a randomly generated disk
GUID or whether the GUID is supplied by the user. Value "random"
is default. Value "modification-date" produces a low quality GUID
from the value set by option --modification-date=.
A string of 32 hex digits, or a RFC 4122 compliant GUID string may
be used to set the disk GUID directly.
E.g. --gpt_disk_guid 2303cd2a-73c7-424a-a298-25632da7f446
The partition GUIDs get generated by minimally varying the disk
GUID.
-chrp-boot-part
Mark the block range of the whole emerging ISO image as MBR
partition of type 0x96. This is not compatible with any other
@ -1847,9 +1857,10 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* --embedded-boot Fill System Area e.g. by MBR: SystemArea. (line 75)
* --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 216)
* --grub2-boot-info Patch El Torito boot image: Bootable. (line 89)
* --grub2-mbr Install modern GRUB2 MBR: SystemArea. (line 77)
* --grub2-sparc-core SUN SPARC core file: SystemArea. (line 258)
* --grub2-sparc-core SUN SPARC core file: SystemArea. (line 268)
* --hardlinks Recording of hardlink relations: SetExtras. (line 116)
* --mbr-force-bootable Enforce MBR bootable/active flag: SystemArea.
(line 127)
@ -1882,7 +1893,7 @@ 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 281)
* -alpha-boot DEC Alpha SRM bootloader: SystemArea. (line 291)
* -appended_part_as_apm Appended partitions in APM: SystemArea.
(line 200)
* -appended_part_as_gpt Appended partitions in GPT: SystemArea.
@ -1891,7 +1902,7 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
(line 174)
* -appid set Application Id: ImageId. (line 41)
* -b El Torito PC-BIOS boot image: Bootable. (line 32)
* -B SUN SPARC boot images: SystemArea. (line 243)
* -B SUN SPARC boot images: SystemArea. (line 253)
* -biblio set Biblio File path: ImageId. (line 62)
* -boot-info-table Patch El Torito boot image: Bootable. (line 84)
* -boot-load-size El Torito boot image load size: Bootable. (line 57)
@ -1902,8 +1913,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 225)
* -chrp-boot-part CHRP partition: SystemArea. (line 216)
* -chrp-boot CHRP partition: SystemArea. (line 235)
* -chrp-boot-part CHRP partition: SystemArea. (line 226)
* -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)
@ -1958,12 +1969,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 270)
* -hppa-cmdline HP-PA PALO command line: SystemArea. (line 264)
* -hppa-hdrversion HP-PA PALO header version: SystemArea. (line 278)
* -hppa-kernel_32 HP-PA kernel_32 file: SystemArea. (line 272)
* -hppa-kernel_64 HP-PA kernel_64 file: SystemArea. (line 274)
* -hppa-ramdisk HP-PA ramdisk file: SystemArea. (line 276)
* -hppa-bootloader HP-PA bootloader file: SystemArea. (line 280)
* -hppa-cmdline HP-PA PALO command line: SystemArea. (line 274)
* -hppa-hdrversion HP-PA PALO header version: SystemArea. (line 288)
* -hppa-kernel_32 HP-PA kernel_32 file: SystemArea. (line 282)
* -hppa-kernel_64 HP-PA kernel_64 file: SystemArea. (line 284)
* -hppa-ramdisk HP-PA ramdisk file: SystemArea. (line 286)
* -input-charset set character set of disk file names: Charset.
(line 17)
* -iso-level define ISO 9660 limitations: SetCompl. (line 7)
@ -1992,8 +2003,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 232)
* -mipsel-boot MIPS Little Endian boot image: SystemArea. (line 238)
* -mips-boot MIPS Big Endian boot image: SystemArea. (line 242)
* -mipsel-boot MIPS Little Endian boot image: SystemArea. (line 248)
* -N omit version number in ISO file names: SetCompl. (line 64)
* -no-emul-boot El Torito boot image emulation: Bootable. (line 66)
* -no-pad do not add zeros to ISO tree: SetProduct. (line 93)
@ -2017,7 +2028,7 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -part_like_isohybrid Mark partitions like with isohybrid: SystemArea.
(line 116)
* -path-list read pathspecs from disk file: SetInsert. (line 8)
* -prep-boot-part PReP partition: SystemArea. (line 227)
* -prep-boot-part PReP partition: SystemArea. (line 237)
* -preparer set Preparer Id: ImageId. (line 55)
* -prev-session set path for loading existing ISO image: Loading.
(line 21)
@ -2034,8 +2045,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 254)
* -sparc-label SUN Disk Label text: SystemArea. (line 256)
* -sparc-boot SUN SPARC boot images: SystemArea. (line 264)
* -sparc-label SUN Disk Label text: SystemArea. (line 266)
* -sysid set System Id: ImageId. (line 43)
* -transparent-compression enable recognition of zisofs files: SetInsert.
(line 53)
@ -2089,29 +2100,29 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
(line 84)
* Bootability, bootable MBR partition, --mbr-force-bootable: SystemArea.
(line 127)
* Bootability, control, --grub2-sparc-core: SystemArea. (line 258)
* Bootability, control, --grub2-sparc-core: SystemArea. (line 268)
* Bootability, control, --efi-boot: Bootable. (line 53)
* Bootability, control, -alpha-boot: SystemArea. (line 281)
* Bootability, control, -alpha-boot: SystemArea. (line 291)
* Bootability, control, -b, -eltorito-boot: Bootable. (line 32)
* Bootability, control, -B, -sparc-boot: SystemArea. (line 243)
* Bootability, control, -B, -sparc-boot: SystemArea. (line 253)
* Bootability, control, -e: Bootable. (line 47)
* Bootability, control, -hppa-bootloader: SystemArea. (line 270)
* Bootability, control, -hppa-cmdline: SystemArea. (line 264)
* Bootability, control, -hppa-hdrversion: SystemArea. (line 278)
* Bootability, control, -hppa-kernel_32: SystemArea. (line 272)
* Bootability, control, -hppa-kernel_64: SystemArea. (line 274)
* Bootability, control, -hppa-ramdisk: SystemArea. (line 276)
* Bootability, control, -mips-boot: SystemArea. (line 232)
* Bootability, control, -mipsel-boot: SystemArea. (line 238)
* Bootability, control, -hppa-bootloader: SystemArea. (line 280)
* Bootability, control, -hppa-cmdline: SystemArea. (line 274)
* Bootability, control, -hppa-hdrversion: SystemArea. (line 288)
* Bootability, control, -hppa-kernel_32: SystemArea. (line 282)
* Bootability, control, -hppa-kernel_64: SystemArea. (line 284)
* Bootability, control, -hppa-ramdisk: SystemArea. (line 286)
* Bootability, control, -mips-boot: SystemArea. (line 242)
* Bootability, control, -mipsel-boot: SystemArea. (line 248)
* Bootability, El Torito section id string, -eltorito-id: Bootable.
(line 73)
* Bootability, El Torito selection criteria, -eltorito-selcrit: Bootable.
(line 80)
* Bootability, fill System Area e.g. by MBR, -G, --embedded-boot, -generic-boot: SystemArea.
(line 64)
* Bootability, for CHRP, -chrp-boot-part: SystemArea. (line 216)
* Bootability, for CHRP, -chrp-boot-part: SystemArea. (line 226)
* Bootability, for EFI, -efi-boot-part: SystemArea. (line 206)
* Bootability, for PReP, -prep-boot-part: SystemArea. (line 227)
* Bootability, for PReP, -prep-boot-part: SystemArea. (line 237)
* Bootability, install ISOLINUX isohybrid MBR, -isohybrid-mbr: SystemArea.
(line 83)
* Bootability, install modern GRUB2 MBR, --grub2-mbr: SystemArea.
@ -2129,7 +2140,7 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
(line 116)
* Bootability, patch System Area partition table, --protective-msdos-label: SystemArea.
(line 123)
* Bootability, SUN Disk Label text, -sparc-label: SystemArea. (line 256)
* Bootability, SUN Disk Label text, -sparc-label: SystemArea. (line 266)
* Bugs, reporting: Bugreport. (line 6)
* Character Set, for disk file names, -input-charset: Charset.
(line 17)
@ -2146,6 +2157,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 216)
* disk_path, _definition: Insert. (line 7)
* ECMA-119, _definition: Standards. (line 6)
* El Torito, _definition: Bootable. (line 13)
@ -2292,22 +2304,22 @@ Node: SetHide32499
Node: ImageId33803
Node: Bootable38085
Node: SystemArea43253
Node: Charset58958
Node: Jigdo59983
Node: Miscellaneous64260
Node: Examples65905
Node: ExSimple66399
Node: ExGraft66882
Node: ExMkisofs68182
Node: ExGrowisofs69448
Node: ExIncBackup70638
Node: ExIncBckAcc73799
Node: ExBootable75488
Node: Files79670
Node: Seealso80765
Node: Bugreport81414
Node: Legal82005
Node: CommandIdx82902
Node: ConceptIdx98267
Node: Charset59512
Node: Jigdo60537
Node: Miscellaneous64814
Node: Examples66459
Node: ExSimple66953
Node: ExGraft67436
Node: ExMkisofs68736
Node: ExGrowisofs70002
Node: ExIncBackup71192
Node: ExIncBckAcc74353
Node: ExBootable76042
Node: Files80224
Node: Seealso81319
Node: Bugreport81968
Node: Legal82559
Node: CommandIdx83456
Node: ConceptIdx98894

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.4.5, Aug 07, 2016"
@c man .TH XORRISOFS 1 "Version 1.4.5, Aug 12, 2016"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -1716,6 +1716,21 @@ EFI system partition. EFI boot images are introduced by options -e or
The affected EFI boot image cannot show up in HFS+ because it is stored
outside the HFS+ partition.
@c man .TP
@item @minus{}@minus{}gpt_disk_guid value
@kindex @minus{}@minus{}gpt_disk_guid GPT GUID
@cindex Disk GUID, for GPT, @minus{}@minus{}gpt_disk_guid
Control whether an emerging GPT shall get a randomly generated disk GUID
or whether the GUID is supplied by the user.
Value "random" is default. Value "modification-date" produces a low quality
GUID from the value set by option @minus{}@minus{}modification-date=.
@*
A string of 32 hex digits, or a RFC 4122 compliant GUID string may be used to
set the disk GUID directly.
@*
E.g. @minus{}@minus{}gpt_disk_guid 2303cd2a-73c7-424a-a298-25632da7f446
@*
The partition GUIDs get generated by minimally varying the disk GUID.
@c man .TP
@item -chrp-boot-part
@kindex -chrp-boot-part CHRP partition
@cindex Bootability, for CHRP, -chrp-boot-part