Argument "." for system area import commands

This commit is contained in:
2014-10-28 14:07:32 +00:00
parent b66bf3e391
commit 9cd6c71d39
9 changed files with 330 additions and 240 deletions

View File

@ -2574,29 +2574,42 @@ then it is advised to patch it when a follow-up session gets written.
But one should not rely on the capability to influence the bootability
of the existing sessions, unless one can assume overwriteable media.
There are booting mechanisms which do not use an El Torito record but
rather start at the first bytes of the image: PC-BIOS MBR for
hard-disk-like devices, MIPS Volume Header for old SGI computers, DEC
Boot Block for old DECstation, SUN Disk Label for SPARC machines, HP-PA
boot sector for HP PA-RISC machines.
The boot firmware EFI may use programs which are located in a FAT
filesystem and announced by an MBR partition table entry.
rather start at the first bytes of the image: PC-BIOS MBR or EFI GPT for
hard-disk-like devices, APM partition entries for Macs which expect
HFS+ boot images, MIPS Volume Header for old SGI computers, DEC Boot
Block for old DECstation, SUN Disk Label for SPARC machines, HP-PA boot
sector for HP PA-RISC machines.
-boot_image "any"|"isolinux"|"grub"
"discard"|"keep"|"patch"|"show_status"|bootspec|"next"
Define the handling of a set of El Torito boot images which has
been read from an existing ISO image or define how to make a
prepared boot image file set bootable. Such file sets get produced
by ISOLINUX or GRUB.
Define the equipment of the emerging filesystem with boot entry
points.
With systems which boot via BIOS or EFI this is a set of El Torito
boot images, possibly MBR boot code, and possibly partition tables
of type MBR, GPT, or APM. Such file sets get produced by boot
loader systems like ISOLINUX or GRUB.
Each -boot_image command has two parameters: type and setting.
More than one -boot_image command may be used to define the
handling of one or more boot images. Sequence matters.
Types *isolinux* and *grub* care for known peculiarities. Type
*any* makes no assumptions about the origin of the boot images.
El Torito boot images of any type can be newly inserted, or
discarded, or patched, or kept unaltered. Whether to patch or to
keep depends on whether the boot images contain boot info tables.
When loading an ISO filesystem, system area and El Torito boot
images get loaded, too. The default behavior is not to write
loaded El Torito boot images and to write the loaded system area
content without alterations.
*discard* gives up the El Torito boot catalog and its boot images.
regardless whether loaded from an ISO filesystem or defined by
commands. Any BIOS or EFI related boot options get revoked.
Nevertheless, loaded system area data stay valid. If desired, they
have to be erased by
-boot_image any system_area=/dev/zero
*keep* keeps or copies El Torito boot images unaltered and writes
a new catalog.
*patch* applies patching to existing El Torito boot images if they
seem to bear a boot info table.
A boot info table needs to be patched when the boot image gets
newly introduced into the ISO image or if an existing image gets
relocated. This is automatically done if type "isolinux" or "grub"
@ -2613,19 +2626,18 @@ filesystem and announced by an MBR partition table entry.
and their designated fate.
A *bootspec* is a word of the form name=value. It is used to
describe the parameters of a boot image by an El Torito record or
a MBR. The names "dir", "bin_path", "efi_path" lead to El Torito
bootable images. Name "system_area" activates a given file as MBR.
describe the parameters of a boot feature. The names "dir",
"bin_path", "efi_path" lead to El Torito bootable images. Name
"system_area" activates a given file as MBR or other disk header.
On all media types this is possible within the first session. In
further sessions an existing boot image can get replaced by a new
one, but depending on the media type this may have few effect at
boot time. See above.
The boot image and its supporting files have to be added to the
ISO image by normal means (image loading, -map, -add, ...). In
case of ISOLINUX the files should reside either in ISO image
directory /isolinux or in /boot/isolinux . In that case it
suffices to use as bootspec the text "*dir=/isolinux*" or
"dir=/boot/isolinux". E.g.:
El Torito boot images have to be added to the ISO image by normal
means (image loading, -map, -add, ...). In case of ISOLINUX the
files should reside either in ISO image directory /isolinux or in
/boot/isolinux . In that case it suffices to use as bootspec the
text "*dir=/isolinux*" or "dir=/boot/isolinux". E.g.:
-boot_image isolinux dir=/boot/isolinux
which bundles these individual settings:
-boot_image isolinux bin_path=/boot/isolinux/isolinux.bin
@ -2640,13 +2652,14 @@ filesystem and announced by an MBR partition table entry.
not necessary that it appears in the directory tree at all. One
may hide it in all trees by *cat_hidden=on*. Other possible
values are "iso_rr", "joliet", "hfsplus", and the default "off".
*bin_path=* depicts a boot image file, a binary program which is
to be started by the hardware boot facility (e.g. the BIOS) at
boot time.
*efi_path=* depicts a boot image file that is ready for EFI
booting. Its load_size is determined automatically, no boot info
table gets written, no boot medium gets emulated, platform_id is
0xef.
*bin_path=* depicts an El Torito boot image file, a binary program
which is to be started by the hardware boot facility (e.g. the
BIOS) at boot time.
*efi_path=* depicts an El Torito boot image file that is ready for
EFI booting. This is normally a FAT filesystem image not larger
than 65535 blocks of 512 bytes (= 32 MiB - 512). Its load_size is
determined automatically, no boot info table gets written, no boot
medium gets emulated, platform_id is 0xef.
*emul_type=* can be one of "no_emulation", "hard_disk", "diskette".
It controls the boot medium emulation code of a boot image. The
default "no_emulation" is suitable for ISOLINUX, GRUB, FreeBSD
@ -2661,9 +2674,9 @@ filesystem and announced by an MBR partition table entry.
written as 64 bit little-endian number. It is the 2KB block
address of the boot image content, multiplied by 4, and then
incremented by 5. "grub2_boot_info=off" disables this patching.
*platform_id=* defines by two hex digits the Platform ID of the
boot image. "00" is 80x86 PC-BIOS, "01" is PowerPC, "02" is Mac,
"ef" is EFI.
*platform_id=* defines by a hexadecimal or decimal number the
Platform ID of the boot image. "0x00" is 80x86 PC-BIOS, "0x01" is
PowerPC, "0x02" is Mac, "0xef" is EFI (decimal "239").
*id_string=*text|56_hexdigits defines the ID string of the boot
catalog section where the boot image will be listed. If the value
consists of 56 characters [0-9A-Fa-f] then it is converted into 28
@ -2677,11 +2690,6 @@ filesystem and announced by an MBR partition table entry.
*next* ends the definition of a boot image and starts a new one.
Any following -bootimage bootspecs will affect the new image. The
first "next" discards loaded boot images and their catalog.
*discard* gives up an existing boot catalog and its boot images.
*keep* keeps or copies boot images unaltered and writes a new
catalog.
*patch* applies patching to existing boot images if they seem to
bear a boot info table.
*system_area=*disk_path copies at most 32768 bytes from the given
disk file to the very start of the ISO image. This System Area is
reserved for system dependent boot software, e.g. an MBR which can
@ -2700,6 +2708,11 @@ filesystem and announced by an MBR partition table entry.
mentioned in GPT as Basic Data or GPT HFS+ partition, and in APM
as HFS+ partition. The first three GPT partitions will also be
marked by MBR partitions.
In multi-session situations the existing System Area is preserved
by default. In in this case, the special disk_path "." prevents
reading of a disk file but nevertheless causes adjustments in the
loaded system area data. Such adjustments may get ordered by
-boot_image commands.
*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
@ -2718,8 +2731,7 @@ filesystem and announced by an MBR partition table entry.
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
If types "isolinux" or "grub" are set to "patch", then
"partition_table=on" is activated without new boot image. In this
case the existing System Area gets checked whether it bears
addresses and sizes as if it had been processed by
@ -2816,9 +2828,9 @@ filesystem and announced by an MBR partition table entry.
*hppa_hdrversion=*number chooses between PALO header version 5
(default) and version 4. For the appropriate value see in PALO
source code: PALOHDRVERSION.
*mips_discard* and *sparc_discard* revoke any boot file
declarations made for mips or mipsel resp. sparc. This removes
the ban on production of other boot blocks.
*mips_discard*, *sparc_discard*, and *hppa_discard* revoke any
boot file declarations made for mips, mipsel, sparc resp. hppa.
This removes the ban on production of other boot blocks.
*hfsplus_serial=*hexstring sets a string of 16 digits "0" to "9"
and letters "a" to "f", which will be used as unique serial number
of an emerging HFS+ filesystem.
@ -5017,7 +5029,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -alter_date sets timestamps in ISO image: Manip. (line 154)
* -alter_date_r sets timestamps in ISO image: Manip. (line 187)
* -append_partition adds arbitrary file after image end: Bootable.
(line 279)
(line 291)
* -application_id sets application id: SetWrite. (line 196)
* -application_use sets application use field: SetWrite. (line 262)
* -as emulates mkisofs or cdrecord: Emulation. (line 13)
@ -5027,7 +5039,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -ban_stdio_write demands real drive: Loading. (line 278)
* -biblio_file sets biblio file name: SetWrite. (line 244)
* -blank erases media: Writing. (line 61)
* -boot_image controls bootability: Bootable. (line 27)
* -boot_image controls bootability: Bootable. (line 26)
* -calm_drive reduces drive activity: Loading. (line 267)
* -cd sets working directory in ISO: Navigate. (line 7)
* -cdx sets working directory on disk: Navigate. (line 16)
@ -5255,10 +5267,10 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* ACL, set in ISO image, -setfacl_r: Manip. (line 105)
* ACL, show in ISO image, -getfacl: Navigate. (line 70)
* ACL, show in ISO image, -getfacl_r: Navigate. (line 77)
* APM block size: Bootable. (line 270)
* APM block size: Bootable. (line 282)
* APM, _definition: Extras. (line 41)
* Appendable media, _definition: Media. (line 38)
* Appended Filesystem Image, -append_partition: Bootable. (line 279)
* Appended Filesystem Image, -append_partition: Bootable. (line 291)
* Automatic execution order, of arguments, -x: ArgSort. (line 16)
* Backslash Interpretation, _definition: Processing. (line 52)
* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 217)
@ -5266,7 +5278,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 179)
* Blank media, _definition: Media. (line 29)
* Blind growing, _definition: Methods. (line 40)
* Bootability, control, -boot_image: Bootable. (line 27)
* Bootability, control, -boot_image: Bootable. (line 26)
* Bugs, reporting: Bugreport. (line 6)
* cdrecord, Emulation: Emulation. (line 118)
* Character Set, _definition: Charset. (line 6)
@ -5275,13 +5287,13 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Character Set, for output, -out_charset: SetWrite. (line 276)
* Character set, learn from image, -auto_charset: Loading. (line 122)
* Character Set, of terminal, -local_charset: Charset. (line 58)
* CHRP partition, _definition: Bootable. (line 172)
* CHRP partition, _definition: Bootable. (line 184)
* Closed media, _definition: Media. (line 43)
* Comment, #: Scripting. (line 173)
* Control, signal handling, -signal_handling: Exception. (line 69)
* Create, new ISO image, _definition: Methods. (line 6)
* Cylinder alignment, _definition: Bootable. (line 212)
* Cylinder size, _definition: Bootable. (line 201)
* Cylinder alignment, _definition: Bootable. (line 224)
* Cylinder size, _definition: Bootable. (line 213)
* Damaged track and session, close, -close_damaged: Writing. (line 170)
* Delete, from ISO image, -rm: Manip. (line 21)
* Delete, from ISO image, -rm_r: Manip. (line 28)
@ -5313,7 +5325,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Drive, write and eject, -commit_eject: Writing. (line 56)
* EA, _definition: Extras. (line 65)
* ECMA-119, _definition: Model. (line 6)
* EFI system partition, _definition: Bootable. (line 181)
* EFI system partition, _definition: Bootable. (line 193)
* El Torito, _definition: Extras. (line 19)
* Emulation, -as: Emulation. (line 13)
* Emulation, .mkisofsrc, -read_mkisofsrc: Emulation. (line 153)
@ -5340,10 +5352,10 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Group, in ISO image, -chgrp_r: Manip. (line 62)
* Growing, _definition: Methods. (line 19)
* Hard links, control handling, -hardlinks: Loading. (line 134)
* HFS+ allocation block size: Bootable. (line 267)
* HFS+ serial number: Bootable. (line 264)
* HFS+ allocation block size: Bootable. (line 279)
* HFS+ serial number: Bootable. (line 276)
* hidden, set in ISO image, -hide: Manip. (line 191)
* HP-PA boot sector, production: Bootable. (line 244)
* HP-PA boot sector, production: Bootable. (line 256)
* Image reading, cache size, -data_cache_size: Loading. (line 296)
* Image, _definition: Model. (line 9)
* Image, demand volume ID, -assert_volid: Loading. (line 108)
@ -5395,13 +5407,13 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* List delimiter, _definition: Processing. (line 9)
* Local Character Set, _definition: Charset. (line 11)
* MBR, _definition: Extras. (line 26)
* MBR, set, -boot_image system_area=: Bootable. (line 127)
* MBR, set, -boot_image system_area=: Bootable. (line 135)
* MD5, control handling, -md5: Loading. (line 183)
* Media, erase, -blank: Writing. (line 61)
* Media, format, -format: Writing. (line 91)
* Media, list formats, -list_formats: Writing. (line 134)
* Media, list write speeds, -list_speeds: Writing. (line 146)
* MIPS boot file, activation: Bootable. (line 223)
* MIPS boot file, activation: Bootable. (line 235)
* mkisofs, Emulation: Emulation. (line 16)
* Modifying, _definition: Methods. (line 27)
* Multi-session media, _definition: Media. (line 7)
@ -5428,15 +5440,15 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Ownership, global in ISO image, -uid: SetWrite. (line 282)
* Ownership, in ISO image, -chown: Manip. (line 49)
* Ownership, in ISO image, -chown_r: Manip. (line 54)
* Partition offset, _definition: Bootable. (line 191)
* Partition table, _definition: Bootable. (line 152)
* Partition offset, _definition: Bootable. (line 203)
* Partition table, _definition: Bootable. (line 165)
* Pathspec, _definition: SetInsert. (line 124)
* Pattern expansion, _definition: Processing. (line 24)
* Pattern expansion, for disk paths, -disk_pattern: Insert. (line 36)
* Pattern expansion, for ISO paths, -iso_rr_pattern: Manip. (line 10)
* Permissions, in ISO image, -chmod: Manip. (line 65)
* Permissions, in ISO image, -chmod_r: Manip. (line 77)
* PReP partition, _definition: Bootable. (line 176)
* PReP partition, _definition: Bootable. (line 188)
* Problems, reporting: Bugreport. (line 6)
* Process, consolidate text output, -pkt_output: Frontend. (line 7)
* Process, control abort on error, -abort_on: Exception. (line 27)
@ -5495,10 +5507,10 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Session, mount parameters, -mount_opts: Inquiry. (line 68)
* Session, select as input, -load: Loading. (line 35)
* Sorting order, for -x, -list_arg_sorting: ArgSort. (line 27)
* SUN Disk Label, production: Bootable. (line 234)
* SUN SPARC boot images, activation: Bootable. (line 300)
* SUN Disk Label, production: Bootable. (line 246)
* SUN SPARC boot images, activation: Bootable. (line 312)
* Symbolic link, create, -lns: Insert. (line 176)
* System area, _definition: Bootable. (line 127)
* System area, _definition: Bootable. (line 135)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 238)
* Table-of-content, show, -toc: Inquiry. (line 28)
* Timestamps, set in ISO image, -alter_date: Manip. (line 154)
@ -5514,7 +5526,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Verify, file tree checksums, -check_md5_r: Verify. (line 182)
* Verify, preset -check_media, -check_media_defaults: Verify. (line 41)
* Write, block size, -dvd_obs: SetWrite. (line 333)
* Write, bootability, -boot_image: Bootable. (line 27)
* Write, bootability, -boot_image: Bootable. (line 26)
* Write, buffer syncing, -stdio_sync: SetWrite. (line 340)
* Write, close media, -close: SetWrite. (line 359)
* Write, compliance to specs, -compliance: SetWrite. (line 58)
@ -5564,39 +5576,39 @@ Node: Filter94263
Node: Writing98885
Node: SetWrite109016
Node: Bootable129722
Node: Jigdo147755
Node: Charset152002
Node: Exception155317
Node: DialogCtl161437
Node: Inquiry164035
Node: Navigate171466
Node: Verify179764
Node: Restore189591
Node: Emulation198195
Node: Scripting208583
Node: Frontend216354
Node: Examples225961
Node: ExDevices227139
Node: ExCreate227805
Node: ExDialog229090
Node: ExGrowing230355
Node: ExModifying231160
Node: ExBootable231664
Node: ExCharset232216
Node: ExPseudo233108
Node: ExCdrecord234006
Node: ExMkisofs234323
Node: ExGrowisofs235663
Node: ExException236798
Node: ExTime237252
Node: ExIncBackup237711
Node: ExRestore241701
Node: ExRecovery242634
Node: Files243204
Node: Seealso244503
Node: Bugreport245226
Node: Legal245807
Node: CommandIdx246818
Node: ConceptIdx263699
Node: Jigdo148520
Node: Charset152767
Node: Exception156082
Node: DialogCtl162202
Node: Inquiry164800
Node: Navigate172231
Node: Verify180529
Node: Restore190356
Node: Emulation198960
Node: Scripting209348
Node: Frontend217119
Node: Examples226726
Node: ExDevices227904
Node: ExCreate228570
Node: ExDialog229855
Node: ExGrowing231120
Node: ExModifying231925
Node: ExBootable232429
Node: ExCharset232981
Node: ExPseudo233873
Node: ExCdrecord234771
Node: ExMkisofs235088
Node: ExGrowisofs236428
Node: ExException237563
Node: ExTime238017
Node: ExIncBackup238476
Node: ExRestore242466
Node: ExRecovery243399
Node: Files243969
Node: Seealso245268
Node: Bugreport245991
Node: Legal246572
Node: CommandIdx247583
Node: ConceptIdx264464

End Tag Table