Enabled use of libisofs interval reader in xorriso

This commit is contained in:
2015-04-23 14:23:45 +00:00
parent 811cbd8b80
commit 8fbd7bbf69
8 changed files with 674 additions and 216 deletions

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.3.9, Feb 28, 2015"
@c man .TH XORRISO 1 "Version 1.3.9, Apr 20, 2015"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -3438,6 +3438,63 @@ DEC Boot Block for old MIPS DECstation,
SUN Disk Label for SPARC machines,
HP-PA boot sector for HP PA-RISC machines,
DEC Alpha SRM boot sector for old DEC Alpha machines.
@c man .PP
@sp 1
@cindex Interval reader for system area and partitions
Several of the following commands expect disk paths as input but also accept
description strings for the libisofs interval reader, which is able to cut
out data from disk files or -indev and to zeroize parts of the content:
command -append_partition,
boot specs system_area=, grub2_mbr=, prep_boot_part=, efi_boot_part=.
@*
The description string consists
of the following components, separated by colon ':'
@*
"@minus{}@minus{}interval:"Flags":"Interval":"Zeroizers":"Source
@*
The component "@minus{}@minus{}interval" states that this is not
a plain disk path but rather an interval reader description string.
@*
The component Flags modifies the further interpretation:
@*
"local_fs" demands to read from a file depicted by the path in Source.
@*
"imported_iso" demands to read from the -indev. This works only if -outdev
is not the same as -indev. The Source component is ignored.
@*
The component Interval consists of two byte address numbers separated by a "-" character. E.g. "0-429" means to read bytes 0 to 429.
@*
The component Zeroizers consists of zero or more comma separated strings.
They define which part of the read data to zeroize. Byte number 0 means
the byte read from the Interval start address.
Each string may be one of:
@*
"zero_mbrpt" demands to zeroize the MBR partition table if
bytes 510 and 511 bear the MBR signature 0x55 0xaa.
@*
"zero_gpt" demands to check for a GPT header in bytes 512 to 1023,
to zeroize it and its partition table blocks.
@*
"zero_apm" demands to check for an APM block 0 and to zeroize
its partition table blocks.
@*
Start_byte"-"End_byte demands to zeroize the read-in bytes beginning
with number Start_byte and ending after End_byte.
@*
The component Source is the file path with flag "local_fs", and ignored with
flag "imported_iso".
@*
Byte numbers may be scaled by a suffix out of @{k,m,g,t,s,d@} meaning
multiplication by @{1024, 1024k, 1024m, 1024g, 2048, 512@}. A scaled value
end number depicts the last byte of the scaled range.
@*
E.g. "0d-0d" is "0-511".
@*
Examples:
@*
"local_fs:0-32767:zero_mbrpt,zero_gpt,440-443:/tmp/template.iso"
@*
"imported_iso:45056d-47103d::"
@*
@table @asis
@sp 1
@ -3668,13 +3725,15 @@ the whole ISO image and has type 0x96. 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
@strong{prep_boot_part=}disk_path inserts the content of a data file into
the image and
marks it by an MBR partition of type 0x41. 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
@strong{efi_boot_part=}disk_path 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.
@ -3705,16 +3764,20 @@ the partition table. 0 chooses a default value. Maximum is 63.
@*
The product partition_sec_hd * partition_hd_cyl * 512 is the cylinder size.
It should be divisible by 2048 in order to allow exact alignment.
If it is too small to describe the image size by at most 1024 cylinders,
With appended partitions and "appended_part_as=gpt" there
is no limit for the number of cylinders. Else there may be at most 1024
of them.
If the cylinder size is too small to stay below the limit,
then appropriate values of partition_hd_cyl are chosen with
partition_sec_hd 32 or 63. If the image is larger than 8,422,686,720 bytes,
then the cylinder size constraints cannot be fulfilled.
then the cylinder size constraints cannot be fulfilled for MBR.
@*
@cindex Cylinder alignment, _definition
@strong{partition_cyl_align=}mode controls image size alignment to an integer
number of cylinders. It is prescribed by isohybrid specs and it seems to
please program fdisk. Cylinder size must be divisible by 2048.
Images larger than 8,323,596,288 bytes cannot be aligned.
Images larger than 8,323,596,288 bytes cannot be aligned in MBR partition
table.
@*
Mode "auto" is default. Alignment by padding happens only with
"isolinux" "partition_table=on".
@ -3776,7 +3839,7 @@ For the appropriate value see in PALO source code: PALOHDRVERSION.
@*
@cindex DEC Alpha SRM boot sector, production
@strong{alpha_boot=}iso_rr_path declares a data file in the image to be the
DEC Alpha SRM Secondary Bootloader and causes production of a boot sector
DEC Alpha SRM Secondary Bootstrap Loader and causes production of a boot sector
which points to it.
This is mutually exclusive with production of other boot blocks like MBR.
@*