From 56308c81e4ff573bf885764a7a1ed72d9ba870d6 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Mon, 18 Jun 2012 11:20:31 +0000 Subject: [PATCH] New boot_specs efi_boot_part, prep_boot_part, chrp_boot_part --- xorriso/emulators.c | 13 ++- xorriso/opts_a_c.c | 22 +++++ xorriso/opts_d_h.c | 4 + xorriso/text_io.c | 19 ++++ xorriso/xorriso.1 | 57 ++++++++++-- xorriso/xorriso.info | 173 ++++++++++++++++++++++-------------- xorriso/xorriso.texi | 62 +++++++++++-- xorriso/xorriso_timestamp.h | 2 +- 8 files changed, 261 insertions(+), 91 deletions(-) diff --git a/xorriso/emulators.c b/xorriso/emulators.c index 16bc232b..58461f06 100644 --- a/xorriso/emulators.c +++ b/xorriso/emulators.c @@ -1800,20 +1800,25 @@ not_enough_args:; goto problem_handler_2; } else if(strcmp(argpt, "-chrp-boot-part") == 0) { - xorriso->system_area_options= (xorriso->system_area_options & ~0x3cfc) | - 0x400; + ret= Xorriso_option_boot_image(xorriso, "any", "chrp_boot_part=on", 0); + if(ret <= 0) + goto problem_handler_2; } else if(strcmp(argpt, "-prep-boot-part") == 0) { if(i + 1 >= argc) goto not_enough_args; i++; - strcpy(xorriso->prep_partition, argv[i]); + ret= Sfile_str(xorriso->prep_partition, argv[i], 0); + if(ret <= 0) + goto ex; } else if(strcmp(argpt, "-efi-boot-part") == 0) { if(i + 1 >= argc) goto not_enough_args; i++; - strcpy(xorriso->efi_boot_partition, argv[i]); + ret= Sfile_str(xorriso->efi_boot_partition, argv[i], 0); + if(ret <= 0) + goto ex; } else if(strcmp(argpt, "-append_partition") == 0) { if(i + 3 >= argc) diff --git a/xorriso/opts_a_c.c b/xorriso/opts_a_c.c index 21d096f2..aae2b836 100644 --- a/xorriso/opts_a_c.c +++ b/xorriso/opts_a_c.c @@ -1012,6 +1012,28 @@ treatment_patch:; memcpy(xorriso->hfsp_serial_number, sn, 8); } + } else if(strncmp(treatpt, "efi_boot_part=", 14) == 0) { + if(Sfile_str(xorriso->efi_boot_partition, treatpt + 14, 0) <= 0) + {ret= -1; goto ex;} + + } else if(strncmp(treatpt, "prep_boot_part=", 15) == 0) { + if(Sfile_str(xorriso->prep_partition, treatpt + 15, 0) <= 0) + {ret= -1; goto ex;} + + } else if(strncmp(treatpt, "chrp_boot_part=", 15) == 0) { + if(strcmp(treatpt + 15, "on") == 0) { + xorriso->system_area_options= (xorriso->system_area_options & ~0x3cfc) | + 0x400; + } else if(strcmp(treatpt + 15, "off") == 0) { + xorriso->system_area_options= xorriso->system_area_options & ~0x3c00; + } else { + sprintf(xorriso->info_text, + "-boot_image %s chrp_boot_part: unknown mode : %s", + formpt, treatpt + 15); + Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0); + {ret= 0; goto ex;} + } + } else if(strncmp(treatpt, "isohybrid=", 10) == 0 && strcmp(formpt, "isolinux")==0) { diff --git a/xorriso/opts_d_h.c b/xorriso/opts_d_h.c index 6f23c0ac..d9903fc7 100644 --- a/xorriso/opts_d_h.c +++ b/xorriso/opts_d_h.c @@ -1610,6 +1610,8 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag) " |\"discard\"|\"keep\"|\"patch\"|\"dir=\"|\"bin_path=\"", " |\"cat_path=\"|\"cat_hidden=on|iso_rr|joliet|off\"", " |\"load_size=\"|\"system_area=\"|\"partition_table=on|off\"", +" |\"chrp_boot_part=on|off=\"|\"prep_boot_part=\"", +" |\"efi_boot_part=\"|\"efi_boot_part=--efi-boot-image\"", " |\"mips_path=\"|\"mipsel_path=\"|\"mips_discard\"", " |\"sparc_label=\"|\"sparc_discard\"", " |\"hfsplus_serial=\"|\"show_status\"", @@ -1621,6 +1623,8 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag) " ISO image by the usual commands like -map or -add.", " system_area= and partition_table= are for MBR based booting", " from USB stick. The system_area= file needs not to be added.", +" chrp_boot_part= and prep_boot_part= are for PowerPC.", +" efi_boot_part= is for booting EFI systems from USB stick.", " mips_path= adds Big Endian MIPS boot files. mipsel_path=", " sets one Little Endian MIPS boot file. sparc_label=", " activates SUN Disk Label. All three are mutually exclusive", diff --git a/xorriso/text_io.c b/xorriso/text_io.c index 1a86c5e6..f1ec17a6 100644 --- a/xorriso/text_io.c +++ b/xorriso/text_io.c @@ -1389,6 +1389,25 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag) 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", + ret == 1 ? "on" : "off"); + if(!(is_default && no_defaults)) + Xorriso_status_result(xorriso, filter, fp, flag & 2); + + is_default= (xorriso->prep_partition[0] == 0); + sprintf(line,"-boot_image any prep_boot_part=%s\n", + Text_shellsafe(xorriso->prep_partition, sfe, 0)); + if(!(is_default && no_defaults)) + Xorriso_status_result(xorriso, filter, fp, flag & 2); + + is_default= (xorriso->efi_boot_partition[0] == 0); + sprintf(line,"-boot_image any efi_boot_part=%s\n", + Text_shellsafe(xorriso->efi_boot_partition, sfe, 0)); + if(!(is_default && no_defaults)) + Xorriso_status_result(xorriso, filter, fp, flag & 2); + #ifdef Xorriso_with_isohybriD if(strcmp(form, "isolinux") == 0) { static char modes[4][6]= {"off", "auto", "on", "force"}; diff --git a/xorriso/xorriso.1 b/xorriso/xorriso.1 index 8d004ef4..d1e9977a 100644 --- a/xorriso/xorriso.1 +++ b/xorriso/xorriso.1 @@ -9,7 +9,7 @@ .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) -.TH XORRISO 1 "Version 1.2.3, Jun 07, 2012" +.TH XORRISO 1 "Version 1.2.3, Jun 18, 2012" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -391,19 +391,35 @@ Most bootable GNU/Linux CDs are equipped with ISOLINUX or GRUB boot images. makes such an image bootable. For details see command \-boot_image. .br It is possible to make ISO images bootable from USB stick or other -hard\-disk\-like media by \-boot_image parameter system_area= . This installs -a Master Boot Record which may get adjusted according to the needs -of GRUB resp. ISOLINUX. -An \fBMBR\fR contains boot code and a partition table. It does not hamper -CDROM booting. The new MBR of a follow\-up session can get in effect +hard\-disk\-like media. Several options install a \fBMBR\fR +(Master Boot Record), It may get adjusted according to the needs of the +intended boot firmware and the involved boot loaders, e.g. GRUB2 or ISOLINUX. +A MBR contains boot code and a partition table. +The new MBR of a follow\-up session can get in effect only on overwriteable media. .br +MBR is read by PC\-BIOS when booting from USB stick or hard disk, +and by PowerPC CHRP or PReP when booting. +An MBR partiton with type 0xee indicates the presence of GPT. +.br Emulation \-as mkisofs supports the example options out of the ISOLINUX wiki, the options used in GRUB script grub\-mkrescue, and the example in the FreeBSD AvgLiveCD wiki. .br -There is support for boot facilities other than PC BIOS: -EFI, MIPS Big Endian (SGI), MIPS Little Endian (DEC), SUN SPARC. +A \fBGPT\fR (GUID Partition Table) marks partitions in a more modern way. +It is read by EFI when booting from USB stick or hard disk, and may be used +for finding and mounting a HFS+ partition inside the ISO image. +.br +An \fBAPM\fR (Apple Partition Map) marks the HFS+ partition. +It is read by Macs for booting and for mounting. +.br +MBR, GPT and APM are combinable. APM occupies the first 8 bytes of +MBR boot code. All three do not hamper El Torito booting from CDROM. +.br +There is support for further facilities: +MIPS Big Endian (SGI), MIPS Little Endian (DEC), SUN SPARC. +Those are mutually not combinable and also not combinable with MBR, GPT, +or APM. .br .PP \fBACL\fR @@ -2805,9 +2821,12 @@ session this works only if also "system_area=" and "bin_path=" or "dir=" is given. .br With types "any" and "grub" it shows a single -partiton which starts at byte 512 and ends where the ISO image ends. +partition which starts at byte 512 and ends where the ISO image ends. This works with or without system_area= or boot image. .br +Bootspecs chrp_boot_part=, prep_boot_part=, and efi_boot_part= overwrite +this entry in the MBR partition table. +.br In follow\-up sessions the existing System Area is preserved by default. If types "isolinux" or "grub" are set to "patch", then "partition_table=on" is activated without new boot image. @@ -2818,6 +2837,26 @@ then those parameters get updated when the new System Area is written. Special "system_area=/dev/zero" causes 32k of NUL\-bytes. Use this to discard an MBR which was loaded with the ISO image. .br +\fBchrp_boot_part=on\fR causes a single partition in MBR which covers +the whole ISO image and has type 0x41. This is not compatible with any +other feature that produces MBR partition entries. It makes GPT unrecognizable. +.br +\fBprep_boot_part=\fR inserts the content of a data file into the image and +marks it by an MBR partition of type 0x96. The parts of the ISO image before +and after this partition will be covered by further MBR partitions. +The data file is supposed to contain ELF executable code. +.br +\fBefi_boot_part=\fR inserts the content of a data file into the image and +marks it by a GPT partition. If not chrp_boot_part=on, then the first partition +in MBR will have type 0xee to announce the presence of GPT. +The data file is supposed to contain a FAT filesystem. +.br +Instead of a disk_path, the word \-\-efi\-boot\-image may be given. +It exposes in GPT the content of the first El Torito EFI boot image as +EFI system partition. EFI boot images are introduced by bootspec efi_path=. +The affected EFI boot image cannot show up in HFS+ because it is stored +outside the HFS+ partition. +.br \fBpartition_offset=\fR2kb_block_adr causes a partition table with a single partition that begins at the given block address. This is counted in 2048 byte blocks, not in 512 byte blocks. If the block address is non\-zero then it must diff --git a/xorriso/xorriso.info b/xorriso/xorriso.info index c105db28..de41fcf3 100644 --- a/xorriso/xorriso.info +++ b/xorriso/xorriso.info @@ -345,16 +345,27 @@ Most bootable GNU/Linux CDs are equipped with ISOLINUX or GRUB boot images. `xorriso' is able to create or maintain an El Torito object which makes such an image bootable. For details see command -boot_image. It is possible to make ISO images bootable from USB stick or other -hard-disk-like media by -boot_image parameter system_area= . This -installs a Master Boot Record which may get adjusted according to the -needs of GRUB resp. ISOLINUX. An *MBR* contains boot code and a -partition table. It does not hamper CDROM booting. The new MBR of a +hard-disk-like media. Several options install a *MBR* (Master Boot +Record), It may get adjusted according to the needs of the intended +boot firmware and the involved boot loaders, e.g. GRUB2 or ISOLINUX. A +MBR contains boot code and a partition table. The new MBR of a follow-up session can get in effect only on overwriteable media. +MBR is read by PC-BIOS when booting from USB stick or hard disk, and by +PowerPC CHRP or PReP when booting. An MBR partiton with type 0xee +indicates the presence of GPT. Emulation -as mkisofs supports the example options out of the ISOLINUX wiki, the options used in GRUB script grub-mkrescue, and the example in the FreeBSD AvgLiveCD wiki. -There is support for boot facilities other than PC BIOS: EFI, MIPS Big -Endian (SGI), MIPS Little Endian (DEC), SUN SPARC. +A *GPT* (GUID Partition Table) marks partitions in a more modern way. +It is read by EFI when booting from USB stick or hard disk, and may be +used for finding and mounting a HFS+ partition inside the ISO image. +An *APM* (Apple Partition Map) marks the HFS+ partition. It is read by +Macs for booting and for mounting. +MBR, GPT and APM are combinable. APM occupies the first 8 bytes of MBR +boot code. All three do not hamper El Torito booting from CDROM. +There is support for further facilities: MIPS Big Endian (SGI), MIPS +Little Endian (DEC), SUN SPARC. Those are mutually not combinable and +also not combinable with MBR, GPT, or APM. *ACL* are an advanced way of controlling access permissions to file objects. Neither ISO 9660 nor Rock Ridge specify a way to record ACLs. @@ -2480,9 +2491,11 @@ filesystem and announced by an MBR partition table entry. and it causes the LBA of the first boot image to be written into the MBR. For the first session this works only if also "system_area=" and "bin_path=" or "dir=" is given. - With types "any" and "grub" it shows a single partiton which + With types "any" and "grub" it shows a single partition which starts at byte 512 and ends where the ISO image ends. This works with or without system_area= or boot image. + Bootspecs chrp_boot_part=, prep_boot_part=, and efi_boot_part= + overwrite this entry in the MBR partition table. In follow-up sessions the existing System Area is preserved by default. If types "isolinux" or "grub" are set to "patch", then "partition_table=on" is activated without new boot image. In this @@ -2492,6 +2505,25 @@ filesystem and announced by an MBR partition table entry. when the new System Area is written. Special "system_area=/dev/zero" causes 32k of NUL-bytes. Use this to discard an MBR which was loaded with the ISO image. + *chrp_boot_part=on* causes a single partition in MBR which covers + the whole ISO image and has type 0x41. This is not compatible with + any other feature that produces MBR partition entries. It makes + GPT unrecognizable. + *prep_boot_part=* inserts the content of a data file into the + image and marks it by an MBR partition of type 0x96. The parts of + the ISO image before and after this partition will be covered by + further MBR partitions. The data file is supposed to contain ELF + executable code. + *efi_boot_part=* inserts the content of a data file into the image + and marks it by a GPT partition. If not chrp_boot_part=on, then + the first partition in MBR will have type 0xee to announce the + presence of GPT. The data file is supposed to contain a FAT + filesystem. + Instead of a disk_path, the word --efi-boot-image may be given. + It exposes in GPT the content of the first El Torito EFI boot + image as EFI system partition. EFI boot images are introduced by + bootspec efi_path=. The affected EFI boot image cannot show up in + HFS+ because it is stored outside the HFS+ partition. *partition_offset=*2kb_block_adr causes a partition table with a single partition that begins at the given block address. This is counted in 2048 byte blocks, not in 512 byte blocks. If the block @@ -4456,7 +4488,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -alter_date sets timestamps in ISO image: Manip. (line 147) * -alter_date_r sets timestamps in ISO image: Manip. (line 167) * -append_partition adds arbitrary file after image end: Bootable. - (line 202) + (line 223) * -application_id sets application id: SetWrite. (line 184) * -as emulates mkisofs or cdrecord: Emulation. (line 13) * -assert_volid rejects undesired images: Loading. (line 84) @@ -4672,15 +4704,16 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top [index] * Menu: -* ACL, _definition: Extras. (line 38) +* ACL, _definition: Extras. (line 49) * ACL, control handling, -acl: Loading. (line 143) * ACL, set in ISO image, -setfacl: Manip. (line 73) * ACL, set in ISO image, -setfacl_list: Manip. (line 101) * ACL, set in ISO image, -setfacl_r: Manip. (line 98) * ACL, show in ISO image, -getfacl: Navigate. (line 70) * ACL, show in ISO image, -getfacl_r: Navigate. (line 77) +* APM, _definition: Extras. (line 41) * Appendable media, _definition: Media. (line 38) -* Appended Filesystem Image, -append_partition: Bootable. (line 202) +* Appended Filesystem Image, -append_partition: Bootable. (line 223) * Automatic execution order, of arguments, -x: ArgSort. (line 16) * Backslash Interpretation, _definition: Processing. (line 52) * Backup, enable fast incremental, -disk_dev_ino: Loading. (line 190) @@ -4697,12 +4730,13 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Character Set, for output, -out_charset: SetWrite. (line 250) * Character set, learn from image, -auto_charset: Loading. (line 98) * Character Set, of terminal, -local_charset: Charset. (line 47) +* CHRP partition, _definition: Bootable. (line 148) * Closed media, _definition: Media. (line 43) * Comment, #: Scripting. (line 162) * Control, signal handling, -signal_handling: Exception. (line 69) * Create, new ISO image, _definition: Methods. (line 6) -* Cylinder alignment, _definition: Bootable. (line 167) -* Cylinder size, _definition: Bootable. (line 156) +* Cylinder alignment, _definition: Bootable. (line 188) +* Cylinder size, _definition: Bootable. (line 177) * Damaged track and session, close, -close_damaged: Writing. (line 152) * Delete, from ISO image, -rm: Manip. (line 21) * Delete, from ISO image, -rm_r: Manip. (line 28) @@ -4731,8 +4765,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Drive, reduce activity, -calm_drive: Loading. (line 236) * Drive, report SCSI commands, -scsi_log: Scripting. (line 147) * Drive, write and eject, -commit_eject: Writing. (line 56) -* EA, _definition: Extras. (line 54) +* EA, _definition: Extras. (line 65) * ECMA-119, _definition: Model. (line 6) +* EFI system partition, _definition: Bootable. (line 157) * El Torito, _definition: Extras. (line 19) * Emulation, -as: Emulation. (line 13) * Emulation, .mkisofsrc, -read_mkisofsrc: Emulation. (line 146) @@ -4740,7 +4775,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Emulation, mkisofs, -as: Emulation. (line 16) * Emulation, pacifier form, -pacifier: Emulation. (line 158) * Examples: Examples. (line 6) -* extattr, _definition: Extras. (line 54) +* extattr, _definition: Extras. (line 65) * Filter, _definition: Filter. (line 6) * Filter, apply to file tree, -set_filter_r: Filter. (line 89) * Filter, apply to file, -set_filter: Filter. (line 60) @@ -4750,12 +4785,13 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Filter, show chains of tree, -show_stream_r: Navigate. (line 183) * Filter, unregister, -unregister_filter: Filter. (line 48) * Filter, zisofs parameters, -zisofs: SetWrite. (line 264) +* GPT, _definition: Extras. (line 38) * Group, global in ISO image, -gid: SetWrite. (line 260) * Group, in ISO image, -chgrp: Manip. (line 50) * Group, in ISO image, -chgrp_r: Manip. (line 55) * Growing, _definition: Methods. (line 19) * Hard links, control handling, -hardlinks: Loading. (line 110) -* HFS+ serial number: Bootable. (line 196) +* HFS+ serial number: Bootable. (line 217) * hidden, set in ISO image, -hide: Manip. (line 171) * Image reading, cache size, -data_cache_size: Loading. (line 265) * Image, _definition: Model. (line 9) @@ -4807,7 +4843,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Media, format, -format: Writing. (line 88) * Media, list formats, -list_formats: Writing. (line 126) * Media, list write speeds, -list_speeds: Writing. (line 138) -* MIPS boot file, activation: Bootable. (line 176) +* MIPS boot file, activation: Bootable. (line 197) * mkisofs, Emulation: Emulation. (line 16) * Modifying, _definition: Methods. (line 27) * Multi-session media, _definition: Media. (line 7) @@ -4833,7 +4869,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Ownership, global in ISO image, -uid: SetWrite. (line 256) * Ownership, in ISO image, -chown: Manip. (line 42) * Ownership, in ISO image, -chown_r: Manip. (line 47) -* Partition offset, _definition: Bootable. (line 146) +* Partition offset, _definition: Bootable. (line 167) * Partition table, _definition: Bootable. (line 128) * Pathspec, _definition: SetInsert. (line 120) * Pattern expansion, _definition: Processing. (line 24) @@ -4841,6 +4877,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Pattern expansion, for ISO paths, -iso_rr_pattern: Manip. (line 10) * Permissions, in ISO image, -chmod: Manip. (line 58) * Permissions, in ISO image, -chmod_r: Manip. (line 70) +* PReP partition, _definition: Bootable. (line 152) * Problems, reporting: Bugreport. (line 6) * Process, consolidate text output, -pkt_output: Frontend. (line 7) * Process, control abort on error, -abort_on: Exception. (line 27) @@ -4894,8 +4931,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Session, mount parameters, -mount_opts: Inquiry. (line 57) * Session, select as input, -load: Loading. (line 11) * Sorting order, for -x, -list_arg_sorting: ArgSort. (line 27) -* SUN Disk Label, production: Bootable. (line 187) -* SUN SPARC boot images, activation: Bootable. (line 223) +* SUN Disk Label, production: Bootable. (line 208) +* SUN SPARC boot images, activation: Bootable. (line 244) * System area, _definition: Bootable. (line 121) * Table-of-content, search sessions, -rom_toc_scan: Loading. (line 211) * Table-of-content, show, -toc: Inquiry. (line 28) @@ -4928,7 +4965,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Write, predict image size, -print_size: Inquiry. (line 80) * Write, set speed, -speed: SetWrite. (line 276) * Write, simulation, -dummy: SetWrite. (line 316) -* xattr, _definition: Extras. (line 54) +* xattr, _definition: Extras. (line 65) * xattr, control handling, -xattr: Loading. (line 151) * xattr, set in ISO image, -setfattr: Manip. (line 111) * xattr, set in ISO image, -setfattr_list: Manip. (line 127) @@ -4946,53 +4983,53 @@ Node: Media6170 Node: Methods8841 Node: Drives11416 Node: Extras14731 -Node: Processing18497 -Node: Dialog22117 -Node: Options23794 -Node: ArgSort25468 -Node: AqDrive26958 -Node: Loading30002 -Node: Insert45211 -Node: SetInsert55127 -Node: Manip63703 -Node: CmdFind72526 -Node: Filter86633 -Node: Writing91188 -Node: SetWrite100152 -Node: Bootable117985 -Node: Jigdo131396 -Node: Charset135642 -Node: Exception138403 -Node: DialogCtl144522 -Node: Inquiry147119 -Node: Navigate151985 -Node: Verify160282 -Node: Restore169248 -Node: Emulation176157 -Node: Scripting185968 -Node: Frontend193128 -Node: Examples194428 -Node: ExDevices195605 -Node: ExCreate196264 -Node: ExDialog197549 -Node: ExGrowing198814 -Node: ExModifying199619 -Node: ExBootable200123 -Node: ExCharset200675 -Node: ExPseudo201496 -Node: ExCdrecord202394 -Node: ExMkisofs202711 -Node: ExGrowisofs204051 -Node: ExException205186 -Node: ExTime205640 -Node: ExIncBackup206099 -Node: ExRestore210090 -Node: ExRecovery211050 -Node: Files211620 -Node: Seealso212919 -Node: Bugreport213642 -Node: Legal214223 -Node: CommandIdx215234 -Node: ConceptIdx231033 +Node: Processing19183 +Node: Dialog22803 +Node: Options24480 +Node: ArgSort26154 +Node: AqDrive27644 +Node: Loading30688 +Node: Insert45897 +Node: SetInsert55813 +Node: Manip64389 +Node: CmdFind73212 +Node: Filter87319 +Node: Writing91874 +Node: SetWrite100838 +Node: Bootable118671 +Node: Jigdo133372 +Node: Charset137618 +Node: Exception140379 +Node: DialogCtl146498 +Node: Inquiry149095 +Node: Navigate153961 +Node: Verify162258 +Node: Restore171224 +Node: Emulation178133 +Node: Scripting187944 +Node: Frontend195104 +Node: Examples196404 +Node: ExDevices197581 +Node: ExCreate198240 +Node: ExDialog199525 +Node: ExGrowing200790 +Node: ExModifying201595 +Node: ExBootable202099 +Node: ExCharset202651 +Node: ExPseudo203472 +Node: ExCdrecord204370 +Node: ExMkisofs204687 +Node: ExGrowisofs206027 +Node: ExException207162 +Node: ExTime207616 +Node: ExIncBackup208075 +Node: ExRestore212066 +Node: ExRecovery213026 +Node: Files213596 +Node: Seealso214895 +Node: Bugreport215618 +Node: Legal216199 +Node: CommandIdx217210 +Node: ConceptIdx233009  End Tag Table diff --git a/xorriso/xorriso.texi b/xorriso/xorriso.texi index 4a3502db..fc874616 100644 --- a/xorriso/xorriso.texi +++ b/xorriso/xorriso.texi @@ -50,7 +50,7 @@ @c man .\" First parameter, NAME, should be all caps @c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection @c man .\" other parameters are allowed: see man(7), man(1) -@c man .TH XORRISO 1 "Version 1.2.3, Jun 07, 2012" +@c man .TH XORRISO 1 "Version 1.2.3, Jun 18, 2012" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -529,19 +529,37 @@ makes such an image bootable. For details see command -boot_image. @* @cindex MBR, _definition It is possible to make ISO images bootable from USB stick or other -hard-disk-like media by -boot_image parameter system_area= . This installs -a Master Boot Record which may get adjusted according to the needs -of GRUB resp. ISOLINUX. -An @strong{MBR} contains boot code and a partition table. It does not hamper -CDROM booting. The new MBR of a follow-up session can get in effect +hard-disk-like media. Several options install a @strong{MBR} +(Master Boot Record), It may get adjusted according to the needs of the +intended boot firmware and the involved boot loaders, e.g. GRUB2 or ISOLINUX. +A MBR contains boot code and a partition table. +The new MBR of a follow-up session can get in effect only on overwriteable media. @* +MBR is read by PC-BIOS when booting from USB stick or hard disk, +and by PowerPC CHRP or PReP when booting. +An MBR partiton with type 0xee indicates the presence of GPT. +@* Emulation -as mkisofs supports the example options out of the ISOLINUX wiki, the options used in GRUB script grub-mkrescue, and the example in the FreeBSD AvgLiveCD wiki. @* -There is support for boot facilities other than PC BIOS: -EFI, MIPS Big Endian (SGI), MIPS Little Endian (DEC), SUN SPARC. +@cindex GPT, _definition +A @strong{GPT} (GUID Partition Table) marks partitions in a more modern way. +It is read by EFI when booting from USB stick or hard disk, and may be used +for finding and mounting a HFS+ partition inside the ISO image. +@* +@cindex APM, _definition +An @strong{APM} (Apple Partition Map) marks the HFS+ partition. +It is read by Macs for booting and for mounting. +@* +MBR, GPT and APM are combinable. APM occupies the first 8 bytes of +MBR boot code. All three do not hamper El Torito booting from CDROM. +@* +There is support for further facilities: +MIPS Big Endian (SGI), MIPS Little Endian (DEC), SUN SPARC. +Those are mutually not combinable and also not combinable with MBR, GPT, +or APM. @* @c man .PP @sp 1 @@ -3314,9 +3332,12 @@ session this works only if also "system_area=" and "bin_path=" or "dir=" is given. @* With types "any" and "grub" it shows a single -partiton which starts at byte 512 and ends where the ISO image ends. +partition which starts at byte 512 and ends where the ISO image ends. This works with or without system_area= or boot image. @* +Bootspecs chrp_boot_part=, prep_boot_part=, and efi_boot_part= overwrite +this entry in the MBR partition table. +@* In follow-up sessions the existing System Area is preserved by default. If types "isolinux" or "grub" are set to "patch", then "partition_table=on" is activated without new boot image. @@ -3327,6 +3348,29 @@ then those parameters get updated when the new System Area is written. Special "system_area=/dev/zero" causes 32k of NUL-bytes. Use this to discard an MBR which was loaded with the ISO image. @* +@cindex CHRP partition, _definition +@strong{chrp_boot_part=on} causes a single partition in MBR which covers +the whole ISO image and has type 0x41. This is not compatible with any +other feature that produces MBR partition entries. It makes GPT unrecognizable. +@* +@cindex PReP partition, _definition +@strong{prep_boot_part=} inserts the content of a data file into the image and +marks it by an MBR partition of type 0x96. The parts of the ISO image before +and after this partition will be covered by further MBR partitions. +The data file is supposed to contain ELF executable code. +@* +@cindex EFI system partition, _definition +@strong{efi_boot_part=} inserts the content of a data file into the image and +marks it by a GPT partition. If not chrp_boot_part=on, then the first partition +in MBR will have type 0xee to announce the presence of GPT. +The data file is supposed to contain a FAT filesystem. +@* +Instead of a disk_path, the word @minus{}@minus{}efi-boot-image may be given. +It exposes in GPT the content of the first El Torito EFI boot image as +EFI system partition. EFI boot images are introduced by bootspec efi_path=. +The affected EFI boot image cannot show up in HFS+ because it is stored +outside the HFS+ partition. +@* @cindex Partition offset, _definition @strong{partition_offset=}2kb_block_adr causes a partition table with a single partition that begins at the given block address. This is counted in 2048 byte diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 886b4502..f8b4f83b 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2012.06.18.082701" +#define Xorriso_timestamP "2012.06.18.112125"