Homepage of
xorriso
ISO 9660 Rock Ridge Filesystem Manipulator for Linux
Purpose:
xorriso 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.
Direct hop to download links ->
Hardware requirements:
A CD/DVD recorder suitable for
http://libburnia-project.org
(SCSI , ATA , USB , or SATA writers compliant to standard MMC-3 for CD
and to MMC-5 for DVD).
Software requirements :
- Linux with kernel 2.4 or higher (and libc, of course) :
- With kernel 2.4 an ATA drive has to be under ide-scsi emulation.
- With kernel 2.6 the drive should not be under ide-scsi.
- libpthread
- is supposed to be a standard system component.
- libreadline and libreadline-dev
- are optional and eventually make dialog more convenient.
GPL software included:
- libburn-0.4.5
- reads and writes data from and to CD and DVD.
- (founded by Derek Foreman and Ben Jansens,
furthered since August 2006 by team of libburnia-project.org)
- libisofs-0.6.4
- operates ISO 9660 images.
- (By Vreixo Formoso and Mario Danic from team of libburnia-project.org)
- libisoburn-0.1.4
- coordinates libburn and libisofs, emulates multi-session where needed.
- (By Vreixo Formoso and Thomas Schmitt
from team of libburnia-project.org)
The source code of this software is independent of
cdrecord and mkisofs.
This program system has been tested on Intel/AMD Linux systems only.
For ports to other usable systems contact us.
Special features:
-
ISO 9660 formatter and burner for CD or DVD are fixely integrated.
-
Operates on an existing ISO image or creates a new one.
-
Copies files from filesystem into the ISO image.
-
Renames or deletes file objects in the ISO image.
-
Changes file properties in the ISO image.
-
Updates ISO subtrees incrementally to match given disk subtrees.
-
Can write result as completely new image to optical media or
filesystem objects.
-
Can write result as add-on session to appendable multi-session media,
to overwriteable media, to regular files, and to block devices.
-
Scans for optical drives, blanks re-useable optical media.
-
Suitable for: CD-R, CD-RW, DVD-R, DVD-RW, DVD+R, DVD+R/DL, DVD+RW, DVD-RAM.
-
Reads its instructions from command line arguments, dialog, and batch files.
-
Provides navigation commands for interactive ISO image manipulation.
-
Adjustable thresholds for abort, exit value, and problem reporting.
Command Examples:
- Get an overview of drives and their addresses
- # xorriso -devices
- Being superuser avoids permission problems with /dev/srN resp. /dev/hdX .
- Ordinary users should then get granted rw access to the /dev files
as listed by option -devices.
-
- Options are either performed as program arguments or as dialog input.
Some options have a parameter list of variable length. This list has to
be terminated by word '--' or by the end of the input line. Option -add
may accept pathspecs of form target=source as known from program mkisofs.
- Get info about a particular drive and loaded media:
- $ xorriso -indev /dev/sr0 -du / -- -toc 2>&1 | less
- Make re-usable media writable again, delete any ISO 9660 image:
- $ xorriso -outdev /dev/sr0 -blank fast -eject all
-
- Write some directories into a new or existing ISO 9660 image:
- $ xorriso -dev /dev/sr0 -add /home/me/sounds /home/me/pictures
- Check the result:
- $ xorriso -indev /dev/sr0 -du / -- -toc 2>&1 | less
-
- Create new ISO-9660 filesystem image, compose content,
adjust permissions to make it publicly read-only,
write it to media and immediately eject media without
previously reloading the written image.
- $ xorriso -outdev /dev/sr0 -blank fast -pathspecs on \
- -add /sounds=/home/me/sounds \
-
/pictures=/home/me/pictures -- \
- -rm_r /sounds/indecent '/pictures/*private*' -- \
- -add /pictures/private/horses=/home/me/pictures/private/horses -- \
- -chmod_r a+r,a-w / -- \
- -find / -type d -exec chmod a+x -- \
- -volid SOUNDS_PICS_2008_01_16 \
- -commit_eject all
-
- Load the previous session from media,
remove (i.e. hide) directory /sounds,
rename /pictures/private/horses,
add new directory trees /sounds and /movies,
disallow any access for group and others.
Finally write as additional session to media and eject:
- $ xorriso -dev /dev/sr0 -pathspecs on \
- -rm_r /sounds -- \
- -mv /pictures/private/horses /horse_show -- \
- -add /sounds=/home/me/prepared_for_dvd/sounds_dummy \
- /movies=/home/me/prepared_for_dvd/movies -- \
- -chmod_r go-rwx / -- \
- -volid SOUNDS_PICS_2008_01_17 \
- -commit_eject all
-
- Merge the various sessions from old readable media into a single session
on new writeable media,
cleaning out all invalidated files and session overhead.
Touch / in order to mark the image as worth to be written.
Important: -indev and -outdev have to be different drives.
- $ xorriso -indev /dev/dvd \
- -alter_date a +0 / -- \
- -outdev /dev/sr0 -blank fast \
- -commit_eject all
-
- Dialog mode accepts one or more options per line. An option and all its
arguments have to be given in one single line. Command -end stops the program
run. It will write eventually pending changes to media, if that has not
already been done by a previous -commit.
- $ xorriso -dialog on
- enter option and arguments :
- -dev /dev/sr0 -pathspecs on
- enter option and arguments :
- -add /sounds=/home/me/prepared_for_dvd/sounds_dummy /movies=/home/me/prepared_for_dvd/movies
- Available navigation commands: -cd, -ls, -du, -find
- enter option and arguments :
- -commit
- ... perform further commands and finally do:
- enter option and arguments :
- -end
-
- The following command can be run on blank media to create a complete
copy of the mentioned disk directory trees, and it can be run on appendable
media to perform a minimal set of change operations which update the
old ISO copies to match the new disk trees. Older states can be retrieved
by help of mount option "session=" from CD-R[W], by help of "sbsector="
from DVD-R[W] and DVD+R.
So this constitutes true incremental backup.
On overwriteable media only the newest state is accessible.
- $ xorriso -dev /dev/sr0 \
- -volid PROJECTS_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" \
- -update_r /home/thomas/open_source_projects /open_source_projects \
- -update_r /home/thomas/personal_mail /personal_mail \
- -commit -toc -eject all
-
- In batch mode it is possible to operate xorriso in a pipeline
with an external consumer of the generated ISO image. Any message
output will be redirected to stderr in this case.
- $ xorriso -outdev - ...other.options... | consumer
-
- Get overview of the options:
- $ xorriso -help
- Read the detailed manual page:
- $ man xorriso
Testers wanted who are willing to risk some double layer DVD media.
Download as source code (see README):
- xorriso-0.1.4.pl00.tar.gz
(955 KB).
- Documentation:
- README about installation and drive setup
- xorriso -help gives an overview of options
- man xorriso is the manual page
- Contact:
- Thomas Schmitt, scdbackup@gmx.net
- libburn development mailing list,
libburn-hackers@pykix.org
- License:
- GPL version 2,
an Open Source approved license
-
Enhancements towards previous stable version xorriso-0.1.2.pl00:
- Coordination of -cut_out, -compare and -update
- New option -split_size, automated splitting of oversized files
- Improved performance with reading directory trees
- New option -session_log
- Dynamically linkable with release version 0.6.4 of libisofs
Bug fixes towards xorriso-0.1.2.pl00:
- -as mkisofs -no-pad was misspelled -nopad
- Implicite directory attribute copying with -cut_out was wrong
Development snapshot, version 0.1.5 :
- Bug fixes towards xorriso-0.1.4.pl00:
- Enhancements towards stable version 0.1.4.pl00:
- Support for BD-RE
- New options -not_paths, -not_leaf, -not_list, -not_mgt, -as mkisofs -m
- Emulated -toc on overwriteable media, new -toc layout with volume id
- New option -rom_toc_scan for read-only drive problems
- New option -load makes alternative sessions accessible
- New option -error_behavior with a first occasion 'image_loading'
- New -blank and -format option 'as_needed'
- New option -list_formats
-
- README 0.1.5
- xorriso_0.1.5 -help
- man xorriso (as of 0.1.5)
-
- If you want to distribute development versions of xorriso, then use
this tarball which produces static linking between xorriso and the
libburnia libraries.
- Source (./bootstrap is already applied, build tested,
installation see README)
-
xorriso-0.1.5.tar.gz
(970 KB).
- A dynamically linked development version of xorriso can be obtained
from repositories of
libburnia-project.org.
xorriso is part of libisoburn/trunk and will get built by its "make".
- Be warned that the libraries in SVN and bzr are development versions with
possibly unstable API/ABI enhancements. Do not distribute development
versions for dynamic linking. Only release versions are safe for that.
- Download: svn co http://svn.libburnia-project.org/libburn/trunk libburn
- Install: cd libburn ; ./bootstrap ; ./configure --prefix /usr ; make ; make install
- Download: bzr branch lp:libisofs
- Install: cd libisofs ; ./bootstrap ; ./configure --prefix /usr ; make ; make install
- Download: svn co http://svn.libburnia-project.org/libisoburn/trunk libisoburn
- Install: cd libisoburn ; ./bootstrap ; ./configure --prefix /usr ; make ; make install
- Build of SVN versions needs
autotools of at least version 1.7 installed.
But after the run of ./bootstrap, only
vanilla tools like make and gcc are needed.
-
Many thanks to Derek Foreman and Ben Jansens for starting libburn.
Very special thanks to Andy Polyakov whose
dvd+rw-tools
provide the libburnia project with invaluable examples on how to deal
with DVD media and how to emulate multi-session on overwriteable media.
Enjoying free Open Source hosting by www.webframe.org
and by sourceforge.net
- Links to my other published software projects :
-
cdrskin, a cdrecord emulator
-
scdbackup, multi volume CD backup
-
(a second source of above)
- Some Tools for Image Collectors
-
pppoem, a DSL throughput monitor (mainly for Linux kernel 2.4)
Legal statement: This website does not serve any commercial purpose.