New -as mkisofs option -eltorito-platform

This commit is contained in:
Thomas Schmitt 2017-06-03 15:24:48 +02:00
parent 3e3fddd41a
commit 2126dce208
5 changed files with 124 additions and 43 deletions

View File

@ -664,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", "-iso_mbr_part_type",
"--gpt_disk_guid", "-iso_mbr_part_type", "-eltorito-platform",
""
};
static char arg2_options[][41]= {
@ -857,6 +857,7 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag)
" Specify the checksum types desired for the output image (in .jigdo)",
" -checksum_algorithm_template alg1,alg2,...",
" Specify the checksum types desired for the output jigdo template",
" -eltorito-platform Set El Torito platform id for the next boot entry",
" -b FILE, -eltorito-boot FILE",
" Set El Torito boot image name",
" -eltorito-alt-boot Start specifying alternative El Torito boot parameters",
@ -1269,6 +1270,44 @@ ex:;
}
int Xorriso_genisofs_platform(struct XorrisO *xorriso, char *id, int flag)
{
unsigned int u;
char re_id[64];
if(strcmp(id, "x86") == 0)
return(0);
else if(strcmp(id, "PPC") == 0)
return(1);
else if(strcmp(id, "Mac") == 0)
return(2);
else if(strcmp(id, "efi") == 0)
return(0xef);
u= 0x100;
if(strncmp(id, "0x", 2) == 0) {
sscanf(id + 2, "%x", &u);
} else {
sscanf(id, "%u", &u);
sprintf(re_id, "%u", u);
if(strcmp(id, re_id) != 0)
goto wrong_id;
}
if(u <= 0xff)
return((int) u);
wrong_id:;
sprintf(xorriso->info_text,
"Unrecognized El Torito Platform Id : '%.16s%s'",
id, strlen(id) > 16 ? "..." : "");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
sprintf(xorriso->info_text,
"Recognizable are: x86, PPC, Mac, efi, [0...255], [0x00...0xff]");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "HINT", 0);
return(-1);
}
/* micro emulation of mkisofs */
int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
int argc, char **argv, int flag)
@ -1284,6 +1323,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
int old_root_md5= 1, old_root_dev= 0, old_root_ino= 1, sort_file_pattern= 0;
int *weight_list= NULL, weight_count= 0;
int *delay_opt_list= NULL, delay_opt_count= 0;
int mkisofs_b_platform_id= 0x00;
char *sfe= NULL, *adr= NULL, ra_text[80], *pathspec= NULL, *sort_file= NULL;
char *ept, *add_pt, *eff_path= NULL, *indev= NULL, msc[80], *cpt;
char *old_root= NULL, *argpt, *hargv[1];
@ -1892,6 +1932,7 @@ not_enough_args:;
delay_opt_list[delay_opt_count - 1]|= 1<<31;
} else if(strcmp(argpt, "-b") == 0 ||
strcmp(argpt, "-eltorito-boot") == 0 ||
strcmp(argpt, "-eltorito-platform") == 0 ||
strcmp(argpt, "--efi-boot") == 0 ||
strcmp(argpt, "-e") == 0 ||
strcmp(argpt, "-mips-boot") == 0 ||
@ -2414,7 +2455,7 @@ problem_handler_2:;
if(strcmp(argpt, "-e") == 0)
xorriso->boot_platform_id= 0xef;
else
xorriso->boot_platform_id= 0x00;
xorriso->boot_platform_id= mkisofs_b_platform_id;
xorriso->boot_efi_default= 0;
if(xorriso->boot_emul_default)
xorriso->boot_image_emul= 2;
@ -2432,6 +2473,21 @@ problem_handler_2:;
}
xorriso->keep_boot_image= 0;
with_boot_image= 1;
} else if(strcmp(argpt, "-eltorito-platform") == 0) {
if(i + 1>=argc)
goto not_enough_args;
i++;
if(xorriso->boot_image_bin_path[0] != 0) {
ret= Xorriso_genisofs_add_boot(xorriso, 0);
if(ret <= 0)
goto problem_handler_boot;
}
mkisofs_b_platform_id= Xorriso_genisofs_platform(xorriso, argv[i], 0);
if(mkisofs_b_platform_id < 0) {
mkisofs_b_platform_id= 0;
goto problem_handler_boot;
}
} else if(strcmp(argpt, "-c") == 0 ||
strcmp(argpt, "-eltorito-catalog") == 0) {
if(i+1>=argc)

View File

@ -1 +1 @@
#define Xorriso_timestamP "2017.05.09.081543"
#define Xorriso_timestamP "2017.06.03.132429"

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.7, Feb 26, 2017"
.TH XORRISOFS 1 "Version 1.4.7, Jun 03, 2017"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -988,6 +988,13 @@ Perform \-eltorito\-alt\-boot, option \-e with the given
iso_rr_path, \-no\-emul\-boot, and again \-eltorito\-alt\-boot. This gesture is
used for achieving EFI\-bootability of the GRUB2 rescue CD.
.TP
\fB\-eltorito-platform\fR "x86"|"PPC"|"Mac"|"efi"|0xnn|nnn
Perform option \-eltorito\-alt\-boot and set the Platform Id number for the next
option \-b or \-eltorito\-boot. The number may be chosen by a platform name or by
a number between 0 and 255 (0x00 and 0xFF). "x86" = 0 is for PC\-BIOS,
"PPC" = 1 for some PowerPC systems, "Mac" = 2 for some MacIntosh systems,
"efi" = 0xEF for EFI on modern PCs with x86 compatible CPUs or others.
.TP
\fB\-boot-load-size\fR number|"full"
Set the number of 512\-byte blocks to be loaded at boot time
from the boot image in the current catalog entry.

View File

@ -881,6 +881,13 @@ the System Area.
Perform -eltorito-alt-boot, option -e with the given iso_rr_path,
-no-emul-boot, and again -eltorito-alt-boot. This gesture is used
for achieving EFI-bootability of the GRUB2 rescue CD.
-eltorito-platform "x86"|"PPC"|"Mac"|"efi"|0xnn|nnn
Perform option -eltorito-alt-boot and set the Platform Id number
for the next option -b or -eltorito-boot. The number may be chosen
by a platform name or by a number between 0 and 255 (0x00 and
0xFF). "x86" = 0 is for PC-BIOS, "PPC" = 1 for some PowerPC
systems, "Mac" = 2 for some MacIntosh systems, "efi" = 0xEF for EFI
on modern PCs with x86 compatible CPUs or others.
-boot-load-size number|"full"
Set the number of 512-byte blocks to be loaded at boot time from
the boot image in the current catalog entry.
@ -1897,13 +1904,13 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* --acl Recording of ACLs: SetExtras. (line 95)
* --application_use set Application Use field: ImageId. (line 79)
* --boot-catalog-hide Hide El Torito boot catalog: Bootable. (line 112)
* --boot-catalog-hide Hide El Torito boot catalog: Bootable. (line 119)
* --efi-boot El Torito EFI boot image: Bootable. (line 59)
* --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 228)
* --grub2-boot-info Patch El Torito boot image: Bootable. (line 100)
* --grub2-boot-info Patch El Torito boot image: Bootable. (line 107)
* --grub2-mbr Install modern GRUB2 MBR: SystemArea. (line 81)
* --grub2-sparc-core SUN SPARC core file: SystemArea. (line 283)
* --hardlinks Recording of hardlink relations: SetExtras. (line 116)
@ -1949,9 +1956,9 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -b El Torito PC-BIOS boot image: Bootable. (line 38)
* -B SUN SPARC boot images: SystemArea. (line 268)
* -biblio set Biblio File path: ImageId. (line 62)
* -boot-info-table Patch El Torito boot image: Bootable. (line 95)
* -boot-load-size El Torito boot image load size: Bootable. (line 63)
* -c El Torito boot catalog name: Bootable. (line 105)
* -boot-info-table Patch El Torito boot image: Bootable. (line 102)
* -boot-load-size El Torito boot image load size: Bootable. (line 70)
* -c El Torito boot catalog name: Bootable. (line 112)
* -C set load address and write address offset: Loading. (line 25)
* -cdrecord-params set load address and write address offset: Loading.
(line 46)
@ -1973,10 +1980,11 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -efi-boot-part EFI boot partition: SystemArea. (line 218)
* -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 110)
* -eltorito-id El Torito boot section id string: Bootable. (line 84)
* -eltorito-catalog El Torito boot catalog name: Bootable. (line 117)
* -eltorito-id El Torito boot section id string: Bootable. (line 91)
* -eltorito-platform El Torito Platform Id: Bootable. (line 63)
* -eltorito-selcrit El Torito boot selection criteria: Bootable.
(line 91)
(line 98)
* -exclude exclude disk files from inserting: SetInsert. (line 37)
* -exclude-list exclude disk files from inserting: SetInsert. (line 44)
* -f follow symbolic links on disk: SetInsert. (line 22)
@ -1990,7 +1998,7 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -graft-points enable target=source pathspecs: SetInsert. (line 28)
* -gui increase frequency of pacifier messages: Miscellaneous.
(line 29)
* -hard-disk-boot El Torito boot image emulation: Bootable. (line 74)
* -hard-disk-boot El Torito boot image emulation: Bootable. (line 81)
* -help list supported options: Miscellaneous. (line 21)
* -hfs-bless HFS+ blessing ppc_bootdir: SetExtras. (line 201)
* -hfs-bless-by HFS+ blessing: SetExtras. (line 191)
@ -2053,7 +2061,7 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -mips-boot MIPS Big Endian boot image: SystemArea. (line 257)
* -mipsel-boot MIPS Little Endian boot image: SystemArea. (line 263)
* -N omit version number in ISO file names: SetCompl. (line 64)
* -no-emul-boot El Torito boot image emulation: Bootable. (line 77)
* -no-emul-boot El Torito boot image emulation: Bootable. (line 84)
* -no-pad do not add zeros to ISO tree: SetProduct. (line 93)
* -o set output file address: SetProduct. (line 8)
* -old-exclude exclude disk files from inserting: SetInsert. (line 42)
@ -2134,17 +2142,17 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Block address, set sorting weight, --sort-weight-patterns: SetProduct.
(line 76)
* Bootability, boot catalog hidden, --boot-catalog-hide: Bootable.
(line 112)
(line 119)
* Bootability, boot catalog name, -c, -eltorito-catalog: Bootable.
(line 105)
(line 112)
* Bootability, boot image emulation, -hard-disk-boot: Bootable.
(line 74)
(line 81)
* Bootability, boot image load size, -boot-load-size: Bootable.
(line 63)
(line 70)
* Bootability, boot image patching, --grub2-boot-info: Bootable.
(line 100)
(line 107)
* Bootability, boot image patching, -boot-info-table: Bootable.
(line 95)
(line 102)
* Bootability, bootable MBR partition, --mbr-force-bootable: SystemArea.
(line 139)
* Bootability, control, --grub2-sparc-core: SystemArea. (line 283)
@ -2153,6 +2161,7 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Bootability, control, -b, -eltorito-boot: Bootable. (line 38)
* Bootability, control, -B, -sparc-boot: SystemArea. (line 268)
* Bootability, control, -e: Bootable. (line 53)
* Bootability, control, -eltorito-platform: Bootable. (line 63)
* Bootability, control, -hppa-bootloader: SystemArea. (line 295)
* Bootability, control, -hppa-cmdline: SystemArea. (line 289)
* Bootability, control, -hppa-hdrversion: SystemArea. (line 303)
@ -2162,9 +2171,9 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Bootability, control, -mips-boot: SystemArea. (line 257)
* Bootability, control, -mipsel-boot: SystemArea. (line 263)
* Bootability, El Torito section id string, -eltorito-id: Bootable.
(line 84)
* Bootability, El Torito selection criteria, -eltorito-selcrit: Bootable.
(line 91)
* Bootability, El Torito selection criteria, -eltorito-selcrit: Bootable.
(line 98)
* Bootability, fill System Area e.g. by MBR, -G, --embedded-boot, -generic-boot: SystemArea.
(line 68)
* Bootability, for CHRP, -chrp-boot-part: SystemArea. (line 241)
@ -2182,7 +2191,7 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
(line 108)
* Bootability, next entry, -eltorito-alt-boot: Bootable. (line 47)
* Bootability, no boot image emulation, -no-emul-boot: Bootable.
(line 77)
(line 84)
* Bootability, partitions like with isohybrid, -part_like_isohybrid: SystemArea.
(line 120)
* Bootability, patch System Area partition table, --protective-msdos-label: SystemArea.
@ -2352,24 +2361,24 @@ Node: SetExtras21966
Node: SetHide32539
Node: ImageId33843
Node: Bootable38125
Node: SystemArea43896
Node: Charset61048
Node: Jigdo62073
Node: Miscellaneous66350
Node: Examples67995
Node: ExSimple68489
Node: ExGraft68972
Node: ExMkisofs70272
Node: ExGrowisofs71538
Node: ExIncBackup72728
Node: ExIncBckAcc75889
Node: ExBootable77578
Node: Files81760
Node: Environ82855
Node: Seealso83626
Node: Bugreport84277
Node: Legal84870
Node: CommandIdx85767
Node: ConceptIdx101342
Node: SystemArea44351
Node: Charset61503
Node: Jigdo62528
Node: Miscellaneous66805
Node: Examples68450
Node: ExSimple68944
Node: ExGraft69427
Node: ExMkisofs70727
Node: ExGrowisofs71993
Node: ExIncBackup73183
Node: ExIncBckAcc76344
Node: ExBootable78033
Node: Files82215
Node: Environ83310
Node: Seealso84081
Node: Bugreport84732
Node: Legal85325
Node: CommandIdx86222
Node: ConceptIdx101870

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.7, Feb 26, 2017"
@c man .TH XORRISOFS 1 "Version 1.4.7, Jun 03, 2017"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -1339,6 +1339,15 @@ Perform -eltorito-alt-boot, option -e with the given
iso_rr_path, -no-emul-boot, and again -eltorito-alt-boot. This gesture is
used for achieving EFI-bootability of the GRUB2 rescue CD.
@c man .TP
@item -eltorito-platform "x86"|"PPC"|"Mac"|"efi"|0xnn|nnn
@kindex -eltorito-platform El Torito Platform Id
@cindex Bootability, control, -eltorito-platform
Perform option -eltorito-alt-boot and set the Platform Id number for the next
option -b or -eltorito-boot. The number may be chosen by a platform name or by
a number between 0 and 255 (0x00 and 0xFF). "x86" = 0 is for PC-BIOS,
"PPC" = 1 for some PowerPC systems, "Mac" = 2 for some MacIntosh systems,
"efi" = 0xEF for EFI on modern PCs with x86 compatible CPUs or others.
@c man .TP
@item -boot-load-size number|"full"
@kindex -boot-load-size El Torito boot image load size
@cindex Bootability, boot image load size, -boot-load-size