xorriso - creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions. |
xorriso [settings|actions] |
xorriso is a program which maps file objects from
POSIX compliant filesystems into Rock Ridge enhanced ISO
9660 filesystems and allows session-wise manipulation of
such filesystems. It can load the management information of
existing ISO images and it writes the session results to
optical media or to filesystem objects. A special property of xorriso is that it needs neither an external ISO 9660 formatter program nor an external burn program for CD or DVD but rather incorporates the libraries of libburnia-project.org . |
|
Operates on an existing ISO image or creates a new
one. |
|
Session model Maybe you first want to have a look at section EXAMPLES near the end of this text before reading the next few hundred lines of background information. |
|
Unlike other filesystems, ISO 9660 is not intended for
read-write operation but rather for being generated in a
single sweep and being written to media as a
session. The written image in its session can then be mounted by the operating system for being used read-only. Linux is able to mount ISO images from block devices, which may represent optical media, other media or via a loop device even from regular disk files. This session usage model has been extended on CD media by
the concept of multi-session , which allows to add
information to the CD and gives the mount programs of the
operating systems the addresses of the entry points of each
session. The mount programs recognize block devices which
represent CD media and will by default mount the image in
the last session. xorriso provides both ways of growing as well as an own method named modifying which produces a completely new ISO image from the old one and the modifications. See paragraph Creating, Growing, Modifying, Blind Growing below. xorriso adopts the concept of multi-session by loading an
eventual image directory tree, allowing to manipulate it by
several actions, and to write the new image to the target
media. After -commit a new session begins with the freshly written one as input. A new input drive can only be chosen as long as the loaded ISO image was not altered. Pending alteration can be revoked by command -rollback. Writing a session to the target is supposed to be very
expensive in terms of time and of consumed space on
appendable or write-once media. Therefore all intended
manipulations of a particular ISO image should be done in a
single session. |
|
There are two families of media in the MMC
standard: These media can assume several states in which they offer
different capabilities. |
|
A new empty ISO image gets created if there is no
input drive with a valid ISO 9660 image plus Rock Ridge
extensions when the first time an output drive is defined.
This is achieved by option -dev on blank media or by option
-outdev on media in any state. If there is a input drive with a valid ISO image, then this image gets loaded as foundation for manipulations and extension. The constellation of input and output drive determines which write method will be used. They have quite different capabilities and constraints. The method of growing adds new data to the
existing media. These data comprise of eventual new file
content and they override the existing ISO 9660 + Rock Ridge
directory tree. It is possible to hide files from previous
sessions but they still exist on media and with many types
of optical media it is quite easy to recover them by
mounting older sessions. The write method of modifying produces compact
filesystem images with no outdated files or directory trees.
Modifying can write its images to target media which are
completely unsuitable for multi-session operations. E.g.
DVD-RW which were treated with -blank deformat_quickest,
named pipes, character devices, sockets. On the other hand
modified sessions cannot be written to appendable media but
to blank media only. If option -grow_blindly is set to a non-negative number
and if -indev and -outdev are both set to different drives,
then blind growing is performed. It produces an
add-on session which is ready for being written to the given
block address. This is the usage model of |
|
Input drive, i.e. source of an existing or empty ISO
image, can be any random access readable libburn drive:
optical media with readable data, blank optical media,
regular files, block devices. Output drive, i.e. target for writing, can be any libburn
drive. Some drive types do not support the method of growing
but only the methods of modifying and blind growing. They
all are suitable for newly created images. MMC compliant (i.e. optical) drives on Linux usually get
addressed by the path of their block device or of their
generic character device. E.g. Filesystem objects of nearly any type can be addressed by
prefix "stdio:" and their path in the filesystem.
E.g.: A very special kind of pseudo drive are open file
descriptors. They are depicted by "stdio:/dev/fd/"
and descriptor number (see man 2 open). Be aware that especially the superuser can write into any
accessible file or device by using its path with the
"stdio:" prefix. Addresses without prefix
"stdio:" will only work if they lead to a MMC
drive. |
|
Rock Ridge is the name of a set of additional informations which enhance an ISO 9660 filesystem so that it can represent a POSIX compliant filesystem with ownership, access permissions, symbolic links, and other attributes. This is what xorriso uses for a decent representation of the disk files within the ISO image. Rock Ridge information is produced with any xorriso image and xorriso will load for manipulation only Rock Ridge enhanced images. xorriso is not named "porriso" because POSIX only guarantees 14 characters of filename length. It is the X/Open System Interface standard XSI which demands a file name length of up to 255 characters and paths of up to 1024 characters. Rock Ridge fulfills this demand. |
|
Commands are either actions or settings. They consist of a command word, followed by zero or more parameter words. If the list of parameter words is of variable length (indicated by "[...]" or "[***]") then it has to be terminated by either the list delimiter, or the end of argument list, or an end of an input line. At program start the list delimiter is the word
"--". This may be changed by option
-list_delimiter in order to allow "--" as argument
in a list of variable length. It is advised to reset the
delimiter to "--" immediately afterwards. Pattern expansion is a property of some particular
commands and not a general feature. It gets controlled by
commands -iso_rr_pattern and -disk_pattern. Commands which
eventually use pattern expansion all have variable argument
lists which are marked in this man page by "[***]"
rather than "[...]". Command and parameter words are either read from program
arguments, where one argument is one word, or from input
lines where words are recognized similar to the quotation
rules of a shell parser. When the program begins then it first looks for argument -no_rc. If this is not present then it looks for its startup files and eventually reads their content as command input lines. Then it interprets the program arguments as commands and parameters and finally it enters dialog mode if command -dialog "on" was executed up to then. The program ends either by command -end, or by the end of program arguments if not dialog was enabled up to that moment, or by a problem event which triggers the threshold of command -abort_on. |
|
Dialog mode prompts for an input line, parses it into words, and performs them as commands with their parameters. It provides assisting services to make dialog more comfortable. Readline is an enhancement for the input line. You may
know it already from the bash shell. Whether it is available
in xorriso depends on the availability of package
readline-dev at the time when xorriso was built from its
sourcecode. Option -page activates a builtin result text pager which
may be convenient in dialog. After an action has put out the
given number of terminal lines, the pager prompts the user
for a line of input. Some actions apply paging to their info output, too. |
All command words are shown with a leading dash although
this dash is not mandatory for the option to be recognized.
There may be future emulation modes, where dashes may become
mandatory in order to distinguish options from file
addresses. |
|
−dev address |
Set input and output drive to the same address and load
an eventual ISO image. If there is no ISO image then create
a blank one. Set the image expansion method to growing. |
−indev address |
Set input drive and load an eventual ISO image. If the new input drive differs from -outdev then switch from growing to modifying or to blind growing. It depends on the setting of -grow_blindly which of both gets activated. The same rules and restrictions apply as with -dev. |
−outdev address |
Set output drive and if it differs from the input drive
then switch from growing to modifying or to blind growing.
Unlike -dev and -indev this action does not load a new ISO
image. So it can be performed even if there are pending
changes. |
−grow_blindly "off"|predicted_nwa |
If predicted_nwa is a non-negative number then perform
blind growing rather than modifying if -indev and -outdev
are set to different drives. "off" or
"-1" switch to modifying, which is the
default. |
−load entity id |
Load a particular (possibly outdated) ISO image from a
-dev or -indev which hosts more than one session. Usually
all available sessions are shown with option -toc. |
−rom_toc_scan "on"|"off" |
Read-only drives do not tell the actual media type but
show any media as ROM (e.g. as DVD-ROM). The session history
of MMC multi-session media might be truncated to first and
last session or even be completely false. (The eventual
emulated history of overwriteable media is not affected by
this.) |
−ban_stdio_write |
Allow for writing only the usage of MMC optical drives. Disallow to write the result into files of nearly arbitrary type. Once set, this command cannot be revoked. |
|
The following commands expect file addresses of two
kinds: Note that in the ISO image you are as powerful as the superuser. Access permissions of the existing files in the image do not apply to your write operations. They are intended to be in effect with the read-only mounted image. If the iso_rr_path of a newly inserted file leads to an
existing file object in the ISO image, then the following
collision handling happens: The commands in this section alter the ISO image and not the local filesystem. |
|
Set the pattern expansion mode for the iso_rr_path
arguments of several commands which support this
feature. |
−disk_pattern "on"|"ls"|"off" |
Set the pattern expansion mode for the disk_path
arguments of several commands which support this
feature. |
−add pathspec [...] | disk_path [***] |
Insert the given files or directory trees from filesystem
into the ISO image. |
−add_plainly mode |
If set to mode "unknown" then any command word
that does not begin with "-" and is not recognized
as known command will be subject to a virtual -add command.
I.e. it will be used as pathspec or as disk_path and added
to the image. Eventually -disk_pattern expansion applies to
disk_paths. |
−path_list disk_path |
Like -add but read the parameter words from file disk_path or standard input if disk_path is "-". The list must contain exactly one pathspec resp. disk_path pattern per line. |
−map disk_path iso_rr_path |
Insert file object disk_path into the ISO image as iso_rr_path. If disk_path is a directory then its whole sub tree is inserted into the ISO image. |
−map_single disk_path iso_rr_path |
Like -map, but if disk_path is a directory then its sub tree is not inserted. |
−map_l disk_prefix iso_rr_prefix disk_path [***] |
Performs -map with each of the disk_path arguments. iso_rr_path will be composed from disk_path by replacing disk_prefix by iso_rr_prefix. |
−update disk_path iso_rr_path |
Compare file object disk_path with file object
iso_rr_path. If they do not match, then perform the
necessary image manipulations to make iso_rr_path a matching
copy of disk_path. This comparison will imply lengthy
content reading before a decision is made. On the other hand
it strives for the smallest possible amount of add-on data
which is needed to achieve the matching copy. |
−update_r disk_path iso_rr_path |
Like -update but working recursively. I.e. all file
objects below both addresses get compared whether they have
counterparts below the other address and whether both
counterparts match. If there is a mismatch then the
necessary update manipulation is done. |
−update_l disk_prefix iso_rr_prefix disk_path [***] |
Performs -update_r with each of the disk_path arguments. iso_rr_path will be composed from disk_path by replacing disk_prefix by iso_rr_prefix. |
−cut_out disk_path byte_offset byte_count iso_rr_path |
Map a byte interval of a regular disk file into a regular
file in the ISO image. This may be necessary if the disk
file is larger than a single media, or if it exceeds the
traditional limit of 2 GiB - 1 for old operating systems, or
the limit of 4 GiB - 1 for newer ones. Only the newest Linux
kernels seem to read properly files >= 4 GiB - 1. |
−cpr disk_path [***] iso_rr_path |
Insert the given files or directory trees from filesystem
into the ISO image. |
−rm iso_rr_path [***] |
Delete the given files from the ISO image. |
−rm_r iso_rr_path [***] |
Delete the given files or directory trees from the ISO image. See also the note with option -rm. |
−mv iso_rr_path [***] iso_rr_path |
Rename the given file objects in the ISO tree to the last
argument in the list. Use the same rules as with shell
command mv. |
−chown uid iso_rr_path [***] |
Set ownership of file objects in the ISO image. uid may either be a decimal number or the name of a user known to the operating system. |
−chown_r uid iso_rr_path [***] |
Like -chown but affecting all files below eventual directories. |
−chgrp gid iso_rr_path [***] |
Set group attribute of file objects in the ISO image. gid may either be a decimal number or the name of a group known to the operating system. |
−chgrp_r gid iso_rr_path [***] |
Like -chgrp but affecting all files below eventual directories. |
−chmod mode iso_rr_path [***] |
Equivalent to shell command chmod in the ISO image. mode
is either an octal number beginning with "0" or a
comma separated list of statements of the form
[ugoa]*[+-=][rwxst]* . |
−chmod_r mode iso_rr_path [***] |
Like -chmod but affecting all files below eventual directories. |
−alter_date type timestring iso_rr_path [***] |
Alter the date entries of a file in the ISO image. type
is one of "a", "m", "b" for
access time, modification time, both times. |
−alter_date_r type timestring iso_rr_path [***] |
Like -alter_date but affecting all files below eventual directories. |
−find iso_rr_path [test [test ...]] [-exec action [params]] -- |
A very restricted substitute for shell command find in
the ISO image. It performs an action on matching file
objects at or below iso_rr_path. |
−mkdir iso_rr_path [...] |
Create empty directories if they do not exist yet. Existence as directory generates a WARNING event, existence as other file causes a FAILURE event. |
−rmdir iso_rr_path [***] |
Delete empty directories. |
−rollback |
Discard the manipulated ISO image and reload it from -indev. |
−rollback_end |
Discard the manipulated ISO image. End program without loading a new image. |
|
(see also paragraph about settings below) |
−commit |
Perform the write operation. Afterwards eventually make the -outdev the new -dev and load the image from there. Switch to growing mode. (A subsequent -outdev will activate modification mode or blind growing.) -commit is performed automatically at end of program if there are uncommitted manipulations pending. So, to perform a final write operation with no new -dev and no new loading of image, rather execute option -end. To suppress a final write, execute -rollback_end. To eject outdev after write without new loading of image, use -commit_eject. Writing can last quite a while. It is not unnormal with several types of media that there is no progress visible for the first few minutes or that the drive gnaws on the media for a few minutes after all data have been transmitted. xorriso and the drives are in a client-server relationship. The drives have much freedom about what to do with the media. Some combinations of drives and media simply do not work, despite the promises by their vendors. If writing fails - or even the drive gets stuck and you need to reboot - then try other media or another drive. The reason for such failure is hardly ever in the code of the various burn programs but you may well try some of those listed below under SEE ALSO. |
−eject "in"|"out"|"all" |
Eject the media in -indev, resp. -outdev, resp. both drives. Note: It is not possible yet to effectively eject disk files. |
−commit_eject "in"|"out"|"all"|"none" |
Combined -commit and -eject. When writing has finished do not make -outdev the new -dev, and load no ISO image. Rather eject -indev and/or -outdev. Eventually give up any non-ejected drive. |
−blank mode |
Make media ready for writing from scratch (if not -dummy
is activated). |
−format mode |
Convert unformatted DVD-RW into overwriteable ones,
"de-ice" DVD+RW, format newly purchased BD-RE,
re-format DVD-RAM or BD-RE. |
−list_formats |
Put out a list of format descriptors as reported by the
output drive for the current media. The list gives the index
number after "Format idx", a MMC format code, the
announced size in blocks (like "2236704s") and the
same size in MiB. |
|
−file_size_limit value [value [...]] -- |
Set the maximum permissible size for a single data file.
The values get summed up for the actual limit. If the only
value is "off" then the file size is not limited
by xorriso. Default is a limit of 100 extents, 4g -2k
each: |
−not_mgt code[:code[...]] |
Control the behavior of the exclusion lists. |
−not_paths disk_path [***] |
Add the given paths to the list of excluded absolute disk
paths. If a given path is relative, then the current -cdx is
prepended to form an absolute path. Eventual pattern
matching happens at definition time and not when exclusion
checks are made. |
−not_leaf pattern |
Add a single shell parser style pattern to the list of exclusions for disk leafnames. These patterns are evaluated when the exclusion checks are made. |
−follow occasion[:occasion[...]] |
Enable or disable resolution of symbolic links and
mountpoints under disk_paths. This applies to actions -add,
-du*x, -ls*x, -findx, and to -disk_pattern expansion. Not an occasion but an optional setting is: |
−pathspecs "on"|"off" |
Control parameter interpretation with xorriso actions
-add and -path_list. |
−overwrite "on"|"nondir"|"off" |
Allow or disallow to overwrite existing files in the ISO
image by files with the same user defined name. |
−split_size number["k"|"m"] |
Set the threshold for automatic splitting of regular
files. Such splitting maps a large disk file onto a ISO
directory with several part files in it. This is necessary
if the size of the disk file exceeds -file_size_limit. Older
operating systems can handle files in mounted ISO 9660
filesystems only if they are smaller than 2 GiB resp. 4 GiB.
See also option -cut_out for more information about file
parts. |
|
Rock Ridge info will be generated by the program unconditionally. |
−joliet "on"|"off" |
If enabled by "on", generate Joliet info additional to Rock Ridge info. |
−volid text |
Specifies the volume ID. xorriso accepts any text up to
32 characters, but according to rarely obeyed specs stricter
rules apply: |
−publisher text |
Set the publisher string to be written with the next -commit. Permissible are up to 128 characters. |
−uid uid |
User id to be used for all files when the new ISO tree gets written to media. |
−gid gid |
Group id to be used for all files when the new ISO tree gets written to media. |
−speed number[k|m|c|d|b] |
Set the burn speed. Default is 0 = maximum speed. Speed
can be given in media dependent numbers or as a desired
throughput per second in MMC compliant kB (= 1000) or MB (=
1000 kB). Media x-speed factor can be set explicity by
"c" for CD, "d" for DVD, "b"
for BD, "x" is optional. |
−stream_recording "on"|"off" |
Setting "on" tries to circumvent the management of defects on DVD-RAM and BD-RE. Defect management keeps partly damaged media usable. But it reduces write speed to half nominal speed even if the media is in perfect shape. For the case of flawless media, one may use -stream_recording "on" to get full speed. |
−dummy "on"|"off" |
If "on" then simulate burning or refuse with FAILURE event if no simulation is possible, do neither blank nor format. |
-fs number["k"|"m"] |
Set the size of the fifo buffer which smoothens the data stream from ISO image generation to media burning. Default is 4 MiB, minimum 64 kiB, maximum 1 GiB. The number may be followed by letter "k" or "m" which means unit is kiB (= 1024) or MiB (= 1024 kiB). |
−close "on"|"off" |
If "on" then mark the written media as not
appendable any more (if possible at all with the given type
of target media). |
−padding number["k"|"m"] |
Append the given number of extra bytes to the image
stream. This is a traditional remedy for a traditional bug
in block device read drivers. Needed only for CD recordings
in TAO mode. Since one can hardly predict on what media an
image might end up, xorriso adds the traditional 300k of
padding by default to all images. |
−boot_image "any"|"isolinux" "discard"|"keep"|"patch" |
Defines the handling of an eventual boot image
(El-Torito) which has been read from an existing ISO image.
All types ("any") can be discarded or kept
unaltered. The latter makes only sense if the format of the
boot image is relocatable without content changes. |
|
Since the tasks of xorriso are manifold and prone to
external influence, there may arise the need for xorriso to
report and handle problem events. |
−abort_on severity |
Set the severity threshold for events to abort the
program. |
−return_with severity exit_value |
Set the threshold and exit_value to be returned at
program end if no abort has happened. This is to allow
xorriso to go on after problems but to get a failure
indicating exit value from the program, nevertheless. Useful
is a value lower than the -abort_on threshold, down to
"WARNING". |
−report_about severity |
Set the threshold for events to be reported. |
−error_behavior occasion behavior |
Control the program behavior at problem event occasions.
For now this applies to occasions "image_loading"
which is given while an image tree is read from the input
device, and to "file_extraction" which is given
with osirrox options like -extract. |
|
−dialog "on"|"off" |
Enable or disable to enter dialog mode after all arguments are processed. In dialog mode input lines get prompted via readline or from stdin. |
−page length width |
Describe terminal to the text pager. See also above,
paragraph Result pager. |
−use_readline "on"|"off" |
If "on" then use readline for dialog. Else use
plain stdin. |
−reassure "on"|"tree"|"off" |
If "on" then ask the user for "y" or
"n": |
|
−devices |
Show list of available MMC drives with the addresses of
their libburn standard device files. |
−toc |
Show media specific table of content. This is the media
session history, not the ISO image directory tree. |
−print_size |
Print the foreseeable consumption of 2048 byte blocks by next -commit. This can last a while as a -commit gets prepared and only in last moment is revoked by this option. |
−tell_media_space |
Print available space on output media and the free space after subtracting already foreseeable consumption by next -commit. |
|
−cd iso_rr_path |
Change the current working directory in the emerging ISO
image as it is at the moment. This is prepended to
iso_rr_paths which do not begin with ’/’. |
−cdx disk_path |
Change the current working directory on filesystem. To be prepended to disk_paths which do not begin with ’/’. |
−pwd |
Tell the current working directory in the ISO image. |
−pwdx |
Tell the current working directory on local filesystem. |
−ls iso_rr_pattern [***] |
List files in the ISO image which match shell patterns
(i.e. with wildcards ’*’ ’?’
’[a-z]’). If a pattern does not begin with
’/’ then it is compared with addresses relative
to -cd, the current working directory in the ISO image. |
−lsd iso_rr_pattern [***] |
Like -ls but listing directories as themselves and not by their content. This resembles shell command ls -d. |
−lsl iso_rr_pattern [***] |
Like -ls but also list some of the file attributes. Output format resembles shell command ls -ln. |
−lsdl iso_rr_pattern [***] |
Like -lsd but also list some of the file attributes. Output format resembles shell command ls -dln. |
−lsx disk_pattern [***] |
List files on local filesystem which match shell
patterns. Patterns which do not begin with ’/’
are used relative to -cdx, the current working directory in
the local filesystem. |
−lsdx disk_pattern [***] |
Like -lsx but listing directories as themselves and not by their content. This resembles shell command ls -d. |
−lslx disk_pattern [***] |
Like -lsx but also listing some of the file attributes. Output format resembles shell command ls -ln. |
−lsdlx disk_pattern [***] |
Like -lsdx but also listing some of the file attributes. Output format resembles shell command ls -dln. |
−du iso_rr_pattern [***] |
Recursively list size of directories and files in the ISO image which match one of the patterns. similar to shell command du -k. |
−dus iso_rr_pattern [***] |
List size of directories and files in the ISO image which match one of the patterns. Similar to shell command du -sk. |
−dux disk_pattern [***] |
Recursively list size of directories and files in the local filesystem which match one of the patterns, similar to shell command du -k. |
−dusx disk_pattern [***] |
List size of directories and files in the local filesystem which match one of the patterns. Similar to shell command du -sk. |
−findx disk_path [-name pattern] [-type t] [-exec action [params]] -- |
Like -find but operating on local filesystem and not on
the ISO image. This is subject to the settings of
-follow. |
−compare disk_path iso_rr_path |
Compare attributes and eventual data file content of a
fileobject in the local filesystem with a file object in the
ISO image. The iso_rr_path may well point to an image file
object which is not yet committed, i.e. of which the data
content still resides in the local filesystem. Such data
content is prone to externally caused changes. |
−compare_r disk_path iso_rr_path |
Like -compare but working recursively. I.e. all file objects below both addresses get compared whether they have counterparts below the other address and whether both counterparts match. |
−compare_l disk_prefix iso_rr_prefix disk_path [***] |
Perform -compare_r with each of the disk_path arguments. iso_rr_path will be composed from disk_path by replacing disk_prefix by iso_rr_prefix. |
|
It is not uncommon that optical media produce read
errors. The reasons may be various and get obscured by error
correction which is performed by the drives and based on
extra data on the media. If a drive returns data then one
can quite trust that they are valid. But at some degree of
read problems the correction will fail and the drive is
supposed to indicate error. |
−check_media [option [option ...]] -- |
Try to read data blocks from the indev drive, eventually
copy them to a disk file, and finally report about the
encountered quality. Several options may be used to modify
the default behavior. |
−check_media_defaults [option [option ...]] -- |
Preset options for runs of -check_media, -extract_cut and
best_effort file extraction. Eventual options given with
-check_media will override the preset options. -extract_cut
will override some options automatically. |
|
Normally xorriso only writes to disk files which were
given as stdio: pseudo-drives or as log files. But its alter
ego, osirrox, is able to extract file objects from ISO
images and to create, overwrite, or delete file objects on
disk. |
−osirrox "on"|"device_files"|"off"[:option:...] |
Setting "off" disables disk filesystem
manipulations. This is the default unless the program was
started with leafname "osirrox". Elsewise the
capability to restore files can be enabled explicitly by
-osirrox "on". |
−extract iso_rr_path disk_path |
Restore the file objects at and underneath iso_rr_path to
their corresponding addresses at and underneath disk_path.
This is the inverse of -map or -update_r. |
−extract_single iso_rr_path disk_path |
Like -extract, but if iso_rr_path is a directory then its sub tree gets not restored. |
−extract_l iso_rr_prefix disk_prefix iso_rr_path [***] |
Performs -extract with each of the iso_rr_path arguments. disk_path will be composed from iso_rr_path by replacing iso_rr_prefix by disk_prefix. |
−extract_cut iso_rr_path byte_offset byte_count disk_path |
Copy a byte interval from a data file out of an ISO image
into a newly created disk file. Two restrictions apply: |
−cpx iso_rr_path [***] disk_path |
Extract single leaf file objects from the ISO image and
store them under the address given by disk_path. If more
then one iso_rr_path is given then disk_path must be a
directory or non-existent. In the latter case it gets
created and the extracted files get installed in it with the
same leafnames. |
−cpax iso_rr_path [***] disk_path |
Like -cpx but restoring mtime, atime as in ISO image and trying to set ownership and group as in ISO image. |
−cp_rx iso_rr_path [***] disk_path |
Like -cpx but also extracting whole directory trees from
the ISO image. |
−cp_rax iso_rr_path [***] disk_path |
Like -cp_rx but restoring mtime, atime as in ISO image and trying to set ownership and group as in ISO image. |
−paste_in iso_rr_path disk_path byte_offset byte_count |
Read the content of a ISO data file and write it into a data file on disk beginning at the byte_offset. Write at most byte_count bytes. This is the inverse of option -cut_out. |
|
Writing of ISO 9660 on CD is traditionally done by program mkisofs as ISO 9660 image producer and cdrecord as burn program. xorriso does not strive for their comprehensive emulation. Nevertheless it is ready to perform some of its core tasks under control of commands which in said programs trigger comparable actions. |
|
Performs its variable length option list as sparse emulation of the program depicted by the personality word. Personality "mkisofs" accepts the
options listed with: Personality "cdrecord" accepts the
options listed with: |
−pacifier behavior_code |
Control behavior of UPDATE pacifiers during write
operations. The following behavior codes are defined: |
|
−no_rc |
Only if used as first command line argument this option prevents reading and interpretation of eventual startup files. See section FILES below. |
−options_from_file fileaddress |
Reads lines from fileaddress and executes them as dialog lines. |
−help |
Print helptext. |
−version |
Print program name and version. |
−history textline |
Copy textline into libreadline history. |
−status [mode|filter] |
Print the current settings of xorriso. Modes: |
−status_history_max number |
Set maximum number of history lines to be reported with -status "long_history". |
−list_delimiter word |
Set the list delimiter to be used instead of
"--". It has to be a single word, must not be
empty, not longer than 80 characters, and must not contain
quotation marks. |
−temp_mem_limit number["k"|"m"] |
Set the maximum size of temporary memory to be used for
image dependent buffering. Currently this applies to pattern
expansion only. |
−print text |
Print a text to result channel. |
−prompt text |
Show text at beginning of output line and wait for the user to hit the Enter key resp. to send a line via stdin. |
−errfile_log mode path|channel |
If problem events are related to input files from the
filesystem, then their disk_paths can be logged to a file or
to output channels R or I. |
−session_log path |
If path is not empty it gives the address of a plain text
file where a log record gets appended after each session.
This log can be used to determine the start_lba of a session
for mount option sbsector= from date or volume id. |
−end |
End program immediately |
# any text |
In dialog or file execution mode only and only as first non-whitespace in line: Do not execute the line but eventually store it in history. |
|
−pkt_output "on"|"off" |
Consolidate text output on stdout and classify each line
by a channel indicator: |
−logfile channel fileaddress |
Copy output of a channel to the given file. |
−mark text |
If text is not empty it will get put out each time an action has been completed. |
−prog text |
Use text as this program’s name in subsequent messages |
−prog_help text |
Use text as this program’s name and perform -help. |
Overview of examples: |
As superuser learn about available drives |
As superuser learn about available drives |
Consider to give rw permissions to those users or groups
which shall be able to use the drives with xorriso. |
Blank media and compose a new ISO image as batch run |
Aquire drive /dev/sr2, blank media resp. invalidate
existing ISO image. Add the files from hard disk directories
/home/me/sounds and /pictures. Omit some unwanted stuff by
removing it from the image directory tree. Re-add some
wanted stuff. |
A dialog session doing about the same |
-pathspecs is already given as start argument. The other
activities are done as dialog input. The pager gets set to
20 lines of 80 characters. |
Manipulating an existing ISO image on the same media |
Load image from drive. Remove (i.e. hide) directory
/sounds and its subordinates. Rename directory
/pictures/confidential to /pictures/restricted. Change
access permissions of directory /pictures/restricted. Add
new directory trees /sounds and /movies. Burn to the same
media and eject. |
Copy modified ISO image from one media to another |
Load image from input drive. Do the same manipulations as
in the previous example. Aquire output drive and blank it.
Burn the modified image as first and only session to the
output drive. |
Operate on storage facilities other than optical drives |
Full read-write operation is possible with regular files
and block devices: |
Perform multi-session runs as of cdrtools traditions |
Between both processes there can be performed arbitrary
transportation or filtering. |
Let xorriso work underneath growisofs |
growisofs expects an ISO formatter program which
understands options -C and -M. If xorriso gets started by
name "xorrisofs" then it is suitable for
that. |
Adjust thresholds for verbosity, exit value and program abort |
Be quite verbous, exit 32 if severity "FAILURE"
was encountered, do not abort prematurely but forcibly go on
until the end of commands. |
Examples of input timestrings |
As printed by program date: ’Thu Nov 8 14:51:13
CET 2007’ |
Incremental backup of a few directory trees |
This does the following to directories
/open_source_project and /personal_mail in the ISO image:
create them if not existing yet, compare them with their
disk counterparts, add disk file objects which are missing
yet, overwrite those which are different on disk, and delete
those which have vanished on disk. But do not add or
overwrite files matching *.o, *.swp. |
Restore directory trees from a particular ISO session to disk |
This is an alternative to mounting the media and using
normal file operations. |
Try to retrieve as many blocks as possible from a damaged media |
$ xorriso -abort_on NEVER -indev /dev/sr0 \ |
Startup files: |
If not -no_rc is given as the first argument then xorriso
attempts on startup to read and execute lines from the
following files: |
Runtime control files: |
The default setting of -check_media abort_file= is: |
For mounting xorriso generated ISO 9660 images |
mount(8) |
Libreadline, a comfortable input line facility |
readline(3) |
Other programs which produce ISO 9660 images |
mkisofs(8), genisoimage(8) |
Other programs which burn sessions to optical media |
growisofs(1), cdrecord(1), wodim(1), cdrskin(1) |
Thomas Schmitt <scdbackup@gmx.net> |
xorriso is in part based on work by Vreixo Formoso who
provides libisofs together with Mario Danic who also leads
the libburnia team. Thanks to Andy Polyakov who invented
emulated growing, to Derek Foreman and Ben Jansens who once
founded libburn. |