1XORRISO(1) General Commands Manual XORRISO(1)
2
3
4
6 xorriso - creates, loads, manipulates and writes ISO 9660 filesystem
7 images with Rock Ridge extensions.
8
10 xorriso [settings|actions]
11
13 xorriso is a program which copies file objects from POSIX compliant
14 filesystems into Rock Ridge enhanced ISO 9660 filesystems and allows
15 session-wise manipulation of such filesystems. It can load the
16 management information of existing ISO images and it writes the session
17 results to optical media or to filesystem objects.
18 Vice versa xorriso is able to copy file objects out of ISO 9660
19 filesystems.
20
21 A special property of xorriso is that it needs neither an external ISO
22 9660 formatter program nor an external burn program for CD, DVD or BD
23 but rather incorporates the libraries of libburnia-project.org .
24
25 Overview of features:
26 Operates on an existing ISO image or creates a new one.
27 Copies files from disk filesystem into the ISO image.
28 Copies files from ISO image to disk filesystem (see osirrox).
29 Renames or deletes file objects in the ISO image.
30 Changes file properties in the ISO image.
31 Updates ISO subtrees incrementally to match given disk subtrees.
32 Writes result either as completely new image or as add-on session to
33 optical media or filesystem objects.
34 Can activate ISOLINUX and GRUB boot images via El Torito and MBR.
35 Can perform multi-session tasks as emulation of mkisofs and cdrecord.
36 Can record and restore hard links and ACL.
37 Content may get zisofs compressed or filtered by external processes.
38 Can issue commands to mount older sessions on GNU/Linux or FreeBSD.
39 Can check media for damages and copy readable blocks to disk.
40 Can attach MD5 checksums to each data file and the whole session.
41 Scans for optical drives, blanks re-useable optical media.
42 Reads its instructions from command line arguments, dialog, and files.
43 Provides navigation commands for interactive ISO image manipulation.
44 Adjustable thresholds for abort, exit value, and problem reporting.
45
46 General information paragraphs:
47 Session model
48 Media types and states
49 Creating, Growing, Modifying, Blind Growing
50 Libburn drives
51 Rock Ridge, POSIX, X/Open, El Torito, ACL, xattr
52 Command processing
53 Dialog, Readline, Result pager
54
55 Maybe you first want to have a look at section EXAMPLES near the end of
56 this text before reading the next few hundred lines of background
57 information.
58
59 Session model:
60 Unlike other filesystems, ISO 9660 is not intended for read-write
61 operation but rather for being generated in a single sweep and being
62 written to media as a session.
63 The data content of the session is called filesystem image.
64
65 The written image in its session can then be mounted by the operating
66 system for being used read-only. GNU/Linux is able to mount ISO images
67 from block devices, which may represent optical media, other media or
68 via a loop device even from regular disk files. FreeBSD mounts ISO
69 images from devices that represent arbitrary media or from regular disk
70 files.
71
72 This session usage model has been extended on CD media by the concept
73 of multi-session , which allows to add information to the CD and gives
74 the mount programs of the operating systems the addresses of the entry
75 points of each session. The mount programs recognize block devices
76 which represent CD media and will by default mount the image in the
77 last session.
78 This session usually contains an updated directory tree for the whole
79 medium which governs the data contents in all recorded sessions. So in
80 the view of the mount program all sessions of a particular medium
81 together form a single filesystem image.
82 Adding a session to an existing ISO image is in this text referred as
83 growing.
84 The multi-session model of the MMC standard does not apply to all media
85 types. But program growisofs by Andy Polyakov showed how to extend this
86 functionality to overwriteable media or disk files which carry valid
87 ISO 9660 filesystems.
88
89 xorriso provides growing as well as an own method named modifying which
90 produces a completely new ISO image from the old one and the
91 modifications. See paragraph Creating, Growing, Modifying, Blind
92 Growing below.
93
94 xorriso adopts the concept of multi-session by loading an image
95 directory tree if present, by allowing to manipulate it by several
96 actions, and by writing the new image to the target medium.
97 The first session of a xorriso run begins by the definition of the
98 input drive with the ISO image or by the definition of an output drive.
99 The session ends by command -commit which triggers writing. A -commit
100 is done automatically when the program ends regularly.
101
102 After -commit a new session begins with the freshly written one as
103 input. A new input drive can only be chosen as long as the loaded ISO
104 image was not altered. Pending alteration can be revoked by command
105 -rollback.
106
107 Writing a session to the target is supposed to be very expensive in
108 terms of time and of consumed space on appendable or write-once media.
109 Therefore all intended manipulations of a particular ISO image should
110 be done in a single session. But in principle it is possible to store
111 intermediate states and to continue with image manipulations.
112
113 Media types and states:
114 There are two families of media in the MMC standard:
115 Multi-session media are CD-R, CD-RW, DVD-R, DVD+R, DVD+R/DL, BD-R, and
116 unformatted DVD-RW. These media provide a table of content which
117 describes their existing sessions. See option -toc.
118 Similar to multi-session media are DVD-R DL and minimally blanked
119 DVD-RW. They allow only a single session of which the size must be
120 known in advance. xorriso will write onto them only if option -close
121 is set to "on".
122 Overwriteable media are DVD-RAM, DVD+RW, BD-RE, and formatted DVD-RW.
123 They allow random write access but do not provide information about
124 their session history. If they contain one or more ISO 9660 sessions
125 and if the first session was written by xorriso, then a table of
126 content can be emulated. Else only a single overall session will be
127 visible.
128 DVD-RW media can be formatted by -format "full". They can be made
129 unformatted by -blank "deformat".
130 Regular files and block devices are handled as overwriteable media.
131 Pipes and other writeable file types are handled as blank multi-session
132 media.
133
134 These media can assume several states in which they offer different
135 capabilities.
136 Blank media can be written from scratch. They contain no ISO image
137 suitable for xorriso.
138 Blank is the state of newly purchased optical media. With used CD-RW
139 and DVD-RW it can be achieved by action -blank "as_needed".
140 Overwriteable media are considered blank if they are new or if they
141 have been marked as blank by xorriso. Action -blank "as_needed" can be
142 used to do this marking on overwriteable media, or to apply mandatory
143 formatting to new media if necessary.
144 Appendable media accept further sessions. Either they are MMC
145 multi-session media in appendable state, or they are overwriteable
146 media which contain an ISO image suitable for xorriso.
147 Appendable is the state after writing a session with option -close off.
148 Closed media cannot be written. They may contain an ISO image suitable
149 for xorriso.
150 Closed is the state of DVD-ROM media and of multi-session media which
151 were written with option -close on. If the drive is read-only hardware
152 then it will probably show any media as closed CD-ROM resp. DVD-ROM.
153 Overwriteable media assume this state in such read-only drives or if
154 they contain unrecognizable data in the first 32 data blocks.
155 Read-only drives may or may not show session histories of multi-session
156 media. Often only the first and the last session are visible. Sometimes
157 not even that. Option -rom_toc_scan might or might not help in such
158 cases.
159
160 Creating, Growing, Modifying, Blind Growing:
161 A new empty ISO image gets created if there is no input drive with a
162 valid ISO 9660 image when the first time an output drive is defined.
163 This is achieved by option -dev on blank media or by option -outdev on
164 media in any state.
165 The new empty image can be populated with directories and files.
166 Before it can be written, the medium in the output drive must get into
167 blank state if it was not blank already.
168
169 If there is a input drive with a valid ISO image, then this image gets
170 loaded as foundation for manipulations and extension. The constellation
171 of input and output drive determines which write method will be used.
172 They have quite different capabilities and constraints.
173
174 The method of growing adds new data to the existing data on the medium.
175 These data comprise of new file content and they override the existing
176 ISO 9660 + Rock Ridge directory tree. It is possible to hide files from
177 previous sessions but they still exist on the medium and with many
178 types of optical media it is quite easy to recover them by mounting
179 older sessions.
180 Growing is achieved by option -dev.
181
182 The write method of modifying produces compact filesystem images with
183 no outdated files or directory trees. Modifying can write its images to
184 target media which are completely unsuitable for multi-session
185 operations. E.g. DVD-RW which were treated with -blank
186 deformat_quickest, DVD-R DL, named pipes, character devices, sockets.
187 On the other hand modified sessions cannot be written to appendable
188 media but to blank media only.
189 So for this method one needs either two optical drives or has to work
190 with filesystem objects as source and/or target medium.
191 Modifying takes place if input drive and output drive are not the same
192 and if option -grow_blindly is set to its default "off". This is
193 achieved by options -indev and -outdev.
194
195 If option -grow_blindly is set to a non-negative number and if -indev
196 and -outdev are both set to different drives, then blind growing is
197 performed. It produces an add-on session which is ready for being
198 written to the given block address. This is the usage model of
199 mkisofs -M $indev -C $msc1,$msc2 -o $outdev
200 which gives much room for wrong parameter combinations and should thus
201 only be employed if a strict distinction between ISO formatter xorriso
202 and the burn program is desired. -C $msc1,$msc2 is equivalent to:
203 -load sbsector $msc1 -grow_blindly $msc2
204
205 Libburn drives:
206 Input drive, i.e. source of an existing or empty ISO image, can be any
207 random access readable libburn drive: optical media with readable data,
208 blank optical media, regular files, block devices.
209
210 Output drive, i.e. target for writing, can be any libburn drive. Some
211 drive types do not support the method of growing but only the methods
212 of modifying and blind growing. They all are suitable for newly created
213 images.
214 All drive file objects have to offer rw-permission to the user of
215 xorriso. Even those which will not be useable for reading an ISO
216 image.
217
218 MMC compliant (i.e. optical) drives on GNU/Linux usually get addressed
219 by the path of their block device or of their generic character device.
220 E.g.
221 -dev /dev/sr0
222 -dev /dev/hdc
223 -dev /dev/sg2
224 On FreeBSD the device files have names like
225 -dev /dev/cd0
226 On OpenSolaris:
227 -dev /dev/rdsk/c4t0d0s2
228 Get a list of accessible drives by command
229 -device_links
230 It might be necessary to do this as superuser in order to see all
231 drives and to then allow rw-access for the intended users. Consider to
232 bundle the authorized users in a group like old "floppy".
233
234 Filesystem objects of nearly any type can be addressed by prefix
235 "stdio:" and their path in the filesystem. E.g.:
236 -dev stdio:/dev/sdc
237 The default setting of -drive_class allows to address files outside the
238 /dev tree without that prefix. E.g.:
239 -dev /tmp/pseudo_drive
240 If path leads to a regular file or to a block device then the emulated
241 drive is random access readable and can be used for the method of
242 growing if it already contains a valid ISO 9660 image. Any other file
243 type is not readable via "stdio:" and can only be used as target for
244 the method of modifying or blind growing. Non-existing paths in
245 existing directories are handled as empty regular files.
246
247 A very special kind of pseudo drive are open file descriptors. They are
248 depicted by "stdio:/dev/fd/" and descriptor number (see man 2 open).
249 Addresses "-" or "stdio:/dev/fd/1" depict standard output, which
250 normally is the output channel for result texts. To prevent a fatal
251 intermingling of ISO image and text messages, all result texts get
252 redirected to stderr if -*dev "-" or "stdio:/dev/fd/1" is among the
253 start arguments of the program.
254 Standard output is currently suitable for creating one session per
255 program run without dialog. Use in other situations is discouraged and
256 several restrictions apply:
257 It is not allowed to use standard output as pseudo drive if it was not
258 among the start arguments. Do not try to fool this ban via backdoor
259 addresses to stdout.
260 If stdout is used as drive, then -use_readline is permanently disabled.
261 Use of backdoors can cause severe memory and/or tty corruption.
262
263 Be aware that especially the superuser can write into any accessible
264 file or device by using its path with the "stdio:" prefix. By default
265 any address in the /dev tree without prefix "stdio:" will work only if
266 it leads to a MMC drive.
267 One may use option -ban_stdio_write to surely prevent this risk and to
268 allow only MMC drives.
269 One may prepend "mmc:" to a path to surely disallow any automatic
270 "stdio:".
271 By option -drive_class one may ban certain paths or allow access
272 without prefix "stdio:" to other paths.
273
274 Rock Ridge, POSIX, X/Open, El Torito, ACL, xattr:
275 Rock Ridge is the name of a set of additional information which enhance
276 an ISO 9660 filesystem so that it can represent a POSIX compliant
277 filesystem with ownership, access permissions, symbolic links, and
278 other attributes.
279 This is what xorriso uses for a decent representation of the disk files
280 within the ISO image. Rock Ridge information is produced with any
281 xorriso image.
282
283 xorriso is not named "porriso" because POSIX only guarantees 14
284 characters of filename length. It is the X/Open System Interface
285 standard XSI which demands a file name length of up to 255 characters
286 and paths of up to 1024 characters. Rock Ridge fulfills this demand.
287
288 An El Torito boot record points the BIOS bootstrapping facility to one
289 or more boot images, which are binary program files stored in the ISO
290 image. The content of the boot image files is not in the scope of El
291 Torito.
292 Most bootable GNU/Linux CDs are equipped with ISOLINUX or GRUB boot
293 images. xorriso is able to create or maintain an El Torito object
294 which makes such an image bootable. For details see option -boot_image.
295 It is possible to make ISO images bootable from USB stick or other
296 hard-disk-like media by -boot_image argument system_area= . This
297 installs a Master Boot Record which may get adjusted according to the
298 needs of GRUB resp. ISOLINUX. An MBR contains boot code and a
299 partition table. It does not hamper CDROM booting. The new MBR of a
300 follow-up session can get in effect only on overwriteable media.
301 Emulation -as mkisofs supports the example options out of the ISOLINUX
302 wiki, the options used in GRUB script grub-mkrescue, and the example in
303 the FreeBSD AvgLiveCD wiki.
304 There is support for boot facilities other than PC BIOS: EFI, MIPS Big
305 Endian (SGI), MIPS Little Endian (DEC), SUN SPARC.
306
307 ACL are an advanced way of controlling access permissions to file
308 objects. Neither ISO 9660 nor Rock Ridge specify a way to record ACLs.
309 So libisofs has introduced a standard conformant extension named AAIP
310 for that purpose. It uses this extension if enabled by option -acl.
311 AAIP enhanced images are supposed to be mountable normally, but one
312 cannot expect that the mounted filesystem will show and respect the
313 ACLs. For now, only xorriso is able to retrieve those ACLs. It can
314 bring them into effect when files get restored to an ACL enabled file
315 system or it can print them in a format suitable for tool setfacl.
316 Files with ACL show as group permissions the setting of entry "mask::"
317 if that entry exists. Nevertheless the non-listed group members get
318 handled according to entry "group::". When removing ACL from a file,
319 xorriso brings "group::" into effect.
320 Recording and restoring of ACLs from and to local files works currently
321 only on GNU/Linux and FreeBSD.
322
323 xattr (aka EA, or extattr) are pairs of name and value which can be
324 attached to file objects. AAIP is able to represent them and xorriso
325 allows to record and restore pairs which have names out of the user
326 namespace. I.e. those which begin with "user.", like "user.x" or
327 "user.whatever". Name has to be a 0 terminated string. Value may be
328 any array of bytes which does not exceed the size of 4095 bytes. xattr
329 processing happens only if it is enabled by option -xattr.
330 As with ACL, currently only xorriso is able to retrieve xattr from AAIP
331 enhanced images, to restore them to xattr capable file systems, or to
332 print them.
333 Recording and restoring of xattr from and to local files works
334 currently only on GNU/Linux and FreeBSD, where they are known as
335 extattr.
336
337 Command processing:
338 Commands are either actions which happen immediately or settings which
339 influence following actions. So their sequence does matter.
340 Commands consist of a command word, followed by zero or more parameter
341 words. If the list of parameter words is of variable length (indicated
342 by "[...]" or "[***]") then it has to be terminated by either the list
343 delimiter, or the end of argument list, or an end of an input line.
344
345 At program start the list delimiter is the word "--". This may be
346 changed by option -list_delimiter in order to allow "--" as argument in
347 a list of variable length. It is advised to reset the delimiter to
348 "--" immediately afterwards.
349 For brevity the list delimiter is referred as "--" throughout this
350 text.
351 The list delimiter is silently tolerated if it appears after the
352 parameters of a command with a fixed list length. It is handled as
353 normal text if it appears among the arguments of such a command.
354
355 Pattern expansion converts a list of pattern words into a list of
356 existing file addresses. Unmatched pattern words appear themselves in
357 that result list, though.
358 Pattern matching supports the usual shell parser wildcards '*' '?'
359 '[xyz]' and respects '/' as separator which may only be matched
360 literally.
361 It is a property of some particular commands and not a general feature.
362 It gets controlled by commands -iso_rr_pattern and -disk_pattern.
363 Commands which may use pattern expansion all have variable argument
364 lists which are marked in this man page by "[***]" rather than "[...]".
365 Some other commands perform pattern matching unconditionally.
366
367 Command and parameter words are either read from program arguments,
368 where one argument is one word, or from quoted input lines where words
369 are recognized similar to the quotation rules of a shell parser.
370 xorriso is not a shell, although it might appear so on first glimpse.
371 Be aware that the interaction of quotation marks and pattern symbols
372 like "*" differs from the usual shell parsers. In xorriso, a quotation
373 mark does not make a pattern symbol literal.
374
375 Quoted input converts whitespace separated text pieces into words. The
376 double quotation mark " and the single quotation mark ' can be used to
377 enclose whitespace and make it part of words (e.g. of file names). Each
378 mark type can enclose the marks of the other type. A trailing backslash
379 \ outside quotations or an open quotation cause the next input line to
380 be appended.
381 Quoted input accepts any ASCII character except NUL (0) as content of
382 quotes. Nevertheless it can be cumbersome for the user to produce
383 those characters at all. Therefore quoted input and program arguments
384 allow optional Backslash Interpretation which can represent all ASCII
385 characters except NUL (0) by backslash codes as in $'...' of bash.
386 It is not enabled by default. See option -backslash_codes.
387
388 When the program starts then it first looks for argument -no_rc. If
389 this is not present then it looks for its startup files and reads their
390 content as command input lines. Then it interprets the program
391 arguments as commands and parameters. Finally it enters dialog mode if
392 command -dialog "on" was executed up to then.
393
394 The program ends either by command -end, or by the end of program
395 arguments if not dialog was enabled up to that moment, or by a problem
396 event which triggers the threshold of command -abort_on.
397
398 Dialog, Readline, Result pager:
399 Dialog mode prompts for a quoted input line, parses it into words, and
400 performs them as commands with their parameters. It provides assisting
401 services to make dialog more comfortable.
402
403 Readline is an enhancement for the input line. You may know it already
404 from the bash shell. Whether it is available in xorriso depends on the
405 availability of package readline-dev at the time when xorriso was built
406 from its sourcecode.
407 It allows to move the cursor over the text in the line by help of the
408 Leftward and the Rightward arrow key. Text may be inserted at the
409 cursor position. The Delete key removes the character under the cursor.
410 Upward and Downward arrow keys navigate through the history of previous
411 input lines.
412 See man readline for more info about libreadline.
413
414 Option -page activates a built-in result text pager which may be
415 convenient in dialog. After an action has put out the given number of
416 terminal lines, the pager prompts the user for a line of input.
417 An empty line lets xorriso resume work until the next page is put out.
418 The single character "@" disables paging for the current action.
419 "@@@", "x", "q", "X", or "Q" urge the current action to abort and
420 suppress further result output.
421 Any other line will be interpreted as new dialog line. The current
422 action is urged to abort. Afterwards, the input line is executed.
423
424 Some actions apply paging to their info output, too.
425 The urge to abort may or may not be obeyed by the current action. All
426 actions try to abort as soon as possible.
427
429 All command words are shown with a leading dash although this dash is
430 not mandatory for the option to be recognized. Nevertheless within
431 option -as the dashes of the emulated options are mandatory.
432 Normally any number of leading dashes is ignored with command words and
433 inner dashes are interpreted as underscores.
434
435 Aquiring source and target drive:
436
437 The effect of aquiring a drive may depend on several options in the
438 next paragraph "Influencing the behavior of image loading". If
439 desired, their enabling commands have to be performed before the
440 commands which aquire the drive.
441
442 -dev address
443 Set input and output drive to the same address and load an ISO
444 image if it is present. If there is no ISO image then create a
445 blank one. Set the image expansion method to growing.
446 This is only allowed as long as no changes are pending in the
447 currently loaded ISO image. If changes are pending, then one has
448 to perform -commit or -rollback first.
449 Special address string "-" means standard output, to which
450 several restrictions apply. See above paragraph "Libburn
451 drives".
452 An empty address string "" gives up the current device without
453 aquiring a new one.
454
455 -indev address
456 Set input drive and load an ISO image if present. If the new
457 input drive differs from -outdev then switch from growing to
458 modifying or to blind growing. It depends on the setting of
459 -grow_blindly which of both gets activated. The same rules and
460 restrictions apply as with -dev.
461
462 -outdev address
463 Set output drive and if it differs from the input drive then
464 switch from growing to modifying or to blind growing. Unlike
465 -dev and -indev this action does not load a new ISO image. So it
466 can be performed even if there are pending changes.
467 -outdev can be performed without previous -dev or -indev. In
468 that case an empty ISO image with no changes pending is created.
469 It can either be populated by help of -map, -add et.al. or it
470 can be discarded silently if -dev or -indev are performed
471 afterwards.
472 Special address string "-" means standard output, to which
473 several restrictions apply. See above paragraph "Libburn
474 drives".
475 An empty address string "" gives up the current output drive
476 without aquiring a new one. No writing is possible without an
477 output drive.
478
479 -grow_blindly "off"|predicted_nwa
480 If predicted_nwa is a non-negative number then perform blind
481 growing rather than modifying if -indev and -outdev are set to
482 different drives. "off" or "-1" switch to modifying, which is
483 the default.
484 predicted_nwa is the block address where the add-on session of
485 blind growing will finally end up. It is the responsibility of
486 the user to ensure this final position and the presence of the
487 older sessions. Else the overall ISO image will not be mountable
488 or will produce read errors when accessing file content. xorriso
489 will write the session to the address as obtained from examining
490 -outdev and not necessarily to predicted_nwa.
491 During a run of blind growing, the input drive is given up
492 before output begins. The output drive is given up when writing
493 is done.
494
495 Influencing the behavior of image loading:
496
497 The following options should normally be performed before loading an
498 image by aquiring an input drive. In rare cases it is desirable to
499 activate them only after image loading.
500
501 -load entity id
502 Load a particular (possibly outdated) ISO session from -dev or
503 -indev. Usually all available sessions are shown with option
504 -toc.
505 entity depicts the kind of addressing. id depicts the particular
506 address. The following entities are defined:
507 "auto" with any id addresses the last session in -toc. This is
508 the default.
509 "session" with id being a number as of a line "ISO session",
510 column "Idx".
511 "track" with id being a number as of a line "ISO track", column
512 "Idx".
513 "lba" or "sbsector" with a number as of a line "ISO ...", column
514 "sbsector".
515 "volid" with a search pattern for a text as of a line "ISO ...",
516 column "Volume Id".
517 Adressing a non-existing entity or one which does not represent
518 an ISO image will either abandon -indev or at least lead to a
519 blank image.
520 If an input drive is set at the moment when -load is executed,
521 then the addressed ISO image is loaded immediately. Else, the
522 setting will be pending until the next -dev or -indev. After the
523 image has been loaded once, the setting is valid for -rollback
524 until next -dev or -indev, where it will be reset to "auto".
525
526 -displacement [-]lba
527 Compensate a displacement of the image versus the start address
528 for which the image was prepared. This affects only loading of
529 ISO images and reading of their files. The multi-session method
530 of growing is not allowed as long as -displacement is non-zero.
531 I.e. -indev and -outdev must be different. The displacement gets
532 reset to 0 before the drive gets re-aquired after writing.
533 Examples:
534 If a track of a CD starts at block 123456 and gets copied to a
535 disk file where it begins at block 0, then this copy can be
536 loaded with -displacement -123456.
537 If an ISO image was written onto a partition with offset of
538 640000 blocks of 512 bytes, then it can be loaded from the base
539 device by -displacement 160000.
540 In both cases, the ISO sessions should be self contained, i.e.
541 not add-on sessions to an ISO image outside their track resp.
542 partition.
543
544 -drive_class "harmless"|"banned"|"caution"|"clear_list" disk_pattern
545 Add a drive path pattern to one of the safety lists or make
546 those lists empty. There are three lists defined which get
547 tested in the following sequence:
548 If a drive address path matches the "harmless" list then the
549 drive will be accepted. If it is not a MMC device then the
550 prefix "stdio:" will be prepended automatically. This list is
551 empty by default.
552 Else if the path matches the "banned" list then the drive will
553 not be accepted by xorriso but rather lead to a FAILURE event.
554 This list is empty by default.
555 Else if the path matches the "caution" list and if it is not a
556 MMC device, then its address must have the prefix "stdio:" or it
557 will be rejected. This list has by default one entry: "/dev".
558 If a drive path matches no list then it is considered
559 "harmless". By default these are all paths which do not begin
560 with directory "/dev".
561 A path matches a list if one of its parent paths or itself
562 matches a list entry. Address prefix "stdio:" or "mmc:" will be
563 ignored when testing for matches.
564 By pseudo-class "clear_list" and pseudo-patterns "banned",
565 "caution", "harmless", or "all", the lists may be made empty.
566 E.g.: -drive_class clear_list banned
567 One will normally define the -drive_class lists in one of the
568 xorriso Startup Files.
569 Note: This is not a security feature but rather a bumper for the
570 superuser to prevent inadverted mishaps. For reliably blocking
571 access to a device file you have to deny its rw-permissions in
572 the filesystem.
573
574 -assert_volid pattern severity
575 Refuse to load ISO images with volume ids which do not match the
576 given search pattern. When refusing an image, give up the input
577 drive and issue an event of the given severity (like FAILURE,
578 see -abort_on). An empty search pattern accepts any image.
579 This option does not hamper the creation of an empty image from
580 blank input media and does not discard an already loaded image.
581
582 -in_charset character_set_name
583 Set the character set from which to convert file names when
584 loading an image. See paragraph "Character sets" for more
585 explanations. When loading the written image after -commit the
586 setting of -out_charset will be copied to -in_charset.
587
588 -auto_charset "on"|"off"
589 Enable or disable recording and interpretation of the output
590 character set name in an xattr attribute of the image root
591 directory. If enabled and if a recorded character set name is
592 found, then this name will be used as namoe of the input
593 character set when reading an image.
594 Note that the default output charset is the local character set
595 of the terminal where xorriso runs. Before attributing this
596 local character set to the produced ISO image, check whether the
597 terminal properly displays all intended filenames, especially
598 exotic national characters.
599
600 -hardlinks mode[:mode...]
601 Enable or disable loading and recording of hardlink relations.
602 In default mode "off", iso_rr files lose their inode numbers at
603 image load time. Each iso_rr file object which has no inode
604 number at image generation time will get a new unique inode
605 number if -compliance is set to new_rr.
606 Mode "on" preserves inode numbers from the loaded image if such
607 numbers were recorded. When committing a session it searches
608 for families of iso_rr files which stem from the same disk file,
609 have identical content filtering and have identical properties.
610 The family members all get the same inode number. Whether these
611 numbers are respected at mount time depends on the operating
612 system.
613 Commands -update and -update_r track splits and fusions of hard
614 links in filesystems which have stable device and inode numbers.
615 This can cause automatic last minute changes before the session
616 gets written. Command -hardlinks "perform_update" may be used to
617 do these changes earlier, e.g. if you need to apply filters to
618 all updated files.
619 Mode "without_update" avoids hardlink processing during update
620 commands. Use this if your filesystem situation does not allow
621 -disk_dev_ino "on".
622 xorriso commands which extract files from an ISO image try to
623 hardlink files with identical inode number. The normal scope of
624 this operation is from image load to image load. One may give up
625 the accumulated hard link addresses by -hardlinks
626 "discard_extract".
627 A large number of hardlink families may exhaust -temp_mem_limit
628 if not -osirrox "sort_lba_on" and -hardlinks
629 "cheap_sorted_extract" are both in effect. This restricts hard
630 linking to other files restored by the same single extract
631 command. -hardlinks "normal_extract" re-enables wide and
632 expensive hardlink accumulation.
633
634 -acl "on"|"off"
635 Enable or disable processing of ACLs. If enabled, then xorriso
636 will obtain ACLs from disk file objects, store ACLs in the ISO
637 image using the libisofs specific AAIP format, load AAIP data
638 from ISO images, test ACL during file comparison, and restore
639 ACLs to disk files when extracting them from ISO images. See
640 also options -getfacl, -setfacl.
641
642 -xattr "on"|"off"
643 Enable or disable processing of xattr attributes in user
644 namespace. If enabled, then xorriso will handle xattr similar
645 to ACL. See also options -getfattr, -setfattr and above
646 paragraph about xattr.
647
648 -md5 "on"|"all"|"off"|"load_check_off"
649 Enable or disable processing of MD5 checksums for the overall
650 session and for each single data file. If enabled then images
651 with checksum tags get loaded only if the tags of superblock and
652 directory tree match properly. The MD5 checksums of data files
653 and whole session get loaded from the image if there are any.
654 With options -compare and -update the recorded MD5 of a file
655 will be used to avoid content reading from the image. Only the
656 disk file content will be read and compared with that MD5. This
657 can save much time if -disk_dev_ino "on" is not suitable.
658 At image generation time they are computed for each file which
659 gets its data written into the new session. The checksums of
660 files which have their data in older sessions get copied into
661 the new session. Superblock, tree and whole session get a
662 checksum tag each.
663 Mode "all" will additionally check during image generation
664 whether the checksum of a data file changed between the time
665 when its reading began and the time when it ended. This implies
666 reading every file twice.
667 Mode "load_check_off" together with "on" or "all" will load
668 recorded MD5 sums but not test the recorded checksum tags of
669 superblock and directory tree. This is necessary if growisofs
670 was used as burn program, because it does not overwrite the
671 superblock checksum tag of the first session. Therefore
672 load_check_off is in effect when xorriso -as mkisofs option -M
673 is performed.
674 The test can be re-enabled by mode "load_check_on".
675 Checksums can be exploited via options -check_md5, -check_md5_r,
676 via find actions get_md5, check_md5, and via -check_media.
677
678 -for_backup
679 Enable all extra features which help to produce or to restore
680 backups with highest fidelity of file properties. Currently
681 this is a shortcut for: -hardlinks on -acl on -xattr on -md5 on.
682
683 -disk_dev_ino "on"|"ino_only"|"off"
684 Enable or disable processing of recorded file identification
685 numbers (dev_t and ino_t). If enabled they are stored as xattr
686 and allow to substantially accelerate file comparison. The root
687 node gets a global start timestamp. If during comparison a file
688 with younger timestamps is found in the ISO image, then it is
689 suspected to have inconsistent content.
690 If device numbers and inode numbers of the disk filesystems are
691 persistent and if no irregular alterations of timestamps or
692 system clock happen, then potential content changes can be
693 detected without reading that content. File content change is
694 assumed if any of mtime, ctime, device number or inode number
695 have changed.
696 Mode "ino_only" replaces the precondition that device numbers
697 are stable by the precondition that mount points in the compared
698 tree always lead to the same filesystems. Use this if mode "on"
699 always sees all files changed.
700 The speed advantage appears only if the loaded session was
701 produced with -disk_dev_ino "on" too.
702 Note that -disk_dev_ino "off" is totally in effect only if
703 -hardlinks is "off", too.
704
705 -rom_toc_scan "on"|"force"|"off"[:"emul_on"|"emul_off"]
706 Read-only drives do not tell the actual media type but show any
707 media as ROM (e.g. as DVD-ROM). The session history of MMC
708 multi-session media might be truncated to first and last session
709 or even be completely false. (The emulated history of
710 overwriteable media is not affected by this.)
711 To have in case of failure a chance of getting the session
712 history and especially the address of the last session, there is
713 a scan for ISO 9660 filesystem headers which might help but also
714 might yield worse results than the drive's table of content. At
715 its end it can cause read attempts to invalid addresses and thus
716 ugly drive behavior. Setting "on" enables that scan for alleged
717 read-only media.
718 Some operating systems are not able to mount the most recent
719 session of multi-session DVD or BD. If on such a system xorriso
720 has no own MMC capabilities then it may still find that session
721 from a scanned table of content. Setting "force" handles any
722 media like a ROM medium with setting "on".
723 On the other hand the emulation of session history on
724 overwriteable media can hamper reading of partly damaged media.
725 Setting "off:emul_off" disables the elsewise trustworthy
726 table-of-content scan for those media.
727 To be in effect, the -rom_toc_scan setting has to be made before
728 the -*dev command which aquires drive and medium.
729
730 -calm_drive "in"|"out"|"all"|"revoke"|"on"|"off"
731 Reduce drive noise until it is actually used again. Some drives
732 stay alert for substantial time after they have been used for
733 reading. This reduces the startup time for the next drive
734 operation but can be loud and waste energy if no i/o with the
735 drive is expected to happen soon.
736 Modes "in", "out", "all" immediately calm down -indev, -outdev,
737 resp. both. Mode "revoke" immediately alerts both. Mode "on"
738 causes -calm_drive to be performed automatically after each
739 -dev, -indev, and -outdev. Mode "off" disables this.
740
741 -ban_stdio_write
742 Allow for writing only the usage of MMC optical drives. Disallow
743 to write the result into files of nearly arbitrary type. Once
744 set, this command cannot be revoked.
745
746 -early_stdio_test "on"|"appendable_wo"|"off"
747 If enabled by "on" then regular files and block devices get
748 tested for effective access permissions. This implies to try
749 opening those files for writing, which otherwise will happen
750 only later and only if actual writing is desired.
751 The test result is used for classifying the pseudo drives as
752 overwriteable, read-only, write-only, or uselessly empty. This
753 may lead to earlier detection of severe problems, and may avoid
754 some less severe error events.
755 Mode "appendable_wo" is like "on" with the additional property
756 that non-empty write-only files are regarded as appendable
757 rather than blank.
758
759 Inserting files into ISO image:
760
761 The following commands expect file addresses of two kinds:
762 disk_path is a path to an object in the local filesystem tree.
763 iso_rr_path is the Rock Ridge name of a file object in the ISO image.
764 (Do not confuse with the lowlevel ISO 9660 names visible if Rock Ridge
765 gets ignored.)
766
767 Note that in the ISO image you are as powerful as the superuser. Access
768 permissions of the existing files in the image do not apply to your
769 write operations. They are intended to be in effect with the read-only
770 mounted image.
771
772 If the iso_rr_path of a newly inserted file leads to an existing file
773 object in the ISO image, then the following collision handling happens:
774 If both objects are directories then they get merged by recursively
775 inserting the subobjects from filesystem into ISO image. If other file
776 types collide then the setting of command -overwrite decides.
777 Renaming of files has similar collision handling, but directories can
778 only be replaced, not merged. Note that if the target directory exists,
779 then -mv inserts the source objects into this directory rather than
780 attempting to replace it.
781
782 The commands in this section alter the ISO image and not the local
783 filesystem.
784
785 -disk_pattern "on"|"ls"|"off"
786 Set the pattern expansion mode for the disk_path arguments of
787 several commands which support this feature.
788 Setting "off" disables this feature for all commands which are
789 marked in this man page by "disk_path [***]" or "disk_pattern
790 [***]".
791 Setting "on" enables it for all those commands.
792 Setting "ls" enables it only for those which are marked by
793 "disk_pattern [***]".
794 Default is "ls".
795
796 -add pathspec [...] | disk_path [***]
797 Insert the given files or directory trees from filesystem into
798 the ISO image.
799 If -pathspecs is set to "on" then pattern expansion is always
800 disabled and character '=' has a special meaning. It separates
801 the ISO image path from the disk path:
802 iso_rr_path=disk_path
803 The separator '=' can be escaped by '\'. If iso_rr_path does
804 not begin with '/' then -cd is prepended. If disk_path does not
805 begin with '/' then -cdx is prepended.
806 If no '=' is given then the word is used as both, iso_rr_path
807 and disk path. If in this case the word does not begin with '/'
808 then -cdx is prepended to the disk_path and -cd is prepended to
809 the iso_rr_path.
810 If -pathspecs is set to "off" then -disk_pattern expansion
811 applies, if enabled. The resulting words are used as both,
812 iso_rr_path and disk path. Relative path words get prepended the
813 setting of -cdx to disk_path and the setting of -cd to
814 iso_rr_path.
815
816 -add_plainly mode
817 If set to mode "unknown" then any command word that does not
818 begin with "-" and is not recognized as known command will be
819 subject to a virtual -add command. I.e. it will be used as
820 pathspec or as disk_path and added to the image. If enabled,
821 -disk_pattern expansion applies to disk_paths.
822 Mode "dashed" is similar to "unknown" but also adds unrecognized
823 command words even if they begin with "-".
824 Mode "any" announces that all further words are to be added as
825 pathspecs or disk_paths. This does not work in dialog mode.
826 Mode "none" is the default. It prevents any words from being
827 understood as files to add, if they are not parameters to
828 appropriate commands.
829
830 -path_list disk_path
831 Like -add but read the parameter words from file disk_path or
832 standard input if disk_path is "-". The list must contain
833 exactly one pathspec resp. disk_path pattern per line.
834
835 -quoted_path_list disk_path
836 Like -path_list but with quoted input reading rules. Lines get
837 split into parameter words for -add. Whitespace outside quotes
838 is discarded.
839
840 -map disk_path iso_rr_path
841 Insert file object disk_path into the ISO image as iso_rr_path.
842 If disk_path is a directory then its whole sub tree is inserted
843 into the ISO image.
844
845 -map_single disk_path iso_rr_path
846 Like -map, but if disk_path is a directory then its sub tree is
847 not inserted.
848
849 -map_l disk_prefix iso_rr_prefix disk_path [***]
850 Perform -map with each of the disk_path arguments. iso_rr_path
851 will be composed from disk_path by replacing disk_prefix by
852 iso_rr_prefix.
853
854 -update disk_path iso_rr_path
855 Compare file object disk_path with file object iso_rr_path. If
856 they do not match, then perform the necessary image
857 manipulations to make iso_rr_path a matching copy of disk_path.
858 By default this comparison will imply lengthy content reading
859 before a decision is made. Options -disk_dev_ino or -md5 may
860 accelerate comparison if they were already in effect when the
861 loaded session was recorded.
862 If disk_path is a directory and iso_rr_path does not exist yet,
863 then the whole subtree will be inserted. Else only directory
864 attributes will be updated.
865
866 -update_r disk_path iso_rr_path
867 Like -update but working recursively. I.e. all file objects
868 below both addresses get compared whether they have counterparts
869 below the other address and whether both counterparts match. If
870 there is a mismatch then the necessary update manipulation is
871 done.
872 Note that the comparison result may depend on option -follow.
873 Its setting should always be the same as with the first adding
874 of disk_path as iso_rr_path.
875 If iso_rr_path does not exist yet, then it gets added. If
876 disk_path does not exist, then iso_rr_path gets deleted.
877
878 -update_l disk_prefix iso_rr_prefix disk_path [***]
879 Perform -update_r with each of the disk_path arguments.
880 iso_rr_path will be composed from disk_path by replacing
881 disk_prefix by iso_rr_prefix.
882
883 -cut_out disk_path byte_offset byte_count iso_rr_path
884 Map a byte interval of a regular disk file into a regular file
885 in the ISO image. This may be necessary if the disk file is
886 larger than a single medium, or if it exceeds the traditional
887 limit of 2 GiB - 1 for old operating systems, or the limit of 4
888 GiB - 1 for newer ones. Only the newest Linux kernels seem to
889 read properly files >= 4 GiB - 1.
890 A clumsy remedy for this limit is to backup file pieces and to
891 concatenate them at restore time. A well tested chopping size is
892 2047m. It is permissible to request a higher byte_count than
893 available. The resulting file will be truncated to the correct
894 size of a final piece. To request a byte_offset higher than
895 available yields no file in the ISO image but a SORRY event.
896 E.g:
897 -cut_out /my/disk/file 0 2047m \
898 /file/part_1_of_3_at_0_with_2047m_of_5753194821 \
899 -cut_out /my/disk/file 2047m 2047m \
900 /file/part_2_of_3_at_2047m_with_2047m_of_5753194821 \
901 -cut_out /my/disk/file 4094m 2047m \
902 /file/part_3_of_3_at_4094m_with_2047m_of_5753194821
903 While option -split_size is set larger than 0, and if all pieces
904 of a file reside in the same ISO directory with no other files,
905 and if the names look like above, then their ISO directory will
906 be recognized and handled like a regular file. This affects
907 options -compare*, -update*, and overwrite situations. See
908 option -split_size for details.
909
910 -cpr disk_path [***] iso_rr_path
911 Insert the given files or directory trees from filesystem into
912 the ISO image.
913 The rules for generating the ISO addresses are similar as with
914 shell command cp -r. Nevertheless, directories of the
915 iso_rr_path are created if necessary. Especially a not yet
916 existing iso_rr_path will be handled as directory if multiple
917 disk_paths are present. The leafnames of the multiple
918 disk_paths will be grafted under that directory as would be done
919 with an existing directory.
920 If a single disk_path is present then a non-existing iso_rr_path
921 will get the same type as the disk_path.
922 If a disk_path does not begin with '/' then -cdx is prepended.
923 If the iso_rr_path does not begin with '/' then -cd is
924 prepended.
925
926 -mkdir iso_rr_path [...]
927 Create empty directories if they do not exist yet. Existence as
928 directory generates a WARNING event, existence as other file
929 causes a FAILURE event.
930
931 -clone iso_rr_path_original iso_rr_path_copy
932 Create a copy of the ISO file object iso_rr_path_original with
933 the new address iso_rr_path_copy. If the original is a directory
934 then copy all files and directories underneath. If
935 iso_rr_path_original is a boot catalog file, then it gets not
936 copied but is silently ignored.
937 The copied ISO file objects have the same attributes. Copied
938 data files refer to the same content source as their originals.
939 The copies may then be manipulated independendly of their
940 originals.
941 This command will refuse execution if the address
942 iso_rr_path_copy already exists in the ISO tree.
943
944 -cp_clone iso_rr_path_original [***] iso_rr_path_dest
945 Create copies of one or more ISO file objects as with command
946 -clone. In case of collision merge directories with existing
947 ones, but do not overwrite existing ISO file objects.
948 The rules for generating the copy addresses are the same as with
949 command -cpr (see above) resp. shell command cp -r. Other than
950 with -cpr, relative iso_rr_path_original will get prepended the
951 -cd path and not the -cdx path. Consider to -mkdir
952 iso_rr_path_dest before -cp_clone so the copy address does not
953 depend on the number of iso_rr_path_original arguments.
954
955 Settings for file insertion:
956
957 -file_size_limit value [value [...]] --
958 Set the maximum permissible size for a single data file. The
959 values get summed up for the actual limit. If the only value is
960 "off" then the file size is not limited by xorriso. Default is
961 a limit of 100 extents, 4g -2k each:
962 -file_size_limit 400g -200k --
963 When mounting ISO 9660 filesystems, old operating systems can
964 handle only files up to 2g -1 --. Newer ones are good up to 4g
965 -1 --. You need quite a new Linux kernel to read correctly the
966 final bytes of a file >= 4g if its size is not aligned to 2048
967 byte blocks.
968 xorriso's own data read capabilities are not affected by
969 operating system size limits. Such limits apply to mounting
970 only. Nevertheless, the target filesystem of an -extract must be
971 able to take the file size.
972
973 -not_mgt code[:code[...]]
974 Control the behavior of the exclusion lists.
975 Exclusion processing happens before disk_paths get mapped to the
976 ISO image and before disk files get compared with image files.
977 The absolute disk path of the source is matched against the
978 -not_paths list. The leafname of the disk path is matched
979 against the patterns in the -not_leaf list. If a match is
980 detected then the disk path will not be regarded as an existing
981 file and not be added to the ISO image.
982 Several codes are defined. The _on/_off settings persist until
983 they are revoked by their_off/_on counterparts.
984 "erase" empties the lists which were accumulated by -not_paths
985 and -not_leaf.
986 "reset" is like "erase" but also re-installs default behavior.
987 "off" disables exclusion processing temporarily without
988 invalidating the lists and settings.
989 "on" re-enables exclusion processing.
990 "param_off" applies exclusion processing only to paths below
991 disk_path parameter of commands. I.e. explicitly given
992 disk_paths are exempted from exclusion processing.
993 "param_on" applies exclusion processing to command parameters as
994 well as to files below such parameters.
995 "subtree_off" with "param_on" excludes parameter paths only if
996 they match a -not_paths item exactly.
997 "subtree_on" additionally excludes parameter paths which lead to
998 a file address below any -not_paths item.
999 "ignore_off" treats excluded disk files as if they were missing.
1000 I.e. they get reported with -compare and deleted from the image
1001 with -update.
1002 "ignore_on" keeps excluded files out of -compare or -update
1003 activities.
1004
1005 -not_paths disk_path [***]
1006 Add the given paths to the list of excluded absolute disk paths.
1007 If a given path is relative, then the current -cdx is prepended
1008 to form an absolute path. Pattern matching, if enabled, happens
1009 at definition time and not when exclusion checks are made.
1010 (Do not forget to end the list of disk_paths by "--")
1011
1012 -not_leaf pattern
1013 Add a single shell parser style pattern to the list of
1014 exclusions for disk leafnames. These patterns are evaluated when
1015 the exclusion checks are made.
1016
1017 -not_list disk_path
1018 Read lines from disk_path and use each of them either as
1019 -not_paths argument, if they contain a / character, or as
1020 -not_leaf pattern.
1021
1022 -quoted_not_list disk_path
1023 Like -not_list but with quoted input reading rules. Each word is
1024 handled as one argument for -not_paths resp. -not_leaf.
1025
1026 -follow occasion[:occasion[...]]
1027 Enable or disable resolution of symbolic links and mountpoints
1028 under disk_paths. This applies to actions -add, -du*x, -ls*x,
1029 -findx, and to -disk_pattern expansion.
1030 There are two kinds of follow decisison to be made:
1031 "link" is the hop from a symbolic link to its target file
1032 object. If enabled then symbolic links are handled as their
1033 target file objects, else symbolic links are handled as
1034 themselves.
1035 "mount" is the hop from one filesystem to another subordinate
1036 filesystem. If enabled then mountpoint directories are handled
1037 as any other directory, else mountpoints are handled as empty
1038 directories if they are encountered in directory tree
1039 traversals.
1040 Less general than above occasions:
1041 "pattern" is mount and link hopping, but only during
1042 -disk_pattern expansion.
1043 "param" is link hopping for parameter words (after eventual
1044 pattern expansion). If enabled then -ls*x will show the link
1045 targets rather than the links themselves. -du*x, -findx, and
1046 -add will process the link targets but not follow links in an
1047 eventual directory tree below the targets (unless "link" is
1048 enabled).
1049 Occasions can be combined in a colon separated list. All
1050 occasions mentioned in the list will then lead to a positive
1051 follow decision.
1052 "off" prevents any positive follow decision. Use it if no other
1053 occasion applies.
1054 Shortcuts:
1055 "default" is equivalent to "pattern:mount:limit=100".
1056 "on" always decides positive. Equivalent to "link:mount".
1057
1058 Not an occasion but an optional setting is:
1059 "limit="<number> which sets the maximum number of link hops. A
1060 link hop consists of a sequence of symbolic links and a final
1061 target of different type. Nevertheless those hops can loop.
1062 Example:
1063 $ ln -s .. uploop
1064 Link hopping has a built-in loop detection which stops hopping
1065 at the first repetition of a link target. Then the repeated link
1066 is handled as itself and not as its target. Regrettably one can
1067 construct link networks which cause exponential workload before
1068 their loops get detected. The number given with "limit=" can
1069 curb this workload at the risk of truncating an intentional
1070 sequence of link hops.
1071
1072 -pathspecs "on"|"off"
1073 Control parameter interpretation with xorriso actions -add and
1074 -path_list.
1075 "on" enables pathspecs of the form target=source like with
1076 program mkisofs -graft-points. It also disables -disk_pattern
1077 expansion for command -add.
1078 "off" disables pathspecs of the form target=source and
1079 re-enables -disk_pattern expansion.
1080
1081 -overwrite "on"|"nondir"|"off"
1082 Allow or disallow to overwrite existing files in the ISO image
1083 by files with the same name.
1084 With setting "off", name collisions cause FAILURE events. With
1085 setting "nondir", only directories are protected by such events,
1086 other existing file types get treated with -rm before the new
1087 file gets added. Setting "on" allows automatic -rm_r. I.e. a
1088 non-directory can replace an existing directory and all its
1089 subordinates.
1090 If restoring of files is enabled, then the overwrite rule
1091 applies to the target file objects on disk as well, but "on" is
1092 downgraded to "nondir".
1093
1094 -split_size number["k"|"m"]
1095 Set the threshold for automatic splitting of regular files. Such
1096 splitting maps a large disk file onto a ISO directory with
1097 several part files in it. This is necessary if the size of the
1098 disk file exceeds -file_size_limit. Older operating systems can
1099 handle files in mounted ISO 9660 filesystems only if they are
1100 smaller than 2 GiB resp. 4 GiB.
1101 Default is 0 which will exclude files larger than
1102 -file_size_limit by a FAILURE event. A well tested -split_size
1103 is 2047m. Sizes above -file_size_limit are not permissible.
1104 While option -split_size is set larger than 0 such a directory
1105 with split file pieces will be recognized and handled like a
1106 regular file by options -compare* , -update*, and in overwrite
1107 situations. There are -ossirox options "concat_split_on" and
1108 "concat_split_off" which control the handling when files get
1109 restored to disk.
1110 In order to be recognizable, the names of the part files have to
1111 describe the splitting by 5 numbers:
1112 part_number,total_parts,byte_offset,byte_count,disk_file_size
1113 which are embedded in the following text form:
1114 part_#_of_#_at_#_with_#_of_#
1115 Scaling characters like "m" or "k" are taken into respect. All
1116 digits are interpreted as decimal, even if leading zeros are
1117 present.
1118 E.g: /file/part_1_of_3_at_0_with_2047m_of_5753194821
1119 No other files are allowed in the directory. All parts have to
1120 be present and their numbers have to be plausible. E.g.
1121 byte_count must be valid as -cut_out argument and their contents
1122 may not overlap.
1123
1124 File manipulations:
1125
1126 The following commands manipulate files in the ISO image, regardless
1127 whether they stem from the loaded image or were newly inserted.
1128
1129 -iso_rr_pattern "on"|"ls"|"off"
1130 Set the pattern expansion mode for the iso_rr_path arguments of
1131 several commands which support this feature.
1132 Setting "off" disables pattern expansion for all commands which
1133 are marked in this man page by "iso_rr_path [***]" or
1134 "iso_rr_pattern [***]".
1135 Setting "on" enables it for all those commands.
1136 Setting "ls" enables it only for those which are marked by
1137 "iso_rr_pattern [***]".
1138 Default is "on".
1139
1140 -rm iso_rr_path [***]
1141 Delete the given files from the ISO image.
1142 Note: This does not free any space on the -indev medium, even if
1143 the deletion is committed to that same medium.
1144 The image size will shrink if the image is written to a
1145 different medium in modification mode.
1146
1147 -rm_r iso_rr_path [***]
1148 Delete the given files or directory trees from the ISO image.
1149 See also the note with option -rm.
1150
1151 -rmdir iso_rr_path [***]
1152 Delete empty directories.
1153
1154 -mv iso_rr_path [***] iso_rr_path
1155 Rename the given file objects in the ISO tree to the last
1156 argument in the list. Use the same rules as with shell command
1157 mv.
1158 If pattern expansion is enabled and if the last argument
1159 contains wildcard characters then it must match exactly one
1160 existing file address, or else the command fails with a FAILURE
1161 event.
1162
1163 -chown uid iso_rr_path [***]
1164 Set ownership of file objects in the ISO image. uid may either
1165 be a decimal number or the name of a user known to the operating
1166 system.
1167
1168 -chown_r uid iso_rr_path [***]
1169 Like -chown but affecting all files below eventual directories.
1170
1171 -chgrp gid iso_rr_path [***]
1172 Set group attribute of file objects in the ISO image. gid may
1173 either be a decimal number or the name of a group known to the
1174 operating system.
1175
1176 -chgrp_r gid iso_rr_path [***]
1177 Like -chgrp but affecting all files below eventual directories.
1178
1179 -chmod mode iso_rr_path [***]
1180 Equivalent to shell command chmod in the ISO image. mode is
1181 either an octal number beginning with "0" or a comma separated
1182 list of statements of the form [ugoa]*[+-=][rwxst]* .
1183 Like: go-rwx,u+rwx .
1184 Personalities: u=user, g=group, o=others, a=all
1185 Operators: + adds given permissions, - revokes given
1186 permissions, = revokes all old permissions and then adds the
1187 given ones.
1188 Permissions: r=read, w=write, x=execute|inspect,
1189 s=setuid|setgid, t=sticky bit
1190 For octal numbers see man 2 stat.
1191
1192 -chmod_r mode iso_rr_path [***]
1193 Like -chmod but affecting all files below eventual directories.
1194
1195 -setfacl acl_text iso_rr_path [***]
1196 Attach the given ACL to the given iso_rr_paths. If the files
1197 already have ACLs, then those get deleted before the new ones
1198 get into effect. If acl_text is empty, or contains the text
1199 "clear" or the text "--remove-all", then the existing ACLs will
1200 be removed and no new ones will be attached. Any other content
1201 of acl_text will be interpreted as a list of ACL entries. It may
1202 be in the long multi-line format as put out by -getfacl but may
1203 also be abbreviated as follows:
1204 ACL entries are separated by comma or newline. If an entry is
1205 empty text or begins with "#" then it will be ignored. A valid
1206 entry has to begin by a letter out of {ugom} for "user",
1207 "group", "other", "mask". It has to contain two colons ":". A
1208 non-empty text between those ":" gives a user id resp. group id.
1209 After the second ":" there may be letters out of {rwx- #}. The
1210 first three give read, write resp. execute permission. Letters
1211 "-", " " and TAB are ignored. "#" causes the rest of the entry
1212 to be ignored. Letter "X" or any other letters are not
1213 supported. Examples:
1214 g:toolies:rw,u:lisa:rw,u:1001:rw,u::wr,g::r,o::r,m::rw
1215 group:toolies:rw-,user::rw-,group::r--,other::r--,mask::rw-
1216 A valid entry may be prefixed by "d", some following characters
1217 and ":". This indicates that the entry goes to the "default"
1218 ACL rather than to the "access" ACL. Example:
1219 u::rwx,g::rx,o::,d:u::rwx,d:g::rx,d:o::,d:u:lisa:rwx,d:m::rwx
1220
1221 -setfacl_r acl_text iso_rr_path [***]
1222 Like -setfacl but affecting all files below eventual
1223 directories.
1224
1225 -setfacl_list disk_path
1226 Read the output of -getfacl_r or shell command getfacl -R and
1227 apply it to the iso_rr_paths as given in lines beginning with "#
1228 file:". This will change ownership, group and ACL of the given
1229 files. If disk_path is "-" then lines are read from standard
1230 input. Line "@" ends the list, "@@@" aborts without changing the
1231 pending iso_rr_path.
1232 Since -getfacl and getfacl -R strip leading "/" from file paths,
1233 the setting of -cd does always matter.
1234
1235 -setfattr [-]name value iso_rr_path [***]
1236 Attach the given xattr pair of name and value to the given
1237 iso_rr_paths. If the given name is prefixed by "-", then the
1238 pair with that name gets removed from the xattr list. If name is
1239 "--remove-all" then all user namespace xattr of the given
1240 iso_rr_paths get deleted. In case of deletion, value must be an
1241 empty text.
1242 Only names from the user namespace are allowed. I.e. a name has
1243 to begin with "user.", like "user.x" or "user.whatever".
1244 Values and names undergo the normal input processing of xorriso.
1245 See also option -backslash_codes. Other than with option
1246 -setfattr_list, the byte value 0 cannot be expressed via
1247 -setfattr.
1248
1249 -setfattr_r [-]name value iso_rr_path [***]
1250 Like -setfattr but affecting all files below eventual
1251 directories.
1252
1253 -setfattr_list disk_path
1254 Read the output of -getfattr_r or shell command getfattr -Rd and
1255 apply it to the iso_rr_paths as given in lines beginning with "#
1256 file:". All previously existing user space xattr of the given
1257 iso_rr_paths will be deleted. If disk_path is "-" then lines
1258 are read from standard input.
1259 Since -getfattr and getfattr -Rd strip leading "/" from file
1260 paths, the setting of -cd does always matter.
1261 Empty input lines and lines which begin by "#" will be ignored
1262 (except "# file:"). Line "@" ends the list, "@@@" aborts without
1263 changing the pending iso_rr_path. Other input lines must have
1264 the form
1265 name="value"
1266 Name must be from user namespace. I.e. user.xyz where xyz should
1267 consist of printable characters only. The separator "=" is not
1268 allowed in names. Value may contain any kind of bytes. It must
1269 be in quotes. Trailing whitespace after the end quote will be
1270 ignored. Non-printables bytes and quotes must be represented as
1271 \XYZ by their octal ASCII code XYZ. Use code \000 for 0-bytes.
1272
1273 -alter_date type timestring iso_rr_path [***]
1274 Alter the date entries of a file in the ISO image. type is one
1275 of "a", "m", "b" for access time, modification time, both times.
1276 timestring may be in the following formats (see also section
1277 EXAMPLES):
1278 As expected by program date:
1279 MMDDhhmm[[CC]YY][.ss]]
1280 As produced by program date:
1281 [Day] MMM DD hh:mm:ss [TZON] YYYY
1282 Relative times counted from current clock time:
1283 +|-Number["s"|"h"|"d"|"w"|"m"|"y"]
1284 where "s" means seconds, "h" hours, "d" days, "w" weeks,
1285 "m"=30d, "y"=365.25d plus 1d added to multiplication result.
1286 Absolute seconds counted from Jan 1 1970:
1287 =Number
1288 xorriso's own timestamps:
1289 YYYY.MM.DD[.hh[mm[ss]]]
1290 scdbackup timestamps:
1291 YYMMDD[.hhmm[ss]]
1292 where "A0" is year 2000, "B0" is 2010, etc.
1293
1294 -alter_date_r type timestring iso_rr_path [***]
1295 Like -alter_date but affecting all files below eventual
1296 directories.
1297
1298 -hide hide_state iso_rr_path [***]
1299 Prevent the names of the given files from showing up in the
1300 directory trees of ISO 9660 and/or Joliet when the image gets
1301 written. The data content of such hidden files will be included
1302 in the resulting image, even if they do not show up in any
1303 directory. But you will need own means to find nameless data in
1304 the image.
1305 Warning: Data which are hidden from the ISO 9660 tree will not
1306 be copied by the write method of modifying.
1307 Possible values of hide_state are: "iso_rr" for hiding from ISO
1308 9660 tree, "joliet" for Joliet tree, "on" for both trees. "off"
1309 means visibility in both directory trees.
1310 This command does not apply to the boot catalog. Rather use:
1311 -boot_image "any" "cat_hidden=on"
1312
1313 Tree traversal command -find:
1314
1315 -find iso_rr_path [test [op] [test ...]] [-exec action [params]] --
1316 A restricted substitute for shell command find in the ISO image.
1317 It performs an action on matching file objects at or below
1318 iso_rr_path.
1319 If not used as last command in the line then the argument list
1320 needs to get terminated by "--".
1321 Tests are optional. If they are omitted then action is applied
1322 to all file objects. If tests are given then they form together
1323 an expression. The action is applied only if the expression
1324 matches the file object. Default expression operator between
1325 tests is -and, i.e. the expression matches only if all its tests
1326 match.
1327 Available tests are:
1328 -name pattern : Matches if pattern matches the file leaf name.
1329 -wholename pattern : Matches if pattern matches the file path as
1330 it would be printed by action "echo". Character '/' is not
1331 special but can be matched by wildcards.
1332 -disk_name pattern : Like -name but testing the leaf name of the
1333 file source on disk. Can be true only for data files which stem
1334 not from the loaded image.
1335 -type type_letter : Matches files of the given type: "block",
1336 "char", "dir", "pipe", "file", "link", "socket", "eltorito", and
1337 "Xotic" which matches what is not matched by the other types.
1338 Only the first letter is interpreted. E.g.: -find / -type d
1339 -damaged : Matches files which use data blocks marked as damaged
1340 by a previous run of -check_media. The damage info vanishes when
1341 a new ISO image gets loaded.
1342 Note that a MD5 session mismatch marks all files of the session
1343 as damaged. If finer distinction is desired, perform -md5 off
1344 before -check_media.
1345 -pending_data : Matches files which get their content from
1346 outside the loaded ISO image.
1347 -lba_range start_lba block_count : Matches files which use data
1348 blocks within the range of start_lba and
1349 start_lba+block_count-1.
1350 -has_acl : Matches files which have a non-trivial ACL.
1351 -has_xattr : Matches files which have xattr name-value pairs
1352 from user namespace.
1353 -has_aaip : Matches files which have ACL or any xattr.
1354 -has_any_xattr : Matches files which have any xattr other than
1355 ACL.
1356 -has_md5 : Matches data files which have MD5 checksums.
1357 -has_filter : Matches files which are filtered by -set_filter.
1358 -hidden hide_state : Matches files which are hidden in "iso_rr"
1359 tree, in "joliet" tree, in both trees ("on"), or not hidden in
1360 any tree ("off"). Those which are hidden in some tree match
1361 -not -hidden "off".
1362 -prune : If this test is reached and the tested file is a
1363 directory then -find will not dive into that directory. This
1364 test itself does always match.
1365 -decision "yes"|"no" : If this test is reached then the
1366 evaluation ends immediately and action is performed if the
1367 decision is "yes" or "true". See operator -if.
1368 -true and -false : Always match resp. match not. Evaluation goes
1369 on.
1370 -sort_lba : Always match. This causes -find to perform its
1371 action in a sequence sorted by the ISO image block addresses of
1372 the files. It may improve throughput with actions which read
1373 data from optical drives. Action will always get the absolute
1374 path as parameter.
1375 Available operators are:
1376 -not : Matches if the next test or sub expression does not
1377 match. Several tests do this specifically:
1378 -undamaged, -lba_range with negative start_lba, -has_no_acl,
1379 -has_no_xattr, -has_no_aaip, -has_no_filter .
1380 -and : Matches if both neighboring tests or expressions match.
1381 -or : Matches if at least one of both neighboring tests or
1382 expressions matches.
1383 -sub ... -subend or ( ... ) : Enclose a sub expression which
1384 gets evaluated first before it is processed by neighboring
1385 operators. Normal precedence is: -not, -or , -and.
1386 -if ... -then ... -elseif ... -then ... -else ... -endif :
1387 Enclose one or more sub expressions. If the -if expression
1388 matches, then the -then expression is evaluated as the result of
1389 the whole expression up to -endif. Else the next -elseif
1390 expression is evaluated and if it matches, its -then expression.
1391 Finally in case of no match, the -else expression is evaluated.
1392 There may be more than one -elseif. Neither -else nor -elseif
1393 are mandatory. If -else is missing and would be hit, then the
1394 result is a non-match.
1395 -if-expressions are the main use case for above test -decision.
1396
1397 Default action is echo, i.e. to print the address of the found
1398 file. Other actions are certain xorriso commands which get
1399 performed on the found files. These commands may have specific
1400 parameters. See also their particular descriptions.
1401 chown and chown_r change the ownership and get the user id as
1402 parameter. E.g.: -exec chown thomas --
1403 chgrp and chgrp_r change the group attribute and get the group
1404 id as parameter. E.g.: -exec chgrp_r staff --
1405 chmod and chmod_r change access permissions and get a mode
1406 string as parameter. E.g.: -exec chmod a-w,a+r --
1407 alter_date and alter_date_r change the timestamps. They get a
1408 type character and a timestring as parameters.
1409 E.g.: -exec alter_date "m" "Dec 30 19:34:12 2007" --
1410 lsdl prints file information like shell command ls -dl.
1411 compare performs command -compare with the found file address as
1412 iso_rr_path and the corresponding file address below its
1413 argument disk_path_start. For this the iso_rr_path of the -find
1414 command gets replaced by the disk_path_start.
1415 E.g.: -find /thomas -exec compare /home/thomas --
1416 update performs command -update with the found file address as
1417 iso_rr_path. The corresponding file address is determined like
1418 with above action "compare".
1419 update_merge is like update but does not delete the found file
1420 if it is missing on disk. It may be run several times and
1421 records with all visited files whether their counterpart on disk
1422 has already been seen by one of the update_merge runs. Finally,
1423 a -find run with action "rm_merge" may remove all files that saw
1424 no counterpart on disk.
1425 Up to the next "rm_merge" or "clear_merge" all newly inserted
1426 files will get marked as having a disk counterpart.
1427 rm removes the found iso_rr_path from the image if it is not a
1428 directory with files in it. I.e. this "rm" includes "rmdir".
1429 rm_r removes the found iso_rr_path from the image, including
1430 whole directory trees.
1431 rm_merge removes the found iso_rr_path if it was visited by one
1432 or more previous actions "update_merge" and saw no counterpart
1433 on disk in any of them. The marking from the update actions is
1434 removed in any case.
1435 clear_merge removes an eventual marking from action
1436 "update_merge".
1437 report_damage classifies files whether they hit a data block
1438 that is marked as damaged. The result is printed together with
1439 the address of the first damaged byte, the maximum span of
1440 damages, file size, and the path of the file.
1441 report_lba prints files which are associated to image data
1442 blocks. It tells the logical block address, the block number,
1443 the byte size, and the path of each file. There may be reported
1444 more than one line per file if the file is very large. In this
1445 case each line has a different extent number in column "xt".
1446 getfacl prints access permissions in ACL text form to the result
1447 channel.
1448 setfacl attaches ACLs after removing existing ones. The new ACL
1449 is given in text form as defined with option -setfacl.
1450 E.g.: -exec setfacl u:lisa:rw,u::rw,g::r,o::-,m::rw --
1451 getfattr prints xattr name-value pairs from user namespace to
1452 the result channel.
1453 get_any_xattr prints xattr name-value pairs from any namespace
1454 except ACL to the result channel. This is mostly for debugging
1455 of namespace "isofs".
1456 list_extattr mode prints a script to the result channel, which
1457 would use FreeBSD command setextattr to set the file's xattr
1458 name-value pairs of user namespace. Parameter mode controls the
1459 form of the output of names and values. Default mode "e" prints
1460 harmless characters in shell quotation marks, but represents
1461 texts with octal 001 to 037 and 0177 to 0377 by an embedded echo
1462 -e command. Mode "q" prints any characters in shell quotation
1463 marks. This might not be terminal-safe but should work in script
1464 files. Mode "r" uses no quotation marks. Not safe. Mode "b"
1465 prints backslash encoding. Not suitable for shell parsing.
1466 E.g. -exec list_extattr e --
1467 Option -backslash_codes does not affect the output.
1468 get_md5 prints the MD5 sum, if recorded, together with file
1469 path.
1470 check_md5 compares the MD5 sum, if recorded, with the file
1471 content and reports if mismatch.
1472 E.g.: -find / -not -pending_data -exec check_md5 FAILURE --
1473 make_md5 equips a data file with an MD5 sum of its content.
1474 Useful to upgrade the files in the loaded image to full MD5
1475 coverage by the next commit with -md5 "on".
1476 E.g.: -find / -type f -not -has_md5 -exec make_md5 --
1477 setfattr sets or deletes xattr name value pairs.
1478 E.g.: -find / -has_xattr -exec setfattr --remove-all '' --
1479 set_filter applies or removes filters.
1480 E.g.: -exec set_filter --zisofs --
1481 mkisofs_r applies the rules of mkisofs -r to the file object:
1482 user id and group id become 0, all r-permissions get granted,
1483 all w denied. If there is any x-permission, then all three x
1484 get granted. s- and t-bits get removed.
1485 sort_weight attributes a LBA weight number to regular files.
1486 The number may range from -2147483648 to 2147483647. The higher
1487 it is, the lower will be the block address of the file data in
1488 the emerging ISO image. Currently the boot catalog has a
1489 hardcoded weight of 1 billion. Normally it should occupy the
1490 block with the lowest possible address. Data files get added or
1491 loaded with initial weight 0.
1492 E.g.: -exec sort_weight 3 --
1493 show_stream shows the content stream chain of a data file.
1494 hide brings the file into one of the hide states "on", "iso_rr",
1495 "joliet", "off".
1496 E.g.:
1497 -find / -disk_name *_secret -exec hide on
1498 estimate_size prints a lower and an upper estimation of the
1499 number of blocks which the found files together will occupy in
1500 the emerging ISO image. This does not account for the
1501 superblock, for the directories in the -find path, or for image
1502 padding.
1503 find performs another run of -find on the matching file address.
1504 It accepts the same params as -find, except iso_rr_path.
1505 E.g.:
1506 -find / -name '???' -type d -exec find -name '[abc]*' -exec
1507 chmod a-w,a+r --
1508
1509 Filters for data file content:
1510
1511 Filters may be installed between data files in the ISO image and their
1512 content source outside the image. They may also be used vice versa
1513 between data content in the image and target files on disk.
1514 Built-in filters are "--zisofs" and "--zisofs-decode". The former is to
1515 be applied via -set_filter, the latter is automatically applied if
1516 zisofs compressed content is detected with a file when loading the ISO
1517 image.
1518 Another built-in filter pair is "--gzip" and "--gunzip" with suffix
1519 ".gz". They behave about like external gzip and gunzip but avoid
1520 forking a process for each single file. So they are much faster if
1521 there are many small files.
1522
1523 -external_filter name option[:option] program_path [arguments] --
1524 Register a content filter by associating a name with a program
1525 path, program arguments, and some behavioral options. Once
1526 registered it can be applied to multiple data files in the ISO
1527 image, regardless whether their content resides in the loaded
1528 ISO image or in the local filesystem. External filter processes
1529 may produce synthetic file content by reading the original
1530 content from stdin and writing to stdout whatever they want.
1531 They must deliver the same output on the same input in repeated
1532 runs.
1533 Options are:
1534 "default" means that no other option is intended.
1535 "suffix=..." sets a file name suffix. If it is not empty then
1536 it will be appended to the file name or removed from it.
1537 "remove_suffix" will remove a file name suffix rather than
1538 appending it.
1539 "if_nonempty" will leave 0-sized files unfiltered.
1540 "if_reduction" will try filtering and revoke it if the content
1541 size does not shrink.
1542 "if_block_reduction" will revoke if the number of 2 kB blocks
1543 does not shrink.
1544 "used=..." is ignored. Command -status shows it with the number
1545 of files which currently have the filter applied.
1546 Examples:
1547 -external_filter bzip2 suffix=.bz2:if_block_reduction \
1548 /usr/bin/bzip2 --
1549 -external_filter bunzip2 suffix=.bz2:remove_suffix \
1550 /usr/bin/bunzip2 --
1551
1552 -unregister_filter name
1553 Remove an -external_filter registration. This is only possible
1554 if the filter is not applied to any file in the ISO image.
1555
1556 -close_filter_list
1557 Irrevocably ban commands -external_filter and
1558 -unregister_filter, but not -set_filter. Use this to prevent
1559 external filtering in general or when all intended filters are
1560 registered. External filters may also be banned totally at
1561 compile time of xorriso. By default they are banned if xorriso
1562 runs under setuid permission.
1563
1564 -set_filter name iso_rr_path [***]
1565 Apply an -external_filter or a built-in filter to the given data
1566 files in the ISO image. If the filter suffix is not empty ,
1567 then it will be applied to the file name. Renaming only happens
1568 if the filter really gets attached and is not revoked by its
1569 options. By default files which already bear the suffix will
1570 not get filtered. The others will get the suffix appended to
1571 their names. If the filter has option "remove_suffix", then the
1572 filter will only be applied if the suffix is present and can be
1573 removed. Name oversize or collision caused by suffix change
1574 will prevent filtering.
1575 With most filter types this command will immediately run the
1576 filter once for each file in order to determine the output size.
1577 Content reading operations like -extract , -compare and image
1578 generation will perform further filter runs and deliver filtered
1579 content.
1580 At image generation time the filter output must still be the
1581 same as the output from the first run. Filtering for image
1582 generation does not happen with files from the loaded ISO image
1583 if the write method of growing is in effect (i.e -indev and
1584 -outdev are identical).
1585 The reserved filter name "--remove-all-filters" revokes
1586 filtering. This will revoke suffix renamings as well. Use
1587 "--remove-all-filters+" to prevent any suffix renaming.
1588
1589 -set_filter_r name iso_rr_path [***]
1590 Like -set_filter but affecting all data files below eventual
1591 directories.
1592
1593 Writing the result, drive control:
1594
1595 (see also paragraph about settings below)
1596
1597 -rollback
1598 Discard the manipulated ISO image and reload it from -indev.
1599 (Use -rollback_end if immediate program end is desired.)
1600
1601 -commit
1602 Perform the write operation. Afterwards, if -outdev is readable,
1603 make it the new -dev and load the image from there. Switch to
1604 growing mode. (A subsequent -outdev will activate modification
1605 mode or blind growing.) -commit is performed automatically at
1606 end of program if there are uncommitted manipulations pending.
1607 So, to perform a final write operation with no new -dev and no
1608 new loading of image, rather execute option -end. If you want
1609 to go on without image loading, execute -commit_eject "none".
1610 To eject after write without image loading, use -commit_eject
1611 "all".
1612 To suppress a final write, execute -rollback_end.
1613
1614 Writing can last quite a while. It is not unnormal with several
1615 types of media that there is no progress visible for the first
1616 few minutes or that the drive gnaws on the medium for a few
1617 minutes after all data have been transmitted. xorriso and the
1618 drives are in a client-server relationship. The drives have
1619 much freedom about what to do with the media. Some combinations
1620 of drives and media simply do not work, despite the promises by
1621 their vendors. If writing fails then try other media or another
1622 drive. The reason for such failure is hardly ever in the code of
1623 the various burn programs but you may well try some of those
1624 listed below under SEE ALSO.
1625
1626 -eject "in"|"out"|"all"
1627 Eject the medium in -indev, resp. -outdev, resp. both drives.
1628 Note: It is not possible yet to effectively eject disk files.
1629
1630 -commit_eject "in"|"out"|"all"|"none"
1631 Combined -commit and -eject. When writing has finished do not
1632 make -outdev the new -dev, and load no ISO image. Rather eject
1633 -indev and/or -outdev. Give up any non-ejected drive.
1634
1635 -blank mode
1636 Make media ready for writing from scratch (if not -dummy is
1637 activated).
1638 This affects only the -outdev not the -indev. If both drives
1639 are the same and if the ISO image was altered then this command
1640 leads to a FAILURE event. Defined modes are:
1641 as_needed, fast, all, deformat, deformat_quickest
1642 "as_needed" cares for used CD-RW, DVD-RW and for used
1643 overwriteable media by applying -blank "fast". It applies
1644 -format "full" to yet unformatted DVD-RAM and BD-RE. Other
1645 media in blank state are gracefully ignored. Media which cannot
1646 be made ready for writing from scratch cause a FAILURE event.
1647 "fast" makes CD-RW and unformatted DVD-RW re-usable, or
1648 invalidates overwriteable ISO images. "all" might work more
1649 thoroughly and need more time.
1650 "deformat" converts overwriteable DVD-RW into unformatted ones.
1651 "deformat_quickest" is a faster way to deformat or blank DVD-RW
1652 but produces media which are only suitable for a single session.
1653 Some drives announce this state by not offering feature 21h, but
1654 some drives offer it anyway. If feature 21h is missing, then
1655 xorriso will refuse to write on DVD-RW if not option -close is
1656 set to "on".
1657 The progress reports issued by some drives while blanking are
1658 quite unrealistic. Do not conclude success or failure from the
1659 reported percentages. Blanking was successful if no SORRY event
1660 or worse occured.
1661
1662 -format mode
1663 Convert unformatted DVD-RW into overwriteable ones, "de-ice"
1664 DVD+RW, format newly purchased BD-RE or BD-R, re-format DVD-RAM
1665 or BD-RE.
1666 Defined modes are:
1667 as_needed, full, fast, by_index_<num>, fast_by_index_<num>
1668 "as_needed" formats yet unformatted DVD-RW, DVD-RAM, BD-RE, or
1669 blank unformatted BD-R. Other media are left untouched.
1670 "full" (re-)formats DVD-RW, DVD+RW, DVD-RAM, BD-RE, or blank
1671 unformatted BD-R.
1672 "fast" does the same as "full" but tries to be quicker.
1673 "by_index_" selects a format out of the descriptor list issued
1674 by option -list_formats. The index number from that list is to
1675 be appended to the mode word. E.g: "by_index_3".
1676 "fast_by_index_" does the same as "by_index_" but tries to be
1677 quicker.
1678 "by_size_" selects a format out of the descriptor list which
1679 provides at least the given size. That size is to be appended to
1680 the mode word. E.g: "by_size_4100m". This applies to media with
1681 Defect Management.
1682 "fast_by_size_" does the same as "by_size_" but tries to be
1683 quicker.
1684 The formatting action has no effect on media if -dummy is
1685 activated.
1686 Formatting is normally needed only once during the lifetime of a
1687 medium, if ever. But it is a reason for re-formatting if:
1688 DVD-RW was deformatted by -blank,
1689 DVD+RW has read failures (re-format before next write),
1690 DVD-RAM or BD-RE shall change their amount of defect reserve.
1691 BD-R may be written unformatted or may be formatted before first
1692 use. Formatting activates Defect Management which tries to
1693 catch and repair bad spots on media during the write process at
1694 the expense of half speed even with flawless media.
1695 The progress reports issued by some drives while formatting are
1696 quite unrealistic. Do not conclude success or failure from the
1697 reported percentages. Formatting was successful if no SORRY
1698 event or worse occured. Be patient with apparently frozen
1699 progress.
1700
1701 -list_formats
1702 Put out a list of format descriptors as reported by the output
1703 drive for the current medium. The list gives the index number
1704 after "Format idx", a MMC format code, the announced size in
1705 blocks (like "2236704s") and the same size in MiB.
1706 MMC format codes are manifold. Most important are: "00h" general
1707 formatting, "01h" increases reserve space for DVD-RAM, "26h" for
1708 DVD+RW, "30h" for BD-RE with reserve space, "31h" for BD-RE
1709 without reserve space, "32h" for BD-R.
1710 Smaller format size with DVD-RAM, BD-RE, or BD-R means more
1711 reserve space.
1712
1713 -list_speeds
1714 Put out a list of speed values as reported by the output drive
1715 with the loaded medium. This does not necessarily mean that the
1716 medium is writable or that these speeds are actually achievable.
1717 Especially the lists reported with empty drive or with ROM media
1718 obviously advertise speeds for other media.
1719 It is not mandatory to use speed values out of the listed range.
1720 The drive is supposed to choose a safe speed that is as near to
1721 the desired speed as possible.
1722 At the end of the list, "Write speed L" and "Write speed H" are
1723 the best guesses for lower and upper speed limit. "Write speed
1724 l" and "Write speed h" may appear only with CD and eventually
1725 override the list of other speed offers.
1726
1727 -close_damaged "as_needed"|"force"
1728 Try to close the upcomming track and session if the drive
1729 reported the medium as damaged. This may apply to CD-R, CD-RW,
1730 DVD-R, DVD-RW, DVD+R, DVD+R DL, or BD-R media. It is indicated
1731 by warning messages when the drive gets aquired, and by a remark
1732 "but next track is damaged" with the line "Media status :" of
1733 command -toc.
1734 The setting of option -close determines whether the medium stays
1735 appendable.
1736 Mode "as_needed" gracefully refuses on media which are not
1737 reported as damaged. Mode "force" attempts the close operation
1738 even with media which appear undamaged.
1739 No image changes are allowed to be pending before this command
1740 is performed. After closing was attempted, both drives are
1741 given up.
1742
1743 -list_profiles "in"|"out"|"all"
1744 Put out a list of media types supported by -indev, resp.
1745 -outdev, resp. both. The currently recognized type is marked by
1746 text "(current)".
1747
1748 Settings for result writing:
1749
1750 Rock Ridge info will be generated by the program unconditionally. ACLs
1751 will be written according to the setting of option -acl.
1752
1753 -joliet "on"|"off"
1754 If enabled by "on", generate Joliet tree additional to ISO 9660
1755 + Rock Ridge tree.
1756
1757 -compliance rule[:rule...]
1758 Adjust the compliance to specifications of ISO 9660 and its
1759 contemporary extensions. In some cases it is worth to deviate a
1760 bit in order to circumvent bugs of the intended reader system or
1761 to get unofficial extra features.
1762 There are several adjustable rules which have a keyword each. If
1763 they are mentioned with this option then their rule gets added
1764 to the relaxation list. This list can be erased by rules
1765 "strict" or "clear". It can be reset to its start setting by
1766 "default". All of the following relaxation rules can be revoked
1767 individually by appending "_off". Like "deep_paths_off".
1768 Rule keywords are:
1769 "iso_9660_level="number chooses level 1 with ISO names of the
1770 form 8.3 and -file_size_limit <= 4g - 1, or level 2 with ISO
1771 names up to length 32 and the same -file_size_limit, or level 3
1772 with ISO names up to length 32 and -file_size_limit >= 400g
1773 -200k. If necessary -file_size_limit gets adjusted.
1774 "allow_dir_id_ext" allows ISO names of directories to have a
1775 name extension as with other file types. It does not force dots
1776 and it omits the version number, though. This is a bad tradition
1777 of mkisofs which violates ECMA-119. Especially ISO level 1 only
1778 allows 8 characters in a directory name and not 8.3.
1779 "omit_version" does not add versions (";1") to ISO and Joliet
1780 file names.
1781 "only_iso_version" does not add versions (";1") to Joliet file
1782 names.
1783 "deep_paths" allows ISO file paths deeper than 8 levels.
1784 "long_paths" allows ISO file paths longer than 255 characters.
1785 "long_names" allows up to 37 characters with ISO file names.
1786 "no_force_dots" does not add a dot to ISO file names which have
1787 none.
1788 "no_j_force_dots" does not add a dot to Joliet file names which
1789 have none.
1790 "lowercase" allows lowercase characters in ISO file names.
1791 "full_ascii" allows all ASCII characters in ISO file names.
1792 "untranslated_names" might be dangerous for inadverted reader
1793 programs which rely on the restriction to at most 37 characters
1794 in ISO file names. This option allows ISO file names up to 96
1795 characters with no character conversion. If a file name has more
1796 characters, then image production will fail deliberately.
1797 "untranslated_name_len="number enables untranslated_names with a
1798 smaller limit for the length of file names. 0 disables this
1799 feature, -1 chooses maximum length limit, numbers larger than 0
1800 give the desired length limit.
1801 "joliet_long_names" allows Joliet leaf names up to 103
1802 characters rather than 64.
1803 "joliet_long_paths" allows Joliet paths longer than 240
1804 characters.
1805 "always_gmt" stores timestamps in GMT representation with
1806 timezone 0.
1807 "rec_mtime" records with ISO files the disk file's mtime and not
1808 the creation time of the image.
1809 "new_rr" uses Rock Ridge version 1.12 (suitable for GNU/Linux
1810 but not for older FreeBSD or for Solaris). This implies
1811 "aaip_susp_1_10_off" which may be changed by subsequent
1812 "aaip_susp_1_10".
1813 Default is "old_rr" which uses Rock Ridge version 1.10. This
1814 implies also "aaip_susp_1_10" which may be changed by subsequent
1815 "aaip_susp_1_10_off".
1816 "aaip_susp_1_10" allows AAIP to be written as unofficial
1817 extension of RRIP rather than as official extension under
1818 SUSP-1.12.
1819 "no_emul_toc" saves 64 kB with the first session on
1820 overwriteable media but makes the image incapable of displaying
1821 its session history.
1822 "iso_9660_1999" causes the production of an additional directory
1823 tree compliant to ISO 9660:1999. It can record long filenames
1824 for readers which do not understand Rock Ridge.
1825 "old_empty" uses the old way of of giving block addresses in the
1826 range of [0,31] to files with no own data content. The new way
1827 is to have a dedicated block to which all such files will point.
1828 Default setting is
1829 "clear:only_iso_version:deep_paths:long_paths:no_j_force_dots:
1830 always_gmt:old_rr".
1831 Note: The term "ISO file" means the plain ISO 9660 names and
1832 attributes which get visible if the reader ignores Rock Ridge.
1833
1834 -volid text
1835 Specify the volume ID. xorriso accepts any text up to 32
1836 characters, but according to rarely obeyed specs stricter rules
1837 apply:
1838 ECMA 119 demands ASCII characters out of [A-Z0-9_]. Like:
1839 "IMAGE_23"
1840 Joliet allows 16 UCS-2 characters. Like: "Windows name"
1841 Be aware that the volume id might get used automatically as name
1842 of the mount point when the medium is inserted into a playful
1843 computer system.
1844 If an ISO image gets loaded while the volume ID is set to
1845 default "ISOIMAGE" or to "", then the volume ID of the loaded
1846 image will become the effective volume id for the next write
1847 run. But as soon as command -volid is performed afterwards, this
1848 pending id is overridden by the new setting.
1849 Consider this when setting -volid "ISOIMAGE" before executing
1850 -dev, -indev, or -rollback. If you insist in -volid "ISOIMAGE",
1851 set it again after those commands.
1852
1853 -volset_id text
1854 Set the volume set id string to be written with the next
1855 -commit. Permissible are up to 128 characters. This setting
1856 gets overridden by image loading.
1857
1858 -publisher text
1859 Set the publisher id string to be written with the next -commit.
1860 This may identify the person or organisation who specified what
1861 shall be recorded. Permissible are up to 128 characters. This
1862 setting gets overridden by image loading.
1863
1864 -application_id text
1865 Set the application id string to be written with the next
1866 -commit. This may identify the specification of how the data are
1867 recorded. Permissible are up to 128 characters. This setting
1868 gets overridden by image loading.
1869 The special text "@xorriso@" gets converted to the id string of
1870 xorriso which is normally written as -preparer_id. It is a wrong
1871 tradition to write the program id as -application_id.
1872
1873 -system_id text
1874 Set the system id string to be written with the next -commit.
1875 This may identify the system which can recognize and act upon
1876 the content of the System Area in image blocks 0 to 15.
1877 Permissible are up to 32 characters. This setting gets
1878 overridden by image loading.
1879
1880 -volume_date type timestring
1881 Set one of the four overall timestamps for subsequent image
1882 writing. Available types are:
1883 "c" time when the volume was created.
1884 "m" time when volume was last modified.
1885 "x" time when the information in the volume expires.
1886 "f" time since when the volume is effectively valid.
1887 "uuid" sets a timestring that overrides "c" and "m" times
1888 literally. It must consist of 16 decimal digits which form
1889 YYYYMMDDhhmmsscc, with YYYY between 1970 and 2999. Time zone is
1890 GMT. It is supposed to match this GRUB line:
1891 search --fs-uuid --set YYYY-MM-DD-hh-mm-ss-cc
1892 E.g. 2010040711405800 is 7 Apr 2010 11:40:58 (+0 centiseconds).
1893 Timestrings for the other types may be given as with option
1894 -alter_date. They are prone to timezone computations. The
1895 timestrings "default" or "overridden" cause default settings:
1896 "c" and "m" will show the current time of image creation. "x"
1897 and "f" will be marked as insignificant. "uuid" will be
1898 deactivated.
1899
1900 -copyright_file text
1901 Set the copyright file name to be written with the next -commit.
1902 This should be the ISO 9660 path of a file in the image which
1903 contains a copyright statement. Permissible are up to 37
1904 characters. This setting gets overridden by image loading.
1905
1906 -abstract_file text
1907 Set the abstract file name to be written with the next -commit.
1908 This should be the ISO 9660 path of a file in the image which
1909 contains an abstract statement about the image content.
1910 Permissible are up to 37 characters. This setting gets
1911 overridden by image loading.
1912
1913 -biblio_file text
1914 Set the biblio file name to be written with the next -commit.
1915 This should be the ISO 9660 path of a file in the image which
1916 contains bibliographic records. Permissible are up to 37
1917 characters. This setting gets overridden by image loading.
1918
1919 -preparer_id
1920 Set the preparer id string to be written with the next -commit.
1921 This may identify the person or other entity which controls the
1922 preparation of the data which shall be recorded. Normally this
1923 should be the id of xorriso and not of the person or program
1924 which operates xorriso. Please avoid to change it. Permissible
1925 are up to 128 characters.
1926 The special text "@xorriso@" gets converted to the id string of
1927 xorriso which is default at program startup.
1928 Unlike other id strings, this setting is not influenced by image
1929 loading.
1930
1931 -out_charset character_set_name
1932 Set the character set to which file names get converted when
1933 writing an image. See paragraph "Character sets" for more
1934 explanations. When loading the written image after -commit the
1935 setting of -out_charset will be copied to -in_charset.
1936
1937 -uid uid
1938 User id to be used for all files when the new ISO tree gets
1939 written to media.
1940
1941 -gid gid
1942 Group id to be used for all files when the new ISO tree gets
1943 written to media.
1944
1945 -zisofs option[:options]
1946 Set global parameters for zisofs compression. This data format
1947 is recognized and transparently uncompressed by some Linux
1948 kernels. It is to be applied via option -set_filter with
1949 built-in filter "--zisofs". Parameters are:
1950 "level="[0-9] zlib compression: 0=none, 1=fast,..., 9=slow
1951 "block_size="32k|64k|128k size of compression blocks
1952 "by_magic=on" enables an expensive test at image generation
1953 time which checks files from disk whether they already are
1954 zisofs compressed, e.g. by program mkzftree.
1955 "default" same as "level=6:block_size=32k:by_magic=off"
1956
1957 -speed number[k|m|c|d|b]
1958 Set the burn speed. Default is 0 = maximum speed. Speed can be
1959 given in media dependent numbers or as a desired throughput per
1960 second in MMC compliant kB (= 1000) or MB (= 1000 kB). Media
1961 x-speed factor can be set explicity by "c" for CD, "d" for DVD,
1962 "b" for BD, "x" is optional.
1963 Example speeds:
1964 706k = 706kB/s = 4c = 4xCD
1965 5540k = 5540kB/s = 4d = 4xDVD
1966 If there is no hint about the speed unit attached, then the
1967 medium in the -outdev will decide. Default unit is CD = 176.4k.
1968 MMC drives usually activate their own idea of speed and take the
1969 speed value given by the burn program only as upper limit for
1970 their own decision.
1971
1972 -stream_recording "on"|"off"|"full"|"data"|number
1973 Setting "on" tries to circumvent the management of defects on
1974 DVD-RAM, BD-RE, or BD-R. Defect management keeps partly damaged
1975 media usable. But it reduces write speed to half nominal speed
1976 even if the medium is in perfect shape. For the case of
1977 flawless media, one may use -stream_recording "on" to get full
1978 speed.
1979 "full" tries full speed with all write operations, whereas "on"
1980 does this only above byte address 32s. One may give a number of
1981 at least 16s in order to set an own address limit.
1982 "data" causes full speed to start when superblock and directory
1983 entries are written and writing of file content blocks begins.
1984
1985 -dvd_obs "default"|"32k"|"64k"
1986 GNU/Linux specific: Set the number of bytes to be transmitted
1987 with each write operation to DVD or BD media. A number of 64 KB
1988 may improve throughput with bus systems which show latency
1989 problems. The default depends on media type, on option
1990 -stream_recording , and on compile time options.
1991
1992 -stdio_sync "on"|"off"|number
1993 Set the number of bytes after which to force output to stdio:
1994 pseudo drives. This forcing keeps the memory from being clogged
1995 with lots of pending data for slow devices. Default "on" is the
1996 same as "16m". Forced output can be disabled by "off".
1997
1998 -dummy "on"|"off"
1999 If "on" then simulate burning or refuse with FAILURE event if no
2000 simulation is possible, do neither blank nor format.
2001
2002 -fs number["k"|"m"]
2003 Set the size of the fifo buffer which smoothens the data stream
2004 from ISO image generation to media burning. Default is 4 MiB,
2005 minimum 64 kiB, maximum 1 GiB. The number may be followed by
2006 letter "k" or "m" which means unit is kiB (= 1024) or MiB (=
2007 1024 kiB).
2008
2009 -close "on"|"off"
2010 If "on" then mark the written medium as not appendable any more
2011 (if possible at all with the given type of target media).
2012 This is the contrary of cdrecord, wodim, cdrskin option -multi,
2013 and is one aspect of growisofs option -dvd-compat.
2014
2015 -padding number["k"|"m"]|"included"|"appended"
2016 Append the given number of extra bytes to the image stream.
2017 This is a traditional remedy for a traditional bug in block
2018 device read drivers. Needed only for CD recordings in TAO mode.
2019 Since one can hardly predict on what media an image might end
2020 up, xorriso adds the traditional 300k of padding by default to
2021 all images.
2022 For images which will never get to a CD it is safe to use
2023 -padding 0 .
2024 Normally padding is not written as part of the ISO image but
2025 appended after the image end. This is -padding mode "appended".
2026 Emulation command -as "mkisofs" and command -jigdo cause padding
2027 to be written as part of the image. The same effect is achieved
2028 by -padding mode "included".
2029
2030 Bootable ISO images:
2031
2032 Contrary to published specifications many BIOSes will load an El Torito
2033 record from the first session on media and not from the last one, which
2034 gets mounted by default. This makes no problems with overwriteable
2035 media, because they appear to inadverted readers as one single session.
2036 But with multi-session media CD-R[W], DVD-R[W], DVD+R, it implies that
2037 the whole bootable system has to reside already in the first session
2038 and that the last session still has to bear all files which the booted
2039 system expects after mounting the ISO image.
2040 If a boot image from ISOLINUX or GRUB is known to be present on media
2041 then it is advised to patch it when a follow-up session gets written.
2042 But one should not rely on the capability to influence the bootability
2043 of the existing sessions, unless one can assume overwriteable media.
2044 There are booting mechanisms which do not use an El Torito record but
2045 rather start at the first bytes of the image: PC-BIOS MBR for
2046 hard-disk-like devices, MIPS Volume Header for old SGI computers, DEC
2047 Boot Block for old DECstation, SUN Disk Label for SPARC machines.
2048 The boot firmware EFI may use programs which are located in a FAT
2049 filesystem and announced by an MBR partition table entry.
2050
2051 -boot_image "any"|"isolinux"|"grub"
2052 "discard"|"keep"|"patch"|"show_status"|bootspec|"next"
2053 Define the handling of a set of El Torito boot images which has
2054 been read from an existing ISO image or define how to make a
2055 prepared boot image file set bootable. Such file sets get
2056 produced by ISOLINUX or GRUB.
2057 Each -boot_image command has two arguments: type and setting.
2058 More than one -boot_image command may be used to define the
2059 handling of one or more boot images. Sequence matters.
2060 Types isolinux and grub care for known peculiarities. Type any
2061 makes no assumptions about the origin of the boot images.
2062
2063 El Torito boot images of any type can be newly inserted, or
2064 discarded, or patched, or kept unaltered. Whether to patch or
2065 to keep depends on whether the boot images contain boot info
2066 tables.
2067 A boot info table needs to be patched when the boot image gets
2068 newly introduced into the ISO image or if an existing image gets
2069 relocated. This is automatically done if type "isolinux" or
2070 "grub" is given, but not with "any".
2071 If patching is enabled, then boot images from previous sessions
2072 will be checked whether they seem to bear a boot info table. If
2073 not, then they stay unpatched. This check is not infallible. So
2074 if you do know that the images need no patching, use "any"
2075 "keep". "grub" "patch" will not patch EFI images
2076 (platform_id=0xef).
2077 Most safe is the default: -boot_image "any" "discard".
2078 Advised for GRUB : -boot_image "grub" "patch"
2079 For ISOLINUX : -boot_image "isolinux" "patch"
2080 show_status will print what is known about the loaded boot
2081 images and their designated fate.
2082
2083 A bootspec is a word of the form name=valuei. It is used to
2084 describe the parameters of a boot image by an El Torito record
2085 or a MBR. The names "dir", "bin_path", "efi_path" lead to El
2086 Torito bootable images. Name "system_area" activates a given
2087 file as MBR.
2088 On all media types this is possible within the first session. In
2089 further sessions an existing boot image can get replaced by a
2090 new one, but depending on the media type this may have few
2091 effect at boot time. See above.
2092 The boot image and its supporting files have to be added to the
2093 ISO image by normal means (image loading, -map, -add, ...). In
2094 case of ISOLINUX the files should reside either in ISO image
2095 directory /isolinux or in /boot/isolinux . In that case it
2096 suffices to use as bootspec the text "dir=/isolinux" or
2097 "dir=/boot/isolinux". E.g.:
2098 -boot_image isolinux dir=/boot/isolinux
2099 which bundles these individual settings:
2100 -boot_image isolinux bin_path=/boot/isolinux/isolinux.bin
2101 -boot_image isolinux cat_path=/boot/isolinux/boot.cat
2102 -boot_image isolinux load_size=2048
2103 -boot_image any boot_info_table=on
2104 An El Torito boot catalog file gets inserted into the ISO image
2105 with address cat_path= at -commit time. It is subject to normal
2106 -overwrite and -reassure processing if there is already a file
2107 with the same name. The catalog lists the boot images and is
2108 read by the boot facility to choose one of the boot images. But
2109 it is not necessary that it appears in the directory tree at
2110 all. One may hide it in all trees by cat_hidden=on. Other
2111 possible values are "iso_rr", "joliet", and the default "off".
2112 bin_path= depicts a boot image file, a binary program which is
2113 to be started by the hardware boot facility (e.g. the BIOS) at
2114 boot time.
2115 efi_path= depicts a boot image file that is ready for EFI
2116 booting. Its load_size is determined automatically, no boot
2117 info table gets written, no boot medium gets emulated,
2118 platform_id is 0xef.
2119 emul_type= can be one of "no_emulation", "hard_disk",
2120 "diskette". It controls the boot medium emulation code of a
2121 boot image. The default "no_emulation" is suitable for
2122 ISOLINUX, GRUB, FreeBSD cdboot.
2123 load_size= is a value which depends on the boot image. Default
2124 2048 should be overridden only if a better value is known.
2125 boot_info_table=on may be used to apply patching to a boot image
2126 which is given by "any" "bin_path=". "boot_info_table=off"
2127 disables patching.
2128 platform_id= defines by two hex digits the Platform ID of the
2129 boot image. "00" is 80x86 PC-BIOS, "01" is PowerPC, "02" is Mac,
2130 "ef" is EFI.
2131 id_string=text|56_hexdigits defines the ID string of the boot
2132 catalog section where the boot image will be listed. If the
2133 value consists of 56 characters [0-9A-Fa-f] then it is converted
2134 into 28 bytes, else the first 28 characters become the ID
2135 string. The ID string of the first boot image becomes the
2136 overall catalog ID. It is limited to 24 characters. Other
2137 id_strings become section IDs.
2138 sel_crit=hexdigits defines the Selection Criteria of the boot
2139 image. Up to 20 bytes get read from the given characters
2140 [0-9A-Fa-f]. They get attributed to the boot image entry in the
2141 catalog.
2142 next ends the definition of a boot image and starts a new one.
2143 Any following -bootimage bootspecs will affect the new image.
2144 The first "next" discards loaded boot images and their catalog.
2145 discard gives up an existing boot catalog and its boot images.
2146 keep keeps or copies boot images unaltered and writes a new
2147 catalog.
2148 patch applies patching to existing boot images if they seem to
2149 bear a boot info table.
2150 system_area=disk_path copies at most 32768 bytes from the given
2151 disk file to the very start of the ISO image. This System Area
2152 is reserved for system dependent boot software, e.g. an MBR
2153 which can be used to boot from USB stick or hard disk.
2154 Other than a El Torito boot image, the file disk_path needs not
2155 to be added to the ISO image.
2156 -boot_image isolinux system_area= implies "partition_table=on".
2157 partition_table=on causes a simple partition table to be written
2158 into bytes 446 to 511 of the System Area.
2159 With type "isolinux" it shows a partition that begins at byte 0
2160 and it causes the LBA of the first boot image to be written into
2161 the MBR. For the first session this works only if also
2162 "system_area=" and "bin_path=" or "dir=" is given.
2163 With types "any" and "grub" it shows a single partiton which
2164 starts at byte 512 and ends where the ISO image ends. This
2165 works with or without system_area= or boot image.
2166 In follow-up sessions the existing System Area is preserved by
2167 default. If types "isolinux" or "grub" are set to "patch", then
2168 "partition_table=on" is activated without new boot image. In
2169 this case the existing System Area gets checked whether it bears
2170 addresses and sizes as if it had been processed by
2171 "partition_table=on". If so, then those parameters get updated
2172 when the new System Area is written.
2173 Special "system_area=/dev/zero" causes 32k of NUL-bytes. Use
2174 this to discard an MBR which was loaded with the ISO image.
2175 partition_offset=2kb_block_adr causes a partition table with a
2176 single partition that begins at the given block address. This is
2177 counted in 2048 byte blocks, not in 512 byte blocks. If the
2178 block address is non-zero then it must be at least 16. A
2179 non-zero partition offset causes two superblocks to be generated
2180 and two sets of directory trees. The image is then mountable
2181 from its absolute start as well as from the partition start.
2182 The offset value of an ISO image gets preserved when a new
2183 session is added. So the value defined here is only in effect
2184 if a new ISO image gets written.
2185 partition_hd_cyl=number gives the number of heads per cylinder
2186 for the partition table. 0 chooses a default value. Maximum is
2187 255.
2188 partition_sec_hd=number gives the number of sectors per head for
2189 the partition table. 0 chooses a default value. Maximum is 63.
2190 The product partition_sec_hd * partition_hd_cyl * 512 is the
2191 cylinder size. It should be divisible by 2048 in order to allow
2192 exact alignment. If it is too small to describe the image size
2193 by at most 1024 cylinders, then appropriate values of
2194 partition_hd_cyl are chosen with partition_sec_hd 32 or 63. If
2195 the image is larger than 8,422,686,720 bytes, then the cylinder
2196 size constraints cannot be fulfilled.
2197 partition_cyl_align=mode controls image size alignment to an
2198 integer number of cylinders. It is prescribed by isohybrid specs
2199 and it seems to please program fdisk. Cylinder size must be
2200 divisible by 2048. Images larger than 8,323,596,288 bytes
2201 cannot be aligned.
2202 Mode "auto" is default. Alignment by padding happens only with
2203 "isolinux" "partition_table=on".
2204 Mode "on" causes alignment by padding with "partition_table=on"
2205 for any type. Mode "off" disables alignment for any type.
2206 mips_path=iso_rr_path declares a data file in the image to be a
2207 MIPS Big Endian boot file and causes production of a MIPS Big
2208 Endian Volume Header. This is mutually exclusive with production
2209 of other boot blocks like MBR. It will overwrite the first 512
2210 bytes of any data provided by system_area=. Up to 15 boot files
2211 can be declared by mips_path=.
2212 mipsel_path=iso_rr_path declares a data file in the image to be
2213 the MIPS Little Endian boot file. This is mutually exclusive
2214 with other boot blocks. It will overwrite the first 512 bytes
2215 of any data provided by system_area=. Only a single boot file
2216 can be declared by mipsel_path=.
2217 sparc_label=text causes the production of a SUN Disk Label with
2218 the given text as ASCII label. This boot block format allows to
2219 append images for partitions 2 to 8. Partition 1 will always be
2220 the ISO image. See option -append_partition. The first 512
2221 bytes of any data provided by system_area= will be overwritten.
2222 mips_discard and sparc_discard revoke any boot file declarations
2223 made by mips_path= or mipsel_path=. They also disable production
2224 of SUN Disk Label. This removes the ban on production of other
2225 boot blocks.
2226
2227 -append_partition partition_number type_code disk_path
2228 Cause a prepared filesystem image to be appended to the ISO
2229 image and to be described by a partition table entry in a boot
2230 block at the start of the emerging ISO image. The partition
2231 entry will bear the size of the submitted file rounded up to the
2232 next multiple of 2048 bytes.
2233 Beware of subsequent multi-session runs. The appended partition
2234 will get overwritten.
2235 Partitions may be appended with boot block type MBR and with SUN
2236 Disk Label.
2237 With MBR:
2238 partition_number may be 1 to 4. Number 1 will put the whole ISO
2239 image into the unclaimed space before partition 1. So together
2240 with most xorriso MBR features, number 2 would be the most
2241 natural choice.
2242 The type_code may be "FAT12", "FAT16", "Linux", or a hexadecimal
2243 number between 0x00 and 0xff. Not all those numbers will yield
2244 usable results. For a list of codes search the Internet for
2245 "Partition Types" or run fdisk command "L".
2246 The disk_path must provide the necessary data bytes at commit
2247 time. An empty disk_path disables this feature for the given
2248 partition number.
2249 With SUN Disk Label (selected by -boot_image any sparc_label=):
2250 partition_number may be 2 to 8. Number 1 will always be the ISO
2251 image. Partition start addresses are aligned to 320 KiB. The
2252 type_code does not matter. Submit 0x0.
2253 Partition image name "." causes the partition to become a copy
2254 of the next lower valid one.
2255
2256 Jigdo Template Extraction:
2257
2258 From man genisoimage: "Jigdo is a tool to help in the distribution of
2259 large files like CD and DVD images; see http://atterer.net/jigdo/ for
2260 more details. Debian CDs and DVD ISO images are published on the web in
2261 jigdo format to allow end users to download them more efficiently."
2262 xorriso can produce a .jigdo and a .template file together with a
2263 single-session ISO image. The .jigdo file contains checksums and
2264 symbolic file addresses. The .template file contains the compressed
2265 ISO image with reference tags instead of the content bytes of the
2266 listed files.
2267 Input for this process are the normal arguments for a xorriso session
2268 on a blank -outdev, and a .md5 file which lists those data files which
2269 may be listed in the .jigdo file and externally referenced in the
2270 .template file. Each designated file is represented in the .md5 file
2271 by a single text line:
2272 MD5 as 32 hex digits, 2 blanks, size as 12 decimal digits or blanks, 2
2273 blanks, symbolic file address
2274 The file address in an .md5 line has to bear the same basename as the
2275 disk_path of the file which it shall match. The directory path of the
2276 file address is decisive for To=From mapping, not for file recognition.
2277 After To=From mapping, the file address gets written into the .jigdo
2278 file. Jigdo restore tools will convert these addresses into really
2279 reachable data source addresses from which they can read.
2280 If the list of jigdo parameters is not empty, then xorriso will refuse
2281 to write to non-blank targets, it will disable multi-session emulation,
2282 and padding will be counted as part of the ISO image.
2283
2284 -jigdo parameter_name value
2285 Clear Jigdo Template Extraction parameter list or add a
2286 parameter to that list. The alias names are the corresponding
2287 genisoimage options. They are accepted as parameter names as
2288 well. Especially they are recognized by the -as mkisofs
2289 emulation command.
2290 Parameter clear with any value empties the whole list. No
2291 .jigdo and .template file will be produced.
2292 template_path sets the disk_path for the .template file with the
2293 holed and compressed ISO image copy.
2294 Alias: -jigdo-template
2295 jigdo_path sets the disk_path for the .jigdo file with the
2296 checksums and download addresses for filling the holes in
2297 .template.
2298 Alias: -jigdo-jigdo
2299 md5_path sets the disk_path where to find the .md5 input file.
2300 Alias: -md5-list
2301 min_size sets the minimum size for a data file to be listed in
2302 the .jigdo file and being a hole in the .template file.
2303 Alias: -jigdo-min-file-size
2304 exclude adds a regular expression pattern which will get
2305 compared with the absolute disk_path of any data file. A match
2306 causes the file to stay in .template in any case.
2307 Alias: -jigdo-exclude
2308 demand_md5 adds a regular expression pattern which will get
2309 compared with the absolute disk_path of any data file that was
2310 not found in the .md5 list. A match causes a MISHAP event.
2311 Alias: -jigdo-force-md5
2312 mapping adds a string pair of the form To=From to the parameter
2313 list. If a data file gets listed in the .jigdo file, then it is
2314 referred by the file address from its line in the .md5 file.
2315 This file address gets checked whether it begins with the From
2316 string. If so, then this string will be replaced by the To
2317 string and a ':' character, before it goes into the .jigdo file.
2318 The From string should end by a '/' character.
2319 Alias: -jigdo-map
2320 compression chooses one of "bzip2" or "gzip" for the compression
2321 of the template file. The jigdo file is put out uncompressed.
2322 Alias: -jigdo-template-compress
2323 checksum_iso chooses one or more of "md5", "sha1", "sha256",
2324 "sha512" for the auxiliary "# Image Hex" checksums in the jigdo
2325 file. The value may e.g. look like "md5,sha1,sha512". Value
2326 "all" chooses all available algorithms. Note that MD5 stays
2327 always enabled.
2328 Alias: -checksum_algorithm_iso
2329 checksum_template is like checksum_iso but for "# Template Hex".
2330 Alias: -checksum_algorithm_template
2331
2332 Character sets:
2333
2334 File names are strings of non-zero bytes with 8 bit each. Unfortunately
2335 the same byte string may appear as different peculiar national
2336 characters on differently nationalized terminals. The meanings of byte
2337 codes are defined in character sets which have names. Shell command
2338 iconv -l lists them.
2339 Character sets should not matter as long as only english alphanumeric
2340 characters are used for file names or as long as all writers and
2341 readers of the media use the same character set. Outside these
2342 constraints it may be necessary to let xorriso convert byte codes.
2343 There is an input conversion from input character set to the local
2344 character set which applies when an ISO image gets loaded. A conversion
2345 from local character set to the output character set is performed when
2346 an image tree gets written. The sets can be defined independently by
2347 options -in_charset and -out_charset. Normally one will have both
2348 identical, if ever.
2349 If conversions are desired then xorriso needs to know the name of the
2350 local character set. xorriso can inquire the same info as shell command
2351 "locale" with argument "charmap". This may be influenced by environment
2352 variables LC_ALL, LC_CTYPE, or LANG and should match the expectations
2353 of the terminal.
2354 The default output charset is the local character set of the terminal
2355 where xorriso runs. So by default no conversion happens between local
2356 filesystem names and emerging names in the image. The situation stays
2357 ambigous and the reader has to riddle what character set was used.
2358 By option -auto_charset it is possible to attribute the output charset
2359 name to the image. This makes the situation unambigous. But if your
2360 terminal character set does not match the character set of the local
2361 file names, then this attribute can become plainly wrong and cause
2362 problems at read time. To prevent this it is necessary to check
2363 whether the terminal properly displays all intended filenames. Check
2364 especially the exotic national characters.
2365 To enforce recording of a particular character set name without any
2366 conversion at image generation time, set -charset and -local_charset to
2367 the desired name, and enable -backslash_codes to avoid evil character
2368 display on your terminal.
2369
2370 -charset character_set_name
2371 Set the character set from which to convert file names when
2372 loading an image and to which to convert when writing an image.
2373
2374 -local_charset character_set_name
2375 Override the system assumption of the local character set name.
2376 If this appears necessary, one should consider to set
2377 -backslash_codes to "on" in order to avoid dangerous binary
2378 codes being sent to the terminal.
2379
2380 Exception processing:
2381
2382 Since the tasks of xorriso are manifold and prone to external
2383 influence, there may arise the need for xorriso to report and handle
2384 problem events.
2385 Those events get classified when they are detected by one of the
2386 software modules and forwarded to reporting and evaluation modules
2387 which decide about reactions. Event classes are sorted by severity:
2388 "NEVER" The upper end of the severity spectrum.
2389 "ABORT" The program is being aborted and on its way to end.
2390 "FATAL" The main purpose of the run failed or an important resource
2391 failed unexpectedly.
2392 "FAILURE" An important part of the job could not be performed.
2393 "MISHAP" A FAILURE which can be tolerated during ISO image generation.
2394 "SORRY" A less important part of the job could not be performed.
2395 "WARNING" A situation is suspicious of being not intended by the user.
2396 "HINT" A proposal to the user how to achieve better results.
2397 "NOTE" A harmless information about noteworthy circumstances.
2398 "UPDATE" A pacifier message during long running operations.
2399 "DEBUG" A message which would only interest the program developers.
2400 "ALL" The lower end of the severity spectrum.
2401
2402 -abort_on severity
2403 Set the severity threshold for events to abort the program.
2404 Useful: "NEVER", "ABORT", "FATAL", "FAILURE" , "MISHAP", "SORRY"
2405 It may become necessary to abort the program anyway, despite the
2406 setting by this option. Expect not many "ABORT" events to be
2407 ignorable.
2408 A special property of this option is that it works preemptive if
2409 given as program start argument. I.e. the first -abort_on
2410 setting among the start arguments is in effect already when the
2411 first operations of xorriso begin. Only "-abort_on" with dash
2412 "-" is recognized that way.
2413
2414 -return_with severity exit_value
2415 Set the threshold and exit_value to be returned at program end
2416 if no abort has happened. This is to allow xorriso to go on
2417 after problems but to get a failure indicating exit value from
2418 the program, nevertheless. Useful is a value lower than the
2419 -abort_on threshold, down to "WARNING".
2420 exit_value may be either 0 (indicating success to the starter of
2421 the program) or a number between 32 and 63. Some other
2422 exit_values are used by xorriso if it decides to abort the
2423 program run:
2424 1=abort due to external signal
2425 2=no program arguments given
2426 3=creation of xorriso main object failed
2427 4=failure to start libburnia-project.org libraries
2428 5=program abort during argument processing
2429 6=program abort during dialog processing
2430
2431 -report_about severity
2432 Set the threshold for events to be reported.
2433 Useful: "SORRY", "WARNING", "HINT", "NOTE", "UPDATE", "DEBUG",
2434 "ALL"
2435 Regardless what is set by -report_about, messages get always
2436 reported if they reach the severity threshold of -abort_on .
2437 Event messages are sent to the info channel "I" which is usually
2438 stderr but may be influenced by command -pkt_output. Info
2439 messages which belong to no event get attributed severity
2440 "NOTE".
2441 A special property of this option is that the first
2442 -report_about setting among the start arguments is in effect
2443 already when the first operations of xorriso begin. Only
2444 "-report_about" with dash "-" is recognized that way.
2445
2446 -signal_handling mode
2447 Control the installation of a signal handler which shall react
2448 on external signals (e.g. from program "kill" or from keys
2449 Ctrl+C) or on signals caused by severe program errors.
2450 Mode "on" is the default. It uses the signal handler of libburn
2451 which produces ugly messages but puts much effort in releasing
2452 optical drives before xorriso ends.
2453 Mode "off" as first -signal_handling among the start arguments
2454 prevents all own signal precautions of xorriso. Inherited signal
2455 handler settings stay as they are.
2456 It works like "sig_dfl" if given after other signal handling was
2457 already established at program start.
2458 Mode "sig_dfl" uses the system provided default handling of
2459 signals, which is normally a sudden abort of the program. To
2460 prevent stuck drives, the libburn handler is used during
2461 burning, blanking, and formatting on MMC drives.
2462 Mode "sig_ign" tries to ignore as many signal types as possible.
2463 This imposes the risk that xorriso refuses to end until
2464 externally kill -9 if performed. kill -9 then imposes the risk
2465 that the drive is left in unusable state and needs poweroff to
2466 be reset. So during burning, blanking, and formatting wait for
2467 at least their normal run time before killing externally.
2468 A special property of this option is that the first
2469 -signal_handling setting among the start arguments is in effect
2470 already when the first operations of xorriso begin. Only
2471 "-signal_handling" with dash "-" is recognized that way.
2472
2473 -error_behavior occasion behavior
2474 Control the program behavior at problem event occasions. For
2475 now this applies to occasions "image_loading" which is given
2476 while an image tree is read from the input device, and to
2477 "file_extraction" which is given with osirrox options like
2478 -extract.
2479 With "image_loading" there are three behaviors available:
2480 "best_effort" goes on with reading after events with severity
2481 below FAILURE if the threshold of option -abort_on allows this.
2482 "failure" aborts image tree reading on first event of at least
2483 SORRY. It issues an own FAILURE event. This is the default.
2484 "fatal" acts like "failure" but issues the own event as FATAL.
2485 With occasion "file_extraction" there are three behaviors:
2486 "keep" maintains incompletely extracted files on disk. This is
2487 the default.
2488 "delete" removes files which encountered errors during content
2489 extraction.
2490 "best_effort" starts a revovery attempt by means of -extract_cut
2491 if the file content stems from the loaded ISO image and is not
2492 filtered.
2493
2494 Dialog mode control:
2495
2496 -dialog "on"|"off"|"single_line"
2497 Enable or disable to enter dialog mode after all arguments are
2498 processed. In dialog mode input lines get prompted via readline
2499 or from stdin.
2500 If no -abort_on severity was set when dialog starts, then
2501 "NEVER" is set to avoid abort in most cases of wrong input or
2502 other problems. Before dialog begins, the default is "FAILURE"
2503 which e.g. aborts on unknown commands.
2504 Mode "on" supports input of newline characters within quotation
2505 marks and line continuation by trailing backslash outside
2506 quotation marks. Mode "single_line" does not.
2507
2508 -page length width
2509 Describe terminal to the text pager. See also above, paragraph
2510 Result pager.
2511 If parameter length is nonzero then the user gets prompted after
2512 that number of terminal lines. Zero length disables paging.
2513 Parameter width is the number of characters per terminal line.
2514 It is used to compute the number of terminal lines which get
2515 occupied by an output line. A usual terminal width is 80.
2516
2517 -use_readline "on"|"off"
2518 If "on" then use readline for dialog. Else use plain stdin.
2519 See also above, paragraph Dialog, Readline, Result pager.
2520
2521 -reassure "on"|"tree"|"off"
2522 If "on" then ask the user for "y" or "n":
2523 before deleting or overwriting any file in the ISO image,
2524 before overwriting any disk file during restore operations,
2525 before rolling back pending image changes,
2526 before committing image changes to media,
2527 before changing the input drive,
2528 before blanking or formatting media,
2529 before ending the program.
2530 With setting "tree" the reassuring prompt will appear for an
2531 eventual directory only once and not for each file in its whole
2532 subtree.
2533 Setting "off" silently kills any kind of image file object resp.
2534 performs above irrevocable actions.
2535 To really produce user prompts, option -dialog needs to be set
2536 to "on". Note that the prompt does not appear in situations
2537 where file removal is forbidden by option -overwrite. -reassure
2538 only imposes an additional curb for removing existing file
2539 objects.
2540 Be aware that file objects get deleted from the ISO image
2541 immediately after confirmation. They are gone even if the
2542 running command gets aborted and its desired effect gets
2543 revoked. In case of severe mess-up, consider to use -rollback to
2544 revoke the whole session.
2545
2546 Drive and media related inquiry actions:
2547
2548 -devices
2549 Show list of available MMC drives with the addresses of their
2550 libburn standard device files.
2551 This is only possible when no ISO image changes are pending.
2552 After this option was executed, there is no drive current and no
2553 image loaded.
2554 In order to be visible, a device has to offer rw-permissions
2555 with its libburn standard device file. Thus it might be only the
2556 superuser who is able to see all drives.
2557 Drives which are occupied by other processes get not shown.
2558
2559 -device_links
2560 Like -devices, but presenting the drives with addresses of
2561 symbolic links which point to the actual device files.
2562 Modern GNU/Linux systems may shuffle drive addresses from boot
2563 to boot. The udev daemon is supposed to create links which
2564 always point to the same drive, regardless of its system
2565 address. The command -device_links shows the addresses of such
2566 links if they begin by "/dev/dvd" or "/dev/cd". Precedence is:
2567 "dvdrw", "cdrw", "dvd", "cdrom", "cd".
2568
2569 -toc
2570 Show media specific table of content. This is the session
2571 history of the medium, not the ISO image directory tree.
2572 In case of overwriteable media holding a valid ISO image, it may
2573 happen that only a single session gets shown. But if the first
2574 session on the overwriteable media was written by xorriso then a
2575 complete session history can be emulated.
2576 A drive which is incapable of writing may show any media as
2577 CD-ROM or DVD-ROM with only one or two sessions on it. The last
2578 of these sessions is supposed to be the most recent real session
2579 then.
2580 Some read-only drives and media show no usable session history
2581 at all. Option -rom_toc_scan might help.
2582
2583 -mount_cmd drive entity id path
2584 Emit an appropriate command line for mounting the ISO session
2585 indicated by drive, entity and id. The result will be different
2586 on GNU/Linux and on FreeBSD.
2587 drive can be "indev" or "outdev" to indicate already acquired
2588 drives, or it can be the path of a not yet acquired drive.
2589 Prefix "stdio:" for non-MMC drives is not mandatory.
2590 entity must be either "sbsector" with the superblock sector
2591 address as id, or "track" with a track number as id, or
2592 "session" with a session number, or "volid" with a search
2593 pattern for the volume id, or "auto" with any text as id.
2594 path will be used as mount point and must already exist as a
2595 directory on disk.
2596 The command gets printed to the result channel. See option
2597 -mount for direct execution of this command.
2598
2599 -mount_opts option[:option...]
2600 Set options which influence -mount and -mount_cmd. Currently
2601 there is only option "exclusive" which is default and its
2602 counterpart "shared". The latter causes xorriso not to give up
2603 the affected drive with command -mount. On GNU/Linux it adds
2604 mount option "loop" which may allow to mount several sessions of
2605 the same block device at the same time. One should not write to
2606 a mounted optical medium, of course. Take care to umount all
2607 sessions before ejecting.
2608
2609 -session_string drive entity id format
2610 Print to the result channel a text which gets composed according
2611 to format and the parameters of the addressed session.
2612 Formats "linux:"path or "freebsd:"path produce the output of
2613 -mount_cmd for the given operating systems.
2614 In other texts xorriso will substitute the following parameter
2615 names. An optional prefix "string:" will be removed.
2616 "%device%" will be substituted by the mountable device path of
2617 the drive address.
2618 "%sbsector%" will be substituted by the session start sector.
2619 "%track%", "%session%", "%volid%" will be substituted by track
2620 number, session number, resp. volume id of the depicted session.
2621
2622 -print_size
2623 Print the foreseeable consumption of 2048 byte blocks by next
2624 -commit. This can last a while as a -commit gets prepared and
2625 only in last moment is revoked by this option. The result
2626 depends on several settings and also on the kind of output
2627 device. If no -jidgo options are given and not command -as
2628 "mkisofs" was used, then -padding (300 kB by default) is not
2629 counted as part of the image size.
2630
2631 -tell_media_space
2632 Print available space on the output medium and the free space
2633 after subtracting already foreseeable consumption by next
2634 -commit.
2635
2636 -pvd_info
2637 Print various id strings which can be found in loaded ISO
2638 images. Some of them may be changed by options like -volid or
2639 -publisher. For these ids -pvd_info reports what would be
2640 written with the next -commit.
2641
2642 Navigation in ISO image and disk filesystem:
2643
2644 -cd iso_rr_path
2645 Change the current working directory in the ISO image. This is
2646 prepended to iso_rr_paths which do not begin with '/'.
2647 It is possible to set the working directory to a path which does
2648 not exist yet in the ISO image. The necessary parent directories
2649 will be created when the first file object is inserted into that
2650 virtual directory. Use -mkdir if you want to enforce the
2651 existence of the directory already at first insertion.
2652
2653 -cdx disk_path
2654 Change the current working directory in the local filesystem.
2655 To be prepended to disk_paths which do not begin with '/'.
2656
2657 -pwd
2658 Tell the current working directory in the ISO image.
2659
2660 -pwdx
2661 Tell the current working directory in the local filesystem.
2662
2663 -ls iso_rr_pattern [***]
2664 List files in the ISO image which match shell patterns (i.e.
2665 with wildcards '*' '?' '[a-z]'). If a pattern does not begin
2666 with '/' then it is compared with addresses relative to -cd.
2667 Directories are listed by their content rather than as single
2668 file item.
2669 Pattern expansion may be disabled by command -iso_rr_pattern.
2670
2671 -lsd iso_rr_pattern [***]
2672 Like -ls but listing directories as themselves and not by their
2673 content. This resembles shell command ls -d.
2674
2675 -lsl iso_rr_pattern [***]
2676 Like -ls but also list some of the file attributes. The output
2677 format resembles shell command ls -ln.
2678 File type 'e' indicates the El Torito boot catalog.
2679 If the file has non-trivial ACL, then a '+' is appended to the
2680 permission info. If the file is hidden, then 'I' for "iso_rr",
2681 'J' for "joliet", resp. 'H' for "on" gets appended. Together
2682 with ACL it is 'i', 'j', resp. 'h'.
2683
2684 -lsdl iso_rr_pattern [***]
2685 Like -lsd but also list some of the file attributes. The output
2686 format resembles shell command ls -dln.
2687
2688 -lsx disk_pattern [***]
2689 List files in the local filesystem which match shell patterns.
2690 Patterns which do not begin with '/' are used relative to -cdx.
2691 Directories are listed by their content rather than as single
2692 file item.
2693 Pattern expansion may be disabled by command -disk_pattern.
2694
2695 -lsdx disk_pattern [***]
2696 Like -lsx but listing directories as themselves and not by their
2697 content. This resembles shell command ls -d.
2698
2699 -lslx disk_pattern [***]
2700 Like -lsx but also listing some of the file attributes. Output
2701 format resembles shell command ls -ln.
2702
2703 -lsdlx disk_pattern [***]
2704 Like -lsdx but also listing some of the file attributes. Output
2705 format resembles shell command ls -dln.
2706
2707 -getfacl iso_rr_pattern [***]
2708 Print the access permissions of the given files in the ISO image
2709 using the format of shell command getfacl. If a file has no ACL
2710 then it gets fabricated from the -chmod settings. A file may
2711 have a real ACL if it was introduced into the ISO image while
2712 option -acl was set to "on".
2713
2714 -getfacl_r iso_rr_pattern [***]
2715 Like -gefacl but listing recursively the whole file trees
2716 underneath eventual directories.
2717
2718 -getfattr iso_rr_pattern [***]
2719 Print the xattr of the given files in the ISO image. If a file
2720 has no such xattr then noting is printed for it.
2721
2722 -getfattr_r iso_rr_pattern [***]
2723 Like -gefattr but listing recursively the whole file trees
2724 underneath eventual directories.
2725
2726 -du iso_rr_pattern [***]
2727 Recursively list size of directories and files in the ISO image
2728 which match one of the patterns. similar to shell command du
2729 -k.
2730
2731 -dus iso_rr_pattern [***]
2732 List size of directories and files in the ISO image which match
2733 one of the patterns. Similar to shell command du -sk.
2734
2735 -dux disk_pattern [***]
2736 Recursively list size of directories and files in the local
2737 filesystem which match one of the patterns. Similar to shell
2738 command du -k.
2739
2740 -dusx disk_pattern [***]
2741 List size of directories and files in the local filesystem which
2742 match one of the patterns. Similar to shell command du -sk.
2743
2744 -findx disk_path [-name pattern] [-type t] [-exec action [params]] --
2745 Like -find but operating on local filesystem and not on the ISO
2746 image. This is subject to the settings of -follow.
2747 -findx accepts the same -type arguments as -find. Additionally
2748 it recognizes type "mountpoint" (or "m") which matches
2749 subdirectories which reside on a different device than their
2750 parent. It never matches the disk_path given as start address
2751 for -findx.
2752 -findx accepts the -exec actions as does -find. But except the
2753 following few actions it will always perform action "echo".
2754 in_iso reports the path if its counterpart exists in the ISO
2755 image. For this the disk_path of the -findx command gets
2756 replaced by the iso_rr_path given as parameter.
2757 E.g.: -findx /home/thomas -exec in_iso /thomas_on_cd --
2758 not_in_iso reports the path if its counterpart does not exist in
2759 the ISO image. The report format is the same as with command
2760 -compare.
2761 add_missing iso_rr_path_start adds the counterpart if it does
2762 not yet exist in the ISO image and marks it for "rm_merge" as
2763 non-removable.
2764 E.g.: -findx /home/thomas -exec add_missing /thomas_on_cd --
2765 is_full_in_iso reports if the counterpart in the ISO image
2766 contains files. To be used with -type "m" to report mount
2767 points.
2768 empty_iso_dir deletes all files from the counterpart in the ISO
2769 image. To be used with -type "m" to truncate mount points.
2770 estimate_size prints a lower and an upper estimation of the
2771 number of blocks which the found files together will occupy in
2772 the emerging ISO image. This does not account for the
2773 superblock, for the directories in the -findx path, or for image
2774 padding.
2775 list_extattr mode prints a script to the result channel, which
2776 would use FreeBSD command setextattr to set the file's xattr
2777 name-value pairs of user namespace. See -find for a description
2778 of parameter mode.
2779 E.g. -exec list_extattr e --
2780
2781 -compare disk_path iso_rr_path
2782 Compare attributes and eventual data file content of a
2783 fileobject in the local filesystem with a file object in the ISO
2784 image. The iso_rr_path may well point to an image file object
2785 which is not yet committed, i.e. of which the data content still
2786 resides in the local filesystem. Such data content is prone to
2787 externally caused changes.
2788 If iso_rr_path is empty then disk_path is used as path in the
2789 ISO image too.
2790 Differing attributes are reported in detail, differing content
2791 is summarized. Both to the result channel. In case of no
2792 differences no result lines are emitted.
2793
2794 -compare_r disk_path iso_rr_path
2795 Like -compare but working recursively. I.e. all file objects
2796 below both addresses get compared whether they have counterparts
2797 below the other address and whether both counterparts match.
2798
2799 -compare_l disk_prefix iso_rr_prefix disk_path [***]
2800 Perform -compare_r with each of the disk_path arguments.
2801 iso_rr_path will be composed from disk_path by replacing
2802 disk_prefix by iso_rr_prefix.
2803
2804 -show_stream iso_rr_path [***]
2805 Display the content stream chain of data files in the ISO image.
2806 The chain consists of the iso_rr_name and one or more streams,
2807 separated by " < " marks. A stream description consists of one
2808 or more texts, separated by ":" characters. The first text
2809 tells the stream type, the following ones, if ever, describe its
2810 individual properties. Frequently used types are:
2811 disk:'disk_path' for local filesystem objects.
2812 image:'iso_rr_path' for ISO image file objects.
2813 cout:'disk_path offset count' for -cut_out files.
2814 extf:'filter_name' for external filters.
2815 Example:
2816 '/abc/xyz.gz' < extf:'gzip' < disk:'/home/me/x'
2817
2818 -show_stream_r iso_rr_path [***]
2819 Like -show_stream but working recursively.
2820
2821 Evaluation of readability and recovery:
2822
2823 It is not uncommon that optical media produce read errors. The reasons
2824 may be various and get obscured by error correction which is performed
2825 by the drives and based on extra data on the media. If a drive returns
2826 data then one can quite trust that they are valid. But at some degree
2827 of read problems the correction will fail and the drive is supposed to
2828 indicate error.
2829 xorriso can scan a medium for readable data blocks, classify them
2830 according to their read speed, save them to a file, and keep track of
2831 successfuly saved blocks for further tries on the same medium.
2832 By option -md5 checksums may get recorded with data files and whole
2833 sessions. These checksums are reachable only via indev and a loaded
2834 image. They work independently of the media type and can detect
2835 transmission errors.
2836
2837 -check_media [option [option ...]] --
2838 Try to read data blocks from the indev drive, optionally copy
2839 them to a disk file, and finally report about the encountered
2840 quality. Several options may be used to modify the default
2841 behavior.
2842 The options given with this command override the default
2843 settings which may have been changed by option
2844 -check_media_defaults. See there for a description of options.
2845 The result list tells intervals of 2 KiB blocks with start
2846 address, number of blocks and quality. Qualities which begin
2847 with "+" are supposed to be valid readable data. Qualities with
2848 "-" are unreadable or corrupted data. "0" indicates qualities
2849 which are not covered by the check run or are regularly allowed
2850 to be unreadable (e.g. gaps between tracks).
2851 Alternatively it is possible to report damaged files rather than
2852 blocks.
2853 If -md5 is "on" then the default mode what=tracks looks out for
2854 libisofs checksum tags for the ISO session data and checks them
2855 against the checksums computed from the data stream.
2856
2857 -check_media_defaults [option [option ...]] --
2858 Preset options for runs of -check_media, -extract_cut and
2859 best_effort file extraction. Options given with -check_media
2860 will override the preset options. -extract_cut will override
2861 some options automatically.
2862 An option consists of a keyword, a "=" character, and a value.
2863 Options may override each other. So their sequence matters.
2864 The default setting at program start is:
2865 use=indev what=tracks min_lba=-1 max_lba=-1 retry=default
2866 time_limit=28800 item_limit=100000 data_to='' event=ALL
2867 abort_file=/var/opt/xorriso/do_abort_check_media
2868 sector_map='' map_with_volid=off patch_lba0=off report=blocks
2869 bad_limit=valid slow_limit=1.0 chunk_size=0s
2870 Option "reset=now" restores these startup defaults.
2871 Non-default options are:
2872 report="files" lists the files which use damaged blocks (not
2873 with use=outdev). The format is like with find -exec
2874 report_damage. Note that a MD5 session mismatch marks all files
2875 of the session as damaged. If finer distinction is desired,
2876 perform -md5 off before -check_media.
2877 report="blocks_files" first lists damaged blocks and then
2878 affected files.
2879 use="outdev" reads from the output drive instead of the input
2880 drive. This avoids loading the ISO image tree from media.
2881 use="sector_map" does not read any media but loads the file
2882 given by option sector_map= and processes this virtual outcome.
2883 what="disc" scans the payload range of a medium without
2884 respecting track gaps.
2885 what="image" similar to "disc", but restricts scanning to the
2886 range of the ISO 9660 image, if present.
2887 min_lba=limit omits all blocks with addresses lower than limit.
2888 max_lba=limit switches to what=disc and omits all blocks above
2889 limit.
2890 retry="on" forces read retries with single blocks when the
2891 normal read chunk produces a read error. By default, retries are
2892 only enabled with CD media. "retry=off" forbits retries for all
2893 media types.
2894 abort_file=disk_path gives the path of the file which may abort
2895 a scan run. Abort happens if the file exists and its mtime is
2896 not older than the start time of the run. Use shell command
2897 "touch" to trigger this. Other than an aborted program run,
2898 this will report the tested and untested blocks and go on with
2899 running xorriso.
2900 time_limit=seconds gives the number of seconds after which the
2901 scan shall be aborted. This is useful for unattended scanning of
2902 media which may else overwork the drive in its effort to squeeze
2903 out some readable blocks. Abort may be delayed by the drive
2904 gnawing on the last single read operation. Value -1 means
2905 unlimited time.
2906 item_limit=number gives the number of report list items after
2907 which to abort. Value -1 means unlimited item number.
2908 data_to=disk_path copies the valid blocks to the given file.
2909 event=severity sets the given severity for a problem event which
2910 shall be issued at the end of a check run if data blocks were
2911 unreadable or failed to match recorded MD5 checksums. Severity
2912 "ALL" disables this event.
2913 sector_map=disk_path tries to read the file given by disk_path
2914 as sector bitmap and to store such a map file after the scan
2915 run. The bitmap tells which blocks have been read successfully
2916 in previous runs. It allows to do several scans on the same
2917 medium, even with intermediate eject, in order to collect
2918 readable blocks whenever the drive is lucky enough to produce
2919 them. The stored file contains a human readable TOC of tracks
2920 and their start block addresses, followed by binary bitmap data.
2921 map_with_volid="on" examines tracks whether they are ISO images
2922 and prints their volume ids into the human readable TOC of
2923 sector_map=.
2924 patch_lba0="on" transfers within the data_to= file a copy of the
2925 currently loaded session head to the start of that file and
2926 patches it to be valid at that position. This makes the loaded
2927 session the default session of the image file when it gets
2928 mounted or loaded as stdio: drive. But it usually makes the
2929 original session 1 inaccessible.
2930 patch_lba0="force" performs patch_lba0="on" even if xorriso
2931 believes that the copied data are not valid.
2932 patch_lba0= may also bear a number. If it is 32 or higher it is
2933 taken as start address of the session to be copied. In this case
2934 it is not necessary to have an -indev and a loaded image.
2935 ":force" may be appended after the number.
2936 bad_limit=threshold sets the highest quality which shall be
2937 considered as damage. Choose one of "good", "md5_match",
2938 "slow", "partial", "valid", "untested", "invalid", "tao_end",
2939 "off_track", "md5_mismatch", "unreadable".
2940 slow_limit=threshold sets the time threshold for a single read
2941 chunk to be considered slow. This may be a fractional number
2942 like 0.1 or 1.5.
2943 chunk_size=size sets the number of bytes to be read in one read
2944 operation. This gets rounded down to full blocks of 2048 bytes.
2945 0 means automatic size.
2946
2947 -check_md5 severity iso_rr_path [***]
2948 Compare the data content of the given files in the loaded image
2949 with their recorded MD5 checksums, if there are any. In case of
2950 any mismatch an event of the given severity is issued. It may
2951 then be handled by appropriate settings of options -abort_on or
2952 -return_with which both can cause non-zero exit values of the
2953 program run. Severity ALL suppresses that event.
2954 This option reports match and mismatch of data files to the
2955 result channel. Non-data files cause NOTE events. There will
2956 also be UPDATE events from data reading.
2957 If no iso_rr_path is given then the whole loaded session is
2958 compared with its MD5 sum. Be aware that this covers only one
2959 session and not the whole image if there are older sessions.
2960
2961 -check_md5_r severity iso_rr_path [***]
2962 Like -check_md5 but checking all data files underneath the given
2963 paths. Only mismatching data files will be reported.
2964
2965 osirrox ISO-to-disk restore options:
2966
2967 Normally xorriso only writes to disk files which were given as stdio:
2968 pseudo-drives or as log files. But its alter ego osirrox is able to
2969 extract file objects from ISO images and to create, overwrite, or
2970 delete file objects on disk.
2971 Disk file exclusions by -not_mgt, -not_leaf, -not_paths apply. If disk
2972 file objects already exist then the settings of -overwrite and
2973 -reassure apply. But -overwrite "on" only triggers the behavior of
2974 -overwrite "nondir". I.e. directories cannot be deleted.
2975 Access permissions of files in the ISO image do not restrict restoring.
2976 The directory permissions on disk have to allow rwx.
2977
2978 -osirrox "on"|"device_files"|"off"|"banned"|[:option:...]
2979 Setting "off" disables disk filesystem manipulations. This is
2980 the default unless the program was started with leafname
2981 "osirrox". Elsewise the capability to restore files can be
2982 enabled explicitly by -osirrox "on". It can be irrevocably
2983 disabled by -osirrox "banned".
2984 To enable restoring of special files by "device_files" is
2985 potentially dangerous. The meaning of the number st_rdev (see
2986 man 2 stat) depends much on the operating system. Best is to
2987 restore device files only to the same system from where they
2988 were copied. If not enabled, device files in the ISO image are
2989 ignored during restore operations.
2990 Due to a bug of previous versions, device files from previous
2991 sessions might have been altered to major=0, minor=1. So this
2992 combination does not get restored.
2993 Option "concat_split_on" is default. It enables restoring of
2994 split file directories as data files if the directory contains a
2995 complete collection of -cut_out part files. With option
2996 "concat_split_off" such directories are handled like any other
2997 ISO image directory.
2998 Option "auto_chmod_off" is default. If "auto_chmod_on" is set
2999 then access restrictions for disk directories get circumvented
3000 if those directories are owned by the effective user who runs
3001 xorriso. This happens by temporarily granting rwx permission to
3002 the owner.
3003 Option "sort_lba_on" may improve read performance with optical
3004 drives. It allows to restore large numbers of hard links without
3005 exhausting -temp_mem_limit. It does not preserve directory mtime
3006 and it needs -osirrox option auto_chmod_on in order to extract
3007 directories which offer no write permission. Default is
3008 "sort_lba_off".
3009 Option "o_excl_on" is the default unless the program was started
3010 with leafname "osirrox". On GNU/Linux it tries to avoid using
3011 drives which are mounted or in use by other libburn programs.
3012 Option "o_excl_off" allows on GNU/Linux to access such drives.
3013 Drives which get acquired while "o_excl_off" will refuse to get
3014 blanked, formatted, written, or ejected. But be aware that even
3015 harmless inquiries can spoil ongoing burns of CD-R[W] and
3016 DVD-R[W].
3017 Option "strict_acl_off" is default. It tolerates on FreeBSD the
3018 presence of directory "default" ACLs in the ISO image. With
3019 "strict_acl_on" these GNU/Linux ACLs cause on FreeBSD a FAILURE
3020 event during restore with -acl "on".
3021
3022 -extract iso_rr_path disk_path
3023 Copy the file objects at and underneath iso_rr_path to their
3024 corresponding addresses at and underneath disk_path. This is
3025 the inverse of -map or -update_r.
3026 If iso_rr_path is a directory and disk_path is an existing
3027 directory then both trees will be merged. Directory attributes
3028 get extracted only if the disk directory is newly created by the
3029 copy operation. Disk files get removed only if they are to be
3030 replaced by file objects from the ISO image.
3031 As many attributes as possible are copied together with restored
3032 file objects.
3033
3034 -extract_single iso_rr_path disk_path
3035 Like -extract, but if iso_rr_path is a directory then its sub
3036 tree gets not restored.
3037
3038 -extract_l iso_rr_prefix disk_prefix iso_rr_path [***]
3039 Perform -extract with each of the iso_rr_path arguments.
3040 disk_path will be composed from iso_rr_path by replacing
3041 iso_rr_prefix by disk_prefix.
3042
3043 -extract_cut iso_rr_path byte_offset byte_count disk_path
3044 Copy a byte interval from a data file out of an ISO image into a
3045 newly created disk file. The main purpose for this is to allow
3046 handling of large files if they are not supported by mount -t
3047 iso9660 and if the reading system is unable to buffer them as a
3048 whole.
3049 If the data bytes of iso_rr_path are stored in the loaded ISO
3050 image, and no filter is applied, and byte_offset is a multiple
3051 of 2048, then a special run of -check_media is performed. It may
3052 be quicker and more rugged than the general reading method.
3053
3054 -cpx iso_rr_path [***] disk_path
3055 Copy single leaf file objects from the ISO image to the address
3056 given by disk_path. If more then one iso_rr_path is given then
3057 disk_path must be a directory or non-existent. In the latter
3058 case it gets created and the extracted files get installed in it
3059 with the same leafnames.
3060 Missing directory components in disk_path will get created, if
3061 possible.
3062 Directories are allowed as iso_rr_path only with -osirrox
3063 "concat_split_on" and only if they actually represent a complete
3064 collection of -cut_out split file parts.
3065
3066 -cpax iso_rr_path [***] disk_path
3067 Like -cpx but restoring mtime, atime as in ISO image and trying
3068 to set ownership and group as in ISO image.
3069
3070 -cp_rx iso_rr_path [***] disk_path
3071 Like -cpx but also extracting whole directory trees from the ISO
3072 image.
3073 The resulting disk paths are determined as with shell command cp
3074 -r : If disk_path is an existing directory then the trees will
3075 be inserted or merged underneath this directory and will keep
3076 their leaf names. The ISO directory "/" has no leaf name and
3077 thus gets mapped directly to disk_path.
3078
3079 -cp_rax iso_rr_path [***] disk_path
3080 Like -cp_rx but restoring mtime, atime as in ISO image and
3081 trying to set ownership and group as in ISO image.
3082
3083 -paste_in iso_rr_path disk_path byte_offset byte_count
3084 Read the content of a ISO data file and write it into a data
3085 file on disk beginning at the byte_offset. Write at most
3086 byte_count bytes. This is the inverse of option -cut_out.
3087
3088 -mount drive entity id path
3089 Produce the same line as -mount_cmd and then execute it as
3090 external program run after giving up the depicted drive. See
3091 also -mount_opts. This demands -osirrox to be enabled and
3092 normally will succeed only for the superuser. For safety reasons
3093 the mount program is only executed if it is reachable as
3094 /bin/mount or /sbin/mount.
3095
3096 Command compatibility emulations:
3097
3098 Writing of ISO 9660 on CD is traditionally done by program mkisofs as
3099 ISO 9660 image producer and cdrecord as burn program. xorriso does not
3100 strive for their comprehensive emulation. Nevertheless it is ready to
3101 perform some of its core tasks under control of commands which in said
3102 programs trigger comparable actions.
3103
3104 -as personality option [options] --
3105 Perform the variable length option list as sparse emulation of
3106 the program depicted by the personality word.
3107
3108 Personality "mkisofs" accepts the options listed with:
3109 -as mkisofs -help --
3110 Among them: -R (always on), -r, -J, -o, -M, -C, -dir-mode,
3111 -file-mode, -path-list, -m, -exclude-list, -f, -print-size,
3112 -pad, -no-pad, -V, -v, -version, -graft-points, -z,
3113 -no-emul-boot, -b, -c, -boot-info-table, -boot-load-size,
3114 -input-charset, -G, -output-charset, -U, -hide, -hide-joliet,
3115 -hide-list, -hide-joliet-list, file paths and pathspecs. A lot
3116 of options are not supported and lead to failure of the mkisofs
3117 emulation. Some are ignored, but better do not rely on this
3118 tolerance.
3119 The supported options are documented in detail in xorrisofs.info
3120 and in man xorrisofs. The description here is focused on the
3121 effect of mkisofs emulation in the context of a xorriso run.
3122 Other than with the "cdrecord" personality there is no automatic
3123 -commit at the end of a "mkisofs" option list. Verbosity
3124 settings -v (= "UPDATE") and -quiet (= "SORRY") persist. The
3125 output file persists until things happen like -commit,
3126 -rollback, -dev, or end of xorriso. -pacifier gets set to
3127 "mkisofs" if files are added to the image.
3128 -graft-points is equivalent to -pathspecs on. Note that
3129 pathspecs without "=" are interpreted differently than with
3130 xorriso option -add. Directories get merged with the root
3131 directory of the ISO image, other filetypes get mapped into that
3132 root directory.
3133 If pathspecs are given and if no output file was chosen before
3134 or during the "mkisofs" option list, then standard output
3135 (-outdev "-") will get into effect. If -o points to a regular
3136 file, then it will be truncated to 0 bytes when finally writing
3137 begins. This truncation does not happen if the drive is chosen
3138 by xorriso options before -as mkisofs or after its list
3139 delimiter. Directories and symbolic links are no valid -o
3140 targets.
3141 Writing to stdout is possible only if -as "mkisofs" was among
3142 the start arguments or if other start arguments pointed the
3143 output drive to standard output.
3144 -print-size inhibits automatic image production at program end.
3145 This ban is lifted only if the pending image changes get
3146 discarded.
3147 Padding is counted as part of the ISO image if not option
3148 --emul-toc is given.
3149 If no -iso-level is given, then level 1 is chosen when the first
3150 file or directory is added to the image. At the same occasion
3151 directory names get allowed to violate the standard by
3152 -compliance option allow_dir_id_ext. This may be avoided by
3153 option -disallow_dir_id_ext.
3154 Option -root is supported. Option -old-root is implemented by
3155 xorriso commands -mkdir, -cp_clone, -find update_merge, and
3156 -find rm_merge. -root and -old-root set command -disk_dev_ino
3157 to "ino_only" and -md5 to "on", by default. -disk_dev_ino can
3158 be set to "off" by --old-root-no-ino resp. to "on" by
3159 --old-root-devno . -md5 can be set to "off" by
3160 --old-root-no-md5 .
3161 Not original mkisofs options are --quoted_path_list ,
3162 --hardlinks , --acl , --xattr , --md5 , --stdio_sync . They
3163 work like the xorriso options with the same name and hardcoded
3164 argument "on", e.g. -acl "on". Explicit arguments are expected
3165 by --stdio_sync and --scdbackup_tag.
3166 The capability to preserve multi-session history on
3167 overwriteable media gets disabled by default. It can be enabled
3168 by using --emul-toc with the first session. See -compliance
3169 no_emul_toc.
3170 --sort-weight gets as arguments a number and an iso_rr_path.
3171 The number becomes the LBA sorting weight of regular file
3172 iso_rr_path or of all regular files underneath directory
3173 iso_rr_path. (See -find -exec sort_weight).
3174 Adopted from grub-mkisofs are --protective-msdos-label (see
3175 -boot_image grub partition_table=on) and
3176 --modification-date=YYYYMMDDhhmmsscc (see -volume_date uuid).
3177 For EFI bootable GRUB boot images use --efi-boot. It performs
3178 -boot_image grub efi_path= surrounded by two -boot_image "any"
3179 "next". Alternative option -e from Fedora genisoimage sets
3180 bin_path and platform_id for EFI, but performs no "next".
3181 For MBR bootable ISOLINUX images there is -isohybrid-mbr FILE,
3182 where FILE is one of the Syslinux files mbr/isohdp[fp]x*.bin .
3183 Use this instead of -G to apply the effect of -boot_image
3184 isolinux partition_table=on.
3185 --boot-catalog-hide is -boot_image any cat_hidden=on.
3186 -mips-boot is the same as -boot_image any mips_path= .
3187 -mipsel-boot leads to mipsel_path= .
3188 -partition_offset number is -boot_image any
3189 partition_offset=number.
3190 Option -append_partition is supported.
3191 -untranslated_name_len number is -compliance
3192 untranslated_name_len=number.
3193 --old-empty is -compliance old_empty.
3194 The options of genisoimage Jigdo Template Extraction are
3195 recognized and performed via xorriso option -jigdo. See the
3196 "Alias:" names there for the meaning of the genisoimage options.
3197
3198 Personalities "xorrisofs", "genisoimage", and "genisofs" are
3199 aliases for "mkisofs".
3200 If xorriso is started with one of the leafnames "xorrisofs",
3201 "genisofs", "mkisofs", or "genisoimage", then it performs
3202 -read_mkisofsrc and prepends -as "genisofs" to the command line
3203 arguments. I.e. all arguments will be interpreted mkisofs style
3204 until "--" is encountered. From then on, options are
3205 interpreted as xorriso options.
3206 --no_rc as first argument of such a program start prevents
3207 interpretation of startup files. See section FILES below.
3208
3209 Personality "cdrecord" accepts the options listed with:
3210 -as cdrecord -help --
3211 Among them: -v, dev=, speed=, blank=, fs=, -eject, -atip,
3212 padsize=, tsize=, -isosize, -multi, -msinfo,
3213 --grow_overwriteable_iso, write_start_address=, track source
3214 file path or "-" for standard input as track source.
3215 It ignores most other options of cdrecord and cdrskin but
3216 refuses on -audio, -scanbus, and on blanking modes unknown to
3217 xorriso.
3218 The scope is only a single data track per session to be written
3219 to blank, overwriteable, or appendable media. The medium gets
3220 closed if closing is applicable and not option -multi is
3221 present.
3222 If an input drive was aquired, then it is given up. This is
3223 only allowed if no image changes are pending.
3224 dev= must be given as xorriso device address. Addresses like
3225 0,0,0 or ATA:1,1,0 are not supported.
3226 If a track source is given, then an automatic -commit happens at
3227 the end of the "cdrecord" option list.
3228 --grow_overwriteable_iso enables emulation of multi-session on
3229 overwriteable media. To enable emulation of a TOC, the first
3230 session needs -C 0,32 with -as mkisofs (but no -M) and
3231 --grow_overwriteable_iso write_start_address=32s with -as
3232 cdrecord.
3233 A much more elaborate libburn based cdrecord emulator is the
3234 program cdrskin.
3235 Personalites "xorrecord", "wodim", and "cdrskin" are aliases for
3236 "cdrecord".
3237 If xorriso is started with one of the leafnames "xorrecord",
3238 "cdrskin", "cdrecord", or "wodim", then it automatically
3239 prepends -as "cdrskin" to the command line arguments. I.e. all
3240 arguments will be interpreted cdrecord style until "--" is
3241 encountered. From then on, options are interpreted as xorriso
3242 options.
3243 --no_rc as first argument of such a program start prevents
3244 interpretation of xorriso startup files. See section FILES
3245 below.
3246
3247 -read_mkisofsrc
3248 Try one by one to open for reading:
3249 ./.mkisofsrc , $MKISOFSRC , $HOME/.mkisofsrc , $(dirname
3250 $0)/.mkisofsrc
3251 On success interpret the file content as of man mkisofs
3252 CONFIGURATION, and end this command. Do not try further files.
3253 The last address is used only if start argument 0 has a
3254 non-trivial dirname.
3255 The reader currently interprets the following NAME=VALUE pairs:
3256 APPI (-application_id) , PUBL (-publisher) , SYSI (-system_id) ,
3257 VOLI (-volid) , VOLS (-volset_id)
3258 Any other lines will be silently ignored.
3259
3260 -pacifier behavior_code
3261 Control behavior of UPDATE pacifiers during write operations.
3262 The following behavior codes are defined:
3263 "xorriso" is the default format:
3264 Writing: sector XXXXX of YYYYYY [fifo active, nn% fill]
3265 "cdrecord" looks like:
3266 X of Y MB written (fifo nn%) [buf mmm%]
3267 "mkisofs"
3268 nn% done, estimate finish Tue Jul 15 20:13:28 2008
3269
3270 -scdbackup_tag list_path record_name
3271 Set the parameter "name" for a scdbackup checksum record. It
3272 will be appended in an scdbackup checksum tag to the -md5
3273 session tag if the image starts at LBA 0. This is the case if it
3274 gets written as first session onto a sequential medium, or piped
3275 into a program, named pipe or character device.
3276 If list_path is not empty then the record will also be appended
3277 to the data file given by this path.
3278 Program scdbackup_verify will recognize and verify tag resp.
3279 record.
3280
3281 Scripting, dialog and program control features:
3282
3283 -no_rc
3284 Only if used as first command line argument this option prevents
3285 reading and interpretation of startup files. See section FILES
3286 below.
3287
3288 -options_from_file fileaddress
3289 Read quoted input from fileaddress and execute it like dialog
3290 lines. Empty lines and lines which begin by # are ignored.
3291 Normally one line should hold one xorriso command and all its
3292 arguments. Nevertheless lines may be concatenated by a trailing
3293 backslash.
3294 See also section "Command processing", paragraph "Quoted input".
3295
3296 -help
3297 Print helptext.
3298
3299 -version
3300 Print program name and version, component versions, license.
3301
3302 -list_extras code
3303 Tell whether certain extra features were enabled at compile
3304 time. Code "all" lists all features and a headline. Other
3305 codes pick a single feature. Code "codes" lists them. They
3306 share names with related commands (see also there):
3307 "acl" tells whether xorriso has an adapter for local filesystems
3308 ACLs.
3309 "xattr" tells whether xorriso has an adapter for local
3310 filesystems EA.
3311 "jigdo" tells whether production of Jigdo files is possible.
3312 "zisofs" tells whether zisofs and built-in gzip filters are
3313 enabled.
3314 "external_filter" tells whether external filter processes are
3315 allowed and whether they are allowed if real user id and
3316 effective user id differ.
3317 "dvd_obs" tells whether 64 kB output to DVD media is default.
3318 "use_readline" tells whether readline may be enabled in dialog
3319 mode.
3320
3321 -history textline
3322 Copy textline into libreadline history.
3323
3324 -status mode|filter
3325 Print the current settings of xorriso. Modes:
3326 short... print only important or altered settings
3327 long ... print all settings including defaults
3328 long_history like long plus history lines
3329 Filters begin with '-' and are compared literally against the
3330 output lines of -status:long_history. A line is put out only if
3331 its start matches the filter text. No wildcards.
3332
3333 -status_history_max number
3334 Set maximum number of history lines to be reported with -status
3335 "long_history".
3336
3337 -list_delimiter word
3338 Set the list delimiter to be used instead of "--". It has to be
3339 a single word, must not be empty, not longer than 80 characters,
3340 and must not contain quotation marks.
3341 For brevity the list delimiter is referred as "--" throughout
3342 this text.
3343
3344 -backslash_codes "on"|"off"|mode[:mode]
3345 Enable or disable the interpretation of symbolic representations
3346 of special characters with quoted input, or with program
3347 arguments, or with program text output. If enabled the following
3348 translations apply:
3349 \a=bell(007) \b=backspace(010) \e=Escape(033) \f=formfeed(014)
3350 \n=linefeed(012) \r=carriage_return(015) \t=tab(011)
3351 \v=vtab(013) \\=backslash(134) \[0-7][0-7][0-7]=octal_code
3352 \x[0-9a-f][0-9a-f]=hex_code \cC=control-C
3353 Translations can occur with quoted input in 3 modes:
3354 "in_double_quotes" translates only inside " quotation.
3355 "in_quotes" translates inside " and ' quotation.
3356 "with_quoted_input" translates inside and outside quotes.
3357 With the start program arguments there is mode:
3358 "with_program_arguments" translates all program arguments.
3359 Mode "encode_output" encodes output characters. It combines
3360 "encode_results" with "encode_infos". Inside single or double
3361 quotation marks encoding applies to ASCII characters octal 001
3362 to 037 , 177 to 377 and to backslash(134). Outside quotation
3363 marks some harmless control characters stay unencoded:
3364 bell(007), backspace(010), tab(011), linefeed(012),
3365 formfeed(014), carriage_return(015).
3366 Mode "off" is default and disables any translation. Mode "on"
3367 is "with_quoted_input:with_program_arguments:encode_output".
3368
3369 -temp_mem_limit number["k"|"m"]
3370 Set the maximum size of temporary memory to be used for image
3371 dependent buffering. Currently this applies to pattern
3372 expansion, LBA sorting, restoring of hard links.
3373 Default is 16m = 16 MiB, minimum 64k = 64 kiB, maximum 1024m = 1
3374 GiB.
3375
3376 -print text
3377 Print a text line to the result channel which is by default
3378 stdout.
3379
3380 -print_info text
3381 Print a text line to the info channel which is by default
3382 stderr.
3383
3384 -print_mark text
3385 Print a text line to the mark channel which is by default
3386 directed to both, result and info channel. An empty text will
3387 cause no output at all.
3388
3389 -prompt text
3390 Show text at beginning of output line and wait for the user to
3391 hit the Enter key resp. to send a line via stdin.
3392
3393 -sleep seconds
3394 Wait for the given number of seconds before perfoming the next
3395 command. Expect coarse granularity no better than 1/100
3396 seconds.
3397
3398 -errfile_log mode path|channel
3399 If problem events are related to input files from the
3400 filesystem, then their disk_paths can be logged to a file or to
3401 output channels R or I.
3402 Mode can either be "plain" or "marked". The latter causes marker
3403 lines which give the time of log start, burn session start, burn
3404 session end, log end or program end. In mode "plain", only the
3405 file paths are logged.
3406 If path is "-" or "-R" then the log is directed to the result
3407 channel. Path "-I" directs it to the info message channel. Any
3408 text that does not begin with "-" is used as path for a file to
3409 append the log lines.
3410 Problematic files can be recorded multiple times during one
3411 program run. If the program run aborts then the list might not
3412 be complete because some input file arguments might not have
3413 been processed at all.
3414 The errfile paths are transported as messages of very low
3415 severity "ERRFILE". This transport becomes visible with
3416 -report_about "ALL".
3417
3418 -session_log path
3419 If path is not empty it gives the address of a plain text file
3420 where a log record gets appended after each session. This log
3421 can be used to determine the start_lba of a session for mount
3422 options -o sbsector= resp. -s from date or volume id.
3423 Record format is: timestamp start_lba size volume-id
3424 The first three items are single words, the rest of the line is
3425 the volume id.
3426
3427 -scsi_log "on"|"off"
3428 Mode "on" enables very verbous logging of SCSI commands and
3429 drive replies. Logging messages get printed to stderr, not to
3430 any of the xorriso output channels.
3431 A special property of this option is that the first -scsi_log
3432 setting among the start arguments is in effect already when the
3433 first operations of xorriso begin. Only "-scsi_log" with dash
3434 "-" is recognized that way.
3435
3436 -end
3437 End program after writing pending changes.
3438
3439 -rollback_end
3440 Discard pending changes. End program immediately.
3441
3442 # any text
3443 Only in dialog or file execution mode, and only as first
3444 non-whitespace in line: Do not execute the line but store it in
3445 readline history.
3446
3447 Support for frontend programs via stdin and stdout:
3448
3449 -pkt_output "on"|"off"
3450 Consolidate text output on stdout and classify each line by a
3451 channel indicator:
3452 'R:' for result lines,
3453 'I:' for notes and error messages,
3454 'M:' for -mark texts.
3455 Next is a decimal number of which only bit 0 has a meaning for
3456 now. 0 means no newline at end of payload, 1 means that the
3457 newline character at the end of the output line belongs to the
3458 payload. After another colon and a blank follows the payload
3459 text.
3460 Example:
3461 I:1: enter option and arguments :
3462
3463 -logfile channel fileaddress
3464 Copy output of a channel to the given file. Channel may be one
3465 of: "." for all channels, "I" for info messages, "R" for result
3466 lines, "M" for -mark texts.
3467
3468 -mark text
3469 If text is not empty it will get put out on "M" channel each
3470 time xorriso is ready for the next dialog line or before xorriso
3471 performs a command that was entered to the pager prompt.
3472
3473 -prog text
3474 Use text as name of this program in subsequent messages
3475
3476 -prog_help text
3477 Use text as name of this program and perform -help.
3478
3480 Overview of examples:
3481 As superuser learn about available drives
3482 Blank medium and compose a new ISO image as batch run
3483 A dialog session doing about the same
3484 Manipulate an existing ISO image on the same medium
3485 Copy modified ISO image from one medium to another
3486 Bring a prepared ISOLINUX tree onto medium and make it bootable
3487 Change existing file name tree from ISO-8859-1 to UTF-8
3488 Operate on storage facilities other than optical drives
3489 Burn an existing ISO image file to medium
3490 Perform multi-session runs as of cdrtools traditions
3491 Let xorriso work underneath growisofs
3492 Adjust thresholds for verbosity, exit value and program abort
3493 Examples of input timestrings
3494 Incremental backup of a few directory trees
3495 Restore directory trees from a particular ISO session to disk
3496 Try to retrieve blocks from a damaged medium
3497
3498 As superuser learn about available drives
3499 On Linux or FreeBSD consider to give rw-permissions to those users or
3500 groups which shall be able to use the drives with xorriso. On Solaris
3501 use pfexec. Consider to restrict privileges of xorriso to
3502 "base,sys_devices" and to give r-permission to user or group.
3503 $ xorriso -device_links
3504 1 -dev '/dev/cdrom1' rwrw-- : 'TSSTcorp' 'DVD-ROM SH-D162C
3505 1 -dev '/dev/cdrw' rwrw-- : 'TSSTcorp' 'CDDVDW SH-S223B'
3506 2 -dev '/dev/cdrw3' rwrw-- : 'HL-DT-ST' 'BDDVDRW_GGC-H20L'
3507
3508 Blank medium and compose a new ISO image as batch run
3509 Aquire drive /dev/sr2, make medium ready for writing a new image, fill
3510 the image with the files from hard disk directories /home/me/sounds and
3511 /home/me/pictures.
3512 Because no -dialog "on" is given, the program will then end by writing
3513 the session to the medium.
3514 $ xorriso -outdev /dev/sr2 \
3515 -blank as_needed \
3516 -map /home/me/sounds /sounds \
3517 -map /home/me/pictures /pictures
3518
3519 The ISO image may be shaped in a more elaborate way like the following:
3520 Omit some unwanted stuff by removing it from the image directory tree.
3521 Reintroduce some wanted stuff.
3522 $ cd /home/me
3523 $ xorriso -outdev /dev/sr2 \
3524 -blank as_needed \
3525 -map /home/me/sounds /sounds \
3526 -map /home/me/pictures /pictures \
3527 -rm_r \
3528 /sounds/indecent \
3529 '/pictures/*private*' \
3530 /pictures/confidential \
3531 -- \
3532 -cd / \
3533 -add pictures/confidential/work* --
3534 Note that '/pictures/*private*' is a pattern for iso_rr_paths while
3535 pictures/confidential/work* gets expanded by the shell with addresses
3536 from the hard disk. Options -add and -map have different argument rules
3537 but finally the same effect: they put files into the image.
3538
3539 A dialog session doing about the same
3540 Some settings are already given as start argument. The other activities
3541 are done as dialog input. The pager gets set to 20 lines of 80
3542 characters.
3543 The drive is acquired by option -dev rather than -outdev in order to
3544 see the message about its current content. By option -blank this
3545 content is made ready for being overwritten and the loaded ISO image is
3546 made empty.
3547 In order to be able to eject the medium, the session needs to be
3548 committed explicitly.
3549 $ xorriso -dialog on -page 20 80 -disk_pattern on
3550 enter option and arguments :
3551 -dev /dev/sr2
3552 enter option and arguments :
3553 -blank as_needed
3554 enter option and arguments :
3555 -map /home/me/sounds /sounds -map /home/me/pictures /pictures
3556 enter option and arguments :
3557 -rm_r /sounds/indecent /pictures/*private* /pictures/confidential
3558 enter option and arguments :
3559 -cdx /home/me/pictures -cd /pictures
3560 enter option and arguments :
3561 -add confidential/office confidential/factory
3562 enter option and arguments :
3563 -du /
3564 enter option and arguments :
3565 -commit_eject all -end
3566
3567 Manipulate an existing ISO image on the same medium
3568 Load image from drive. Remove (i.e. hide) directory /sounds and its
3569 subordinates. Rename directory /pictures/confidential to
3570 /pictures/restricted. Change access permissions of directory
3571 /pictures/restricted. Add new directory trees /sounds and /movies.
3572 Burn to the same medium, check whether the tree can be loaded, and
3573 eject.
3574 $ xorriso -dev /dev/sr2 \
3575 -rm_r /sounds -- \
3576 -mv \
3577 /pictures/confidential \
3578 /pictures/restricted \
3579 -- \
3580 -chmod go-rwx /pictures/restricted -- \
3581 -map /home/me/prepared_for_dvd/sounds_dummy /sounds \
3582 -map /home/me/prepared_for_dvd/movies /movies \
3583 -commit -eject all
3584
3585 Copy modified ISO image from one medium to another
3586 Load image from input drive. Do the same manipulations as in the
3587 previous example. Aquire output drive and blank it. Burn the modified
3588 image as first and only session to the output drive.
3589 $ xorriso -indev /dev/sr2 \
3590 -rm_r /sounds -- \
3591 ...
3592 -outdev /dev/sr0 -blank as_needed \
3593 -commit -eject all
3594
3595 Bring a prepared ISOLINUX tree onto medium and make it bootable
3596 The user has already created a suitable file tree on disk and copied
3597 the ISOLINUX files into subdirectory ./boot/isolinux of that tree. Now
3598 xorriso can burn an El Torito bootable medium:
3599 $ xorriso -outdev /dev/sr0 -blank as_needed \
3600 -map /home/me/ISOLINUX_prepared_tree / \
3601 -boot_image isolinux dir=/boot/isolinux
3602
3603 Change existing file name tree from ISO-8859-1 to UTF-8
3604 This example assumes that the existing ISO image was written with
3605 character set ISO-8859-1 but that the readers expected UTF-8. Now a new
3606 session with the same files gets added with converted file names. In
3607 order to avoid any weaknesses of the local character set, this command
3608 pretends that it uses already the final target set UTF-8. Therefore
3609 strange file names may appear in messages, which will be made
3610 terminal-safe by option -backslash_codes.
3611 $ xorriso -in_charset ISO-8859-1 -local_charset UTF-8 \
3612 -out_charset UTF-8 -backslash_codes on -dev /dev/sr0 \
3613 -alter_date m +0 / -- -commit -eject all
3614
3615 Operate on storage facilities other than optical drives
3616 Full read-write operation is possible with regular files and block
3617 devices:
3618 $ xorriso -dev /tmp/regular_file ...
3619 Paths underneath /dev normally need prefix "stdio:"
3620 $ xorriso -dev stdio:/dev/sdb ...
3621 If /dev/sdb is to be used frequently and /dev/sda is the system disk,
3622 then consider to place the following lines in a xorriso Startup File.
3623 They allow to use /dev/sdb without prefix and protect disk /dev/sda
3624 from xorriso:
3625 -drive_class banned /dev/sda*
3626 -drive_class harmless /dev/sdb
3627 Other writeable file types are supported write-only:
3628 $ xorriso -outdev /tmp/named_pipe ...
3629 Among the write-only drives is standard output:
3630 $ xorriso -outdev - \
3631 ...
3632 | gzip >image.iso.gz
3633
3634 Burn an existing ISO image file to medium
3635 Actually this works with any kind of data, not only ISO images:
3636 $ xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed image.iso
3637
3638 Perform multi-session runs as of cdrtools traditions
3639 Between both processes there can be performed arbitrary transportation
3640 or filtering.
3641 The first session is written like this:
3642 $ xorriso -as mkisofs prepared_for_iso/tree1 | \
3643 xorriso -as cdrecord -v dev=/dev/sr0 blank=fast -multi -eject -
3644 Follow-up sessions are written like this:
3645 $ dd if=/dev/sr0 count=1 >/dev/null 2>&1
3646 $ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo)
3647 $ xorriso -as mkisofs -M /dev/sr0 -C $m prepared_for_iso/tree2 | \
3648 xorriso -as cdrecord -v dev=/dev/sr0 -waiti -multi -eject -
3649 Always eject the drive tray between sessions. The old sessions get read
3650 via /dev/sr0. Its device driver might not be aware of the changed
3651 content before it loads the medium again. In this case the previous
3652 session would not be loaded and the new session would contain only the
3653 newly added files.
3654 For the same reason do not let xorriso -as cdrecord load the medium,
3655 but rather do this manually or by a program that reads from /dev/sr0.
3656 This example works for multi-session media only. Add cdrskin option
3657 --grow_overwriteable_iso to all -as cdrecord runs in order to enable
3658 multi-session emulation on overwriteable media.
3659
3660 Let xorriso work underneath growisofs
3661 growisofs expects an ISO formatter program which understands options -C
3662 and -M. If xorriso gets started by name "xorrisofs" then it is suitable
3663 for that.
3664 $ export MKISOFS="xorrisofs"
3665 $ growisofs -Z /dev/dvd /some/files
3666 $ growisofs -M /dev/dvd /more/files
3667 If no "xorrisofs" is available on your system, then you will have to
3668 create a link pointing to the xorriso binary and tell growisofs to use
3669 it. E.g. by:
3670 $ ln -s $(which xorriso) "$HOME/xorrisofs"
3671 $ export MKISOFS="$HOME/xorrisofs"
3672 One may quit mkisofs emulation by argument "--" and make use of all
3673 xorriso commands. growisofs dislikes options which start with "-o" but
3674 -outdev must be set to "-". So use "outdev" instead:
3675 $ growisofs -Z /dev/dvd -- outdev - -update_r /my/files /files
3676 $ growisofs -M /dev/dvd -- outdev - -update_r /my/files /files
3677 growisofs has excellent burn capabilities with DVD and BD. It does not
3678 emulate session history on overwriteable media, though.
3679
3680 Adjust thresholds for verbosity, exit value and program abort
3681 Be quite verbous, exit 32 if severity "FAILURE" was encountered, do not
3682 abort prematurely but forcibly go on until the end of commands.
3683 $ xorriso ... \
3684 -report_about UPDATE \
3685 -return_with FAILURE 32 \
3686 -abort_on NEVER \
3687 ...
3688
3689 Examples of input timestrings
3690 As printed by program date: 'Thu Nov 8 14:51:13 CET 2007'
3691 The same without ignored parts: 'Nov 8 14:51:13 2007'
3692 The same as expected by date: 110814512007.13
3693 Four weeks in the future: +4w
3694 The current time: +0
3695 Three hours ago: -3h
3696 Seconds since Jan 1 1970: =1194531416
3697
3698 Incremental backup of a few directory trees
3699 This changes the directory trees /open_source_project and
3700 /personal_mail in the ISO image so that they become exact copies of
3701 their disk counterparts. ISO file objects get created, deleted or get
3702 their attributes adjusted accordingly.
3703 ACL, xattr, hard links and MD5 checksums will be recorded. Accelerated
3704 comparison is enabled at the expense of potentially larger backup size.
3705 Only media with the expected volume id or blank media are accepted.
3706 Files with names matching *.o or *.swp get excluded explicitly.
3707 When done with writing the new session gets checked by its recorded
3708 MD5.
3709 $ xorriso \
3710 -abort_on FATAL \
3711 -for_backup -disk_dev_ino on \
3712 -assert_volid 'PROJECTS_MAIL_*' FATAL \
3713 -dev /dev/sr0 \
3714 -volid PROJECTS_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" \
3715 -not_leaf '*.o' -not_leaf '*.swp' \
3716 -update_r /home/thomas/projects /projects \
3717 -update_r /home/thomas/personal_mail /personal_mail \
3718 -commit -toc -check_md5 FAILURE -- -eject all
3719 To be used several times on the same medium, whenever an update of the
3720 two disk trees to the medium is desired. Begin with a blank medium and
3721 update it until he run fails gracefully due to lack of remaining space
3722 on the old one.
3723 This makes sense if the full backup leaves substantial remaining
3724 capacity on media and if the expected changes are much smaller than the
3725 full backup. To apply zisofs compression to those data files which get
3726 newly copied from the local filesystem, insert these options
3727 immediately before -commit :
3728 -hardlinks perform_update \
3729 -find / -type f -pending_data -exec set_filter --zisofs -- \
3730 Options -disk_dev_ino and -for_backup depend on stable device and inode
3731 numbers on disk. Without them, an update run may use -md5 "on" to match
3732 recorded MD5 sums against the current file content on hard disk. This
3733 is usually much faster than the default which compares both contents
3734 directly.
3735 With mount option -o "sbsector=" on GNU/Linux resp. -s on FreeBSD it is
3736 possible to access the session trees which represent the older backup
3737 versions. With CD media, GNU/Linux mount accepts session numbers
3738 directly by its option "session=".
3739 Multi-session media and most overwriteable media written by xorriso can
3740 tell the sbsectors of their sessions by xorriso option -toc. Used
3741 after -commit the following option prints the matching mount command
3742 for the newly written session (here for mount point /mnt):
3743 -mount_cmd "indev" "auto" "auto" /mnt
3744 Options -mount_cmd and -mount are also able to produce the mount
3745 commands for older sessions in the table-of-content. E.g. as superuser:
3746 # osirrox -mount /dev/sr0 "volid" '*2008_12_05*' /mnt
3747
3748 Above example produces a result similar to -root / -old-root / with
3749 mkisofs. For getting the session trees accumulated in the new
3750 sessions, let all -update commands use a common parent directory and
3751 clone it after updating is done:
3752 -update_r /home/thomas/projects /current/projects \
3753 -update_r /home/thomas/personal_mail /current/personal_mail \
3754 -clone /current /"$(date '+%Y_%m_%d_%H%M%S')" \
3755 The cloned tree will have a name like /2011_02_12_155700.
3756
3757 Sessions on multi-session media are separated by several MB of unused
3758 blocks. So with small sessions the payload capacity can become
3759 substantially lower than the overall media capacity. If the remaining
3760 space on a medium does not suffice for the next gap, the drive is
3761 supposed to close the medium automatically.
3762
3763 Better do not use your youngest backup for -update_r. Have at least
3764 two media which you use alternatingly. So only older backups get
3765 endangered by the new write operation, while the newest backup is
3766 stored safely on a different medium.
3767 Always have a blank medium ready to perform a full backup in case the
3768 update attempt fails due to insufficient remaining capacity. This
3769 failure will not spoil the old medium, of course.
3770
3771 Restore directory trees from a particular ISO session to disk
3772 This is an alternative to mounting the medium and using normal file
3773 operations.
3774 First check which backup sessions are on the medium:
3775 $ xorriso -outdev /dev/sr0 -toc
3776 Then load the desired session and copy the file trees to disk. Enable
3777 restoring of ACL, xattr and hard links. Avoid to create
3778 /home/thomas/restored without rwx-permission.
3779 $ xorriso -for_backup \
3780 -load volid 'PROJECTS_MAIL_2008_06_19*' \
3781 -indev /dev/sr0 \
3782 -osirrox on:auto_chmod_on \
3783 -chmod u+rwx / -- \
3784 -extract /open_source_projects \
3785 /home/thomas/restored/open_source_projects \
3786 -extract /personal_mail /home/thomas/restored/personal_mail \
3787 -rollback_end
3788 The final command -rollback_end prevents an error message about the
3789 altered image being discarded.
3790
3791 Try to retrieve blocks from a damaged medium
3792 $ xorriso -abort_on NEVER -indev /dev/sr0 \
3793 -check_media time_limit=1800 report=blocks_files \
3794 data_to="$HOME"/dvd_copy sector_map="$HOME"/dvd_copy.map --
3795 This can be repeated several times, if necessary with -eject or with
3796 other -indev drives. See the human readable part of
3797 "$HOME"/dvd_copy.map for addresses which can be used on
3798 "$HOME"/dvd_copy with mount option -o sbsector= resp. -s.
3799
3801 Program alias names:
3802 Normal installation of xorriso creates three links or copies which by
3803 their program name pre-select certain settings:
3804 xorrisofs starts xorriso with -as mkisofs emulation.
3805 xorrecord starts xorriso with -as cdrecord emulation.
3806 osirrox starts with -osirrox "on:o_excl_off" which allows to copy files
3807 from ISO image to disk and to apply option -mount to one or more of the
3808 existing ISO sessions.
3809
3810 Startup files:
3811 If not -no_rc is given as the first argument then xorriso attempts on
3812 startup to read and execute lines from the following files:
3813 /etc/default/xorriso
3814 /etc/opt/xorriso/rc
3815 /etc/xorriso/xorriso.conf
3816 $HOME/.xorrisorc
3817 The files are read in the sequence given above, but none of them is
3818 required to exist. The line format is described with command
3819 -options_from_file.
3820 If mkisofs emulation was enabled by program name "xorrisofs",
3821 "mkisofs", "genisoimage", or "genisofs", then afterwards
3822 -read_mkisofsrc is performed, which reads .mkisofsrc files. See there.
3823
3824 Runtime control files:
3825 The default setting of -check_media abort_file= is:
3826 /var/opt/xorriso/do_abort_check_media
3827
3829 For the mkisofs emulation of xorriso
3830 xorrisofs(1)
3831
3832 For the cdrecord emulation of xorriso
3833 xorrecord(1)
3834
3835 For mounting xorriso generated ISO 9660 images (-t iso9660)
3836 mount(8)
3837
3838 Libreadline, a comfortable input line facility
3839 readline(3)
3840
3841 Other programs which produce ISO 9660 images
3842 mkisofs(8), genisoimage(8)
3843
3844 Other programs which burn sessions to optical media
3845 growisofs(1), cdrecord(1), wodim(1), cdrskin(1)
3846
3847 ACL and xattr
3848 getfacl(1), setfacl(1), getfattr(1), setfattr(1)
3849
3850 MD5 checksums
3851 md5sum(1)
3852
3853 On FreeBSD the commands for xattr and MD5 differ
3854 getextattr(8), setextattr(8), md5(1)
3855
3857 To report bugs, request help, or suggest enhancements for xorriso,
3858 please send electronic mail to the public list <bug-xorriso@gnu.org>.
3859 If more privacy is desired, mail to <scdbackup@gmx.net>.
3860 Please describe what you expect xorriso to do, the program arguments
3861 resp. commands by which you tried to achieve it, the messages of
3862 xorriso, and the undesirable outcome of your program run.
3863 Expect to get asked more questions before solutions can be proposed.
3864
3866 Thomas Schmitt <scdbackup@gmx.net>
3867 for libburnia-project.org
3868
3870 Copyright (c) 2007 - 2011 Thomas Schmitt
3871 Permission is granted to distribute this text freely. It shall only be
3872 modified in sync with the technical properties of xorriso. If you make
3873 use of the license to derive modified versions of xorriso then you are
3874 entitled to modify this text under that same license.
3875
3877 xorriso is in part based on work by Vreixo Formoso who provides
3878 libisofs together with Mario Danic who also leads the libburnia team.
3879 Thanks to Andy Polyakov who invented emulated growing, to Derek Foreman
3880 and Ben Jansens who once founded libburn.
3881 Compliments towards Joerg Schilling whose cdrtools served me for ten
3882 years.
3883
3884
3885
3886 Version 1.1.8, Nov 20, 2011 XORRISO(1)