2388 lines
90 KiB
Groff
2388 lines
90 KiB
Groff
.\" Hey, EMACS: -*- nroff -*-
|
|
.\"
|
|
.\" IMPORTANT NOTE:
|
|
.\"
|
|
.\" The original of this file is kept in xorriso/xorrisofs.texi
|
|
.\" This here was generated by program xorriso/make_xorriso_1
|
|
.\"
|
|
.\"
|
|
.\" First parameter, NAME, should be all caps
|
|
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
|
.\" other parameters are allowed: see man(7), man(1)
|
|
.TH XORRISOFS 1 "Version 1.5.7, Nov 17, 2024"
|
|
.\" Please adjust this date whenever revising the manpage.
|
|
.\"
|
|
.\" Some roff macros, for reference:
|
|
.\" .nh disable hyphenation
|
|
.\" .hy enable hyphenation
|
|
.\" .ad l left justify
|
|
.\" .ad b justify to both left and right margins
|
|
.\" .nf disable filling
|
|
.\" .fi enable filling
|
|
.\" .br insert line break
|
|
.\" .sp <n> insert n+1 empty lines
|
|
.\" for manpage-specific macros, see man(7)
|
|
.nh
|
|
.SH NAME
|
|
xorrisofs \- Emulation of ISO 9660 program mkisofs by program xorriso
|
|
.SH SYNOPSIS
|
|
.B xorrisofs
|
|
[ options ] [-o filename ] pathspec [pathspecs ...]
|
|
.br
|
|
.SH DESCRIPTION
|
|
.PP
|
|
\fBxorrisofs\fR
|
|
produces Rock Ridge enhanced ISO 9660 filesystems and add\-on sessions to
|
|
such filesystems. Optionally it can produce Joliet directory trees too.
|
|
.br
|
|
.PP
|
|
\fBxorrisofs\fR understands options of program mkisofs from cdrtools by
|
|
Joerg Schilling.
|
|
Its implementation is part of program xorriso which shares no source
|
|
code with cdrtools.
|
|
.SS
|
|
\fBISO 9660, Rock Ridge, Joliet, HFS+:\fR
|
|
.br
|
|
\fBISO 9660\fR
|
|
(aka \fBECMA\-119\fR) 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.
|
|
.br
|
|
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.
|
|
.br
|
|
\fBRock Ridge\fR
|
|
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.
|
|
.br
|
|
xorrisofs produces Rock Ridge information by default. It is strongly
|
|
discouraged to disable this feature.
|
|
.br
|
|
\fBJoliet\fR
|
|
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.
|
|
.br
|
|
\fBISO 9660:1999\fR
|
|
is the folkloric name of an additional directory tree which provides longer
|
|
filenames. It allows single file names to have up to 207 characters. Its
|
|
starting point is specified officially as Enhanced Volume Descriptor in
|
|
ECMA\-119 4th Edition.
|
|
.br
|
|
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.
|
|
.br
|
|
\fBHFS+\fR
|
|
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.
|
|
.br
|
|
The main purpose for having an embedded HFS+ partition is booting of
|
|
certain models of Apple computers.
|
|
.SS
|
|
.B Inserting files into the ISO image:
|
|
.PP
|
|
\fBxorrisofs\fR deals with two kinds of file addresses:
|
|
.br
|
|
\fBdisk_path\fR
|
|
is a path to an object in the local filesystem tree.
|
|
.br
|
|
\fBiso_rr_path\fR
|
|
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.
|
|
.br
|
|
.PP
|
|
A program argument is handled as a \fBpathspec\fR, if it is not
|
|
recognized as original mkisofs option or additional \fBxorrisofs\fR 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.
|
|
.br
|
|
If \-graft\-points is present then each pathspec gets split at the first
|
|
occurrence of the =\-character.
|
|
The part before the = is taken as \fBtarget\fR, i.e. the iso_rr_path for
|
|
the file object in the ISO image. The part after the first = is taken
|
|
as \fBsource\fR, i.e. the disk_path of the input object.
|
|
.br
|
|
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.
|
|
.br
|
|
.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.
|
|
.br
|
|
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.
|
|
.SS
|
|
\fBRelation to program xorriso:\fR
|
|
.br
|
|
\fBxorrisofs\fR is actually a command mode of program \fBxorriso\fR,
|
|
which gets entered either by xorriso command "\-as mkisofs" or by
|
|
starting the program by one of the names "xorrisofs", "mkisofs",
|
|
"genisoimage", or "genisofs".
|
|
.br
|
|
This command mode can be left by argument "\-\-" which leads
|
|
to generic xorriso command mode. See \fBman xorriso\fR for its description.
|
|
.br
|
|
.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.
|
|
.br
|
|
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.
|
|
.br
|
|
Nevertheless \fBxorrisofs\fR 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.
|
|
.SS
|
|
.br
|
|
.SH OPTIONS
|
|
.br
|
|
.PP
|
|
.TP
|
|
.B Image loading:
|
|
.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.
|
|
.TP
|
|
\fB\-M\fR disk_path
|
|
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.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-prev-session\fR disk_path
|
|
Alias of \-M.
|
|
.TP
|
|
\fB\-dev\fR disk_path
|
|
Alias of \-M.
|
|
.TP
|
|
\fB\-C\fR last_session_start,next_writeable_address
|
|
Set the 2 KiB block address last_session_start from where to read the
|
|
ISO image out of the file given by option \-M.
|
|
.br
|
|
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.
|
|
.br
|
|
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.
|
|
.br
|
|
values=$(xorriso \-as cdrecord dev=/dev/... \-msinfo)
|
|
.br
|
|
echo $values
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-cdrecord-params\fR last_session_start,next_writeable_address
|
|
Alias of \-C.
|
|
.TP
|
|
.B Settings for file insertion:
|
|
.TP
|
|
\fB\-path-list\fR disk_path
|
|
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.
|
|
.TP
|
|
\fB--quoted_path_list\fR disk_path
|
|
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.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-cut_out\fR disk_path byte_offset byte_count iso_rr_path
|
|
Map a byte interval of a regular disk file or of a device file into a regular
|
|
file in the ISO image. The file depicted by disk_path has to support random
|
|
read access.
|
|
.br
|
|
byte_offset and byte_count may be plain numbers counting bytes, or numbers
|
|
with appended letter "d", "s", "k", "m", "g" to count disk blocks (512 bytes),
|
|
disc sectors (2048 bytes), KiB (1024 bytes), MiB (1024 KiB), or GiB (1024 MiB).
|
|
.br
|
|
E.g:
|
|
.br
|
|
\-cut_out bootable.iso 562s 18s /formerly_hidden_boot_image
|
|
.TP
|
|
\fB\-f\fR
|
|
.br
|
|
Resolve symbolic links on disk rather than storing them as symbolic
|
|
links in the ISO image.
|
|
.TP
|
|
\fB\-follow-links\fR
|
|
Alias of \-f.
|
|
.TP
|
|
\fB\-graft-points\fR
|
|
Enable interpretation of input file pathspecs as combination of iso_rr_path
|
|
and disk_path, separated by a =\-character.
|
|
.TP
|
|
\fB\-m\fR disk_pattern
|
|
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.
|
|
.br
|
|
It is possible to give more than one \-m option.
|
|
.TP
|
|
\fB\-exclude\fR
|
|
Alias of \-m.
|
|
.TP
|
|
\fB\-x\fR
|
|
.br
|
|
Alias of \-m.
|
|
.TP
|
|
\fB\-old-exclude\fR
|
|
Alias of \-m.
|
|
.TP
|
|
\fB\-exclude-list\fR disk_path
|
|
Perform \-m using each line out of file disk_path as argument disk_pattern.
|
|
.TP
|
|
\fB\-z\fR
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-transparent-compression\fR
|
|
Alias of \-z.
|
|
.TP
|
|
\fB\--zisofs-version-2\fR
|
|
.br
|
|
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
|
|
.br
|
|
isofs: Unknown ZF compression algorithm: PZ
|
|
.br
|
|
This complaint can be prevented by option \-\-zisofs2\-susp\-z2 .
|
|
.br
|
|
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.
|
|
.br
|
|
\-\-zisofs\-version\-2 also enables \-z.
|
|
.TP
|
|
\fB\--zisofs2-susp-z2\fR
|
|
Enable the production of SUSP entries "Z2" instead of "ZF" with zisofs2
|
|
compressed files. Unaware Linux kernels silently ignore "Z2" entries.
|
|
.TP
|
|
\fB\--zisofs2-susp-zf\fR
|
|
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.
|
|
.TP
|
|
\fB\-root\fR iso_rr_path
|
|
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.
|
|
.br
|
|
The default for \-root is "/".
|
|
.TP
|
|
\fB\-old-root\fR iso_rr_path
|
|
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.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB--old-root-no-ino\fR
|
|
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.
|
|
.br
|
|
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 \-\-old\-root\-devno
|
|
or disable the inode number shortcut by \-\-old\-root\-no\-ino.
|
|
.TP
|
|
\fB--old-root-devno\fR
|
|
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.
|
|
.TP
|
|
\fB--old-root-no-md5\fR
|
|
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.
|
|
.TP
|
|
.B Settings for image production:
|
|
.TP
|
|
\fB\-o\fR disk_path
|
|
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.
|
|
.br
|
|
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.
|
|
.br
|
|
Default is standard output (/dev/fd/1) which may also be set by disk_path "\-".
|
|
.TP
|
|
\fB\-output\fR disk_path
|
|
Alias of \-o.
|
|
.TP
|
|
\fB--stdio_sync\fR "on"|"off"|"end"|number
|
|
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.
|
|
.br
|
|
The default with xorriso mkisofs emulation is \-\-stdio_sync "off".
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB--emul-toc\fR
|
|
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.
|
|
.br
|
|
The price is 64 KiB extra space consumption. If \-partition_offset is non\-zero,
|
|
then it is 128 KiB plus twice the partition offset.
|
|
.TP
|
|
\fB--no-emul-toc\fR
|
|
Do not write a second superblock with the first session into random\-access
|
|
files.
|
|
.br
|
|
This is the default.
|
|
.TP
|
|
\fB--sort-weight\fR weight_number iso_rr_path
|
|
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.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB--sort-weight-list\fR disk_path
|
|
Read pairs of weight number and iso_rr_path from a file of the
|
|
local filesystem. Apply each pair like with \-\-sort\-weight.
|
|
.br
|
|
Only the last \-\-sort\-weight\-list or
|
|
\-\-sort\-weight\-patterns of a xorrisofs run gets into effect.
|
|
.br
|
|
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.
|
|
.br
|
|
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):
|
|
.br
|
|
The addressed files must already be in the ISO image model when you execute
|
|
.br
|
|
\-as mkisofs \-\-sort\-weight\-list disk_path \-\-
|
|
.br
|
|
Several such commands may be used to apply more than one weight file.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB--sort-weight-patterns\fR disk_path
|
|
Like \-\-sort\-weight\-list , but expanding the iso_rr_paths as
|
|
shell parser patterns and applying \-\-sort\-weight to each
|
|
matching file.
|
|
.TP
|
|
\fB\-uid\fR number|name
|
|
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.
|
|
.TP
|
|
\fB\-gid\fR number|name
|
|
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.
|
|
.TP
|
|
\fB\-dir-mode\fR 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
|
|
.TP
|
|
\fB\-file-mode\fR mode
|
|
Like \-dir\-mode but for all regular data files in the image.
|
|
.TP
|
|
\fB\-pad\fR
|
|
.br
|
|
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.
|
|
.br
|
|
Option \-pad is the default.
|
|
.TP
|
|
\fB\-no-pad\fR
|
|
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.
|
|
.TP
|
|
\fB--old-empty\fR
|
|
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.
|
|
.TP
|
|
.B Settings for standards compliance:
|
|
.TP
|
|
\fB\-iso-level\fR number
|
|
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:
|
|
.br
|
|
Level 1 allows ISO names of the form 8.3 and file size up to 4 GiB \- 1.
|
|
.br
|
|
Level 2 allows ISO names with up to 32 characters
|
|
and file size up to 4 GiB \- 1.
|
|
.br
|
|
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.)
|
|
.br
|
|
Pseudo\-level 4 enables production of an additional directory tree beginning at
|
|
an Enhanced Volume Descriptor (aka ISO 9660:1999) as of ECMA\-119 4th Edition.
|
|
.TP
|
|
\fB\-disallow_dir_id_ext\fR
|
|
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.
|
|
.TP
|
|
\fB\-U\fR
|
|
.br
|
|
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.
|
|
.br
|
|
This all violates ISO 9660 specs.
|
|
.TP
|
|
\fB\-untranslated-filenames\fR
|
|
Alias of \-U.
|
|
.TP
|
|
\fB\-untranslated_name_len\fR number
|
|
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.
|
|
.br
|
|
This violates ISO 9660 specs.
|
|
.TP
|
|
\fB\-allow-lowercase\fR
|
|
Allow lowercase character in ISO file names.
|
|
.br
|
|
This violates ISO 9660 specs.
|
|
.TP
|
|
\fB\-relaxed-filenames\fR
|
|
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.
|
|
.br
|
|
This violates ISO 9660 specs.
|
|
.TP
|
|
\fB\-d\fR
|
|
.br
|
|
Do not add trailing dot to ISO file names without dot.
|
|
.br
|
|
This violates ISO 9660 specs.
|
|
.TP
|
|
\fB\-omit-period\fR
|
|
Alias of \-d.
|
|
.TP
|
|
\fB\-l\fR
|
|
.br
|
|
Allow up to 31 characters in ISO file names.
|
|
.TP
|
|
\fB\-full-iso9660-filenames\fR
|
|
Alias of \-l.
|
|
.TP
|
|
\fB\-max-iso9660-filenames\fR
|
|
Allow up to 37 characters in ISO file names.
|
|
.br
|
|
This violates ISO 9660 specs.
|
|
.TP
|
|
\fB\-N\fR
|
|
.br
|
|
Omit the semicolon and the version numbers at the end of ISO names.
|
|
.br
|
|
This violates ISO 9660 specs.
|
|
.TP
|
|
\fB\-omit-version-number\fR
|
|
Alias of \-N.
|
|
.TP
|
|
.B Settings for standards extensions:
|
|
.TP
|
|
\fB\-R\fR
|
|
.br
|
|
With mkisofs this option enables Rock Ridge extensions. \fBxorrisofs\fR
|
|
produces them by default. It is strongly discouraged to disable them
|
|
by option \-\-norock.
|
|
.TP
|
|
\fB\-rock\fR
|
|
.br
|
|
Alias of \-R.
|
|
.TP
|
|
\fB\-r\fR
|
|
.br
|
|
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.
|
|
.br
|
|
These attribute changes stay delayed until mkisofs emulation ends. Within the
|
|
same \-as mkisofs emulation command they can be revoked by a subsequent
|
|
option \-\-norock. For compatibility reasons, option \-R does not
|
|
revoke the changes ordered by \-r.
|
|
.TP
|
|
\fB\-rational-rock\fR
|
|
Alias of \-r.
|
|
.TP
|
|
\fB--norock\fR
|
|
.br
|
|
This option disables the production of Rock Ridge extensions for the
|
|
ISO 9660 file objects. The multi\-session capabilities of \fBxorrisofs\fR
|
|
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:
|
|
\-\-norock \-R
|
|
.TP
|
|
\fB--set_all_file_dates\fR timestring
|
|
Set mtime, atime, and ctime of all files and directories to the given time.
|
|
.br
|
|
Valid timestring formats are: 'Nov 8 14:51:13 CET 2007', 110814512007.13,
|
|
2007110814511300. See also \-\-modification\-date= and man xorriso,
|
|
Examples of input timestrings.
|
|
.br
|
|
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.
|
|
.br
|
|
These actions stay delayed until actual ISO production begins.
|
|
Up to then they can be revoked by \-\-set_all_file_dates
|
|
with empty timestring or timestring "default".
|
|
.br
|
|
The timestamps of the El Torito boot catalog file get refreshed when the ISO
|
|
is produced. They can be influenced by \-\-modification\-date=.
|
|
.TP
|
|
\fB\-file_name_limit\fR number
|
|
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 '_'.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-D\fR
|
|
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.
|
|
.br
|
|
Option \-D disables this deep directory relocation, and thus violates
|
|
ISO 9660 specs.
|
|
.br
|
|
xorrisofs has \-D set by default. If given explicitly then it overrides
|
|
the options \-rr_reloc_dir and \-hide\-rr\-moved.
|
|
.TP
|
|
\fB\-disable-deep-relocation\fR
|
|
Alias of \-D.
|
|
.TP
|
|
\fB\-rr_reloc_dir\fR name
|
|
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.
|
|
.br
|
|
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.
|
|
.br
|
|
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.
|
|
.br
|
|
The name must not contain a '/' character after its first character and it
|
|
must not be longer than 255 bytes.
|
|
.br
|
|
This option has no effect if option \-D is present.
|
|
.TP
|
|
\fB\-hide-rr-moved\fR
|
|
Alias of \-rr_reloc_dir "/.rr_moved"
|
|
.TP
|
|
\fB--for_backup\fR
|
|
Enable all options which improve backup fidelity:
|
|
.br
|
|
\-\-acl, \-\-xattr\-any, \-\-md5,
|
|
\-\-hardlinks, \-\-projid,
|
|
and possibly \-\-lfa_flags.
|
|
.br
|
|
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.
|
|
.br
|
|
Option \-\-xattr after option \-\-for_backup excludes
|
|
non\-user attributes from being recorded.
|
|
.br
|
|
Option \-\-for_backup enables \-\-lfa_flags only if
|
|
the underlying libisofs was compiled with support for Linux file attributes,
|
|
which is typically not the case on non\-Linux systems.
|
|
.TP
|
|
\fB--acl\fR
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB--xattr\fR
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB--xattr-any\fR
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB--lfa_flags\fR
|
|
.br
|
|
Enable recording and loading of Linux file attributes as described in
|
|
man 1 chattr.
|
|
.br
|
|
Disable restoring of such attributes just in case that the mkisofs emulation
|
|
gets ended and files get restored to disk. If restoring of the attributes is
|
|
desired in this case, execute xorriso command \-lfa_flags "restore" with
|
|
possibly appended mode texts like ":restore_mask=aAcdDijmPsStTux".
|
|
.TP
|
|
\fB--projid\fR
|
|
Enable recording and loading of XFS\-style project ids as described in
|
|
man 5 xfs_quota or man 5 ext4.
|
|
.TP
|
|
\fB--md5\fR
|
|
.br
|
|
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:
|
|
.br
|
|
\-find / \-exec get_md5
|
|
.TP
|
|
\fB--hardlinks\fR
|
|
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.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB--scdbackup_tag\fR disk_path record_name
|
|
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.
|
|
.br
|
|
Program scdbackup_verify will recognize and verify tag and file record.
|
|
.br
|
|
An empty record_name disables this feature.
|
|
.TP
|
|
\fB\-J\fR
|
|
.br
|
|
Enable the production of an additional Joliet directory tree along
|
|
with the ISO 9660 Rock Ridge tree.
|
|
.TP
|
|
\fB\-joliet\fR
|
|
Alias of \-J.
|
|
.TP
|
|
\fB\-joliet-long\fR
|
|
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.
|
|
.br
|
|
Oversized names get truncated. Without this option, oversized paths get
|
|
excluded from the Joliet tree.
|
|
.TP
|
|
\fB\-joliet-utf16\fR
|
|
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.
|
|
.TP
|
|
\fB\-hfsplus\fR
|
|
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.
|
|
.br
|
|
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.
|
|
.br
|
|
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.
|
|
.br
|
|
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_...".
|
|
.br
|
|
WARNING:
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-hfsplus-serial-no\fR
|
|
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.
|
|
.TP
|
|
\fB\-hfsplus-block-size\fR number
|
|
Set the allocation block size to
|
|
be used when producing HFS+ filesystems. Permissible are 512, 2048, or 0.
|
|
The latter lets the program decide.
|
|
.TP
|
|
\fB\-apm-block-size\fR number
|
|
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.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-hfsplus-file-creator-type\fR creator type iso_rr_path
|
|
Set the HFS+ creator and type attributes of a file in the emerging image.
|
|
These are two codes of 4 characters each.
|
|
.TP
|
|
\fB\-hfs-bless-by\fR blessing iso_rr_path
|
|
Issue a HFS+ blessing. They are roles which can be attributed to
|
|
up to four directories and a data file:
|
|
.br
|
|
"ppc_bootdir", "intel_bootfile", "show_folder", "os9_folder", "osx_folder".
|
|
.br
|
|
They may be abbreviated as "p", "i", "s", "9", and "x".
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-hfs-bless\fR disk_path
|
|
Issue HFS+ blessing "ppc_bootdir" to the directory which stems from the
|
|
directory disk_path in the local filesystem tree.
|
|
.br
|
|
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.
|
|
.TP
|
|
.B Settings for file hiding:
|
|
.TP
|
|
\fB\-hide\fR disk_path_pattern
|
|
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.
|
|
.br
|
|
This command does not apply to the boot catalog.
|
|
.TP
|
|
\fB\-hide-list\fR disk_path
|
|
Perform \-hide using each line out of file disk_path as argument
|
|
disk_path_pattern.
|
|
.TP
|
|
\fB\-hide-joliet\fR disk_path_pattern
|
|
Like option \-hide but making files invisible in the directory tree of Joliet,
|
|
if their disk_path matches the given shell parser pattern.
|
|
.TP
|
|
\fB\-hide-joliet-list\fR disk_path
|
|
Perform \-hide\-joliet using each line out of file disk_path as argument
|
|
disk_path_pattern.
|
|
.TP
|
|
\fB\-hide-hfsplus\fR disk_path_pattern
|
|
Like option \-hide but making files invisible in the directory tree of HFS+,
|
|
if their disk_path matches the given shell parser pattern.
|
|
.TP
|
|
\fB\-hide-hfsplus-list\fR disk_path
|
|
Perform \-hide\-hfsplus using each line out of file disk_path as argument
|
|
disk_path_pattern.
|
|
.TP
|
|
\fB\-hide_iso_path\fR hide_state iso_rr_path
|
|
Prevent the name of the given file from showing up in the directory trees
|
|
of ISO 9660 and/or Joliet and/or HFS+ when the image gets written.
|
|
Other than the above hide options, this one takes the path of a file
|
|
in the emerging ISO filesystem, not the path of a file on hard disk.
|
|
.br
|
|
Possible values of hide_state are: "iso_rr" for hiding from ISO 9660 tree,
|
|
"joliet" for Joliet tree, "hfsplus" for HFS+, "on" for them all.
|
|
"off" means visibility in all directory trees.
|
|
.br
|
|
These values may be combined.
|
|
E.g.: joliet:hfsplus
|
|
.br
|
|
This command does not apply to the boot catalog.
|
|
Rather use: \-\-boot\-catalog\-hide
|
|
.TP
|
|
.B ISO image ID strings:
|
|
.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.
|
|
.TP
|
|
\fB\-V\fR text
|
|
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:
|
|
.br
|
|
Conformant are ASCII characters out of [A\-Z0\-9_]. Like: "IMAGE_23"
|
|
.br
|
|
Joliet allows 16 UCS\-2 characters. Like: "Windows name"
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-volid\fR text
|
|
Alias of \-V.
|
|
.TP
|
|
\fB\-volset\fR text
|
|
Set the Volume Set Id of the ISO image.
|
|
Permissible are up to 128 characters.
|
|
.TP
|
|
\fB\-P\fR text
|
|
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.
|
|
.TP
|
|
\fB\-publisher\fR text
|
|
Alias of \-P.
|
|
.TP
|
|
\fB\-A\fR text
|
|
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.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-appid\fR text
|
|
Alias of \-A.
|
|
.TP
|
|
\fB\-sysid\fR text
|
|
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.
|
|
.TP
|
|
\fB\-p\fR text
|
|
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.
|
|
.br
|
|
The special text "@xorriso@" gets converted to the id string of xorriso
|
|
which is default at program startup.
|
|
.TP
|
|
\fB\-preparer\fR text
|
|
Alias of \-p.
|
|
.TP
|
|
\fB\-abstract\fR iso_path
|
|
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.
|
|
.TP
|
|
\fB\-biblio\fR iso_path
|
|
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.
|
|
.TP
|
|
\fB\-copyright\fR iso_path
|
|
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.
|
|
.TP
|
|
\fB--modification-date=YYYYMMDDhhmmsscc\fR
|
|
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:
|
|
.br
|
|
search \-\-fs\-uuid \-\-set YYYY\-MM\-DD\-hh\-mm\-ss\-cc
|
|
.br
|
|
E.g. 2010040711405800 is 7 Apr 2010 11:40:58 (+0 centiseconds).
|
|
.br
|
|
Among the influenced timestamps are:
|
|
isohybrid MBR id, El Torito boot catalog file, HFS+ superblock.
|
|
.TP
|
|
\fB--application_use\fR character|0xXY|disk_path
|
|
Specify the content of the Application Use field which can take at most
|
|
512 bytes.
|
|
.br
|
|
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.
|
|
.br
|
|
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.
|
|
.TP
|
|
.B El Torito Bootable ISO images:
|
|
.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.
|
|
\fBxorrisofs\fR 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.
|
|
.br
|
|
.PP
|
|
An \fBEl Torito\fR
|
|
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.
|
|
.br
|
|
xorriso composes the boot catalog according to the boot image
|
|
files given and structured by options \-b, \-e, \-eltorito\-alt\-boot,
|
|
and \-\-efi\-boot. Often it contains only one entry.
|
|
.br
|
|
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.:
|
|
.br
|
|
\-append_partition 2 0xef /tmp/efi.img
|
|
.br
|
|
\-e \-\-interval:appended_partition_2:all::
|
|
.br
|
|
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.
|
|
.br
|
|
\fBxorrisofs\fR supports the example options out of the ISOLINUX wiki,
|
|
the options used in GRUB script grub\-mkrescue, and the example in the
|
|
FreeBSD AvgLiveCD wiki.
|
|
.br
|
|
.PP
|
|
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.
|
|
.br
|
|
.TP
|
|
\fB\-b\fR iso_rr_path
|
|
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.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-eltorito-boot\fR iso_rr_path
|
|
Alias of \-b.
|
|
.TP
|
|
\fB\-eltorito-alt-boot\fR
|
|
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.
|
|
.TP
|
|
\fB\-e\fR iso_rr_path
|
|
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.
|
|
.br
|
|
Option \-e should be followed by option \-no\-emul\-boot and no other El Torito
|
|
options before an eventual \-eltorito\-alt\-boot.
|
|
.TP
|
|
\fB--efi-boot\fR iso_rr_path
|
|
Perform \-eltorito\-alt\-boot, option \-e with the given
|
|
iso_rr_path, \-no\-emul\-boot, and again \-eltorito\-alt\-boot. This gesture is
|
|
used for achieving EFI\-bootability of the GRUB2 rescue CD.
|
|
.TP
|
|
\fB\-eltorito-platform\fR "x86"|"PPC"|"Mac"|"efi"|0xnn|nnn
|
|
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.
|
|
.br
|
|
If the new platform id differs from the previous one, \-eltorito\-alt\-boot
|
|
gets performed.
|
|
.TP
|
|
\fB\-boot-load-size\fR number|"full"
|
|
Set the number of 512\-byte blocks to be loaded at boot time
|
|
from the boot image in the current catalog entry.
|
|
.br
|
|
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.
|
|
.br
|
|
EFI boot images usually get set the number of blocks occupied
|
|
by the boot image file.
|
|
.br
|
|
El Torito cannot represent load sizes higher than 65535.
|
|
.TP
|
|
\fB\-hard-disk-boot\fR
|
|
Mark the boot image in the current catalog entry as emulated hard disk.
|
|
(Not suitable for any known boot loader.)
|
|
.TP
|
|
\fB\-no-emul-boot\fR
|
|
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.)
|
|
.br
|
|
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.)
|
|
.TP
|
|
\fB\-eltorito-id\fR text|56_hexdigits
|
|
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.
|
|
.TP
|
|
\fB\-eltorito-selcrit\fR hexdigits
|
|
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.
|
|
.TP
|
|
\fB\-boot-info-table\fR
|
|
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.
|
|
.TP
|
|
\fB--grub2-boot-info\fR
|
|
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.
|
|
.TP
|
|
\fB\-c\fR iso_rr_path
|
|
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.
|
|
.TP
|
|
\fB\-eltorito-catalog\fR iso_rr_path
|
|
Alias of \-c.
|
|
.TP
|
|
\fB--boot-catalog-hide\fR
|
|
Prevent the El Torito boot catalog from appearing as file
|
|
in the directory trees of the image.
|
|
.TP
|
|
.B System Area, MBR, GPT, APM, other boot blocks:
|
|
.PP
|
|
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.
|
|
.br
|
|
A \fBMBR\fR (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.
|
|
.br
|
|
A \fBGPT\fR (GUID Partition Table) marks partitions in a more modern way.
|
|
It is read by EFI when booting from USB stick or hard disk, and may be used
|
|
for finding and mounting a HFS+ partition inside the ISO image.
|
|
.br
|
|
An \fBAPM\fR (Apple Partition Map) marks the HFS+ partition.
|
|
It is read by Macs for booting and for mounting.
|
|
.br
|
|
MBR, GPT and APM are combinable. APM occupies the first 8 bytes of
|
|
MBR boot code. All three do not hamper El Torito booting from CDROM.
|
|
.br
|
|
\fBxorrisofs\fR 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.
|
|
.PP
|
|
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, \-\-embedded\-boot, \-\-grub2\-mbr,
|
|
\-isohybrid\-mbr, \-efi\-boot\-part, \-prep\-boot\-part, \-B, \-sparc\-boot,
|
|
\-append_partition.
|
|
.br
|
|
The description string consists
|
|
of the following components, separated by colon ':'
|
|
.br
|
|
"\-\-interval:"Flags":"Interval":"Zeroizers":"Source
|
|
.br
|
|
The component "\-\-interval" states that this is not
|
|
a plain disk path but rather a interval reader description string.
|
|
.br
|
|
The component Flags modifies the further interpretation:
|
|
.br
|
|
"local_fs" demands to read from a file depicted by the path in Source.
|
|
.br
|
|
"imported_iso" demands to read from the \-indev. This works only if \-outdev
|
|
is not the same as \-indev. The Source component is ignored.
|
|
.br
|
|
"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.
|
|
.br
|
|
The component Interval consists of two byte address numbers separated by a "\-" character. E.g. "0\-429" means to read bytes 0 to 429.
|
|
.br
|
|
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:
|
|
.br
|
|
"zero_mbrpt" demands to zeroize the MBR partition table if
|
|
bytes 510 and 511 bear the MBR signature 0x55 0xaa.
|
|
.br
|
|
"zero_gpt" demands to check for a GPT header in bytes 512 to 1023,
|
|
to zeroize it and its partition table blocks.
|
|
.br
|
|
"zero_apm" demands to check for an APM block 0 and to zeroize
|
|
its partition table blocks.
|
|
.br
|
|
Start_byte"\-"End_byte demands to zeroize the read\-in bytes beginning
|
|
with number Start_byte and ending after End_byte.
|
|
.br
|
|
The component Source is the file path with flag "local_fs", and ignored with
|
|
flag "imported_iso".
|
|
.br
|
|
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.
|
|
.br
|
|
E.g. "0d\-0d" is "0\-511".
|
|
.br
|
|
Examples:
|
|
.br
|
|
"local_fs:0\-32767:zero_mbrpt,zero_gpt,440\-443:/tmp/template.iso"
|
|
.br
|
|
"imported_iso:45056d\-47103d::"
|
|
.br
|
|
.TP
|
|
\fB\-G\fR disk_path
|
|
Copy at most 32768 bytes from the given disk file to the very start of
|
|
the ISO image.
|
|
.br
|
|
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.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-generic-boot\fR disk_path
|
|
Alias of \-G.
|
|
.TP
|
|
\fB--embedded-boot\fR disk_path
|
|
Alias of \-G.
|
|
.TP
|
|
\fB--grub2-mbr\fR disk_path
|
|
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.
|
|
.TP
|
|
\fB\-isohybrid-mbr\fR disk_path
|
|
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.
|
|
.br
|
|
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.
|
|
.br
|
|
For the meaning of special disk_path "." see option \-G.
|
|
.TP
|
|
\fB\-isohybrid-gpt-basdat\fR
|
|
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.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-isohybrid-gpt-hfsplus\fR
|
|
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.
|
|
.TP
|
|
\fB\-isohybrid-apm-hfsplus\fR
|
|
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.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-part_like_isohybrid\fR
|
|
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.
|
|
.TP
|
|
\fB\-iso_mbr_part_type\fR "default"|number|type_guid
|
|
Set the partition type
|
|
of the MBR or GPT partition which represents the ISO or at least protects it.
|
|
.br
|
|
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.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB--protective-msdos-label\fR
|
|
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.
|
|
.TP
|
|
\fB--mbr-force-bootable\fR
|
|
Enforce an MBR partition with "bootable/active" flag if options like
|
|
\-\-protective\-msdos\-label or \-\-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
|
|
\-\-mbr\-force\-bootable forces creation of a dummy partition
|
|
of type 0x00 which covers only the first block of the ISO image.
|
|
.br
|
|
If no bootable MBR is indicated by other options and a partition gets created
|
|
by \-append_partition, then \-\-mbr\-force\-bootable causes a
|
|
bootflag like it would do with e.g. \-\-protective\-msdos\-label.
|
|
.TP
|
|
\fB--gpt-iso-bootable\fR
|
|
Set bit 2 of the GPT partition flags for the ISO 9660 partition if such a GPT
|
|
partition emerges. This bit is specified as "Legacy BIOS bootable" but its
|
|
true significance is unclear.
|
|
Some GPT\-aware BIOS might want to see it in some partition.
|
|
.TP
|
|
\fB--gpt-iso-not-ro\fR
|
|
Do not set bit 60 of the GPT partition flags for the ISO 9660 partition if such
|
|
a GPT partition emerges. This bit is specified as "Read\-only" and thus
|
|
appropriate. But it is unusual in GPT disk partitions.
|
|
.TP
|
|
\fB\-partition_offset\fR 2kb_block_adr
|
|
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.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-partition_hd_cyl\fR number
|
|
Set the number of heads per cylinder for the MBR partition table.
|
|
0 chooses a default value. Maximum is 255.
|
|
.TP
|
|
\fB\-partition_sec_hd\fR number
|
|
Set the number of sectors per head for the MBR partition table.
|
|
0 chooses a default value. Maximum is 63.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-partition_cyl_align\fR mode
|
|
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.
|
|
.br
|
|
Mode "auto" is default. Alignment by padding happens only if
|
|
option \-isohybrid\-mbr is given.
|
|
.br
|
|
Mode "on" causes alignment by padding with option
|
|
\-\-protective\-msdos\-label too.
|
|
Mode "all" is like "on" but also pads up partitions from \-append_partition
|
|
to an aligned size.
|
|
.br
|
|
Mode "off" disables alignment unconditionally.
|
|
.TP
|
|
\fB\-append_partition\fR partition_number type_code disk_path
|
|
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.
|
|
.br
|
|
Beware of subsequent multi\-session runs. The appended partition will get
|
|
overwritten.
|
|
.br
|
|
With \fBMBR\fR:
|
|
.br
|
|
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.
|
|
.br
|
|
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.
|
|
.br
|
|
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".
|
|
.br
|
|
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.
|
|
.br
|
|
\fBGPT\fR can be forced by option \-appended_part_as_gpt.
|
|
.br
|
|
partition_number may be 1 to 8. But other than with MBR partitions it is not
|
|
guaranteed that the resulting GPT partition will have this number, because
|
|
it might get occupied by a partition entry which fills a gap in the coverage
|
|
of the whole emerging image.
|
|
.br
|
|
The chance to get the desired partition number is increased much by
|
|
option \-appended_gpt_with_gaps.
|
|
.br
|
|
The type_code may be the same as described with MBR. Given GUIDs are used
|
|
unchanged. Given MBR partition types get translated. 0xef becomes
|
|
C12A7328\-F81F\-11D2\-BA4B\-00A0C93EC93B, others become
|
|
EBD0A0A2\-B9E5\-4433\-87C0\-68B6B72699C7.
|
|
.br
|
|
.TP
|
|
\fB\-appended_part_as_gpt\fR
|
|
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.
|
|
.br
|
|
By default, appended partitions get marked in GPT only if GPT is produced
|
|
because of other options.
|
|
.br
|
|
This option raises the maximum number of appended partitions from 4 to 8.
|
|
But it is not guaranteed that the resulting GPT partition will have the
|
|
given partition_number. Other GPT partitions may emerge. The final sorting by
|
|
start block address may put one of them in the partition entry with the desired
|
|
number, so that the appended partition will get a higher number.
|
|
.br
|
|
Given MBR partition types get translated.
|
|
0xef becomes C12A7328\-F81F\-11D2\-BA4B\-00A0C93EC93B, others become
|
|
EBD0A0A2\-B9E5\-4433\-87C0\-68B6B72699C7.
|
|
.TP
|
|
\fB\-appended_part_as_apm\fR
|
|
Marks partitions from \-append_partition in Apple Partition Map, too.
|
|
The partition number in APM will not be influenced by \-append_partition
|
|
parameter partition_number.
|
|
.br
|
|
By default, appended partitions get marked in APM only if APM is produced
|
|
because of other options and \-part_like_isohybrid is enabled.
|
|
.TP
|
|
\fB\-appended_gpt_with_gaps\fR
|
|
Possibly leave some parts of the resulting image unclaimed by partitions in
|
|
the emerging GPT in order to increase he chance to get in GPT the
|
|
partition numbers given with option \-append_partition.
|
|
.br
|
|
The ISO 9660 filesystem gets marked by a GPT partition
|
|
only if none of the appended partitions has partition number 1,
|
|
and if no other command causes a partition inside the emerging ISO 9660
|
|
filesystem, and if \-partition_offset is 16.
|
|
.br
|
|
If this option is not given, then gap filling partitions will be inserted
|
|
so that no part of the emerging image after block 16 is unclaimed by GPT
|
|
partitions. This happens only if partitions get appended and a valid GPT
|
|
emerges, e.g. by option \-appended_part_as_gpt.
|
|
Commands which produce isohybrid\-style invalid GPT disable gap filling.
|
|
.TP
|
|
\fB\-efi-boot-part\fR disk_path
|
|
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.
|
|
.br
|
|
Instead of a disk_path, the word \-\-efi\-boot\-image may be given.
|
|
It exposes in GPT the content of the first El Torito EFI boot image as
|
|
EFI system partition. EFI boot images are introduced by options \-e or
|
|
\-\-efi\-boot.
|
|
The affected EFI boot image cannot show up in HFS+ because it is stored
|
|
outside the HFS+ partition.
|
|
.TP
|
|
\fB--gpt_disk_guid\fR value
|
|
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 \-\-modification\-date=.
|
|
.br
|
|
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:
|
|
.br
|
|
E.g. \-\-gpt_disk_guid 2303cd2a\-73c7\-424a\-a298\-25632da7f446
|
|
equals \-\-gpt_disk_guid 2acd0323c7734a42a29825632da7f446
|
|
.br
|
|
The partition GUIDs get generated by minimally varying the disk GUID.
|
|
.TP
|
|
\fB\-chrp-boot-part\fR
|
|
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.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-chrp-boot\fR
|
|
Alias of \-chrp\-boot\-part.
|
|
.TP
|
|
\fB\-prep-boot-part\fR disk_path
|
|
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.
|
|
.TP
|
|
\fB\-mips-boot\fR iso_rr_path
|
|
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.
|
|
.TP
|
|
\fB\-mipsel-boot\fR iso_rr_path
|
|
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.
|
|
.TP
|
|
\fB\-B\fR disk_path[,disk_path ...]
|
|
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.
|
|
.br
|
|
The disk files should contain suitable boot images for SUN SPARC systems.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-sparc-boot\fR disk_path[,disk_path ...]
|
|
Alias of \-B.
|
|
.TP
|
|
\fB\-sparc-label\fR text
|
|
Set the ASCII label text of a SUN Disk Label.
|
|
.TP
|
|
\fB--grub2-sparc-core\fR iso_rr_path
|
|
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.
|
|
.TP
|
|
\fB\-hppa-cmdline\fR text
|
|
Set the PALO command line for HP\-PA. Up to 1023 characters are permitted
|
|
by default. With \-hppa\-hdrversion 4 the limit is 127.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-hppa-bootloader\fR iso_rr_path
|
|
Designate the given path as HP\-PA bootloader file.
|
|
.TP
|
|
\fB\-hppa-kernel-32\fR iso_rr_path
|
|
Designate the given path as HP\-PA 32 bit kernel file.
|
|
.TP
|
|
\fB\-hppa-kernel-64\fR iso_rr_path
|
|
Designate the given path as HP\-PA 64 bit kernel file.
|
|
.TP
|
|
\fB\-hppa-ramdisk\fR iso_rr_path
|
|
Designate the given path as HP\-PA RAM disk file.
|
|
.TP
|
|
\fB\-hppa-hdrversion\fR number
|
|
Choose between PALO header version 5 (default) and version 4.
|
|
For the appropriate value see in PALO source code: PALOHDRVERSION.
|
|
.TP
|
|
\fB\-alpha-boot\fR iso_rr_path
|
|
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.
|
|
.TP
|
|
.B Character sets:
|
|
.PP
|
|
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.
|
|
.br
|
|
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.
|
|
.br
|
|
.TP
|
|
\fB\-input-charset\fR character_set_name
|
|
Set the character set from which to convert disk file names when
|
|
inserting them into the ISO image.
|
|
.TP
|
|
\fB\-output-charset\fR character_set_name
|
|
Set the character set from which to convert names of loaded ISO images
|
|
and to which to convert names when writing ISO images.
|
|
.TP
|
|
.B Jigdo Template Extraction:
|
|
.PP
|
|
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."
|
|
.br
|
|
If the use of libjte was enabled at compile time of xorriso, then
|
|
\fBxorrisofs\fR 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.
|
|
.br
|
|
One may determine the ability for Jigdo by:
|
|
.br
|
|
$ xorrisofs \-version 2>&1 | grep '^libjte' && echo YES
|
|
.br
|
|
.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.
|
|
.br
|
|
Input for this process are the normal arguments for a \fBxorrisofs\fR
|
|
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:
|
|
.br
|
|
Checksum as hex digits, 2 blanks, size as 12 decimal digits or blanks, 2 blanks,
|
|
symbolic file address
|
|
.br
|
|
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".
|
|
.br
|
|
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.
|
|
.br
|
|
If the list of jigdo parameters is not empty, then padding will be
|
|
counted as part of the ISO image.
|
|
.br
|
|
.TP
|
|
\fB\-jigdo-checksum-algorithm\fR "md5"|"sha256"
|
|
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".
|
|
.TP
|
|
\fB\-jigdo-jigdo\fR disk_path
|
|
Set the disk_path for the .jigdo file with the checksums
|
|
and download addresses for filling the holes in .template.
|
|
.TP
|
|
\fB\-jigdo-template\fR disk_path
|
|
Set the disk_path for the .template file with the
|
|
holed and compressed ISO image copy.
|
|
.TP
|
|
\fB\-jigdo-min-file-size\fR 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).
|
|
.TP
|
|
\fB\-jigdo-force-checksum\fR disk_path_pattern
|
|
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.
|
|
.TP
|
|
\fB\-jigdo-force-md5\fR disk_path_pattern
|
|
Outdated alias of \-jigdo\-force\-checksum.
|
|
.TP
|
|
\fB\-jigdo-exclude\fR disk_path_pattern
|
|
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.
|
|
.TP
|
|
\fB\-jigdo-map\fR To=From
|
|
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.
|
|
.TP
|
|
\fB\-checksum-list\fR disk_path
|
|
Set the disk_path where to find the checksum file file with
|
|
symbolic file addresses and checksums according to \-jigdo\-checksum\-algorithm.
|
|
.TP
|
|
\fB\-md5-list\fR disk_path
|
|
Outdated alias of \-checksum\-list.
|
|
.TP
|
|
\fB\-jigdo-template-compress\fR "gzip"|"bzip2"
|
|
Choose one of "bzip2" or "gzip" for the compression of
|
|
the template file. The jigdo file is put out uncompressed.
|
|
.TP
|
|
\fB\-checksum_algorithm_iso\fR list_of_names
|
|
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.
|
|
.TP
|
|
\fB\-checksum_algorithm_template\fR list_of_names
|
|
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.
|
|
.TP
|
|
.B Miscellaneous options:
|
|
.TP
|
|
\fB\-genisoimage_completion\fR
|
|
Match unrecognized option arguments which begin by a dash '\-' against the
|
|
known genisoimage options, like program
|
|
genisoimage does unconditionally (and undocumentedly). If the given argument
|
|
matches the beginning of exactly one genisoimage option, then it gets replaced
|
|
by that option. Options which are genuine to mkisofs or xorriso's mkisofs
|
|
emulation are not matched that way.
|
|
Option arguments which consist entirely of a leading dash and letters out of
|
|
"dDfJlNRrTUvz" are not matched but rather interpreted as usual, i.e. as
|
|
multiple options with leading dash and each single letter.
|
|
If no genisoimage option is found or more than one are found, then a SORRY
|
|
message is issued and the argument stays as is.
|
|
.br
|
|
To enable this mode by default, write the xorriso command
|
|
.br
|
|
\-genisoimage_completion on
|
|
.br
|
|
into one of the xorriso start files. See section FILES.
|
|
.TP
|
|
\fB\-print-size\fR
|
|
Print to stdandard output the foreseeable number of 2048 byte blocks in
|
|
the emerging ISO image. Do not produce this image.
|
|
.br
|
|
The result depends on several settings.
|
|
.br
|
|
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.
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB--no_rc\fR
|
|
Only if used as first argument this option
|
|
prevents reading and interpretation of startup files. See section FILES below.
|
|
.TP
|
|
\fB\-help\fR
|
|
.br
|
|
List supported options to stderr. Original mkisofs options bear their
|
|
original mkisofs description texts.
|
|
.TP
|
|
\fB\-quiet\fR
|
|
.br
|
|
Suppress most messages of the program run, except those which indicate
|
|
problems or errors.
|
|
.TP
|
|
\fB\-gui\fR
|
|
.br
|
|
Increase the frequency of pacifier messages while writing an ISO image.
|
|
.TP
|
|
\fB\-log-file\fR disk_path
|
|
.br
|
|
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.
|
|
.TP
|
|
\fB\-v\fR
|
|
.br
|
|
Enable the output of informational program messages.
|
|
.TP
|
|
\fB\-verbose\fR
|
|
Alias of \-v.
|
|
.TP
|
|
\fB\-version\fR
|
|
Print to standard output a text that begins with
|
|
.br
|
|
"mkisofs 2.01\-Emulation Copyright (C)"
|
|
.br
|
|
and to standard error the version information of xorriso.
|
|
.br
|
|
.SH EXAMPLES
|
|
.SS
|
|
.B Overview of examples:
|
|
A simple image production run
|
|
.br
|
|
Set ISO image paths by -graft-points
|
|
.br
|
|
Perform multi-session runs
|
|
.br
|
|
Let xorrisofs work underneath growisofs
|
|
.br
|
|
Incremental backup of a few directory trees
|
|
.br
|
|
Incremental backup with accumulated trees
|
|
.br
|
|
Create bootable images for PC-BIOS and EFI
|
|
.br
|
|
.SS
|
|
.B 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.
|
|
.br
|
|
$ xorrisofs \-r \-J \-o ./image.iso ./for_iso
|
|
.SS
|
|
.B 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.
|
|
.br
|
|
$ xorrisofs ... /home/me/datafile /tmp/directory
|
|
.br
|
|
yields in the ISO image root directory:
|
|
.br
|
|
/datafile
|
|
.br
|
|
/file_1_from_directory
|
|
.br
|
|
...
|
|
.br
|
|
/file_N_from_directory
|
|
.br
|
|
.sp 1
|
|
With option \-graft\-points it is possible to put files and directories to
|
|
arbitrary paths in the ISO image.
|
|
.br
|
|
$ xorrisofs ... \-graft\-points /home/me/datafile /dir=/tmp/directory
|
|
.br
|
|
yields in the ISO image root directory:
|
|
.br
|
|
/datafile
|
|
.br
|
|
/dir
|
|
.br
|
|
Eventually needed parent directories in
|
|
the image will be created automatically:
|
|
.br
|
|
/datafiles/file1=/home/me/datafile
|
|
.br
|
|
yields in the ISO image:
|
|
.br
|
|
/datafiles/file1
|
|
.br
|
|
The attributes of directory /datafiles get copied from /home/me on disk.
|
|
.br
|
|
.sp 1
|
|
Normally one should avoid = and \\ characters in the ISO part of a pathspec.
|
|
But if it must be, one may escape them:
|
|
.br
|
|
/with_\\=_and_\\\\/file=/tmp/directory/file
|
|
.br
|
|
yields in the ISO image:
|
|
.br
|
|
/with_=_and_\\/file
|
|
.SS
|
|
.B 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 \-\-grow_overwriteable_iso
|
|
to all \-as cdrecord runs
|
|
in order to enable multi\-session emulation on overwritable media.
|
|
.br
|
|
The first session is written like this:
|
|
.br
|
|
$ xorrisofs \-graft\-points \\
|
|
.br
|
|
/tree1=prepared_for_iso/tree1 \\
|
|
.br
|
|
| xorriso \-as cdrecord \-v dev=/dev/sr0 blank=fast \-multi \-eject \-
|
|
.br
|
|
Follow\-up sessions are written like this (the run of dd is only to give demons
|
|
a chance to spoil it):
|
|
.br
|
|
$ m=$(xorriso \-as cdrecord dev=/dev/sr0 \-msinfo)
|
|
.br
|
|
$ dd if=/dev/sr0 count=1 >/dev/null 2>&1
|
|
.br
|
|
$ xorrisofs \-M /dev/sr0 \-C $m \-graft\-points \\
|
|
.br
|
|
/tree2=prepared_for_iso/tree2 \\
|
|
.br
|
|
| xorriso \-as cdrecord \-v dev=/dev/sr0 \-waiti \-multi \-eject \-
|
|
.br
|
|
Always eject the drive tray between sessions.
|
|
.br
|
|
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.
|
|
.br
|
|
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.
|
|
.br
|
|
When loading the tray manually, wait 10 seconds after the drive has stopped
|
|
blinking.
|
|
.br
|
|
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.
|
|
.SS
|
|
.B Let xorrisofs 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.
|
|
.br
|
|
$ export MKISOFS="xorrisofs"
|
|
.br
|
|
$ growisofs \-Z /dev/dvd /some/files
|
|
.br
|
|
$ growisofs \-M /dev/dvd /more/files
|
|
.br
|
|
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:
|
|
.br
|
|
$ ln \-s $(which xorriso) "$HOME/xorrisofs"
|
|
.br
|
|
$ export MKISOFS="$HOME/xorrisofs"
|
|
.br
|
|
One may quit mkisofs emulation by argument "\-\-" and make
|
|
use of all xorriso commands. growisofs dislikes options which
|
|
start with "\-o" but \-outdev must be set to "\-".
|
|
So use "outdev" instead:
|
|
.br
|
|
$ growisofs \-Z /dev/dvd \-\-for_backup \-\- \\
|
|
.br
|
|
outdev \- \-update_r /my/files /files
|
|
.br
|
|
$ growisofs \-M /dev/dvd \-\-for_backup \-\- \\
|
|
.br
|
|
outdev \- \-update_r /my/files /files
|
|
.br
|
|
Note that \-\-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.
|
|
.SS
|
|
.B 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.
|
|
.br
|
|
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.
|
|
.br
|
|
.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.
|
|
.br
|
|
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.
|
|
.br
|
|
$ msinfo=$(xorriso \-as cdrecord dev=/dev/sr0 \-msinfo)
|
|
.br
|
|
$ dd if=/dev/sr0 count=1 >/dev/null 2>&1
|
|
.br
|
|
$ load_opts=
|
|
.br
|
|
$ test \-n "$msinfo" && load_opts="\-M /dev/sr0 \-C $msinfo"
|
|
.br
|
|
$ xorrisofs $load_opts \-o \- \-\-for_backup \-m '*.o' \-m '*.swp' \\
|
|
.br
|
|
\-V PROJ_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" \-graft\-points \\
|
|
.br
|
|
\-old\-root / \\
|
|
.br
|
|
/projects=/home/thomas/projects \\
|
|
.br
|
|
/personal_mail=/home/thomas/personal_mail \\
|
|
.br
|
|
| xorriso \-as cdrecord dev=/dev/sr0 \-v \-multi \-waiti \-eject \-
|
|
.br
|
|
.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.
|
|
.br
|
|
.sp 1
|
|
\fBBetter do not use your youngest backup for \-old\-root\fR.
|
|
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.
|
|
.br
|
|
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.
|
|
.br
|
|
.sp 1
|
|
If inode numbers on disk are not persistent, then use
|
|
option \-\-old\-root\-no\-ino .
|
|
In this case an update run will compare recorded MD5
|
|
sums against the current file content on hard disk.
|
|
.br
|
|
.sp 1
|
|
With \fBmount\fR option \fB\-o "sbsector="\fR on GNU/Linux
|
|
or \fB\-s\fR 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=".
|
|
.br
|
|
Multi\-session media and most overwritable media written by xorriso can tell
|
|
the sbsectors of their sessions by xorriso option \-toc:
|
|
.br
|
|
$ xorriso \-dev /dev/sr0 \-toc
|
|
.br
|
|
xorriso can print the matching mount command for a session number:
|
|
.br
|
|
$ xorriso \-mount_cmd /dev/sr0 session 12 /mnt
|
|
.br
|
|
or for a volume id that matches a search expression:
|
|
.br
|
|
$ xorriso \-mount_cmd /dev/sr0 volid '*2008_12_05*' /mnt
|
|
.br
|
|
Both yield on standard output something like:
|
|
.br
|
|
mount \-t iso9660 \-o nodev,noexec,nosuid,ro,sbsector=1460256 '/dev/sr0' '/mnt'
|
|
.br
|
|
The superuser may let xorriso execute the mount command directly:
|
|
.br
|
|
# osirrox \-mount /dev/sr0 "volid" '*2008_12_05*' /mnt
|
|
.SS
|
|
.B 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.
|
|
.br
|
|
This demands to know the previously used session directory name.
|
|
.br
|
|
With the first session:
|
|
.br
|
|
$ xorrisofs \-root /session1 \\
|
|
.br
|
|
\-o \- \-\-for_backup \-m '*.o' \-m '*.swp' \\
|
|
.br
|
|
\-V PROJ_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" \-graft\-points \\
|
|
.br
|
|
/projects=/home/thomas/projects \\
|
|
.br
|
|
/personal_mail=/home/thomas/personal_mail \\
|
|
.br
|
|
| xorriso \-as cdrecord dev=/dev/sr0 \-v blank=as_needed \\
|
|
.br
|
|
\-multi \-waiti \-eject \-
|
|
.br
|
|
.sp 1
|
|
With the second session, option \-old\-root refers to /session1 and the
|
|
new \-root is /session2.
|
|
.br
|
|
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.
|
|
.br
|
|
$ msinfo=$(xorriso \-as cdrecord dev=/dev/sr0 \-msinfo)
|
|
.br
|
|
$ dd if=/dev/sr0 count=1 >/dev/null 2>&1
|
|
.br
|
|
$ load_opts=
|
|
.br
|
|
$ test \-n "$msinfo" && load_opts="\-M /dev/sr0 \-C $msinfo"
|
|
.br
|
|
$ xorrisofs $load_opts \-root /session2 \-old\-root /session1 \\
|
|
.br
|
|
\-o \- \-\-for_backup \-m '*.o' \-m '*.swp' \\
|
|
.br
|
|
\-V PROJ_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" \-graft\-points \\
|
|
.br
|
|
/projects=/home/thomas/projects \\
|
|
.br
|
|
/personal_mail=/home/thomas/personal_mail \\
|
|
.br
|
|
| xorriso \-as cdrecord dev=/dev/sr0 \-v \-multi \-waiti \-eject \-
|
|
.br
|
|
With the third session, option \-old\-root refers to /session2.
|
|
The new \-root is /session3. And so on.
|
|
.SS
|
|
.B 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.
|
|
.br
|
|
The prescribed mkisofs options can be used unchanged with \fBxorrisofs\fR:
|
|
.br
|
|
$ xorrisofs \-o output.iso \\
|
|
.br
|
|
\-b isolinux/isolinux.bin \-c isolinux/boot.cat \\
|
|
.br
|
|
\-no\-emul\-boot \-boot\-load\-size 4 \-boot\-info\-table \\
|
|
.br
|
|
./CD_root
|
|
.br
|
|
Put it on CD by a burn program. E.g.:
|
|
.br
|
|
$ xorriso \-as cdrecord \-v dev=/dev/sr0 blank=as_needed output.iso
|
|
.br
|
|
.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 .
|
|
.br
|
|
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.
|
|
.br
|
|
The image from the following example will be prepared for booting via MBR
|
|
and its first partition will start at hard disk block 64.
|
|
.br
|
|
It will also boot from optical media.
|
|
.br
|
|
$ xorrisofs \-o output.iso \\
|
|
.br
|
|
\-b isolinux/isolinux.bin \-c isolinux/boot.cat \\
|
|
.br
|
|
\-no\-emul\-boot \-boot\-load\-size 4 \-boot\-info\-table \\
|
|
.br
|
|
\-isohybrid\-mbr /usr/lib/syslinux/isohdpfx.bin \\
|
|
.br
|
|
\-partition_offset 16 \\
|
|
.br
|
|
./CD_root
|
|
.br
|
|
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.
|
|
.br
|
|
CAUTION:
|
|
This will overwrite any partitioning on the USB stick and make
|
|
remaining data unaccessible.
|
|
.br
|
|
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:
|
|
.br
|
|
# dd bs=2K if=/dev/sdb count=50K >/dev/null
|
|
.br
|
|
Now copy the image onto it
|
|
.br
|
|
# dd bs=2K if=output.iso of=/dev/sdb
|
|
.br
|
|
.sp 1
|
|
Now for EFI:
|
|
.br
|
|
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.
|
|
.br
|
|
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:
|
|
.br
|
|
\-eltorito\-alt\-boot \-e 'boot/grub/efi.img' \-no\-emul\-boot \\
|
|
.br
|
|
\-isohybrid\-gpt\-basdat \\
|
|
.br
|
|
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:
|
|
.br
|
|
\-eltorito\-alt\-boot \-e 'boot/grub/efi.img' \-no\-emul\-boot \\
|
|
\-append_partition 2 0xef ./CD_root/boot/grub/efi.img \\
|
|
.br
|
|
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.
|
|
.br
|
|
.sp 1
|
|
For ISOs with pure GRUB2 boot equipment consider to use GRUB2 tool
|
|
grub\-mkrescue as frontend to xorrisofs.
|
|
.br
|
|
.sp 1
|
|
If you have a bootable ISO filesystem and want to know its equipment plus
|
|
a proposal how to reproduce it, try:
|
|
.br
|
|
$ 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
|
|
.br
|
|
.br
|
|
.SH FILES
|
|
.SS
|
|
.B Startup files:
|
|
.br
|
|
If not \-\-no_rc is given as the first argument then \fBxorrisofs\fR
|
|
attempts on startup to read and execute lines from the following files:
|
|
.br
|
|
/etc/default/xorriso
|
|
.br
|
|
/etc/opt/xorriso/rc
|
|
.br
|
|
/etc/xorriso/xorriso.conf
|
|
.br
|
|
$HOME/.xorrisorc
|
|
.br
|
|
The files are read in the sequence given here, but none of them is required
|
|
to exist. The lines are not interpreted as \fBxorrisofs\fR options but
|
|
as generic xorriso commands. See man xorriso.
|
|
.PP
|
|
After the xorriso startup files, the program tries one by one to open for
|
|
reading:
|
|
.br
|
|
./.mkisofsrc
|
|
.br
|
|
$MKISOFSRC
|
|
.br
|
|
$HOME/.mkisofsrc
|
|
.br
|
|
$(dirname $0)/.mkisofsrc
|
|
.br
|
|
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.
|
|
.br
|
|
The reader currently interprets the following NAME=VALUE pairs:
|
|
.br
|
|
APPI default for \-A
|
|
.br
|
|
PUBL default for \-publisher
|
|
.br
|
|
SYSI default for \-sysid
|
|
.br
|
|
VOLI default for \-V
|
|
.br
|
|
VOLS default for \-volset
|
|
.br
|
|
Any other lines will be silently ignored.
|
|
.br
|
|
.SH ENVIRONMENT
|
|
The following environment variables influence the program behavior:
|
|
.br
|
|
HOME is used to find xorriso and mkisofs startup files.
|
|
.br
|
|
MKISOFSRC may be used to point the program to a mkisofs startup file.
|
|
.br
|
|
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
|
|
\-\-modification\-date=.
|
|
\-\-gpt_disk_guid defaults to "modification\-date".
|
|
The default of \-\-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.
|
|
.br
|
|
Startup files and program options can override the effect of SOURCE_DATE_EPOCH.
|
|
.SS
|
|
.SH SEE ALSO
|
|
.TP
|
|
For generic xorriso command mode
|
|
.BR xorriso(1)
|
|
.TP
|
|
For the cdrecord emulation of xorriso
|
|
.BR xorrecord(1)
|
|
.TP
|
|
For mounting xorriso generated ISO 9660 images (-t iso9660)
|
|
.BR mount(8)
|
|
.TP
|
|
Other programs which produce ISO 9660 images
|
|
.BR mkisofs(8),
|
|
.BR genisoimage(8)
|
|
.TP
|
|
Programs which burn sessions to optical media
|
|
.BR growisofs(1),
|
|
.BR cdrecord(1),
|
|
.BR wodim(1),
|
|
.BR cdrskin(1),
|
|
.BR xorriso(1)
|
|
.TP
|
|
ACL, xattr, Linux file attributes, project ids
|
|
.BR getfacl(1),
|
|
.BR setfacl(1),
|
|
.BR getfattr(1),
|
|
.BR setfattr(1),
|
|
.BR lsattr(1),
|
|
.BR chattr(1),
|
|
.BR ext4(5),
|
|
.BR xfs_quota(8)
|
|
.TP
|
|
MD5 checksums
|
|
.BR md5sum(1)
|
|
.TP
|
|
On FreeBSD the commands for xattr and MD5 differ
|
|
.BR getextattr(8),
|
|
.BR setextattr(8),
|
|
.BR md5(1)
|
|
.SH BUGS
|
|
To report bugs, request help, or suggest enhancements for \fBxorriso\fR,
|
|
please send electronic mail to the public list <bug\-xorriso@gnu.org>.
|
|
If more privacy is desired, mail to <scdbackup@gmx.net>.
|
|
.br
|
|
Please describe what you expect \fBxorriso\fR to do,
|
|
the program arguments or dialog commands by which you tried to achieve it,
|
|
the messages of \fBxorriso\fR, and the undesirable outcome of your
|
|
program run.
|
|
.br
|
|
Expect to get asked more questions before solutions can be proposed.
|
|
.SH AUTHOR
|
|
Thomas Schmitt <scdbackup@gmx.net>
|
|
.br
|
|
for libburnia\-project.org
|
|
.SH COPYRIGHT
|
|
Copyright (c) 2011 \- 2024 Thomas Schmitt
|
|
.br
|
|
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.
|
|
.SH CREDITS
|
|
\fBxorrisofs\fR 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.
|
|
.br
|
|
Compliments towards Joerg Schilling whose cdrtools served me for ten years.
|