You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2944 lines
114 KiB
2944 lines
114 KiB
\input texinfo @c -*-texinfo-*- |
|
@c %**start of header |
|
@setfilename xorrisofs.info |
|
@settitle GNU xorrisofs 1.5.3 |
|
@c %**end of header |
|
@c |
|
@c man-ignore-lines begin |
|
@dircategory Archiving |
|
@direntry |
|
* Xorrisofs: (xorrisofs). Emulates ISO 9660 program mkisofs |
|
@end direntry |
|
@c man-ignore-lines end |
|
@c |
|
@c Notes about embedded man page: |
|
@c This texinfo code contains the necessary info to produce a man page |
|
@c which resembles much the version of xorriso.1 from which this code |
|
@c was originally derived in march 2010. |
|
@c One can produce the man page by applying the following rules: |
|
@c The first line gets discarded. |
|
@c Line start "@c man " will become "", the remainder is put out unaltered. |
|
@c Lines "@*" will be converted to ".br" |
|
@c "@c man-ignore-lines N" will discard N following lines. |
|
@c "@c man-ignore-lines begin" discards all following lines |
|
@c up to "@c man-ignore-lines end". |
|
@c Line blocks of "@menu" "@end menu" will be discarded. |
|
@c "@item word words" becomes "\fBword\fR words". |
|
@c @b{...}, @command{...}, @dfn{...}, @emph{...}, @strong{...} |
|
@c get mapped to \fB...\fR . |
|
@c @abbr{...}, @code{...}, @file{...}, @i{...}, @option{...}, @r{...}, |
|
@c @ref{...}, @samp{...},@var{...}, get mapped to ... . |
|
@c @ref{...}, @xref{...} get mapped to empty text. |
|
@c @email{...} gets mapped to <...> . |
|
@c Mapped {...} content is subject to the rules except {...} mapping. |
|
@c @minus{} will become "-". |
|
@c @@ , @{, @} will get stripped of their first @. |
|
@c Other lines which begin by "@" will be discarded. |
|
@c In lines not stemming from "@c man", "\" becomes "\\" |
|
@c "-" which are not preceded by an uneven number of "\" will get |
|
@c prepended one "\". |
|
@c |
|
@c |
|
@c man .\" Hey, EMACS: -*- nroff -*- |
|
@c man .\" |
|
@c man .\" IMPORTANT NOTE: |
|
@c man .\" |
|
@c man .\" The original of this file is kept in xorriso/xorrisofs.texi |
|
@c man .\" This here was generated by program xorriso/make_xorriso_1 |
|
@c man .\" |
|
@c man .\" |
|
@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.5.3, Nov 15, 2020" |
|
@c man .\" Please adjust this date whenever revising the manpage. |
|
@c man .\" |
|
@c man .\" Some roff macros, for reference: |
|
@c man .\" .nh disable hyphenation |
|
@c man .\" .hy enable hyphenation |
|
@c man .\" .ad l left justify |
|
@c man .\" .ad b justify to both left and right margins |
|
@c man .\" .nf disable filling |
|
@c man .\" .fi enable filling |
|
@c man .\" .br insert line break |
|
@c man .\" .sp <n> insert n+1 empty lines |
|
@c man .\" for manpage-specific macros, see man(7) |
|
@c man .nh |
|
@c man-ignore-lines begin |
|
@copying |
|
xorrisofs - Emulation of ISO 9660 program mkisofs by program xorriso |
|
|
|
Copyright @copyright{} 2011 - 2019 Thomas Schmitt |
|
|
|
@quotation |
|
Permission is granted to distribute this text freely. |
|
@end quotation |
|
@end copying |
|
@c man-ignore-lines end |
|
@titlepage |
|
@title Manual of GNU xorriso personality xorrisofs 1.5.3 |
|
@author Thomas Schmitt |
|
@page |
|
@vskip 0pt plus 1filll |
|
@insertcopying |
|
@end titlepage |
|
@contents |
|
@ifnottex |
|
@node Top |
|
@top xorrisofs 1.5.3 |
|
@c man-ignore-lines 1 |
|
|
|
@c man .SH NAME |
|
xorrisofs - Emulation of ISO 9660 program mkisofs by program xorriso |
|
@end ifnottex |
|
@menu |
|
* Overview:: Overview |
|
* Standards:: ISO 9660, Rock Ridge, Joliet |
|
* Insert:: Inserting files into the ISO image |
|
* Xorriso:: Relation to program xorriso |
|
* Options:: Options |
|
* Examples:: Examples |
|
* Files:: Files |
|
* Environ:: Environment |
|
* Seealso:: See also |
|
* Bugreport:: Reporting bugs |
|
* Legal:: Author, Copyright, Credits |
|
* CommandIdx:: Alphabetic Command List |
|
* ConceptIdx:: Alphabetic List of Concepts and Objects |
|
@end menu |
|
@node Overview, Standards, Top, Top |
|
@chapter Overview |
|
@c man .SH SYNOPSIS |
|
@c man .B xorrisofs |
|
@c man [ options ] [-o filename ] pathspec [pathspecs ...] |
|
@c man .br |
|
@c man .SH DESCRIPTION |
|
@c man .PP |
|
@command{xorrisofs} |
|
produces Rock Ridge enhanced ISO 9660 filesystems and add-on sessions to |
|
such filesystems. Optionally it can produce Joliet directory trees too. |
|
@* |
|
@sp 1 |
|
@c man .PP |
|
@command{xorrisofs} understands options of program mkisofs from cdrtools by |
|
Joerg Schilling. |
|
Its implementation is part of program xorriso which shares no source |
|
code with cdrtools. |
|
@c man .SS |
|
@node Standards, Insert, Overview, Top |
|
@chapter ISO 9660, Rock Ridge, Joliet, HFS+ |
|
@c man \fBISO 9660, Rock Ridge, Joliet, HFS+:\fR |
|
@c man .br |
|
@cindex ISO 9660, _definition |
|
@cindex ECMA-119, _definition |
|
@strong{ISO 9660} |
|
(aka @strong{ECMA-119}) is a read-only filesystem that is mainly used for |
|
optical media CD, DVD, BD, but may also reside on other storage devices like |
|
disk files, USB sticks or disk partitions. It is widely readable by many |
|
operating systems and by boot facilities of personal computers. |
|
@* |
|
ISO 9660 describes directories and data files by |
|
very restricted filenames with no distinction of upper case and lower case. |
|
Its metadata do not comply to fundamental POSIX specifications. |
|
@* |
|
@cindex Rock Ridge, _definition |
|
@strong{Rock Ridge} |
|
is the name of a set of additional information which enhance |
|
an ISO 9660 filesystem so that it can represent a POSIX compliant filesystem |
|
with ownership, access permissions, symbolic links, and other attributes. |
|
Rock Ridge allows filenames of up to 255 bytes and paths of up to |
|
1024 bytes. |
|
@* |
|
xorrisofs produces Rock Ridge information by default. It is strongly |
|
discouraged to disable this feature. |
|
@* |
|
@cindex Joliet, _definition |
|
@strong{Joliet} |
|
is the name of an additional directory tree which provides |
|
filenames up to 64 characters encoded as UTF-16. |
|
A Joliet tree is mainly interesting for reading the ISO image by |
|
operating systems of Microsoft Corporation. |
|
Production of this directory tree may be enabled by option -J. |
|
@* |
|
@cindex ISO 9660:1999, _definition |
|
@strong{ISO 9660:1999} |
|
is the name of an additional directory tree which provides longer |
|
filenames. It allows single file names to have up to 207 characters. |
|
It might be of use with some older computer system boot |
|
facilities which read neither Rock Ridge nor Joliet but |
|
need longer filenames nevertheless. |
|
Production of this directory tree may be enabled by option -iso-level 4. |
|
@* |
|
@cindex HFS+, _definition |
|
@strong{HFS+} |
|
is the name of a filesystem which is normally used for writing and reading |
|
on hard disks and similar devices. It is possible to embed a HFS+ partition |
|
into the emerging ISO 9660 image and to mark it by Apple Partition Map |
|
entries. This interferes with options which copy data into the first 32 KiB |
|
of the ISO image, like -G or -isohybrid-mbr. See option -hfsplus. |
|
@* |
|
The main purpose for having an embedded HFS+ partition is booting of |
|
certain models of Apple computers. |
|
@c man .SS |
|
@sp 1 |
|
@c man .B Inserting files into the ISO image: |
|
@node Insert, Xorriso, Standards, Top |
|
@chapter Inserting files into the ISO image |
|
@c man .PP |
|
@command{xorrisofs} deals with two kinds of file addresses: |
|
@* |
|
@cindex disk_path, _definition |
|
@strong{disk_path} |
|
is a path to an object in the local filesystem tree. |
|
@* |
|
@cindex iso_rr_path, _definition |
|
@strong{iso_rr_path} |
|
is the Rock Ridge address of a file object in the ISO image. |
|
If no Rock Ridge information shall be stored in an emerging ISO, then the |
|
names will get mapped to ISO 9660 names of limited length and character set. |
|
@cindex pathspec, _definition |
|
@* |
|
@sp 1 |
|
@c man .PP |
|
A program argument is handled as a @strong{pathspec}, if it is not |
|
recognized as original mkisofs option or additional @command{xorrisofs} option. |
|
A pathspec depicts an input file object by a disk_path. |
|
If option -graft-points is not present, then the behavior depends on the |
|
file type of disk_path. Directories get merged with the /-directory of the |
|
ISO image. Files of other types get copied into the /-directory. |
|
@* |
|
If -graft-points is present then each pathspec gets split at the first |
|
occurrence of the =-character. |
|
The part before the = is taken as @strong{target}, i.e. the iso_rr_path for |
|
the file object in the ISO image. The part after the first = is taken |
|
as @strong{source}, i.e. the disk_path of the input object. |
|
@* |
|
It is possible to make =-characters part of the iso_rr_path by preceding |
|
them with a \-character. The same must be done for \-characters which |
|
shall be part of the iso_rr_path. |
|
@* |
|
@sp 1 |
|
@c man .PP |
|
If the source part of the pathspec leads to a directory, then all files |
|
underneath this directory get inserted into the image, too. |
|
It is possible to exclude particular files from being inserted |
|
by help of option -m. |
|
@* |
|
In case that target already exists, the following rules apply: |
|
Directories and other files may overwrite existing non-directories. |
|
Directories get merged with existing directories. |
|
Non-directories may not overwrite existing directories. |
|
@c man .SS |
|
@node Xorriso, Options, Insert, Top |
|
@chapter Relation to program xorriso |
|
@c man \fBRelation to program xorriso:\fR |
|
@c man .br |
|
@cindex xorriso, mkisofs emulation |
|
@command{xorrisofs} is actually a command mode of program @strong{xorriso}, |
|
which gets entered either by xorriso command "-as mkisofs" or by |
|
starting the program by one of the names "xorrisofs", "mkisofs", |
|
"genisoimage", or "genisofs". |
|
@* |
|
This command mode can be left by argument "@minus{}@minus{}" which leads |
|
to generic xorriso command mode. See @strong{man xorriso} for its description. |
|
@* |
|
@sp 1 |
|
@c man .PP |
|
xorriso performs image reading and writing by help of libburn, which is |
|
mainly intended for optical drives, but also operates on all POSIX |
|
file types except directories. |
|
@* |
|
The program messages call any image file a "drive". File types which are not |
|
supported for reading are reported as "blank". The reported free media |
|
space may be quite fictional. |
|
@* |
|
Nevertheless @command{xorrisofs} does not operate directly on optical drives, |
|
but rather forces libburn to regard them as general device files. |
|
So for writing of sequential optical media (CD, DVD-R, DVD+R, BD-R) |
|
one will have to use a burn program. E.g the cdrecord emulation of xorriso. |
|
See EXAMPLES. |
|
@c man .SS |
|
@node Options, Examples, Xorriso, Top |
|
@chapter Options |
|
@cindex xorriso, options |
|
@c man .br |
|
@c man .SH OPTIONS |
|
@c man .br |
|
@menu |
|
* Loading:: Image loading |
|
* SetInsert:: Settings for file insertion |
|
* SetProduct:: Settings for image production |
|
* SetCompl:: Settings for standards compliance |
|
* SetExtras:: Settings for standards extensions |
|
* SetHide:: Settings for file hiding |
|
* ImageId:: ISO image ID strings |
|
* Bootable:: El Torito Bootable ISO images |
|
* SystemArea:: System Area, MBR, GPT, APM, other boot blocks |
|
* Charset:: Character sets |
|
* Jigdo:: Jigdo Template Extraction |
|
* Miscellaneous:: Miscellaneous options |
|
@end menu |
|
@c man .PP |
|
@c man .TP |
|
@c man .B Image loading: |
|
@node Loading, SetInsert, Options, Options |
|
@section Influencing the behavior of image loading |
|
@c man .PP |
|
The following options control loading of an existing ISO image for the purpose |
|
of preparing a suitable add-on session. |
|
If they are missing then a new image is composed from scratch. |
|
@table @asis |
|
@sp 1 |
|
@c man .TP |
|
@item -M disk_path |
|
@kindex -M set path for loading existing ISO image |
|
@cindex Session, select path, -M, -prev-session, -dev |
|
Set the path from which to load the existing ISO image directory tree |
|
on which to base the upcoming directory tree as add-on session. |
|
The path must lead to a random-access readable file object. |
|
On GNU/Linux: regular data files or block device files. |
|
@* |
|
A special kind of pseudo disk_path has the form "/dev/fd/"number. |
|
It depicts the open file descriptor with the given number, regardless whether |
|
the operating system supports this feature by file nodes in /dev/fd or not. |
|
E.g. /dev/fd/3 is file descriptor 3 which was opened by the program that |
|
later started xorriso. |
|
@c man .TP |
|
@item -prev-session disk_path |
|
@kindex -prev-session set path for loading existing ISO image |
|
Alias of -M. |
|
@c man .TP |
|
@item -dev disk_path |
|
@kindex -dev set path for loading existing ISO image |
|
Alias of -M. |
|
@c man .TP |
|
@item -C last_session_start,next_writeable_address |
|
@kindex -C set load address and write address offset |
|
@cindex Session, set load and write address, -C, -cdrecord-params |
|
Set the 2 KiB block address last_session_start from where to read the |
|
ISO image out of the file given by option -M. |
|
@* |
|
Separated by a comma, set the next_writeable_address to which the |
|
add-on session will finally be written. Decisive is actually the block |
|
address which the intended readers will have to use as superblock address |
|
on the intended medium. |
|
@* |
|
Both values can be inquired from optical media by help of burn programs |
|
and cdrecord option -msinfo. xorriso itself can obtain it in its |
|
cdrecord emulation. |
|
@* |
|
values=$(xorriso -as cdrecord dev=/dev/... -msinfo) |
|
@* |
|
echo $values |
|
@* |
|
@sp 1 |
|
Option -C may be used without option -M to create an ISO image from |
|
scratch and prepare it for being finally written to a block address |
|
other than 0. Parameter last_session_start must then be set to 0. |
|
@c man .TP |
|
@item -cdrecord-params last_session_start,next_writeable_address |
|
@kindex -cdrecord-params set load address and write address offset |
|
Alias of -C. |
|
@end table |
|
@c man .TP |
|
@c man .B Settings for file insertion: |
|
@node SetInsert, SetProduct, Loading, Options |
|
@section Settings for file insertion |
|
@table @asis |
|
@sp 1 |
|
@c man .TP |
|
@item -path-list disk_path |
|
@kindex -path-list read pathspecs from disk file |
|
@cindex pathspec, read list of, -path-list |
|
Read pathspecs line-by-line from disk_file and insert the depicted file |
|
objects into the ISO image. If disk_path is "-" then read the pathspecs |
|
from standard input. |
|
@c man .TP |
|
@item @minus{}@minus{}quoted_path_list disk_path |
|
@kindex @minus{}@minus{}quoted_path_list read pathspecs from disk file |
|
@cindex pathspec, read list of, @minus{}@minus{}quoted_path_list |
|
Like option -path-list but reading quoted words rather than plain lines. |
|
Whitespace outside of quotes will be discarded. On the other hand it is |
|
possible to represent pathspecs which contain newline characters. |
|
@* |
|
The double quotation mark " and the single quotation mark ' can be used to |
|
enclose whitespace and make it part of pathspecs. Each mark |
|
type can enclose the marks of the other type. A trailing backslash \ outside |
|
quotations or an open quotation cause the next input line to be appended. |
|
@c man .TP |
|
@item -f |
|
@kindex -f follow symbolic links on disk |
|
@cindex Links, follow on disk, -f, -follow-links |
|
@* |
|
Resolve symbolic links on disk rather than storing them as symbolic |
|
links in the ISO image. |
|
@c man .TP |
|
@item -follow-links |
|
@kindex -follow-links follow symbolic links on disk |
|
Alias of -f. |
|
@c man .TP |
|
@item -graft-points |
|
@kindex -graft-points enable target=source pathspecs |
|
@cindex pathspec, enable target=source, -graft-points |
|
Enable interpretation of input file pathspecs as combination of iso_rr_path |
|
and disk_path, separated by a =-character. |
|
@c man .TP |
|
@item -m disk_pattern |
|
@kindex -m exclude disk files from inserting |
|
@cindex Disk files, exclude, -m, -exclude, -x, -old-exclude |
|
Exclude files from being inserted into the image. Silently ignored are |
|
those files of which the disk_path matches the given shell parser pattern. |
|
If no /-character is part of the pattern, then it gets matched against |
|
the leaf name of the disk file. |
|
@* |
|
It is possible to give more than one -m option. |
|
@c man .TP |
|
@item -exclude |
|
@kindex -exclude exclude disk files from inserting |
|
Alias of -m. |
|
@c man .TP |
|
@item -x |
|
@kindex -x exclude disk files from inserting |
|
@* |
|
Alias of -m. |
|
@c man .TP |
|
@item -old-exclude |
|
@kindex -old-exclude exclude disk files from inserting |
|
Alias of -m. |
|
@c man .TP |
|
@item -exclude-list disk_path |
|
@kindex -exclude-list exclude disk files from inserting |
|
@cindex Disk files, exclude, -hide-list |
|
Perform -m using each line out of file disk_path as argument disk_pattern. |
|
@c man .TP |
|
@item -z |
|
@kindex -z enable recognition of zisofs files |
|
@cindex zisofs file, enable recognition, -z, -transparent-compression |
|
@* |
|
Enable recognition and proper processing of zisofs compressed files |
|
as produced by program mkzftree. These files will get equipped with the |
|
necessary meta data so that a Linux kernel will recognize them and |
|
deliver their content in uncompressed form. |
|
@c man .TP |
|
@item -transparent-compression |
|
@kindex -transparent-compression enable recognition of zisofs files |
|
Alias of -z. |
|
@c man .TP |
|
@item --zisofs-version-2 |
|
@kindex --zisofs-version-2 enable recognition of zisofs2 files |
|
@cindex zisofs2 file, enable recognition, --zisofs-version-2 |
|
@* |
|
Enable the recognition and proper processing of experimental zisofs version 2 |
|
compressed files. |
|
The Linux kernel (as of 5.9) does not yet know this format and will complain |
|
like |
|
@* |
|
isofs: Unknown ZF compression algorithm: PZ |
|
@* |
|
This complaint can be prevented by option --zisofs2-susp-z2 . |
|
@* |
|
The files will be shown by unaware kernels as they were submitted to xorriso, |
|
i.e. with zisofs2 header, block pointer list, and compressed data. |
|
@* |
|
--zisofs-version-2 also enables -z. |
|
@c man .TP |
|
@item --zisofs2-susp-z2 |
|
@kindex --zisofs2-susp-z2 produce Z2 for version 2 instead of ZF |
|
@cindex Z2 instead of ZF for version 2, --zisofs2-susp-z2 |
|
Enable the production of SUSP entries "Z2" instead of "ZF" with zisofs2 |
|
compressed files. Unaware Linux kernels silently ignore "Z2" entries. |
|
@c man .TP |
|
@item --zisofs2-susp-zf |
|
@kindex --zisofs2-susp-zf produce ZF for version 2 instead of Z2 |
|
@cindex ZF instead of Z2 for version 2, --zisofs2-susp-zf |
|
Enable the production of SUSP entries "ZF" instead of "Z2" with zisofs2 |
|
compressed files. Unaware Linux kernels complain about zisofs2 "ZF" by |
|
"Unknown ZF compression algorithm" and thus leave a mark in the system log. |
|
@c man .TP |
|
@item -root iso_rr_path |
|
@kindex -root redirect ISO root directory |
|
@cindex ISO root directory, redirect, -root |
|
Insert all files under the given iso_rr_path. If option -graft-points is given, |
|
then iso_rr_path is prepended to each target part of a pathspec. |
|
@* |
|
The default for -root is "/". |
|
@c man .TP |
|
@item -old-root iso_rr_path |
|
@kindex -old-root enable incremental insertion |
|
@cindex Incremental insertion, enable, -old-root |
|
Enable incremental insertion of files into the loaded image. |
|
The effective target and source addresses of given pathspecs get compared |
|
whether the target already exists in the ISO image and is still identical |
|
to the source on disk. Metadata in the ISO image will get adjusted, if they |
|
differ from those on disk. |
|
New files and files with changed content will get newly added. |
|
Target files which do not exist in any of the according pathspec sources |
|
will get removed from the ISO directory tree. |
|
@* |
|
If the effective setting of -root differs from the iso_rr_path given |
|
with -old-root, then the files underneath the -old-root directory get cloned |
|
underneath the -root directory. Cloning happens before file comparison. |
|
@c man .TP |
|
@item @minus{}@minus{}old-root-no-ino |
|
@kindex @minus{}@minus{}old-root-no-ino disable disk ino with -old-root |
|
@cindex Incremental insertion, disable disk ino, @minus{}@minus{}old-root-no-ino |
|
Disable recording and use of disk inode numbers. |
|
If no disk inode numbers are recorded, then option -old-root will have |
|
to read disk file content and compare it with the MD5 checksum that is |
|
recorded in the ISO image. |
|
@* |
|
With recorded disk inode numbers and with credible ctime and mtime, |
|
it is possible to detect potential changes in the content without actually |
|
reading it. |
|
A loophole remains if multiple different filesystems may get mounted |
|
at the same directory, like it is habit with /mnt. |
|
In this case one has to use option @minus{}@minus{}old-root-devno |
|
or disable the inode number shortcut by @minus{}@minus{}old-root-no-ino. |
|
@c man .TP |
|
@item @minus{}@minus{}old-root-devno |
|
@kindex @minus{}@minus{}old-root-devno enable disk idevno with -old-root |
|
@cindex Incremental insertion, enable disk devno, @minus{}@minus{}old-root-devno |
|
Enable comparison of recorded device numbers together with recorded |
|
inode numbers. This works only with good old stable device numbers which |
|
get out of fashion, regrettably. If the hard disk has a different |
|
device number after each reboot, then this comparison will see all |
|
files as changed and thus prevent any incremental size saving. |
|
@c man .TP |
|
@item @minus{}@minus{}old-root-no-md5 |
|
@kindex @minus{}@minus{}old-root-no-md5 disable MD5 with -old-root |
|
@cindex Incremental insertion, disable MD5, @minus{}@minus{}old-root-no-md5 |
|
Disable recording and use of MD5 checksums for data file content. |
|
If neither checksums and nor disk inode numbers are recorded, then |
|
option -old-root will have to read ISO image file content when comparing |
|
it with disk file content. |
|
@end table |
|
@c man .TP |
|
@c man .B Settings for image production: |
|
@node SetProduct, SetCompl, SetInsert, Options |
|
@section Settings for image production |
|
@table @asis |
|
@sp 1 |
|
@c man .TP |
|
@item -o disk_path |
|
@kindex -o set output file address |
|
@cindex Output file, set address, -o, -output |
|
Set the output file address for the emerging ISO image. |
|
If the address exists as regular file, it will be truncated to length 0 |
|
when image production begins. It may not already exist as directory. |
|
If it does not exist yet then its parent directory must exist and |
|
a regular file will get created. |
|
@* |
|
A special kind of pseudo disk_path has the form "/dev/fd/"number. |
|
It depicts the open file descriptor with the given number, regardless whether |
|
the operating system supports this feature by file nodes in /dev/fd or not. |
|
E.g. /dev/fd/4 is file descriptor 4 which was opened by the program that |
|
later started xorriso. |
|
@* |
|
Default is standard output (/dev/fd/1) which may also be set by disk_path "-". |
|
@c man .TP |
|
@item -output disk_path |
|
@kindex -output set output file address |
|
Alias of -o. |
|
@c man .TP |
|
@item @minus{}@minus{}stdio_sync "on"|"off"|"end"|number |
|
@kindex @minus{}@minus{}stdio_sync control forced output to disk files |
|
@cindex Forced output, control, @minus{}@minus{}stdio_sync |
|
Set the number of bytes after which to force output to disk |
|
in order to keep the memory from being clogged with lots of |
|
pending data for slow devices. "on" is the same as "16m". |
|
Forced output can be disabled by "off", or be delayed by "end" until all |
|
data are produced. If a number is chosen, then it must be at least 64k. |
|
@* |
|
The default with xorriso mkisofs emulation is @minus{}@minus{}stdio_sync "off". |
|
@* |
|
xorriso uses an inner fifo buffer with default size 4 MiB. So forcing |
|
the operating system i/o cache to disk does not necessarily block the |
|
simultaneous production of more image content. |
|
@c man .TP |
|
@item @minus{}@minus{}emul-toc |
|
@kindex @minus{}@minus{}emul-toc enable table-of-content emulation |
|
@cindex Table-of-content, emulation, @minus{}@minus{}emul-toc |
|
Write a second superblock with the first session into random-access |
|
files. If further sessions get appended and the first superblock gets updated, |
|
then the second superblock will not be overwritten. So it is still possible to |
|
mount the first session and to find the start blocks of the further sessions. |
|
@* |
|
The price is 64 KiB extra space consumption. If -partition_offset is non-zero, |
|
then it is 128 KiB plus twice the partition setup. |
|
@c man .TP |
|
@item @minus{}@minus{}no-emul-toc |
|
@kindex @minus{}@minus{}no-emul-toc no table-of-content emulation |
|
@cindex Table-of-content, emulation off, @minus{}@minus{}no-emul-toc |
|
Do not write a second superblock with the first session into random-access |
|
files. |
|
@* |
|
This is the default. |
|
@c man .TP |
|
@item @minus{}@minus{}sort-weight weight_number iso_rr_path |
|
@kindex @minus{}@minus{}sort-weight set block address sorting weight |
|
@cindex Block address, set sorting weight, @minus{}@minus{}sort-weight |
|
Attribute a LBA weight number to regular files. If iso_rr_path leads |
|
to a directory then all regular files underneath will get the weight_number. |
|
@* |
|
The weight_number may range from -2147483648 to 2147483647. |
|
The higher it is, the lower will be the block address of the file data |
|
in the emerging ISO image. |
|
Currently the El Torito boot catalog has a hardcoded weight of 1 billion. |
|
Normally it should occupy the block with the lowest possible address. |
|
Data files get added or loaded with initial weight 0. Boot image files |
|
have a default weight of 2. |
|
@c man .TP |
|
@item @minus{}@minus{}sort-weight-list disk_path |
|
@kindex @minus{}@minus{}sort-weight-list set block address sorting weight |
|
@cindex Block address, set sorting weight, @minus{}@minus{}sort-weight-list |
|
Read pairs of weight number and iso_rr_path from a file of the |
|
local filesystem. Apply each pair like with @minus{}@minus{}sort-weight. |
|
@* |
|
Only the last @minus{}@minus{}sort-weight-list or |
|
@minus{}@minus{}sort-weight-patterns of a xorrisofs run gets into effect. |
|
@* |
|
The weight number is read from the start of the line. |
|
The iso_rr_path part of an input line begins immediately after the first blank |
|
or tab character of the line. |
|
@* |
|
Notes for the case that this feature is used within a sequence of generic |
|
xorriso commands (not an issue with a pure mkisofs emulation run): |
|
@* |
|
The addressed files must already be in the ISO image model when you execute |
|
@* |
|
-as mkisofs @minus{}@minus{}sort-weight-list disk_path @minus{}@minus{} |
|
@* |
|
Several such commands may be used to apply more than one weight file. |
|
@* |
|
Data files which are loaded by -indev or -dev get a weight between 1 and |
|
2 exp 28 = 268,435,456, depending on their block address. This shall keep |
|
them roughly in the same order if the write method of modifying is applied. |
|
@c man .TP |
|
@item @minus{}@minus{}sort-weight-patterns disk_path |
|
@kindex @minus{}@minus{}sort-weight-patterns set block address sorting weight |
|
@cindex Block address, set sorting weight, @minus{}@minus{}sort-weight-patterns |
|
Like @minus{}@minus{}sort-weight-list , but expanding the iso_rr_paths as |
|
shell parser patterns and applying @minus{}@minus{}sort-weight to each |
|
matching file. |
|
@c man .TP |
|
@item -uid number|name |
|
@kindex -uid ownership for all files |
|
@cindex Ownership, for all files, -uid |
|
Use the given number or locally existing user name as owner id of all files |
|
and directories in the emerging filesystem. |
|
Empty name or name "-" revoke this feature. |
|
@c man .TP |
|
@item -gid number|name |
|
@kindex -gid group assignment for all files |
|
@cindex Group, for all files, -gid |
|
Use the given number or locally existing group name as group id of all files |
|
and directories in the emerging filesystem. |
|
Empty name or name "-" revoke this feature. |
|
@c man .TP |
|
@item -dir-mode mode |
|
@kindex -dir-mode permissions for all directories |
|
@cindex Permissions, for all directories, -dir-mode |
|
Set the access permissions for all directories in the image to the given |
|
mode which is either an octal number beginning with "0" or a comma separated |
|
list of statements of the form [ugoa]*[+-=][rwxst]* . E.g. ug=rx,a-rwx |
|
@c man .TP |
|
@item -file-mode mode |
|
@kindex -file-mode permissions for all data files |
|
@cindex Permissions, for all data files, -file-mode |
|
Like -dir-mode but for all regular data files in the image. |
|
@c man .TP |
|
@item -pad |
|
@kindex -pad add 300 KiB of zeros to ISO tree |
|
@cindex Padding, 300 KiB, -pad |
|
@* |
|
Add 300 KiB to the end of the produced ISO image. This circumvents possible |
|
read errors from ISO images which have been written to CD media in TAO mode. |
|
The additional bytes are claimed as part of the ISO image if not --emul-toc |
|
is given. |
|
@* |
|
Option -pad is the default. |
|
@c man .TP |
|
@item -no-pad |
|
@kindex -no-pad do not add zeros to ISO tree |
|
@cindex Padding, disable, -no-pad |
|
Disable padding of 300 KiB to the end of the produced ISO image. |
|
This is safe if the image is not meant to be written on CD or if it |
|
gets written to CD as only track in write mode SAO. |
|
@c man .TP |
|
@item @minus{}@minus{}old-empty |
|
@kindex @minus{}@minus{}old-empty old block addresses for empty files |
|
@cindex Padding, disable, @minus{}@minus{}old-empty |
|
Use the old way of of giving block addresses in the range |
|
of [0,31] to files with no own data content. The new way is to have |
|
a dedicated block to which all such files will point. |
|
@end table |
|
@c man .TP |
|
@c man .B Settings for standards compliance: |
|
@node SetCompl, SetExtras, SetProduct, Options |
|
@section Settings for standards compliance |
|
@table @asis |
|
@sp 1 |
|
@kindex -iso-level define ISO 9660 limitations |
|
@cindex ISO level, specify, -iso-level |
|
@c man .TP |
|
@item -iso-level number |
|
@kindex -iso-level define ISO 9660 limitations |
|
@cindex ISO level, specify, -iso-level |
|
Specify the ISO 9660 version which defines the limitations of file naming |
|
and data file size. The naming restrictions do not apply to the |
|
Rock Ridge names but only to the low-level ISO 9660 names. |
|
There are three conformance levels: |
|
@* |
|
Level 1 allows ISO names of the form 8.3 and file size up to 4 GiB - 1. |
|
@* |
|
Level 2 allows ISO names with up to 32 characters |
|
and file size up to 4 GiB - 1. |
|
@* |
|
Level 3 allows ISO names with up to 32 characters |
|
and file size of up to 400 GiB - 200 KiB. (This size limitation is |
|
set by the xorriso implementation and not by ISO 9660 which would |
|
allow nearly 8 TiB.) |
|
@* |
|
Pseudo-level 4 enables production of an additional ISO 9660:1999 |
|
directory tree. |
|
@c man .TP |
|
@item -disallow_dir_id_ext |
|
@kindex -disallow_dir_id_ext enforce ISO level 1 directory names |
|
@cindex ISO level 1, enforce directory names, -disallow_dir_id_ext |
|
Do not follow a bad habit of mkisofs which allows dots in the ISO names |
|
of directories. On the other hand, some bootable GNU/Linux images depend on |
|
this bad habit. |
|
@c man .TP |
|
@item -U |
|
@kindex -U very relaxed filename rules |
|
@cindex ISO file names, very relaxed rules, -U, -untranslated-filenames |
|
@* |
|
This option allows ISO file names without dot and up to 37 characters, |
|
ISO file paths longer than 255 characters, and all ASCII characters in file |
|
names. Further it omits the semicolon and the version numbers at the end |
|
of ISO names. |
|
@* |
|
This all violates ISO 9660 specs. |
|
@c man .TP |
|
@item -untranslated-filenames |
|
@kindex -untranslated-filenames very relaxed filename rules |
|
Alias of -U. |
|
@c man .TP |
|
@item -untranslated_name_len number |
|
@kindex -untranslated_name_len untranslated file names |
|
@cindex ISO file names, untranslated, -untranslated_name_len |
|
Allow ISO file names up to the given number of characters |
|
without any character conversion. The maximum number is 96. |
|
If a file name has more characters, then image production will |
|
fail deliberately. |
|
@* |
|
This violates ISO 9660 specs. |
|
@c man .TP |
|
@item -allow-lowercase |
|
@kindex -allow-lowercase lowercase in ISO file names |
|
@cindex ISO file names, allow lowercase, -allow-lowercase |
|
Allow lowercase character in ISO file names. |
|
@* |
|
This violates ISO 9660 specs. |
|
@c man .TP |
|
@item -relaxed-filenames |
|
@kindex -relaxed-filenames 7-bit special characters in ISO file names |
|
@cindex ISO file names, 7-bit special characters, -relaxed-filenames |
|
Allow nearly all 7-bit characters in ISO file names. |
|
Not allowed are 0x0 and '/'. If not option -allow-lowercase is given, |
|
then lowercase letters get converted to uppercase. |
|
@* |
|
This violates ISO 9660 specs. |
|
@c man .TP |
|
@item -d |
|
@kindex -d omit trailing dot in ISO file names |
|
@cindex ISO file names, omit trailing dot, -d, -omit-period |
|
@* |
|
Do not add trailing dot to ISO file names without dot. |
|
@* |
|
This violates ISO 9660 specs. |
|
@c man .TP |
|
@item -omit-period |
|
@kindex -omit-period omit trailing dot in ISO file names |
|
Alias of -d. |
|
@c man .TP |
|
@item -l |
|
@kindex -l allow 31 characters in ISO file names |
|
@cindex ISO file names, allow 31 characters, -l, -full-iso9660-filenames |
|
@* |
|
Allow up to 31 characters in ISO file names. |
|
@c man .TP |
|
@item -full-iso9660-filenames |
|
@kindex -full-iso9660-filenames allow 31 characters in ISO file names |
|
Alias of -l. |
|
@c man .TP |
|
@item -max-iso9660-filenames |
|
@kindex -max-iso9660-filenames allow 37 characters in ISO file names |
|
@cindex ISO file names, allow 37 characters, -max-iso9660-filenames |
|
Allow up to 37 characters in ISO file names. |
|
@* |
|
This violates ISO 9660 specs. |
|
@c man .TP |
|
@item -N |
|
@kindex -N omit version number in ISO file names |
|
@cindex ISO file names, omit version number, -N, -omit-version-number |
|
@* |
|
Omit the semicolon and the version numbers at the end of ISO names. |
|
@* |
|
This violates ISO 9660 specs. |
|
@c man .TP |
|
@item -omit-version-number |
|
@kindex -omit-version-number omit version number in ISO file names |
|
Alias of -N. |
|
@end table |
|
@c man .TP |
|
@c man .B Settings for standards extensions: |
|
@node SetExtras, SetHide, SetCompl, Options |
|
@section Settings for standards extensions |
|
@table @asis |
|
@sp 1 |
|
@c man .TP |
|
@item -R |
|
@kindex -R Rock Ridge (is enabled by default) |
|
@cindex Rock Ridge, (enabled by default), -R, -rock |
|
@* |
|
With mkisofs this option enables Rock Ridge extensions. @command{xorrisofs} |
|
produces them by default. It is strongly discouraged to disable them |
|
by option @minus{}@minus{}norock. |
|
@c man .TP |
|
@item -rock |
|
@kindex -rock Rock Ridge (is enabled by default) |
|
@* |
|
Alias of -R. |
|
@c man .TP |
|
@item -r |
|
@kindex -r Rock Ridge with altered owner and permission |
|
@cindex Rock Ridge, altered owner and permission, -r, -rational-rock |
|
@* |
|
Enable Rock Ridge and set user and group id of all files in the ISO image to 0. |
|
Grant r-permissions to all. Deny all w-permissions. |
|
If any x-permission is set, grant x-permission to all. |
|
Remove s-bit and t-bit. |
|
@* |
|
These attribute changes stay delayed until mkisofs emulation ends. Within the |
|
same -as mkisofs emulation command they can be revoked by a subsequent |
|
option @minus{}@minus{}norock. For compatibility reasons, option -R does not |
|
revoke the changes ordered by -r. |
|
@c man .TP |
|
@item -rational-rock |
|
@kindex -rational-rock Rock Ridge with altered owner and permission |
|
Alias of -r. |
|
@c man .TP |
|
@item @minus{}@minus{}norock |
|
@kindex @minus{}@minus{}norock disable Rock Ridge production |
|
@cindex Rock Ridge, disable production, @minus{}@minus{}norock |
|
@* |
|
This option disables the production of Rock Ridge extensions for the |
|
ISO 9660 file objects. The multi-session capabilities of @command{xorrisofs} |
|
depend much on the naming fidelity of Rock Ridge. So it is strongly |
|
discouraged to disable it by this option, except for the special use case |
|
to revoke the effect of -r by: |
|
@minus{}@minus{}norock -R |
|
@c man .TP |
|
@item @minus{}@minus{}set_all_file_dates timestring |
|
@kindex @minus{}@minus{}set_all_file_dates set all file timestamps |
|
@cindex File timestamps, set all, @minus{}@minus{}set_all_file_dates |
|
Set mtime, atime, and ctime of all files and directories to the given time. |
|
@* |
|
Valid timestring formats are: 'Nov 8 14:51:13 CET 2007', 110814512007.13, |
|
2007110814511300. See also @minus{}@minus{}modification-date= and man xorriso, |
|
Examples of input timestrings. |
|
@* |
|
If the timestring is "set_to_mtime", then the |
|
atime and ctime of each file and directory get set to the value found in their |
|
mtime. |
|
@* |
|
These actions stay delayed until actual ISO production begins. |
|
Up to then they can be revoked by @minus{}@minus{}set_all_file_dates |
|
with empty timestring or timestring "default". |
|
@* |
|
The timestamps of the El Torito boot catalog file get refreshed when the ISO |
|
is produced. They can be influenced by @minus{}@minus{}modification-date=. |
|
@c man .TP |
|
@item -file_name_limit number |
|
@kindex -file_name_limit curbs length of file names |
|
@cindex File names, curb length, -file_name_limit |
|
Set the maximum permissible length for file names in the range of 64 to 255. |
|
Path components which are longer than the given number will get truncated |
|
and have their last 33 bytes overwritten by a colon ':' and the |
|
hex representation of the MD5 of the first 4095 bytes of the whole |
|
oversized name. Potential incomplete UTF-8 characters will get their |
|
leading bytes replaced by '_'. |
|
@* |
|
Linux kernels up to at least 4.1 misrepresent names of length 254 and 255. |
|
If you expect such names in or under disk_paths and plan to mount the ISO |
|
by such Linux kernels, consider to set -file_name_limit 253. |
|
@c man .TP |
|
@item -D |
|
@kindex -D allow deep directory hierarchies |
|
@cindex Deep directories, allow, -D, -disable-deep-relocation |
|
The standard ECMA-119 demands that no path in the image shall have more |
|
than 8 name components or 255 characters. Therefore it would be necessary |
|
to move deeper directory trees to a higher directory. Rock Ridge offers an |
|
opportunity to let these relocated directories appear at their original |
|
deep position, but this feature might not be implemented properly by |
|
operating systems which mount the image. |
|
@* |
|
Option -D disables this deep directory relocation, and thus violates |
|
ISO 9660 specs. |
|
@* |
|
xorrisofs has -D set by default. If given explicitly then it overrides |
|
the options -rr_reloc_dir and -hide-rr-moved. |
|
@c man .TP |
|
@item -disable-deep-relocation |
|
@kindex -disable-deep-relocation allow deep directory hierarchies |
|
Alias of -D. |
|
@c man .TP |
|
@item -rr_reloc_dir name |
|
@kindex -rr_reloc_dir set deep directory relocation target |
|
@cindex Deep directories, relocation target, -rr_reloc_dir |
|
Enable the relocation of deep directories and thus avoid ECMA-119 file paths |
|
of more than 8 name components or 255 characters. Directories which lead to |
|
such file paths will get moved to a directory in the root directory of the |
|
image. Its name gets set by this option. |
|
It is permissible to use the root directory itself. |
|
@* |
|
The overall directory tree will appear originally deep when interpreted as |
|
Rock Ridge tree. It will appear as re-arranged if only ECMA-119 information |
|
is considered. |
|
@* |
|
If the given relocation target directory does not already exist when image |
|
production begins, then it will get created and marked for Rock Ridge as |
|
relocation artefact. At least on GNU/Linux it will not be displayed in |
|
mounted Rock Ridge images. |
|
@* |
|
The name must not contain a '/' character after its first character and it |
|
must not be longer than 255 bytes. |
|
@* |
|
This option has no effect if option -D is present. |
|
@c man .TP |
|
@item -hide-rr-moved |
|
@kindex -hide-rr-moved set deep directory relocation target |
|
@cindex Deep directories, relocation target, -hide-rr-moved |
|
Alias of -rr_reloc_dir "/.rr_moved" |
|
@c man .TP |
|
@item @minus{}@minus{}for_backup |
|
@kindex @minus{}@minus{}for_backup Enable backup fidelity |
|
@cindex Backup, enable fidelity, @minus{}@minus{}for_backup |
|
Enable all options which improve backup fidelity: |
|
@* |
|
@minus{}@minus{}acl, @minus{}@minus{}xattr-any, @minus{}@minus{}md5, |
|
@minus{}@minus{}hardlinks. |
|
@* |
|
If you later restore a backup with xattr from non-user namespaces, then make |
|
sure that the target operating system and filesystem know what these attributes |
|
mean. Possibly you will need administrator privileges to record or restore |
|
such attributes. At recording time, xorriso will try to tolerate missing |
|
privileges and just record what is readable. |
|
@* |
|
Option -xattr after option -for_backup excludes non-user attributes |
|
from being recorded. |
|
@c man .TP |
|
@item @minus{}@minus{}acl |
|
@kindex @minus{}@minus{}acl Recording of ACLs |
|
@cindex ACL, record and load, @minus{}@minus{}acl |
|
@* |
|
Enable recording and loading of ACLs from GNU/Linux or FreeBSD |
|
(see man getfacl, man acl). |
|
They will not be in effect with mounted ISO images. But xorriso can |
|
restore them on the same systems when extracting files from the ISO image. |
|
@c man .TP |
|
@item @minus{}@minus{}xattr |
|
@kindex @minus{}@minus{}xattr Recording of user xattr |
|
@cindex xattr, record and load, @minus{}@minus{}xattr |
|
@* |
|
Enable recording and loading of GNU/Linux or FreeBSD extended attributes in |
|
user namespace (see man getfattr and man attr, |
|
man getextattr and man 9 extattr, respectively). |
|
They will not be in effect with mounted ISO images. But xorriso can |
|
restore them on the same systems when extracting files from the ISO image. |
|
@c man .TP |
|
@item @minus{}@minus{}xattr-any |
|
@kindex @minus{}@minus{}xattr Recording of any xattr |
|
@cindex xattr, record and load, @minus{}@minus{}xattr-any |
|
@* |
|
Enable recording and loading of GNU/Linux or FreeBSD extended attributes in |
|
all namespaces. This might need administrator privileges, even if the owner |
|
of the disk file tries to read the attributes. |
|
@c man .TP |
|
@item @minus{}@minus{}md5 |
|
@kindex @minus{}@minus{}md5 Recording of MD5 checksums |
|
@cindex MD5, record and load, @minus{}@minus{}md5 |
|
@* |
|
Enable recording of MD5 checksums for the overall ISO image and for each |
|
single data file in the image. xorriso can check the content of an ISO |
|
image with these sums and raise alert on mismatch. |
|
See man xorriso, options -check_media, check_md5_r. |
|
xorriso can print recorded MD5 checksums. E.g. by: |
|
@* |
|
-find / -exec get_md5 |
|
@c man .TP |
|
@item @minus{}@minus{}hardlinks |
|
@kindex @minus{}@minus{}hardlinks Recording of hardlink relations |
|
@cindex Links, record and load hard links, @minus{}@minus{}hardlinks |
|
Enable loading and recording of hardlink relations. |
|
Search for families of iso_rr files which stem from the same disk file, |
|
have identical content filtering and have identical properties. |
|
The members of each family get the same inode number in the ISO image. |
|
@* |
|
Whether these numbers are respected at mount time depends on the operating |
|
system. xorriso can create hardlink families when extracting files from |
|
the ISO image. |
|
@c man .TP |
|
@item @minus{}@minus{}scdbackup_tag disk_path record_name |
|
@kindex @minus{}@minus{}scdbackup_tag Recording of MD5 checksum |
|
@cindex scdbackup, record checksum tag, @minus{}@minus{}scdbackup_tag |
|
Append a scdbackup checksum record to the image. This works only if the |
|
parameter next_writeable_address of option -C is 0 and --md5 is enabled. |
|
If disk_path is not an empty string, then append a scdbackup checksum record |
|
to the end of this file. record_name is a word that gets part of tag |
|
and record. |
|
@* |
|
Program scdbackup_verify will recognize and verify tag and file record. |
|
@* |
|
An empty record_name disables this feature. |
|
@c man .TP |
|
@item -J |
|
@kindex -J enable production of Joliet directory tree |
|
@cindex Joliet, enable, -J, -joliet |
|
@* |
|
Enable the production of an additional Joliet directory tree along |
|
with the ISO 9660 Rock Ridge tree. |
|
@c man .TP |
|
@item -joliet |
|
@kindex -joliet enable production of Joliet directory tree |
|
Alias of -J. |
|
@c man .TP |
|
@item -joliet-long |
|
@kindex -joliet-long allow longer Joliet names |
|
@cindex Joliet, allows longer names, -joliet-long |
|
Allow 103 characters in Joliet file names rather than 64 as is prescribed |
|
by the specification. Allow Joliet paths longer than the prescribed limit of |
|
240 characters. |
|
@* |
|
Oversized names get truncated. Without this option, oversized paths get |
|
excluded from the Joliet tree. |
|
@c man .TP |
|
@item -joliet-utf16 |
|
@kindex -joliet-utf16 use UTF-16 with Joliet names |
|
@cindex UTF-16, for Joliet paths, -joliet-utf16 |
|
Encode Joliet file names in UTF-16BE rather than UCS-2. |
|
The difference is with characters which are not present |
|
in UCS-2 and get encoded in UTF-16 by 2 words of 16 bit each. |
|
Both words then stem from a reserved subset of UCS-2. |
|
@c man .TP |
|
@item -hfsplus |
|
@kindex -hfsplus enable production of HFS+ partition |
|
@cindex HFS+, enables production |
|
Enable the production of an additional HFS+ filesystem inside the ISO 9660 |
|
image and mark it by Apple Partition Map (APM) entries in the System Area, |
|
the first 32 KiB of the image. |
|
@* |
|
This may collide with options like -G or -isohybrid-mbr which submit user data |
|
for inclusion in the same address range. |
|
The first 8 bytes of the System Area get overwritten by |
|
@{ 0x45, 0x52, 0x08 0x00, 0xeb, 0x02, 0xff, 0xff @} |
|
which can be executed as x86 machine code without negative effects. |
|
So if an MBR gets combined with this feature, then its first 8 bytes |
|
should contain no essential commands. |
|
@* |
|
The next blocks of 2 KiB in the System Area will be occupied by APM entries. |
|
The first one covers the part of the ISO image before the HFS+ filesystem |
|
metadata. The second one marks the range from HFS+ metadata to the end |
|
of file content data. If more ISO image data follow, then a third partition |
|
entry gets produced. Other features of xorriso might cause the need for |
|
more APM entries. |
|
@* |
|
Be aware that HFS+ is case-insensitive although it can record file names |
|
with upper-case and lower-case letters. Therefore, file names from the iso_rr |
|
name tree may collide in the HFS+ name tree. In this case they get changed |
|
by adding underscore characters and counting numbers. In case of very long |
|
names, it might be necessary to map them to "MANGLED_...". |
|
@* |
|
WARNING: |
|
@* |
|
The HFS+ implementation in libisofs has a limit of 125,829,120 bytes for the |
|
size of the overall directory tree. This suffices for about 300,000 files |
|
of normal name length. If the limit gets exceeded, a FAILURE event will be |
|
issued and the ISO production will not happen. |
|
@c man .TP |
|
@item -hfsplus-serial-no |
|
@kindex -hfsplus-serial-no set HFS+ serial number |
|
@cindex HFS+, set serial number |
|
Set 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. |
|
@c man .TP |
|
@item -hfsplus-block-size number |
|
@kindex -hfsplus-block-size set HFS+ allocation block size |
|
@cindex HFS+, set allocation block size |
|
Set the allocation block size to |
|
be used when producing HFS+ filesystems. Permissible are 512, 2048, or 0. |
|
The latter lets the program decide. |
|
@c man .TP |
|
@item -apm-block-size number |
|
@kindex -hfsplus-block-size set APM block size |
|
@cindex HFS+, set APM block size |
|
Set the block size to be used when |
|
describing partitions by an Apple Partition Map. Permissible are 512, 2048, |
|
or 0. The latter lets the program decide. |
|
@* |
|
Note that size 512 is not compatible with production of GPT, and that |
|
size 2048 will not be mountable -t hfsplus at least by older Linux kernels. |
|
@c man .TP |
|
@item -hfsplus-file-creator-type creator type iso_rr_path |
|
@kindex -hfsplus-file-creator-type HFS+ creator-type attribute |
|
@cindex HFS+, set creator and type of file, -hfsplus-file-creator-type |
|
Set the HFS+ creator and type attributes of a file in the emerging image. |
|
These are two codes of 4 characters each. |
|
@c man .TP |
|
@item -hfs-bless-by blessing iso_rr_path |
|
@kindex -hfs-bless-by HFS+ blessing |
|
@cindex HFS+, issue blessing, -hfs-bless-by |
|
Issue a HFS+ blessing. They are roles which can be attributed to |
|
up to four directories and a data file: |
|
@* |
|
"ppc_bootdir", "intel_bootfile", "show_folder", "os9_folder", "osx_folder". |
|
@* |
|
They may be abbreviated as "p", "i", "s", "9", and "x". |
|
@* |
|
Each such role can be attributed to at most one file object. "intel_bootfile" |
|
is the one that would apply to a data file. All others apply to directories. |
|
No file object can bear more than one blessing. |
|
@c man .TP |
|
@item -hfs-bless disk_path |
|
@kindex -hfs-bless HFS+ blessing ppc_bootdir |
|
@cindex HFS+, issue blessing ppc_bootdir, -hfs-bless |
|
Issue HFS+ blessing "ppc_bootdir" to the directory which stems from the |
|
directory disk_path in the local filesystem tree. |
|
@* |
|
This works only if there is at least one data file underneath the directory. |
|
disk_path can become ambiguous if files from different local filesystem |
|
sub-trees are put into the same sub-tree of the ISO image. |
|
Consider to use -hfs-bless-by "p" for unambiguous addressing via iso_rr_path. |
|
@end table |
|
@c man .TP |
|
@c man .B Settings for file hiding: |
|
@node SetHide, ImageId, SetExtras, Options |
|
@section Settings for file hiding |
|
@table @asis |
|
@sp 1 |
|
@c man .TP |
|
@item -hide disk_path_pattern |
|
@kindex -hide keep matching files invisible in ISO tree |
|
@cindex Hiding, from ISO and Rock Ridge, -hide |
|
Make files invisible in the directory tree of ISO 9660 and Rock Ridge, |
|
if their disk_path matches the given shell parser pattern. |
|
The data content of such hidden files will be included in the |
|
resulting image, even if they do not show up in any directory. |
|
But you will need own means to find nameless data in the image. |
|
@* |
|
This command does not apply to the boot catalog. |
|
@c man .TP |
|
@item -hide-list disk_path |
|
@kindex -hide-list keep matching files invisible in ISO tree |
|
@cindex Hiding, from ISO and Rock Ridge, -hide-list |
|
Perform -hide using each line out of file disk_path as argument |
|
disk_path_pattern. |
|
@c man .TP |
|
@item -hide-joliet disk_path_pattern |
|
@kindex -hide-joliet keep matching files invisible in Joliet tree |
|
@cindex Hiding, from Joliet, -hide-joliet |
|
Like option -hide but making files invisible in the directory tree of Joliet, |
|
if their disk_path matches the given shell parser pattern. |
|
@c man .TP |
|
@item -hide-joliet-list disk_path |
|
@kindex -hide-joliet-list keep matching files invisible in Joliet tree |
|
@cindex Hiding, from Joliet, -hide-joliet-list |
|
Perform -hide-joliet using each line out of file disk_path as argument |
|
disk_path_pattern. |
|
@c man .TP |
|
@item -hide-hfsplus disk_path_pattern |
|
@kindex -hide-hfsplus keep matching files invisible in HFS+ tree |
|
@cindex Hiding, from HFS+, -hide-hfsplus |
|
Like option -hide but making files invisible in the directory tree of HFS+, |
|
if their disk_path matches the given shell parser pattern. |
|
@c man .TP |
|
@item -hide-hfsplus-list disk_path |
|
@kindex -hide-hfsplus-list keep matching files invisible in HFS+ tree |
|
@cindex Hiding, from HFS+, -hide-hfsplus-list |
|
Perform -hide-hfsplus using each line out of file disk_path as argument |
|
disk_path_pattern. |
|
@end table |
|
@c man .TP |
|
@c man .B ISO image ID strings: |
|
@node ImageId, Bootable, SetHide, Options |
|
@section ISO image ID strings |
|
@c man .PP |
|
The following strings and file addresses get stored in the Primary Volume |
|
Descriptor of the ISO9660 image. The file addresses are ISO 9660 |
|
paths. These files should have iso_rr_paths which consist only of |
|
the characters [A-Z0-9_] and exactly one dot which separates |
|
at most 8 characters from at most 3 characters. |
|
@table @asis |
|
@sp 1 |
|
@c man .TP |
|
@item -V text |
|
@kindex -V set Volume Id |
|
@cindex Volume Id, set, -V, -volid |
|
Set the Volume Id of the ISO image. |
|
xorriso accepts any text up to 32 characters, |
|
but according to rarely obeyed specs stricter rules apply: |
|
@* |
|
Conformant are ASCII characters out of [A-Z0-9_]. Like: "IMAGE_23" |
|
@* |
|
Joliet allows 16 UCS-2 characters. Like: "Windows name" |
|
@* |
|
Be aware that the volume id might get used automatically as name of the |
|
mount point when the medium is inserted into a playful computer system. |
|
@c man .TP |
|
@item -volid text |
|
@kindex -volid set Volume Id |
|
Alias of -V. |
|
@c man .TP |
|
@item -volset text |
|
@kindex -volset set Volume Set Id |
|
@cindex Volume Set Id, set, -volset |
|
Set the Volume Set Id of the ISO image. |
|
Permissible are up to 128 characters. |
|
@c man .TP |
|
@item -P text |
|
@kindex -P set Publisher Id |
|
@cindex Publisher Id, set, -P, -publisher |
|
Set the Publisher Id of the ISO image. This may identify the person or |
|
organisation who specified what shall be recorded. |
|
Permissible are up to 128 characters. |
|
@c man .TP |
|
@item -publisher text |
|
@kindex -publisher set Publisher Id |
|
Alias of -P. |
|
@c man .TP |
|
@item -A text |
|
@kindex -A set Application Id |
|
@cindex Application Id, set, -A, -appid |
|
Set the Application Id of the ISO image. |
|
This may identify the specification of how the data are recorded. |
|
Permissible are up to 128 characters. |
|
@* |
|
The special text "@@xorriso@@" gets converted to the id string of xorriso |
|
which is normally written as Preparer Id. It is a wrong tradition to write |
|
the program id as Application Id. |
|
@c man .TP |
|
@item -appid text |
|
@kindex -appid set Application Id |
|
Alias of -A. |
|
@c man .TP |
|
@item -sysid text |
|
@kindex -sysid set System Id |
|
@cindex System Id, set, -sysid |
|
Set the System Id of the ISO image. This may |
|
identify the system which can recognize and act upon the content of the |
|
System Area in image blocks 0 to 15. |
|
Permissible are up to 32 characters. |
|
@c man .TP |
|
@item -p text |
|
@kindex -p set Preparer Id |
|
@cindex Preparer Id, set, -p |
|
Set the Preparer Id of the ISO image. This may |
|
identify the person or other entity which controls the preparation of the data |
|
which shall be recorded. Normally this should be the id of xorriso and not |
|
of the person or program which operates xorriso. Please avoid to change it. |
|
Permissible are up to 128 characters. |
|
@* |
|
The special text "@@xorriso@@" gets converted to the id string of xorriso |
|
which is default at program startup. |
|
@c man .TP |
|
@item -preparer text |
|
@kindex -preparer set Preparer Id |
|
Alias of -p. |
|
@c man .TP |
|
@item -abstract iso_path |
|
@kindex -abstract set Abstract File path |
|
@cindex Abstract File, set path, -abstract |
|
Set the address of the Abstract File of the ISO image. This should |
|
be the ISO 9660 path of a file in the image which contains an abstract |
|
statement about the image content. |
|
Permissible are up to 37 characters. |
|
@c man .TP |
|
@item -biblio iso_path |
|
@kindex -biblio set Biblio File path |
|
@cindex Biblio File, set path, -biblio |
|
Set the address of the Biblio File of the ISO image. This should |
|
be the ISO 9660 path of a file in the image which contains bibliographic |
|
records. |
|
Permissible are up to 37 characters. |
|
@c man .TP |
|
@item -copyright iso_path |
|
@kindex -copyright set Copyright File path |
|
@cindex Copyright File, set path, -copyright |
|
Set the address of the Copyright File of the ISO image. This should |
|
be the ISO 9660 path of a file in the image which contains a copyright |
|
statement. |
|
Permissible are up to 37 characters. |
|
@c man .TP |
|
@item @minus{}@minus{}modification-date=YYYYMMDDhhmmsscc |
|
@kindex @minus{}@minus{}modification-date set ISO image timestamps |
|
@cindex ISO image, set timestamps, @minus{}@minus{}modification-date= |
|
Set a timestring that overrides ISO image creation and modification timestamps |
|
literally. |
|
It must consist of 16 decimal digits which form YYYYMMDDhhmmsscc, with |
|
YYYY between 1970 and 2999. Time zone is GMT. |
|
It is supposed to match this GRUB line: |
|
@* |
|
search @minus{}@minus{}fs-uuid @minus{}@minus{}set YYYY-MM-DD-hh-mm-ss-cc |
|
@* |
|
E.g. 2010040711405800 is 7 Apr 2010 11:40:58 (+0 centiseconds). |
|
@* |
|
Among the influenced timestamps are: |
|
isohybrid MBR id, El Torito boot catalog file, HFS+ superblock. |
|
@c man .TP |
|
@item @minus{}@minus{}application_use character|0xXY|disk_path |
|
@kindex @minus{}@minus{}application_use set Application Use field |
|
@cindex ISO image, set Application Use field, @minus{}@minus{}application_use |
|
Specify the content of the Application Use field which can take at most |
|
512 bytes. |
|
@* |
|
If the parameter of this command is empty, then the field is filled |
|
with 512 0-bytes. If it is a single character, then it gets repeated 512 times. |
|
If it begins by "0x" followed by two hex digits [0-9a-fA-F], then the digits |
|
are read as byte value which gets repeated 512 times. |
|
@* |
|
Any other parameter text is used as disk_path to open a data file and to |
|
read up to 512 bytes from it. If the file is smaller than 512 bytes, then the |
|
remaining bytes in the field get set to binary 0. |
|
@end table |
|
@c man .TP |
|
@c man .B El Torito Bootable ISO images: |
|
@node Bootable, SystemArea, ImageId, Options |
|
@section El Torito Bootable ISO images |
|
@c man .PP |
|
The precondition for a bootable ISO image is to have in the ISO image |
|
the files of a boot loader. The boot facilities of computers get |
|
directed to such files, which usually execute further program files |
|
from the ISO image. |
|
@command{xorrisofs} can produce several kinds of boot block or boot record, |
|
which become part of the ISO image, and get interpreted by the according |
|
boot facility. |
|
@* |
|
@c man .PP |
|
@sp 1 |
|
@cindex El Torito, _definition |
|
An @strong{El Torito} |
|
boot record points the bootstrapping facility to a boot catalog |
|
with one or more boot images, which are binary program files stored in |
|
the ISO image. |
|
The content of the boot image files is not in the scope of El Torito. |
|
@* |
|
xorriso composes the boot catalog according to the boot image |
|
files given and structured by options -b, -e, -eltorito-alt-boot, |
|
and @minus{}@minus{}efi-boot. Often it contains only one entry. |
|
@* |
|
Normally the boot images are data files inside the ISO filesystem. By |
|
special path "--interval:appended_partition_NNN:all::" it is possible to |
|
refer to an appended partition. The number NNN gives the partition number |
|
as used with the corresponding option -append_partition. |
|
E.g.: |
|
@* |
|
-append_partition 2 0xef /tmp/efi.img |
|
@* |
|
-e --interval:appended_partition_2:all:: |
|
@* |
|
El Torito gets interpreted by boot facilities PC-BIOS and EFI. |
|
Most bootable GNU/Linux CDs are equipped with ISOLINUX or GRUB boot images |
|
for PC-BIOS. |
|
@* |
|
@command{xorrisofs} 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. |
|
@* |
|
@c man .PP |
|
@sp 1 |
|
For CD booting via boot facilities other than PC-BIOS and EFI, and |
|
for booting from USB sticks or hard disks, see the next section |
|
about the System Area. |
|
@* |
|
@table @asis |
|
@sp 1 |
|
@c man .TP |
|
@item -b iso_rr_path |
|
@kindex -b El Torito PC-BIOS boot image |
|
@cindex Bootability, control, -b, -eltorito-boot |
|
Specify the boot image file which shall be mentioned in the current |
|
entry of the El Torito boot catalog. It will be marked as suitable for |
|
PC-BIOS. |
|
@* |
|
With boot images from ISOLINUX and GRUB this option should be accompanied by |
|
options -c , -no-emul-boot , -boot-load-size 4 , -boot-info-table. |
|
@c man .TP |
|
@item -eltorito-boot iso_rr_path |
|
@kindex -eltorito-boot El Torito PC-BIOS boot image |
|
Alias of -b. |
|
@c man .TP |
|
@item -eltorito-alt-boot |
|
@kindex -eltorito-alt-boot begin next boot catalog entry |
|
@cindex Bootability, next entry, -eltorito-alt-boot |
|
Finalize the current El Torito boot catalog entry and begin a new one. |
|
A boot image file and all its necessary options shall be specified before |
|
option -eltorito-alt-boot. |
|
All further El Torito boot options apply to the new catalog |
|
entry. Up to 32 catalog entries are possible. |
|
@c man .TP |
|
@item -e iso_rr_path |
|
@kindex -e El Torito EFI boot image |
|
@cindex Bootability, control, -e |
|
Specify the boot image file which shall be mentioned in the current |
|
entry of the El Torito boot catalog. It will be marked as suitable for EFI. |
|
@* |
|
Option -e should be followed by option -no-emul-boot and no other El Torito |
|
options before an eventual -eltorito-alt-boot. |
|
@c man .TP |
|
@item @minus{}@minus{}efi-boot iso_rr_path |
|
@kindex @minus{}@minus{}efi-boot El Torito EFI boot image |
|
@cindex Bootability, control, @minus{}@minus{}efi-boot |
|
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 |
|
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. |
|
@* |
|
If the new platform id differs from the previous one, -eltorito-alt-boot |
|
gets performed. |
|
@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 |
|
Set the number of 512-byte blocks to be loaded at boot time |
|
from the boot image in the current catalog entry. |
|
@* |
|
Non-emulating BIOS bootimages usually need a load size of 4. |
|
Nevertheless the default setting of mkisofs is to use the full size of the |
|
boot image rounded up to a multiple of 4 512-byte blocks. This default |
|
may be explicitly enforced by the word "full" instead of a number. |
|
@* |
|
EFI boot images usually get set the number of blocks occupied |
|
by the boot image file. |
|
@* |
|
El Torito cannot represent load sizes higher than 65535. |
|
@c man .TP |
|
@item -hard-disk-boot |
|
@kindex -hard-disk-boot El Torito boot image emulation |
|
@cindex Bootability, boot image emulation, -hard-disk-boot |
|
Mark the boot image in the current catalog entry as emulated hard disk. |
|
(Not suitable for any known boot loader.) |
|
@c man .TP |
|
@item -no-emul-boot |
|
@kindex -no-emul-boot El Torito boot image emulation |
|
@cindex Bootability, no boot image emulation, -no-emul-boot |
|
Mark the boot image in the current catalog entry as not emulating |
|
floppy or hard disk. (This is to be used with all known boot loaders.) |
|
@* |
|
If neither -hard-disk-boot nor -no-emul-boot is given, then the |
|
boot image will be marked as emulating a floppy. |
|
(Not suitable for any known boot loader.) |
|
@c man .TP |
|
@item -eltorito-id text|56_hexdigits |
|
@kindex -eltorito-id El Torito boot section id string |
|
@cindex Bootability, El Torito section id string, -eltorito-id |
|
Define 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 bytes, else the first |
|
28 characters become the ID string. |
|
The ID string of the first boot image becomes the overall catalog ID. |
|
It is limited to 24 characters. Other id_strings become section IDs. |
|
@c man .TP |
|
@item -eltorito-selcrit hexdigits |
|
@kindex -eltorito-selcrit El Torito boot selection criteria |
|
@cindex Bootability, El Torito selection criteria, -eltorito-selcrit |
|
Define the Selection Criteria of the boot image. |
|
Up to 20 bytes get read from the given characters [0-9A-Fa-f]. |
|
They get attributed to the boot image entry in the catalog. |
|
@c man .TP |
|
@item -boot-info-table |
|
@kindex -boot-info-table Patch El Torito boot image |
|
@cindex Bootability, boot image patching, -boot-info-table |
|
Overwrite bytes 8 to 63 in the current boot image. The information will be |
|
supplied by xorriso in the course of image production: Block address of |
|
the Primary Volume Descriptor, block address of the boot image file, |
|
size of the boot image file. |
|
@c man .TP |
|
@item @minus{}@minus{}grub2-boot-info |
|
@kindex @minus{}@minus{}grub2-boot-info Patch El Torito boot image |
|
@cindex Bootability, boot image patching, @minus{}@minus{}grub2-boot-info |
|
Overwrite bytes 2548 to 2555 in the current boot image by the address |
|
of that boot image. |
|
The address is 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. |
|
@c man .TP |
|
@item -c iso_rr_path |
|
@kindex -c El Torito boot catalog name |
|
@cindex Bootability, boot catalog name, -c, -eltorito-catalog |
|
Set the address of the El Torito boot catalog file within the image. |
|
This file address is not significant for the booting PC-BIOS or EFI, |
|
but it may later be read by other programs in order to learn about |
|
the available boot images. |
|
@c man .TP |
|
@item -eltorito-catalog iso_rr_path |
|
@kindex -eltorito-catalog El Torito boot catalog name |
|
Alias of -c. |
|
@c man .TP |
|
@item @minus{}@minus{}boot-catalog-hide |
|
@kindex @minus{}@minus{}boot-catalog-hide Hide El Torito boot catalog |
|
@cindex Bootability, boot catalog hidden, @minus{}@minus{}boot-catalog-hide |
|
Prevent the El Torito boot catalog from appearing as file |
|
in the directory trees of the image. |
|
@end table |
|
@c man .TP |
|
@c man .B System Area, MBR, GPT, APM, other boot blocks: |
|
@node SystemArea, Charset, Bootable, Options |
|
@section System Area, MBR, GPT, APM, other boot blocks |
|
@c man .PP |
|
@cindex System Area, _definition |
|
The first 16 blocks of an ISO image are the System Area. |
|
It is reserved for system dependent boot software. This may be the |
|
boot facilities and partition tables of various hardware architectures. |
|
@* |
|
@cindex MBR, _definition |
|
A @strong{MBR} (Master Boot Record) contains boot code and a partition table. |
|
It is read by PC-BIOS when booting from USB stick or hard disk, |
|
and by PowerPC CHRP or PReP when booting. |
|
An MBR partition with type 0xee indicates the presence of GPT. |
|
@* |
|
@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. |
|
@* |
|
@command{xorrisofs} supports further boot facilities: |
|
MIPS Big Endian (SGI), MIPS Little Endian (DEC), SUN SPARC, HP-PA, DEC Alpha. |
|
Those are mutually not combinable and also not combinable with MBR, GPT, |
|
or APM. |
|
@c man .PP |
|
@sp 1 |
|
@cindex Interval reader for system area and partitions |
|
Several of the following options 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: |
|
-G, -generic-boot, @minus{}@minus{}embedded-boot, @minus{}@minus{}grub2-mbr, |
|
-isohybrid-mbr, -efi-boot-part, -prep-boot-part, -B, -sparc-boot, |
|
-append_partition. |
|
@* |
|
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 a 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. |
|
@* |
|
"appended_partition_NNN" with a decimal number NNN works only for options |
|
which announce El Torito boot image paths: -b, -e, --efi-boot. The number gives |
|
the partition number as used with the corresponding option -append_partition. |
|
@* |
|
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 |
|
@c man .TP |
|
@item -G disk_path |
|
@kindex -G Fill System Area e.g. by MBR |
|
@cindex Bootability, fill System Area e.g. by MBR, -G, @minus{}@minus{}embedded-boot, -generic-boot |
|
Copy at most 32768 bytes from the given disk file to the very start of |
|
the ISO image. |
|
@* |
|
Other than a El Torito boot image, the file disk_path needs not to be added |
|
to the ISO image. It will not show up as file in the directory trees. |
|
@* |
|
In multi-session situations, the special disk_path "." prevents reading of |
|
a disk file but nevertheless causes the adjustments in the |
|
existing MBR, which were ordered by other options. |
|
@c man .TP |
|
@item -generic-boot disk_path |
|
@kindex -generic-boot Fill System Area e.g. by MBR |
|
Alias of -G. |
|
@c man .TP |
|
@item @minus{}@minus{}embedded-boot disk_path |
|
@kindex @minus{}@minus{}embedded-boot Fill System Area e.g. by MBR |
|
Alias of -G. |
|
@c man .TP |
|
@item @minus{}@minus{}grub2-mbr disk_path |
|
@kindex @minus{}@minus{}grub2-mbr Install modern GRUB2 MBR |
|
@cindex Bootability, install modern GRUB2 MBR, @minus{}@minus{}grub2-mbr |
|
Install disk_path in the System Area and treat it as modern GRUB2 MBR. |
|
The content start address of the first boot |
|
image is converted to a count of 512 byte blocks, and an offset of 4 is added. |
|
The result is written as 64 bit little-endian number to byte address 0x1b0. |
|
@c man .TP |
|
@item -isohybrid-mbr disk_path |
|
@kindex -isohybrid-mbr Install ISOLINUX isohybrid MBR |
|
@cindex Bootability, install ISOLINUX isohybrid MBR, -isohybrid-mbr |
|
Install disk_path as ISOLINUX isohybrid MBR which makes the boot image |
|
given by option -b bootable from USB sticks and hard disks via PC-BIOS. |
|
This preparation is normally done by ISOLINUX program isohybrid |
|
on the already produced ISO image. |
|
@* |
|
The disk path should lead to one of the Syslinux files isohdp[fp]x*.bin . |
|
The MBR gets patched according to isohybrid needs. The first partition |
|
describes the range of the ISO image. Its start is at block 0 by default, |
|
but may be set to 64 disk blocks by option -partition_offset 16. |
|
@* |
|
For the meaning of special disk_path "." see option -G. |
|
@c man .TP |
|
@item -isohybrid-gpt-basdat |
|
@kindex -isohybrid-gpt-basdat Mark boot image in GPT |
|
@cindex Bootability, mark boot image in GPT, -isohybrid-gpt-basdat |
|
Mark the current El Torito boot image (see options -b and -e) in an actually |
|
invalid GPT as partition of type Basic Data. This works only with |
|
-isohybrid-mbr and has the same impact on the system area as -efi-boot-part. |
|
It cannot be combined with -efi-boot-part or -hfsplus. |
|
@* |
|
The first three boot images which are marked by GPT will also show up |
|
as partition entries in MBR. The MBR partition of type 0xEF is what actually |
|
is used by EFI firmware for booting from USB stick. |
|
The MBR partition for PC-BIOS gets type 0x00 rather than 0x17 in this case. |
|
Often the further MBR entries are the ones which actually get used by EFI. |
|
@c man .TP |
|
@item -isohybrid-gpt-hfsplus |
|
@kindex -isohybrid-gpt-hfsplus Mark boot image in GPT |
|
@cindex Bootability, mark boot image in GPT, -isohybrid-gpt-hfsplus |
|
Mark the current El Torito boot image (see options -b and -e) in GPT as |
|
partition of type HFS+. |
|
Impact and restrictions are like with -isohybrid-gpt-basdat. |
|
@c man .TP |
|
@item -isohybrid-apm-hfsplus |
|
@kindex -isohybrid-apm-hfsplus Mark boot image in APM |
|
@cindex Bootability, mark boot image in APM, -isohybrid-apm-hfsplus |
|
Mark the current El Torito boot image (see options -b and -e) in Apple |
|
Partition Map as partition of type HFS+. This works only with -isohybrid-mbr |
|
and has a similar impact on the system area as -hfsplus. It cannot be |
|
combined with -efi-boot-part or -hfsplus. |
|
@* |
|
The ISOLINUX isohybrid MBR file must begin by a known pattern of |
|
32 bytes of x86 machine code which essentially does nothing. It will get |
|
overwritten by 32 bytes of APM header mock-up. |
|
@c man .TP |
|
@item -part_like_isohybrid |
|
@kindex -part_like_isohybrid Mark partitions like with isohybrid |
|
@cindex Bootability, partitions like with isohybrid, -part_like_isohybrid |
|
Control whether -isohybrid-gpt-basdat, -isohybrid-gpt-hfsplus, and |
|
-isohybrid-apm-hfsplus apply even if not -isohybrid-mbr is present. |
|
No MBR partition of type 0xee emerges, even if GPT gets produced. |
|
Gaps between GPT and APM partitions will not be filled by more partitions. |
|
Appended partitions get mentioned in APM if other APM partitions emerge. |
|
@c man .TP |
|
@item -iso_mbr_part_type "default"|number|type_guid |
|
@kindex -iso_mbr_part_type Set type of ISO MBR partition |
|
@cindex Bootability, type of ISO MBR partition, -iso_mbr_part_type |
|
Set the partition type |
|
of the MBR or GPT partition which represents the ISO or at least protects it. |
|
@* |
|
Number may be 0x00 to 0xff. The text "default" re-enables the default types |
|
of the various occasions to create an ISO MBR partition. |
|
This is without effect if no such partition emerges by other settings or |
|
if the partition type is prescribed mandatorily like 0xee for GPT protective |
|
MBR or 0x96 for CHRP. |
|
@* |
|
If instead a type_guid is given by a 32-digit hex string like |
|
a2a0d0ebe5b9334487c068b6b72699c7 or by a structured text like |
|
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7, then it will be used as partition type |
|
if the ISO filesystem appears as partition in GPT. |
|
In MBR, C12A7328-F81F-11D2-BA4B-00A0C93EC93B will be mapped to 0xef. |
|
Any other GUID will be mapped to 0x83. |
|
@c man .TP |
|
@item @minus{}@minus{}protective-msdos-label |
|
@kindex @minus{}@minus{}protective-msdos-label Patch System Area partition table |
|
@cindex Bootability, patch System Area partition table, @minus{}@minus{}protective-msdos-label |
|
Patch the System Area by a simple PC-DOS partition table where partition 1 |
|
claims the range of the ISO image but leaves the first block unclaimed. |
|
This is mutally exclusive to option -isohybrid-mbr. |
|
@c man .TP |
|
@item @minus{}@minus{}mbr-force-bootable |
|
@kindex @minus{}@minus{}mbr-force-bootable Enforce MBR bootable/active flag |
|
@cindex Bootability, bootable MBR partition, @minus{}@minus{}mbr-force-bootable |
|
Enforce an MBR partition with "bootable/active" flag if options like |
|
@minus{}@minus{}protective-msdos-label or @minus{}@minus{}grub2-mbr are given. |
|
These options normally cause the flag to be set if there is an |
|
MBR partition of type other than 0xee or 0xef. |
|
If no such partition exists, then no bootflag is set, unless |
|
@minus{}@minus{}mbr-force-bootable forces creation of a dummy partition |
|
of type 0x00 which covers only the first block of the ISO image. |
|
@* |
|
If no bootable MBR is indicated by other options and a partition gets created |
|
by -append_partition, then @minus{}@minus{}mbr-force-bootable causes a |
|
bootflag like it would do with e.g. @minus{}@minus{}protective-msdos-label. |
|
@c man .TP |
|
@item -partition_offset 2kb_block_adr |
|
@kindex -partition_offset Make mountable by partition 1 |
|
@cindex Mountability, by non-trivial partition 1, -partition_offset |
|
Cause 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 |
|
be at least 16. Values larger than 16 are hardly of use. |
|
A non-zero partition offset causes two superblocks to be |
|
generated and two sets of directory trees. The image is then mountable from its |
|
absolute start as well as from the partition start. |
|
@* |
|
The offset value of an ISO image gets preserved when a new session is added |
|
to a loaded image. |
|
So the value defined here is only in effect if a new ISO image gets written. |
|
@c man .TP |
|
@item -partition_hd_cyl number |
|
@kindex -partition_hd_cyl MBR heads per cylinder |
|
@cindex MBR, sectors per head, -partition_sec_hd |
|
Set the number of heads per cylinder for the MBR partition table. |
|
0 chooses a default value. Maximum is 255. |
|
@c man .TP |
|
@item -partition_sec_hd number |
|
@kindex -partition_sec_hd MBR sectors per head |
|
@cindex MBR, sectors per head, -partition_sec_hd |
|
Set the number of sectors per head for the MBR 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 make exact alignment possible. |
|
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 for MBR. |
|
They seem not overly important anyway. |
|
Flat block addresses in partition tables are good for 1 TiB. |
|
@c man .TP |
|
@item -partition_cyl_align mode |
|
@kindex -partition_cyl_align Image size alignment |
|
@cindex Image size, alignment, -partition_cyl_align |
|
Control 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 in MBR partition |
|
table. |
|
@* |
|
Mode "auto" is default. Alignment by padding happens only if |
|
option -isohybrid-mbr is given. |
|
@* |
|
Mode "on" causes alignment by padding with option |
|
@minus{}@minus{}protective-msdos-label too. |
|
Mode "all" is like "on" but also pads up partitions from -append_partition |
|
to an aligned size. |
|
@* |
|
Mode "off" disables alignment unconditionally. |
|
@c man .TP |
|
@item -append_partition partition_number type_code disk_path |
|
@kindex -append_partition Append MBR or GPT partition after image |
|
@cindex MBR, GPT, append partition, -append_partition |
|
Cause a prepared filesystem image to be appended to the ISO image and to be |
|
described by a partition table entry in a boot block at the start of the |
|
emerging ISO image. The partition entry will bear the size of the submitted |
|
file rounded up to the next multiple of 2048 bytes or to the next multiple |
|
of the cylinder size. |
|
@* |
|
Beware of subsequent multi-session runs. The appended partition will get |
|
overwritten. |
|
@* |
|
partition_number may be 1 to 4. Number 1 will put the whole ISO image into |
|
the unclaimed space before partition 1. So together with most xorriso MBR |
|
or GPT features, number 2 would be the most natural choice. |
|
@* |
|
The type_code may be "FAT12", "FAT16", "Linux", |
|
or a hexadecimal number between 0x00 and 0xff. Not all those numbers will |
|
yield usable results. For a list of codes search the Internet for |
|
"Partition Types" or run fdisk command "L". |
|
If the partition appears in GPT then type_code 0xef is mapped to the EFI System |
|
Partition Type GUID. All others get mapped to Basic Data Type GUID. |
|
@* |
|
type_code may also be a type GUID as plain hex string like |
|
a2a0d0ebe5b9334487c068b6b72699c7 or as structured text like |
|
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7. It will be used if the partition is |
|
mentioned in GPT. In MBR, C12A7328-F81F-11D2-BA4B-00A0C93EC93B will be mapped |
|
to 0xef. Any other GUID will be mapped to 0x83. |
|
In APM, 48465300-0000-11AA-AA11-00306543ECAC will be mapped to partition |
|
type "Apple_HFS", any other to "Data". |
|
@* |
|
If some other command causes the production of GPT, then the appended |
|
partitions will be mentioned there too, even if not -appended_part_as_gpt |
|
is given. |
|
@c man .TP |
|
@item -appended_part_as_gpt |
|
@kindex -appended_part_as_gpt Appended partitions in GPT |
|
@cindex GPT, mark appended partitions, -appended_part_as_gpt |
|
Marks partitions from -append_partition in GPT rather than in MBR. |
|
In this case the MBR shows a single partition |
|
of type 0xee which covers the whole output data. |
|
@* |
|
By default, appended partitions get marked in GPT only if GPT is produced |
|
because of other options. |
|
@c man .TP |
|
@item -appended_part_as_apm |
|
@kindex -appended_part_as_apm Appended partitions in APM |
|
@cindex APM, mark appended partitions, -appended_part_as_apm |
|
Marks partitions from -append_partition in Apple Partition Map, too. |
|
@* |
|
By default, appended partitions get marked in APM only if APM is produced |
|
because of other options and -part_like_isohybrid is enabled. |
|
@c man .TP |
|
@item -efi-boot-part disk_path |
|
@kindex -efi-boot-part EFI boot partition |
|
@cindex Bootability, for EFI, -efi-boot-part |
|
Copy a file from disk into the emerging ISO image and mark it by a GPT entry as |
|
EFI System Partition. EFI boot firmware is supposed to use a FAT filesystem |
|
image in such a partition for booting from USB stick or hard disk. |
|
@* |
|
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 options -e or |
|
@minus{}@minus{}efi-boot. |
|
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. UEFI prescribes the first three components of |
|
a RFC 4122 GUID string to be byte-swapped in the binary representation: |
|
@* |
|
E.g. @minus{}@minus{}gpt_disk_guid 2303cd2a-73c7-424a-a298-25632da7f446 |
|
equals @minus{}@minus{}gpt_disk_guid 2acd0323c7734a42a29825632da7f446 |
|
@* |
|
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 |
|
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 |
|
partition entries. It makes GPT unrecognizable. |
|
@* |
|
CHRP is often used in conjunction with HFS. It is not yet tested whether HFS+ |
|
filesystems produced with option -hfsplus would boot on any |
|
CHRP capable machine which does not boot pure ISO 9660 as well. |
|
@c man .TP |
|
@item -chrp-boot |
|
@kindex -chrp-boot CHRP partition |
|
Alias of -chrp-boot-part. |
|
@c man .TP |
|
@item -prep-boot-part disk_path |
|
@kindex -prep-boot-part PReP partition |
|
@cindex Bootability, for PReP, -prep-boot-part |
|
Copy a file from disk into the emerging ISO image and mark it by a MBR |
|
partition entry of type 0x41. PReP boot firmware is supposed to read |
|
the content of the partition as single ELF executable file. |
|
This option is compatible with other MBR partitions and with GPT. |
|
@c man .TP |
|
@item -mips-boot iso_rr_path |
|
@kindex -mips-boot MIPS Big Endian boot image |
|
@cindex Bootability, control, -mips-boot |
|
Declare a data file in the image to be a |
|
MIPS Big Endian boot file and cause production of a MIPS Big Endian Volume |
|
Header. This is mutually exclusive with production of other boot blocks |
|
like MBR. |
|
It will overwrite the first 512 bytes of any data provided by -G. |
|
Up to 15 boot files can be declared by multiple -mips-boot options. |
|
@c man .TP |
|
@item -mipsel-boot iso_rr_path |
|
@kindex -mipsel-boot MIPS Little Endian boot image |
|
@cindex Bootability, control, -mipsel-boot |
|
Declare a data file in the image to be the |
|
MIPS Little Endian boot file. This is mutually exclusive with other boot |
|
blocks. |
|
It will overwrite the first 512 bytes of any data provided by -G. |
|
Only a single boot file can be declared by -mipsel-boot. |
|
@c man .TP |
|
@item -B disk_path[,disk_path ...] |
|
@kindex -B SUN SPARC boot images |
|
@cindex Bootability, control, -B, -sparc-boot |
|
Cause one or more data files on disk to be written after the end of the |
|
ISO image. A SUN Disk Label will be written into the first 512 bytes of the |
|
ISO image which lists this image as partition 1 and the given disk_paths as |
|
partition 2 up to 8. |
|
@* |
|
The disk files should contain suitable boot images for SUN SPARC systems. |
|
@* |
|
The pseudo disk_path "..." causes that all empty partition entries become |
|
copies of the last non-empty entry. If no other disk_path is given before |
|
"..." then all partitions describe the ISO image. In this case, the boot |
|
loader code has to be imported by option -G. |
|
@c man .TP |
|
@item -sparc-boot disk_path[,disk_path ...] |
|
@kindex -sparc-boot SUN SPARC boot images |
|
Alias of -B. |
|
@c man .TP |
|
@item -sparc-label text |
|
@kindex -sparc-label SUN Disk Label text |
|
@cindex Bootability, SUN Disk Label text, -sparc-label |
|
Set the ASCII label text of a SUN Disk Label. |
|
@c man .TP |
|
@item @minus{}@minus{}grub2-sparc-core iso_rr_path |
|
@kindex @minus{}@minus{}grub2-sparc-core SUN SPARC core file |
|
@cindex Bootability, control, @minus{}@minus{}grub2-sparc-core |
|
Cause the content address and size of the given data file in the image |
|
to be written after the SUN Disk Label. Both numbers are counted in bytes. |
|
The address is written as 64 bit big-endian number to byte 0x228. |
|
The size is written as 32 bit big-endian number to byte 0x230. |
|
@c man .TP |
|
@item -hppa-cmdline text |
|
@kindex -hppa-cmdline HP-PA PALO command line |
|
@cindex Bootability, control, -hppa-cmdline |
|
Set the PALO command line for HP-PA. Up to 1023 characters are permitted |
|
by default. With -hppa-hdrversion 4 the limit is 127. |
|
@* |
|
Note that the first five -hppa options are mandatory, if any of the -hppa |
|
options is given. Only option -hppa-hdrversion is allowed to be missing. |
|
@c man .TP |
|
@item -hppa-bootloader iso_rr_path |
|
@kindex -hppa-bootloader HP-PA bootloader file |
|
@cindex Bootability, control, -hppa-bootloader |
|
Designate the given path as HP-PA bootloader file. |
|
@c man .TP |
|
@item -hppa-kernel-32 iso_rr_path |
|
@kindex -hppa-kernel_32 HP-PA kernel_32 file |
|
@cindex Bootability, control, -hppa-kernel_32 |
|
Designate the given path as HP-PA 32 bit kernel file. |
|
@c man .TP |
|
@item -hppa-kernel-64 iso_rr_path |
|
@kindex -hppa-kernel_64 HP-PA kernel_64 file |
|
@cindex Bootability, control, -hppa-kernel_64 |
|
Designate the given path as HP-PA 64 bit kernel file. |
|
@c man .TP |
|
@item -hppa-ramdisk iso_rr_path |
|
@kindex -hppa-ramdisk HP-PA ramdisk file |
|
@cindex Bootability, control, -hppa-ramdisk |
|
Designate the given path as HP-PA RAM disk file. |
|
@c man .TP |
|
@item -hppa-hdrversion number |
|
@kindex -hppa-hdrversion HP-PA PALO header version |
|
@cindex Bootability, control, -hppa-hdrversion |
|
Choose between PALO header version 5 (default) and version 4. |
|
For the appropriate value see in PALO source code: PALOHDRVERSION. |
|
@c man .TP |
|
@item -alpha-boot iso_rr_path |
|
@kindex -alpha-boot DEC Alpha SRM bootloader |
|
@cindex Bootability, control, -alpha-boot |
|
Declare a data file in the image to be the DEC Alpha SRM Secondary Bootstrap |
|
Loader and cause production of a boot sector which points to it. |
|
This is mutually exclusive with production of other boot blocks like MBR. |
|
@end table |
|
@c man .TP |
|
@c man .B Character sets: |
|
@node Charset, Jigdo, SystemArea, Options |
|
@section Character sets |
|
@c man .PP |
|
@cindex Character sets, _definition |
|
Character sets should not matter as long as only english alphanumeric |
|
characters are used for file names or as long as all writers and readers |
|
of the medium use the same character set. |
|
Outside these constraints it may be necessary to let xorriso convert byte |
|
codes. |
|
@* |
|
A conversion from input character set to the output character set is |
|
performed when an ISO image gets written. |
|
Vice versa there is a conversion from output character set to the |
|
input character set when an ISO image gets loaded. |
|
The sets can be defined by options -input-charset and -output-charset, |
|
if needed. |
|
@* |
|
@table @asis |
|
@sp 1 |
|
@c man .TP |
|
@item -input-charset character_set_name |
|
@kindex -input-charset set character set of disk file names |
|
@cindex Character Set, for disk file names, -input-charset |
|
Set the character set from which to convert disk file names when |
|
inserting them into the ISO image. |
|
@sp 1 |
|
@c man .TP |
|
@item -output-charset character_set_name |
|
@kindex -output-charset set character set of ISO file names |
|
@cindex Character Set, for ISO file names, -output-charset |
|
Set the character set from which to convert names of loaded ISO images |
|
and to which to convert names when writing ISO images. |
|
@end table |
|
@c man .TP |
|
@c man .B Jigdo Template Extraction: |
|
@node Jigdo, Miscellaneous, Charset, Options |
|
@section Jigdo Template Extraction |
|
@c man .PP |
|
@cindex Jigdo Template Extraction, _definition |
|
From man genisoimage: |
|
"Jigdo is a tool to help in the distribution of large files like CD and |
|
DVD images; see http://atterer.net/jigdo/ for more details. Debian CDs |
|
and DVD ISO images are published on the web in jigdo format to allow |
|
end users to download them more efficiently." |
|
@* |
|
If the use of libjte was enabled at compile time of xorriso, then |
|
@command{xorrisofs} can produce a .jigdo and a .template file together with a |
|
single-session ISO image. If not, then Jigdo options will cause a |
|
FAILURE event, which normally leads to program abort. |
|
@* |
|
One may determine the ability for Jigdo by: |
|
@* |
|
@sp 1 |
|
$ xorrisofs -version 2>&1 | grep '^libjte' && echo YES |
|
@* |
|
@sp 1 |
|
@c man .PP |
|
The .jigdo file contains checksums and symbolic file addresses. |
|
The .template file contains the compressed ISO image with reference tags |
|
instead of the content bytes of the listed files. |
|
@* |
|
Input for this process are the normal arguments for a @command{xorrisofs} |
|
session with no image loaded, and a checksum file which lists those |
|
data files which may be |
|
listed in the .jigdo file and externally referenced in the .template file. |
|
Each designated file is represented in the checksum file by a single text line: |
|
@* |
|
Checksum as hex digits, 2 blanks, size as 12 decimal digits or blanks, 2 blanks, |
|
symbolic file address |
|
@* |
|
The kind of checksum is chosen by -jigdo "checksum_algorithm" with values "md5" |
|
(32 hex digits) or "sha256" (64 hex digits). |
|
It will also be used for the file address lines in the .jigdo file. |
|
The default is "md5". |
|
@* |
|
The file address in a checksum file line has to bear the same basename as the |
|
disk_path of the file which it shall match. The directory path of |
|
the file address is decisive for To=From mapping, not for file recognition. |
|
After To=From mapping, the file address gets written into the .jigdo |
|
file. Jigdo restore tools will convert these addresses into really |
|
reachable data source addresses from which they can read. |
|
@* |
|
If the list of jigdo parameters is not empty, then padding will be |
|
counted as part of the ISO image. |
|
@* |
|
@table @asis |
|
@sp 1 |
|
@c man .TP |
|
@item -jigdo-checksum-algorithm "md5"|"sha256" |
|
@kindex -jigdo-checksum-algorithm set data file checksum algorithm |
|
@cindex Jigdo Template Extraction, -jigdo-checksum-algorithm |
|
Set the checksum algorithm which shall be used for the data file entries |
|
in the .jigdo file and is expected in the checksum file. Default is "md5". |
|
@c man .TP |
|
@item -jigdo-jigdo disk_path |
|
@kindex -jigdo-jigdo set name of .jigdo file |
|
@cindex Jigdo Template Extraction, -jigdo-jigdo |
|
Set the disk_path for the .jigdo file with the checksums |
|
and download addresses for filling the holes in .template. |
|
@c man .TP |
|
@item -jigdo-template disk_path |
|
@kindex -jigdo-template set name of .template file |
|
@cindex Jigdo Template Extraction, -jigdo-template |
|
Set the disk_path for the .template file with the |
|
holed and compressed ISO image copy. |
|
@c man .TP |
|
@item -jigdo-min-file-size size |
|
@kindex -jigdo-min-file-size set minimum extract size |
|
@cindex Jigdo Template Extraction, -jigdo-min-file-size |
|
Set the minimum size for a data file to be listed |
|
in the .jigdo file and being a hole in the .template file. |
|
size may be a plain number counting bytes, or a number with appended |
|
letter "k", "m", "g" to count KiB (1024 bytes), MiB (1024 KiB), or |
|
GiB (1024 MiB). |
|
@c man .TP |
|
@item -jigdo-force-checksum disk_path_pattern |
|
@kindex -jigdo-force-checksum add check pattern for checksum file |
|
@cindex Jigdo Template Extraction, -jigdo-force-checksum |
|
adds a regular expression pattern which will get compared |
|
with the absolute disk_path of any data file that was not found in the |
|
checksum file. |
|
A match causes a MISHAP event, which normally does not abort the |
|
program run but finally causes a non-zero exit value of the program. |
|
@c man .TP |
|
@item -jigdo-force-md5 disk_path_pattern |
|
@kindex -jigdo-force-md5 add check pattern for checksum file |
|
@cindex Jigdo Template Extraction, -jigdo-force-md5 |
|
Outdated alias of -jigdo-force-checksum. |
|
@c man .TP |
|
@item -jigdo-exclude disk_path_pattern |
|
@kindex -jigdo-exclude add exclusion pattern for checksum file |
|
@cindex Jigdo Template Extraction, -jigdo-exclude |
|
Add a regular expression pattern which will get compared |
|
with the absolute disk_path of any data file. A match causes the file to |
|
stay in .template in any case. |
|
@c man .TP |
|
@item -jigdo-map To=From |
|
@kindex -jigdo-map add address translation for .jigdo |
|
@cindex Jigdo Template Extraction, -jigdo-map |
|
Add a string pair of the form To=From to the parameter list. |
|
If a data file gets listed in the .jigdo file, then it is referred by the |
|
file address from its line in the checksum file. This file address gets checked |
|
whether it begins with the From string. If so, then this string will be |
|
replaced by the To string and a ':' character, before it goes into the .jigdo |
|
file. The From string should end by a '/' character. |
|
@c man .TP |
|
@item -checksum-list disk_path |
|
@kindex -checksum-list set path of input checksum file |
|
@cindex Jigdo Template Extraction, -checksum-list |
|
Set the disk_path where to find the checksum file file with |
|
symbolic file addresses and checksums according to -jigdo-checksum-algorithm. |
|
@c man .TP |
|
@item -md5-list disk_path |
|
@kindex -md5-list set path of input checksum file |
|
@cindex Jigdo Template Extraction, -md5-list |
|
Outdated alias of -checksum-list. |
|
@c man .TP |
|
@item -jigdo-template-compress "gzip"|"bzip2" |
|
@kindex -jigdo-template-compress choose compression algorithm |
|
@cindex Jigdo Template Extraction, -jigdo-template-compress |
|
Choose one of "bzip2" or "gzip" for the compression of |
|
the template file. The jigdo file is put out uncompressed. |
|
@c man .TP |
|
@item -checksum_algorithm_iso list_of_names |
|
@kindex -checksum_algorithm_iso choose .jigdo checksums |
|
@cindex Jigdo Template Extraction, -checksum_algorithm_iso |
|
Choose one or more of "md5", "sha1", "sha256", "sha512" |
|
for the auxiliary "# Image Hex" checksums in the .jigdo file. The list_of_names |
|
may e.g. look like "md5,sha1,sha512". Value "all" chooses all available |
|
algorithms. |
|
Note that MD5 stays always enabled. |
|
@c man .TP |
|
@item -checksum_algorithm_template list_of_names |
|
@kindex -checksum_algorithm_template choose .template checksums |
|
@cindex Jigdo Template Extraction, -checksum_algorithm_template |
|
Choose the algorithms for the "# Template Hex" checksums in the .jigdo file. |
|
The rules for list_of_names are the same as with -checksum_algorithm_iso. |
|
@end table |
|
@c man .TP |
|
@c man .B Miscellaneous options: |
|
@node Miscellaneous, ExSimple, Jigdo, Options |
|
@section Miscellaneous options |
|
@table @asis |
|
@sp 1 |
|
@c man .TP |
|
@item -print-size |
|
@kindex -print-size predict ISO image size |
|
@cindex ISO image size, predict, -print-size |
|
Print to stdandard output the foreseeable number of 2048 byte blocks in |
|
the emerging ISO image. Do not produce this image. |
|
@* |
|
The result depends on several settings. |
|
@* |
|
If option --emul-toc is given, then padding (see -pad) is not |
|
counted as part of the image size. In this case either use -no-pad or |
|
add 150 (= 300 KiB) to the resulting number. |
|
@* |
|
If mkisofs emulation ends after option -print-size, then the properties of |
|
the most recently specified boot image file cannot be edited by subsequent |
|
xorriso commands. |
|
@c man .TP |
|
@item @minus{}@minus{}no_rc |
|
@kindex @minus{}@minus{}no_rc do not execute startup files |
|
@cindex Startup files, suppress, @minus{}@minus{}no_rc |
|
Only if used as first argument this option |
|
prevents reading and interpretation of startup files. See section FILES below. |
|
@c man .TP |
|
@item -help |
|
@kindex -help list supported options |
|
@cindex Options, list, -help |
|
@* |
|
List supported options to stderr. Original mkisofs options bear their |
|
original mkisofs description texts. |
|
@c man .TP |
|
@item -quiet |
|
@kindex -quiet suppress most messages |
|
@cindex Message output, suppress, -quiet |
|
@* |
|
Suppress most messages of the program run, except those which indicate |
|
problems or errors. |
|
@c man .TP |
|
@item -gui |
|
@kindex -gui increase frequency of pacifier messages |
|
@cindex Message output, increase frequency, -gui |
|
@* |
|
Increase the frequency of pacifier messages while writing an ISO image. |
|
@c man .TP |
|
@item -log-file disk_path |
|
@kindex -log-file redirect stderr messages |
|
@cindex Message output, redirect stderr, -log-file |
|
@* |
|
Truncate file disk_path to 0 size and redirect to it all messages which would |
|
normally appear on stderr. -log-file with empty text as disk_path re-enables |
|
output to stderr. |
|
@c man .TP |
|
@item -v |
|
@kindex -v enable verbose messages |
|
@cindex Verbosity, high, -v, -verbose |
|
@* |
|
Enable the output of informational program messages. |
|
@c man .TP |
|
@item -verbose |
|
@kindex -verbose enable verbose messages |
|
Alias of -v. |
|
@c man .TP |
|
@item -version |
|
@kindex -version report program version |
|
@cindex Program version, report, -version |
|
Print to standard output a text that begins with |
|
@* |
|
"mkisofs 2.01-Emulation Copyright (C)" |
|
@* |
|
and to standard error the version information of xorriso. |
|
@end table |
|
@c man .br |
|
@node Examples, Files, Options, Top |
|
@chapter Examples |
|
@c man .SH EXAMPLES |
|
@c man .SS |
|
@c man .B Overview of examples: |
|
@c man A simple image production run |
|
@c man .br |
|
@c man Set ISO image paths by -graft-points |
|
@c man .br |
|
@c man Perform multi-session runs |
|
@c man .br |
|
@c man Let xorrisofs work underneath growisofs |
|
@c man .br |
|
@c man Incremental backup of a few directory trees |
|
@c man .br |
|
@c man Incremental backup with accumulated trees |
|
@c man .br |
|
@c man Create bootable images for PC-BIOS and EFI |
|
@c man .br |
|
@cindex Examples |
|
@menu |
|
* ExSimple:: A simple image production run |
|
* ExGraft:: Set ISO image paths by -graft-points |
|
* ExMkisofs:: Perform multi-session runs |
|
* ExGrowisofs:: Let xorriso work underneath growisofs |
|
* ExIncBackup:: Incremental backup of a few directory trees |
|
* ExIncBckAcc:: Incremental backup with accumulated trees |
|
* ExBootable:: Create bootable images for PC-BIOS and EFI |
|
@end menu |
|
@c man .SS |
|
@c man .B A simple image production run |
|
@node ExSimple, ExGraft, Miscellaneous, Examples |
|
@section A simple image production run |
|
A prepared file tree in directory ./for_iso gets copied into the root |
|
directory of the ISO image. File permissions get set to read-only for |
|
everybody. |
|
Joliet attributes for Microsoft systems get added. |
|
The resulting image gets written as data file ./image.iso on disk. |
|
@* |
|
@sp 1 |
|
$ xorrisofs -r -J -o ./image.iso ./for_iso |
|
@c man .SS |
|
@c man .B Set ISO image paths by -graft-points |
|
@node ExGraft, ExMkisofs, ExSimple, Examples |
|
@section Set ISO image paths by -graft-points |
|
Without option -graft-points each given disk file is copied into the root |
|
directory of the ISO image, maintaining its name. If a directory is given, |
|
then its files and sub-directories are copied into the root directory, |
|
maintaining their names. |
|
@* |
|
@sp 1 |
|
$ xorrisofs ... /home/me/datafile /tmp/directory |
|
@* |
|
@sp 1 |
|
yields in the ISO image root directory: |
|
@* |
|
@sp 1 |
|
/datafile |
|
@* |
|
/file_1_from_directory |
|
@* |
|
... |
|
@* |
|
/file_N_from_directory |
|
@* |
|
@sp 1 |
|
@c man .sp 1 |
|
With option -graft-points it is possible to put files and directories to |
|
arbitrary paths in the ISO image. |
|
@* |
|
@sp 1 |
|
$ xorrisofs ... -graft-points /home/me/datafile /dir=/tmp/directory |
|
@* |
|
@sp 1 |
|
yields in the ISO image root directory: |
|
@* |
|
@sp 1 |
|
/datafile |
|
@* |
|
/dir |
|
@* |
|
@sp 1 |
|
Eventually needed parent directories in |
|
the image will be created automatically: |
|
@* |
|
@sp 1 |
|
/datafiles/file1=/home/me/datafile |
|
@* |
|
@sp 1 |
|
yields in the ISO image: |
|
@sp 1 |
|
@* |
|
/datafiles/file1 |
|
@* |
|
@sp 1 |
|
The attributes of directory /datafiles get copied from /home/me on disk. |
|
@* |
|
@sp 1 |
|
@c man .sp 1 |
|
Normally one should avoid = and \ characters in the ISO part of a pathspec. |
|
But if it must be, one may escape them: |
|
@sp 1 |
|
@* |
|
/with_\=_and_\\/file=/tmp/directory/file |
|
@* |
|
@sp 1 |
|
yields in the ISO image: |
|
@* |
|
@sp 1 |
|
/with_=_and_\/file |
|
@c man .SS |
|
@c man .B Perform multi-session runs |
|
@node ExMkisofs, ExGrowisofs, ExGraft, Examples |
|
@section Perform multi-session runs |
|
This example works for multi-session media only: |
|
CD-R[W], DVD-R[W], DVD+R, BD-R. |
|
Add cdrskin option @minus{}@minus{}grow_overwriteable_iso |
|
to all -as cdrecord runs |
|
in order to enable multi-session emulation on overwritable media. |
|
@* |
|
The first session is written like this: |
|
@* |
|
@sp 1 |
|
$ xorrisofs -graft-points \ |
|
@* |
|
/tree1=prepared_for_iso/tree1 \ |
|
@* |
|
| xorriso -as cdrecord -v dev=/dev/sr0 blank=fast -multi -eject - |
|
@* |
|
@sp 1 |
|
Follow-up sessions are written like this (the run of dd is only to give demons |
|
a chance to spoil it): |
|
@* |
|
@sp 1 |
|
$ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) |
|
@* |
|
$ dd if=/dev/sr0 count=1 >/dev/null 2>&1 |
|
@* |
|
$ xorrisofs -M /dev/sr0 -C $m -graft-points \ |
|
@* |
|
/tree2=prepared_for_iso/tree2 \ |
|
@* |
|
| xorriso -as cdrecord -v dev=/dev/sr0 -waiti -multi -eject - |
|
@* |
|
@sp 1 |
|
Always eject the drive tray between sessions. |
|
@* |
|
The run of xorriso -as mkisofs will read old sessions via the CD-ROM |
|
driver of /dev/sr0. This driver might not be aware of the changed content |
|
as long as the medium is not loaded again. In this case the previous session |
|
would not be properly assessed by xorriso and the new session would contain |
|
only the newly added files. |
|
@* |
|
Some systems have not enough patience with automatic tray loading and some |
|
demons may interfere with a first CD-ROM driver read attempt from a freshly |
|
loaded medium. |
|
@* |
|
When loading the tray manually, wait 10 seconds after the drive has stopped |
|
blinking. |
|
@* |
|
A safe automatic way seems to be a separate run of xorriso for loading |
|
the tray with proper waiting, and a subsequent run of dd which shall offer |
|
itself to any problems caused by demons assessing the changed drive status. |
|
If this does not help, insert a run of "sleep 10" between xorriso and dd. |
|
@c man .SS |
|
@c man .B Let xorrisofs work underneath growisofs |
|
@node ExGrowisofs, ExIncBackup, ExMkisofs, Examples |
|
@section Let xorriso work underneath growisofs |
|
growisofs expects an ISO formatter program which understands options -C and |
|
-M. A variable is defined to override the hardcoded default name. |
|
@* |
|
@sp 1 |
|
$ export MKISOFS="xorrisofs" |
|
@* |
|
$ growisofs -Z /dev/dvd /some/files |
|
@* |
|
$ growisofs -M /dev/dvd /more/files |
|
@* |
|
@sp 1 |
|
If no "xorrisofs" is available on your system, then you will have to create |
|
a link pointing to the xorriso binary and tell growisofs to use it. E.g. by: |
|
@* |
|
@sp 1 |
|
$ ln -s $(which xorriso) "$HOME/xorrisofs" |
|
@* |
|
$ export MKISOFS="$HOME/xorrisofs" |
|
@* |
|
@sp 1 |
|
One may quit mkisofs emulation by argument "@minus{}@minus{}" and make |
|
use of all xorriso commands. growisofs dislikes options which |
|
start with "-o" but -outdev must be set to "-". |
|
So use "outdev" instead: |
|
@* |
|
@sp 1 |
|
$ growisofs -Z /dev/dvd @minus{}@minus{}for_backup @minus{}@minus{} \ |
|
@* |
|
outdev - -update_r /my/files /files |
|
@* |
|
$ growisofs -M /dev/dvd @minus{}@minus{}for_backup @minus{}@minus{} \ |
|
@* |
|
outdev - -update_r /my/files /files |
|
@* |
|
Note that @minus{}@minus{}for_backup is given in the mkisofs emulation. |
|
To preserve the recorded extra data it must already be in effect, when |
|
the emulation loads the image. |
|
@c man .SS |
|
@c man .B Incremental backup of a few directory trees |
|
@node ExIncBackup, ExIncBckAcc, ExGrowisofs, Examples |
|
@section Incremental backup of a few directory trees |
|
This changes the directory trees /open_source_project and /personal_mail |
|
in the ISO image so that they become exact copies of their disk counterparts. |
|
ISO file objects get created, deleted or get their attributes adjusted |
|
accordingly. |
|
@* |
|
ACL, xattr, hard links and MD5 checksums will be recorded. |
|
It is expected that inode numbers in the disk filesystem are persistent |
|
over cycles of mounting and booting. |
|
Files with names matching *.o or *.swp get excluded explicitly. |
|
@* |
|
@sp 1 |
|
@c man .sp 1 |
|
To be used several times on the same medium, whenever an update of |
|
the two disk trees to the medium is desired. Begin with a blank medium and |
|
update it until he run fails gracefully due to lack of remaining space on |
|
the old one. |
|
@* |
|
Always eject the drive tray between sessions. |
|
A run of dd shall give demons a chance to spoil the first read on freshly |
|
loaded media. |
|
@* |
|
@sp 1 |
|
$ msinfo=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) |
|
@* |
|
$ dd if=/dev/sr0 count=1 >/dev/null 2>&1 |
|
@* |
|
$ load_opts= |
|
@* |
|
$ test -n "$msinfo" && load_opts="-M /dev/sr0 -C $msinfo" |
|
@* |
|
$ xorrisofs $load_opts -o - @minus{}@minus{}for_backup -m '*.o' -m '*.swp' \ |
|
@* |
|
-V PROJ_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" -graft-points \ |
|
@* |
|
-old-root / \ |
|
@* |
|
/projects=/home/thomas/projects \ |
|
@* |
|
/personal_mail=/home/thomas/personal_mail \ |
|
@* |
|
| xorriso -as cdrecord dev=/dev/sr0 -v -multi -waiti -eject - |
|
@* |
|
@sp 1 |
|
@c man .sp 1 |
|
This makes sense if the full backup leaves substantial remaining capacity |
|
on media and if the expected changes are much smaller than the full backup. |
|
@* |
|
@sp 1 |
|
@c man .sp 1 |
|
@strong{Better do not use your youngest backup for -old-root}. |
|
Have at least two media which you use alternatingly. So only older backups |
|
get endangered by the new write operation, while the newest backup is |
|
stored safely on a different medium. |
|
@* |
|
Always have a blank medium ready to perform a full backup in case the update |
|
attempt fails due to insufficient remaining capacity. This failure will |
|
not spoil the old medium, of course. |
|
@* |
|
@sp 1 |
|
@c man .sp 1 |
|
If inode numbers on disk are not persistent, then use |
|
option @minus{}@minus{}old-root-no-ino . |
|
In this case an update run will compare recorded MD5 |
|
sums against the current file content on hard disk. |
|
@* |
|
@sp 1 |
|
@c man .sp 1 |
|
With @strong{mount} option @strong{-o "sbsector="} on GNU/Linux |
|
or @strong{-s} on FreeBSD or NetBSD |
|
it is possible to access the session trees which represent the older backup |
|
versions. With CD media, GNU/Linux mount accepts session numbers directly by |
|
its option "session=". |
|
@* |
|
Multi-session media and most overwritable media written by xorriso can tell |
|
the sbsectors of their sessions by xorriso option -toc: |
|
@* |
|
@sp 1 |
|
$ xorriso -dev /dev/sr0 -toc |
|
@* |
|
@sp 1 |
|
xorriso can print the matching mount command for a session number: |
|
@* |
|
@sp 1 |
|
$ xorriso -mount_cmd /dev/sr0 session 12 /mnt |
|
@* |
|
@sp 1 |
|
or for a volume id that matches a search expression: |
|
@* |
|
@sp 1 |
|
$ xorriso -mount_cmd /dev/sr0 volid '*2008_12_05*' /mnt |
|
@* |
|
@sp 1 |
|
Both yield on standard output something like: |
|
@* |
|
mount -t iso9660 -o nodev,noexec,nosuid,ro,sbsector=1460256 '/dev/sr0' '/mnt' |
|
@* |
|
@sp 1 |
|
The superuser may let xorriso execute the mount command directly: |
|
@* |
|
@sp 1 |
|
# osirrox -mount /dev/sr0 "volid" '*2008_12_05*' /mnt |
|
@c man .SS |
|
@c man .B Incremental backup with accumulated trees |
|
@node ExIncBckAcc, ExBootable, ExIncBackup, Examples |
|
@section Incremental backup with accumulated trees |
|
Solaris does not offer the option to mount older sessions. |
|
In order to keep them accessible, one may map all files to a file tree under |
|
a session directory and accumulate those directories from session to session. |
|
The -root tree is cloned from the -old-root tree before it gets |
|
compared with the appropriate trees on disk. |
|
@* |
|
This demands to know the previously used session directory name. |
|
@* |
|
With the first session: |
|
@* |
|
@sp 1 |
|
$ xorrisofs -root /session1 \ |
|
@* |
|
-o - @minus{}@minus{}for_backup -m '*.o' -m '*.swp' \ |
|
@* |
|
-V PROJ_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" -graft-points \ |
|
@* |
|
/projects=/home/thomas/projects \ |
|
@* |
|
/personal_mail=/home/thomas/personal_mail \ |
|
@* |
|
| xorriso -as cdrecord dev=/dev/sr0 -v blank=as_needed \ |
|
@* |
|
-multi -waiti -eject - |
|
@* |
|
@sp 1 |
|
@c man .sp 1 |
|
With the second session, option -old-root refers to /session1 and the |
|
new -root is /session2. |
|
@* |
|
Always eject the drive tray between sessions. |
|
A run of dd shall give demons a chance to spoil the first read on freshly |
|
loaded media. |
|
@* |
|
@sp 1 |
|
$ msinfo=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo) |
|
@* |
|
$ dd if=/dev/sr0 count=1 >/dev/null 2>&1 |
|
@* |
|
$ load_opts= |
|
@* |
|
$ test -n "$msinfo" && load_opts="-M /dev/sr0 -C $msinfo" |
|
@* |
|
$ xorrisofs $load_opts -root /session2 -old-root /session1 \ |
|
@* |
|
-o - @minus{}@minus{}for_backup -m '*.o' -m '*.swp' \ |
|
@* |
|
-V PROJ_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" -graft-points \ |
|
@* |
|
/projects=/home/thomas/projects \ |
|
@* |
|
/personal_mail=/home/thomas/personal_mail \ |
|
@* |
|
| xorriso -as cdrecord dev=/dev/sr0 -v -multi -waiti -eject - |
|
@* |
|
@sp 1 |
|
With the third session, option -old-root refers to /session2. |
|
The new -root is /session3. And so on. |
|
@c man .SS |
|
@c man .B Create bootable images for PC-BIOS and EFI |
|
@node ExBootable, , ExIncBckAcc, Examples |
|
@section Create bootable images for PC-BIOS and EFI |
|
The SYSLINUX/ISOLINUX boot loader suite is popular for booting PC-BIOS. |
|
The ISOLINUX wiki prescribes to create on disk a directory ./CD_root and |
|
to copy all desired files underneath that directory. Especially file |
|
isolinux.bin shall be copied to ./CD_root/isolinux/isolinux.bin . |
|
This is the boot image file. |
|
@* |
|
The prescribed mkisofs options can be used unchanged with @command{xorrisofs}: |
|
@* |
|
@sp 1 |
|
$ xorrisofs -o output.iso \ |
|
@* |
|
-b isolinux/isolinux.bin -c isolinux/boot.cat \ |
|
@* |
|
-no-emul-boot -boot-load-size 4 -boot-info-table \ |
|
@* |
|
./CD_root |
|
@* |
|
@sp 1 |
|
Put it on CD by a burn program. E.g.: |
|
@* |
|
@sp 1 |
|
$ xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed output.iso |
|
@* |
|
@sp 1 |
|
@c man .sp 1 |
|
The image from above example will boot from CD, DVD or BD, but not from |
|
USB stick or other hard-disk-like devices. This can be done by help of an |
|
isohybrid MBR. Syslinux provides matching template files |
|
as isohdp[fp]x*.bin . E.g. /usr/lib/syslinux/isohdpfx.bin . |
|
@* |
|
If a few hundred KB of size do not matter, then option -partition_offset |
|
can be used to create a partition table where partition 1 starts not |
|
at block 0. This facilitates later manipulations of the USB stick by |
|
tools for partitioning and formatting. |
|
@* |
|
The image from the following example will be prepared for booting via MBR |
|
and its first partition will start at hard disk block 64. |
|
@* |
|
It will also boot from optical media. |
|
@* |
|
@sp 1 |
|
$ xorrisofs -o output.iso \ |
|
@* |
|
-b isolinux/isolinux.bin -c isolinux/boot.cat \ |
|
@* |
|
-no-emul-boot -boot-load-size 4 -boot-info-table \ |
|
@* |
|
-isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin \ |
|
@* |
|
-partition_offset 16 \ |
|
@* |
|
./CD_root |
|
@* |
|
@sp 1 |
|
Become superuser and copy the image to the unpartitioned base device file |
|
of the USB stick. On GNU/Linux this is e.g. /dev/sdb, not /dev/sdb1. |
|
@* |
|
CAUTION: |
|
This will overwrite any partitioning on the USB stick and make |
|
remaining data unaccessible. |
|
@* |
|
So first make sure you got the correct address of the intended device. |
|
E.g. by reading 100 MiB data from it and watching it blinking: |
|
@* |
|
@sp 1 |
|
# dd bs=2K if=/dev/sdb count=50K >/dev/null |
|
@* |
|
@sp 1 |
|
Now copy the image onto it |
|
@* |
|
@sp 1 |
|
# dd bs=2K if=output.iso of=/dev/sdb |
|
@* |
|
@sp 1 |
|
@c man .sp 1 |
|
Now for EFI: |
|
@* |
|
The boot image file has to be the image of an EFI System Partition, |
|
i.e. a FAT filesystem with directory /EFI/BOOT and boot files with |
|
EFI prescribed names: BOOTIA32.EFI for 32 bit x86, |
|
BOOTx64.EFI for 64 bit AMD/x86 (in UEFI-2.4 there is indeed a lower case "x"), |
|
BOOTAA64.EFI for 64 bit ARM. The software in the FAT filesystem should be |
|
able to find and inspect the ISO filesystem for boot loader configuration and |
|
start of operating system. GRUB2 program grub-mkimage can produce such a |
|
FAT filesystem with suitable content, which then uses further GRUB2 |
|
software from the ISO filesystem. |
|
@* |
|
EFI boot equipment may be combined with above ISOLINUX isohybrid for PC-BIOS |
|
in a not really UEFI-2.4 compliant way, which obviously works well. It yields |
|
MBR and GPT partition tables, both with nested partitions. |
|
Assumed the EFI System Partition image is ready as ./CD_root/boot/grub/efi.img, |
|
add the following options before the directory address ./CD_root: |
|
@* |
|
@sp 1 |
|
-eltorito-alt-boot -e 'boot/grub/efi.img' -no-emul-boot \ |
|
@* |
|
-isohybrid-gpt-basdat \ |
|
@* |
|
@sp 1 |
|
More compliant with UEFI-2.4 is to decide for either MBR or GPT and to |
|
append a copy of the EFI System Partition in order to avoid overlap of |
|
ISO partition and EFI partition. Here for MBR: |
|
@* |
|
@sp 1 |
|
-eltorito-alt-boot -e 'boot/grub/efi.img' -no-emul-boot \ |
|
-append_partition 2 0xef ./CD_root/boot/grub/efi.img \ |
|
@* |
|
@sp 1 |
|
The resulting ISOs are supposed to boot from optical media and USB stick. |
|
One may omit option -eltorito-alt-boot if no option -b is used to make |
|
the ISO bootable via PC-BIOS. |
|
@* |
|
@sp 1 |
|
@c man .sp 1 |
|
For ISOs with pure GRUB2 boot equipment consider to use GRUB2 tool |
|
grub-mkrescue as frontend to xorrisofs. |
|
@* |
|
@sp 1 |
|
@c man .sp 1 |
|
If you have a bootable ISO filesystem and want to know its equipment plus |
|
a proposal how to reproduce it, try: |
|
@* |
|
@sp 1 |
|
$ xorriso -hfsplus on -indev IMAGE.iso \ |
|
-report_el_torito plain -report_system_area plain \ |
|
-print "" -print "======= Proposal for xorrisofs options:" \ |
|
-report_el_torito as_mkisofs |
|
@* |
|
@sp 1 |
|
@* |
|
@sp 1 |
|
@c man .SH FILES |
|
@node Files, Environ, Examples, Top |
|
@chapter Files |
|
@c man .SS |
|
@c man .B Startup files: |
|
@section Startup Files |
|
@* |
|
If not --no_rc is given as the first argument then @command{xorrisofs} |
|
attempts on startup to read and execute lines from the following files: |
|
@* |
|
@sp 1 |
|
/etc/default/xorriso |
|
@* |
|
/etc/opt/xorriso/rc |
|
@* |
|
/etc/xorriso/xorriso.conf |
|
@* |
|
$HOME/.xorrisorc |
|
@* |
|
@sp 1 |
|
The files are read in the sequence given here, but none of them is required |
|
to exist. The lines are not interpreted as @command{xorrisofs} options but |
|
as generic xorriso commands. See man xorriso. |
|
@c man .PP |
|
After the xorriso startup files, the program tries one by one to open for |
|
reading: |
|
@* |
|
@sp 1 |
|
./.mkisofsrc |
|
@* |
|
$MKISOFSRC |
|
@* |
|
$HOME/.mkisofsrc |
|
@* |
|
$(dirname $0)/.mkisofsrc |
|
@* |
|
@sp 1 |
|
On success it interprets the file content and does not try further files. |
|
The last address is used only if start argument 0 has a non-trivial dirname. |
|
@* |
|
The reader currently interprets the following NAME=VALUE pairs: |
|
@* |
|
@sp 1 |
|
APPI default for -A |
|
@* |
|
PUBL default for -publisher |
|
@* |
|
SYSI default for -sysid |
|
@* |
|
VOLI default for -V |
|
@* |
|
VOLS default for -volset |
|
@* |
|
@sp 1 |
|
Any other lines will be silently ignored. |
|
@* |
|
@sp 1 |
|
@c man .SH ENVIRONMENT |
|
@node Environ, Seealso, Files, Top |
|
@chapter Environ |
|
The following environment variables influence the program behavior: |
|
@* |
|
HOME is used to find xorriso and mkisofs startup files. |
|
@* |
|
MKISOFSRC may be used to point the program to a mkisofs startup file. |
|
@* |
|
SOURCE_DATE_EPOCH belongs to the specs of reproducible-builds.org. |
|
It is supposed to be either undefined or to contain a decimal number |
|
which tells the seconds since january 1st 1970. If it contains a number, |
|
then it is used as time value to set the default of |
|
@minus{}@minus{}modification-date=. |
|
@minus{}@minus{}gpt_disk_guid defaults to "modification-date". |
|
The default of @minus{}@minus{}set_all_file_dates is then "set_to_mtime". |
|
Further the "now" time for ISO nodes without disk source is then set to |
|
the SOURCE_DATE_EPOCH value. |
|
@* |
|
Startup files and program options can override the effect of SOURCE_DATE_EPOCH. |
|
@c man .SS |
|
@c man .SH SEE ALSO |
|
@c man .TP |
|
@c man For generic xorriso command mode |
|
@c man .BR xorriso(1) |
|
@c man .TP |
|
@c man For the cdrecord emulation of xorriso |
|
@c man .BR xorrecord(1) |
|
@c man .TP |
|
@c man For mounting xorriso generated ISO 9660 images (-t iso9660) |
|
@c man .BR mount(8) |
|
@c man .TP |
|
@c man Other programs which produce ISO 9660 images |
|
@c man .BR mkisofs(8), |
|
@c man .BR genisoimage(8) |
|
@c man .TP |
|
@c man Programs which burn sessions to optical media |
|
@c man .BR growisofs(1), |
|
@c man .BR cdrecord(1), |
|
@c man .BR wodim(1), |
|
@c man .BR cdrskin(1), |
|
@c man .BR xorriso(1) |
|
@c man .TP |
|
@c man ACL and xattr |
|
@c man .BR getfacl(1), |
|
@c man .BR setfacl(1), |
|
@c man .BR getfattr(1), |
|
@c man .BR setfattr(1) |
|
@c man .TP |
|
@c man MD5 checksums |
|
@c man .BR md5sum(1) |
|
@c man .TP |
|
@c man On FreeBSD the commands for xattr and MD5 differ |
|
@c man .BR getextattr(8), |
|
@c man .BR setextattr(8), |
|
@c man .BR md5(1) |
|
@c man-ignore-lines begin |
|
@node Seealso, Bugreport, Environ, Top |
|
@chapter See also |
|
@table @asis |
|
@item For generic @command{xorriso} command mode |
|
xorriso(1) |
|
@item For the cdrecord emulation of @command{xorriso} |
|
xorrecord(1) |
|
@item For mounting xorriso generated ISO 9660 images (-t iso9660) |
|
mount(8) |
|
@item Other programs which produce ISO 9660 images |
|
mkisofs(8), |
|
genisoimage(1) |
|
@item Programs which burn sessions to optical media |
|
growisofs(1), |
|
cdrecord(1), |
|
wodim(1), |
|
cdrskin(1), |
|
xorriso(1) |
|
@item ACL and xattr |
|
getfacl(1), |
|
setfacl(1), |
|
getfattr(1), |
|
setfattr(1) |
|
@item MD5 checksums |
|
md5sum(1) |
|
@item On FreeBSD some commands differ: |
|
getextattr(8), |
|
setextattr(8), |
|
md5(1) |
|
@end table |
|
@c man-ignore-lines end |
|
@c man .SH BUGS |
|
@node Bugreport, Legal, Seealso, Top |
|
@chapter Reporting bugs |
|
@cindex Bugs, reporting |
|
@cindex Problems, reporting |
|
To report bugs, request help, or suggest enhancements for @command{xorriso}, |
|
please send electronic mail to the public list @email{bug-xorriso@@gnu.org}. |
|
If more privacy is desired, mail to @email{scdbackup@@gmx.net}. |
|
@* |
|
@sp 1 |
|
Please describe what you expect @command{xorriso} to do, |
|
the program arguments or dialog commands by which you tried to achieve it, |
|
the messages of @command{xorriso}, and the undesirable outcome of your |
|
program run. |
|
@* |
|
@sp 1 |
|
Expect to get asked more questions before solutions can be proposed. |
|
@c man .SH AUTHOR |
|
@node Legal, CommandIdx, Bugreport, Top |
|
@chapter Author, Copyright, Credits |
|
@section Author |
|
Thomas Schmitt <scdbackup@@gmx.net> |
|
@* |
|
for libburnia-project.org |
|
@c man .SH COPYRIGHT |
|
@section Copyright |
|
Copyright (c) 2011 - 2019 Thomas Schmitt |
|
@* |
|
Permission is granted to distribute this text freely. It shall only be |
|
modified in sync with the technical properties of xorriso. If you make use |
|
of the license to derive modified versions of xorriso then you are entitled |
|
to modify this text under that same license. |
|
@c man .SH CREDITS |
|
@section Credits |
|
@command{xorrisofs} is in part based on work by Vreixo Formoso who provides |
|
libisofs together with Mario Danic who also leads the libburnia team. |
|
Vladimir Serbinenko contributed the HFS+ filesystem code and related knowledge. |
|
@* |
|
Compliments towards Joerg Schilling whose cdrtools served me for ten years. |
|
@c man-ignore-lines begin |
|
|
|
@node CommandIdx, ConceptIdx, Legal, Top |
|
@chapter Alphabetic Command List |
|
@printindex ky |
|
|
|
@node ConceptIdx,, CommandIdx, Top |
|
@chapter Alphabetic List of Concepts and Objects |
|
@printindex cp |
|
|
|
@c man-ignore-lines end |
|
@bye
|
|
|