1XORRISOFS(1) General Commands Manual XORRISOFS(1)
2
3
4
6 xorrisofs - Emulation of ISO 9660 program mkisofs by program xorriso
7
9 xorrisofs [ options ] [-o filename ] pathspec [pathspecs ...]
10
12 xorrisofs produces Rock Ridge enhanced ISO 9660 filesystems and add-on
13 sessions to such filesystems. Optionally it can produce Joliet
14 directory trees too.
15
16 xorrisofs understands options of program mkisofs from cdrtools by Joerg
17 Schilling. Its implementation is part of program xorriso which shares
18 no source code with cdrtools.
19
20 ISO 9660, Rock Ridge, Joliet, HFS+:
21 ISO 9660 (aka ECMA-119) is a read-only filesystem that is mainly used
22 for optical media CD, DVD, BD, but may also reside on other storage
23 devices like disk files, USB sticks or disk partitions. It is widely
24 readable by many operating systems and by boot facilities of personal
25 computers.
26 ISO 9660 describes directories and data files by very restricted
27 filenames with no distinction of upper case and lower case. Its
28 metadata do not comply to fundamental POSIX specifications.
29 Rock Ridge is the name of a set of additional information which enhance
30 an ISO 9660 filesystem so that it can represent a POSIX compliant
31 filesystem with ownership, access permissions, symbolic links, and
32 other attributes. Rock Ridge allows filenames of up to 255 bytes and
33 paths of up to 1024 bytes.
34 xorrisofs produces Rock Ridge information by default. It is strongly
35 discouraged to disable this feature.
36 Joliet is the name of an additional directory tree which provides
37 filenames up to 64 characters encoded as UTF-16. A Joliet tree is
38 mainly interesting for reading the ISO image by operating systems of
39 Microsoft Corporation. Production of this directory tree may be
40 enabled by option -J.
41 ISO 9660:1999 is the name of an additional directory tree which
42 provides longer filenames. It allows single file names to have up to
43 207 characters. It might be of use with some older computer system
44 boot facilities which read neither Rock Ridge nor Joliet but need
45 longer filenames nevertheless. Production of this directory tree may
46 be enabled by option -iso-level 4.
47 HFS+ is the name of a filesystem which is normally used for writing and
48 reading on hard disks and similar devices. It is possible to embed a
49 HFS+ partition into the emerging ISO 9660 image and to mark it by Apple
50 Partition Map entries. This interferes with options which copy data
51 into the first 32 KiB of the ISO image, like -G or -isohybrid-mbr. See
52 option -hfsplus.
53 The main purpose for having an embedded HFS+ partition is booting of
54 certain models of Apple computers.
55
56 Inserting files into the ISO image:
57 xorrisofs deals with two kinds of file addresses:
58 disk_path is a path to an object in the local filesystem tree.
59 iso_rr_path is the Rock Ridge address of a file object in the ISO
60 image. If no Rock Ridge information shall be stored in an emerging
61 ISO, then the names will get mapped to ISO 9660 names of limited length
62 and character set.
63
64 A program argument is handled as a pathspec, if it is not recognized as
65 original mkisofs option or additional xorrisofs option. A pathspec
66 depicts an input file object by a disk_path. If option -graft-points
67 is not present, then the behavior depends on the file type of
68 disk_path. Directories get merged with the /-directory of the ISO
69 image. Files of other types get copied into the /-directory.
70 If -graft-points is present then each pathspec gets split at the first
71 occurrence of the =-character. The part before the = is taken as
72 target, i.e. the iso_rr_path for the file object in the ISO image. The
73 part after the first = is taken as source, i.e. the disk_path of the
74 input object.
75 It is possible to make =-characters part of the iso_rr_path by
76 preceding them with a \-character. The same must be done for
77 \-characters which shall be part of the iso_rr_path.
78
79 If the source part of the pathspec leads to a directory, then all files
80 underneath this directory get inserted into the image, too. It is
81 possible to exclude particular files from being inserted by help of
82 option -m.
83 In case that target already exists, the following rules apply:
84 Directories and other files may overwrite existing non-directories.
85 Directories get merged with existing directories. Non-directories may
86 not overwrite existing directories.
87
88 Relation to program xorriso:
89 xorrisofs is actually a command mode of program xorriso, which gets
90 entered either by xorriso command "-as mkisofs" or by starting the
91 program by one of the names "xorrisofs", "mkisofs", "genisoimage", or
92 "genisofs".
93 This command mode can be left by argument "--" which leads to generic
94 xorriso command mode. See man xorriso for its description.
95
96 xorriso performs image reading and writing by help of libburn, which is
97 mainly intended for optical drives, but also operates on all POSIX file
98 types except directories.
99 The program messages call any image file a "drive". File types which
100 are not supported for reading are reported as "blank". The reported
101 free media space may be quite fictional.
102 Nevertheless xorrisofs does not operate directly on optical drives, but
103 rather forces libburn to regard them as general device files. So for
104 writing of sequential optical media (CD, DVD-R, DVD+R, BD-R) one will
105 have to use a burn program. E.g the cdrecord emulation of xorriso. See
106 EXAMPLES.
107
108
110 Image loading:
111
112 The following options control loading of an existing ISO image for the
113 purpose of preparing a suitable add-on session. If they are missing
114 then a new image is composed from scratch.
115
116 -M disk_path
117 Set the path from which to load the existing ISO image directory
118 tree on which to base the upcoming directory tree as add-on
119 session. The path must lead to a random-access readable file
120 object. On GNU/Linux: regular data files or block device files.
121 A special kind of pseudo disk_path has the form
122 "/dev/fd/"number. It depicts the open file descriptor with the
123 given number, regardless whether the operating system supports
124 this feature by file nodes in /dev/fd or not. E.g. /dev/fd/3 is
125 file descriptor 3 which was opened by the program that later
126 started xorriso.
127
128 -prev-session disk_path
129 Alias of -M.
130
131 -dev disk_path
132 Alias of -M.
133
134 -C last_session_start,next_writeable_address
135 Set the 2 KiB block address last_session_start from where to
136 read the ISO image out of the file given by option -M.
137 Separated by a comma, set the next_writeable_address to which
138 the add-on session will finally be written. Decisive is actually
139 the block address which the intended readers will have to use as
140 superblock address on the intended medium.
141 Both values can be inquired from optical media by help of burn
142 programs and cdrecord option -msinfo. xorriso itself can obtain
143 it in its cdrecord emulation.
144 values=$(xorriso -as cdrecord dev=/dev/... -msinfo)
145 echo $values
146 Option -C may be used without option -M to create an ISO image
147 from scratch and prepare it for being finally written to a block
148 address other than 0. Parameter last_session_start must then be
149 set to 0.
150
151 -cdrecord-params last_session_start,next_writeable_address
152 Alias of -C.
153
154 Settings for file insertion:
155
156 -path-list disk_path
157 Read pathspecs line-by-line from disk_file and insert the
158 depicted file objects into the ISO image. If disk_path is "-"
159 then read the pathspecs from standard input.
160
161 --quoted_path_list disk_path
162 Like option -path-list but reading quoted words rather than
163 plain lines. Whitespace outside of quotes will be discarded. On
164 the other hand it is possible to represent pathspecs which
165 contain newline characters.
166 The double quotation mark " and the single quotation mark ' can
167 be used to enclose whitespace and make it part of pathspecs.
168 Each mark type can enclose the marks of the other type. A
169 trailing backslash \ outside quotations or an open quotation
170 cause the next input line to be appended.
171
172 -f
173 Resolve symbolic links on disk rather than storing them as
174 symbolic links in the ISO image.
175
176 -follow-links
177 Alias of -f.
178
179 -graft-points
180 Enable interpretation of input file pathspecs as combination of
181 iso_rr_path and disk_path, separated by a =-character.
182
183 -m disk_pattern
184 Exclude files from being inserted into the image. Silently
185 ignored are those files of which the disk_path matches the given
186 shell parser pattern. If no /-character is part of the pattern,
187 then it gets matched against the leaf name of the disk file.
188 It is possible to give more than one -m option.
189
190 -exclude
191 Alias of -m.
192
193 -x
194 Alias of -m.
195
196 -old-exclude
197 Alias of -m.
198
199 -exclude-list disk_path
200 Perform -m using each line out of file disk_path as argument
201 disk_pattern.
202
203 -z
204 Enable recognition and proper processing of zisofs compressed
205 files as produced by program mkzftree. These files will get
206 equipped with the necessary meta data so that a Linux kernel
207 will recognize them and deliver their content in uncompressed
208 form.
209
210 -transparent-compression
211 Alias of -z.
212
213 --zisofs-version-2
214 Enable the recognition and proper processing of experimental
215 zisofs version 2 compressed files. The Linux kernel (as of 5.9)
216 does not yet know this format and will complain like
217 isofs: Unknown ZF compression algorithm: PZ
218 This complaint can be prevented by option --zisofs2-susp-z2 .
219 The files will be shown by unaware kernels as they were
220 submitted to xorriso, i.e. with zisofs2 header, block pointer
221 list, and compressed data.
222 --zisofs-version-2 also enables -z.
223
224 --zisofs2-susp-z2
225 Enable the production of SUSP entries "Z2" instead of "ZF" with
226 zisofs2 compressed files. Unaware Linux kernels silently ignore
227 "Z2" entries.
228
229 --zisofs2-susp-zf
230 Enable the production of SUSP entries "ZF" instead of "Z2" with
231 zisofs2 compressed files. Unaware Linux kernels complain about
232 zisofs2 "ZF" by "Unknown ZF compression algorithm" and thus
233 leave a mark in the system log.
234
235 -root iso_rr_path
236 Insert all files under the given iso_rr_path. If option
237 -graft-points is given, then iso_rr_path is prepended to each
238 target part of a pathspec.
239 The default for -root is "/".
240
241 -old-root iso_rr_path
242 Enable incremental insertion of files into the loaded image.
243 The effective target and source addresses of given pathspecs get
244 compared whether the target already exists in the ISO image and
245 is still identical to the source on disk. Metadata in the ISO
246 image will get adjusted, if they differ from those on disk. New
247 files and files with changed content will get newly added.
248 Target files which do not exist in any of the according pathspec
249 sources will get removed from the ISO directory tree.
250 If the effective setting of -root differs from the iso_rr_path
251 given with -old-root, then the files underneath the -old-root
252 directory get cloned underneath the -root directory. Cloning
253 happens before file comparison.
254
255 --old-root-no-ino
256 Disable recording and use of disk inode numbers. If no disk
257 inode numbers are recorded, then option -old-root will have to
258 read disk file content and compare it with the MD5 checksum that
259 is recorded in the ISO image.
260 With recorded disk inode numbers and with credible ctime and
261 mtime, it is possible to detect potential changes in the content
262 without actually reading it. A loophole remains if multiple
263 different filesystems may get mounted at the same directory,
264 like it is habit with /mnt. In this case one has to use option
265 --old-root-devno or disable the inode number shortcut by
266 --old-root-no-ino.
267
268 --old-root-devno
269 Enable comparison of recorded device numbers together with
270 recorded inode numbers. This works only with good old stable
271 device numbers which get out of fashion, regrettably. If the
272 hard disk has a different device number after each reboot, then
273 this comparison will see all files as changed and thus prevent
274 any incremental size saving.
275
276 --old-root-no-md5
277 Disable recording and use of MD5 checksums for data file
278 content. If neither checksums and nor disk inode numbers are
279 recorded, then option -old-root will have to read ISO image file
280 content when comparing it with disk file content.
281
282 Settings for image production:
283
284 -o disk_path
285 Set the output file address for the emerging ISO image. If the
286 address exists as regular file, it will be truncated to length 0
287 when image production begins. It may not already exist as
288 directory. If it does not exist yet then its parent directory
289 must exist and a regular file will get created.
290 A special kind of pseudo disk_path has the form
291 "/dev/fd/"number. It depicts the open file descriptor with the
292 given number, regardless whether the operating system supports
293 this feature by file nodes in /dev/fd or not. E.g. /dev/fd/4 is
294 file descriptor 4 which was opened by the program that later
295 started xorriso.
296 Default is standard output (/dev/fd/1) which may also be set by
297 disk_path "-".
298
299 -output disk_path
300 Alias of -o.
301
302 --stdio_sync "on"|"off"|"end"|number
303 Set the number of bytes after which to force output to disk in
304 order to keep the memory from being clogged with lots of pending
305 data for slow devices. "on" is the same as "16m". Forced output
306 can be disabled by "off", or be delayed by "end" until all data
307 are produced. If a number is chosen, then it must be at least
308 64k.
309 The default with xorriso mkisofs emulation is --stdio_sync
310 "off".
311 xorriso uses an inner fifo buffer with default size 4 MiB. So
312 forcing the operating system i/o cache to disk does not
313 necessarily block the simultaneous production of more image
314 content.
315
316 --emul-toc
317 Write a second superblock with the first session into
318 random-access files. If further sessions get appended and the
319 first superblock gets updated, then the second superblock will
320 not be overwritten. So it is still possible to mount the first
321 session and to find the start blocks of the further sessions.
322 The price is 64 KiB extra space consumption. If
323 -partition_offset is non-zero, then it is 128 KiB plus twice the
324 partition setup.
325
326 --no-emul-toc
327 Do not write a second superblock with the first session into
328 random-access files.
329 This is the default.
330
331 --sort-weight weight_number iso_rr_path
332 Attribute a LBA weight number to regular files. If iso_rr_path
333 leads to a directory then all regular files underneath will get
334 the weight_number.
335 The weight_number may range from -2147483648 to 2147483647. The
336 higher it is, the lower will be the block address of the file
337 data in the emerging ISO image. Currently the El Torito boot
338 catalog has a hardcoded weight of 1 billion. Normally it should
339 occupy the block with the lowest possible address. Data files
340 get added or loaded with initial weight 0. Boot image files have
341 a default weight of 2.
342
343 --sort-weight-list disk_path
344 Read pairs of weight number and iso_rr_path from a file of the
345 local filesystem. Apply each pair like with --sort-weight.
346 Only the last --sort-weight-list or --sort-weight-patterns of a
347 xorrisofs run gets into effect.
348 The weight number is read from the start of the line. The
349 iso_rr_path part of an input line begins immediately after the
350 first blank or tab character of the line.
351 Notes for the case that this feature is used within a sequence
352 of generic xorriso commands (not an issue with a pure mkisofs
353 emulation run):
354 The addressed files must already be in the ISO image model when
355 you execute
356 -as mkisofs --sort-weight-list disk_path --
357 Several such commands may be used to apply more than one weight
358 file.
359 Data files which are loaded by -indev or -dev get a weight
360 between 1 and 2 exp 28 = 268,435,456, depending on their block
361 address. This shall keep them roughly in the same order if the
362 write method of modifying is applied.
363
364 --sort-weight-patterns disk_path
365 Like --sort-weight-list , but expanding the iso_rr_paths as
366 shell parser patterns and applying --sort-weight to each
367 matching file.
368
369 -uid number|name
370 Use the given number or locally existing user name as owner id
371 of all files and directories in the emerging filesystem. Empty
372 name or name "-" revoke this feature.
373
374 -gid number|name
375 Use the given number or locally existing group name as group id
376 of all files and directories in the emerging filesystem. Empty
377 name or name "-" revoke this feature.
378
379 -dir-mode mode
380 Set the access permissions for all directories in the image to
381 the given mode which is either an octal number beginning with
382 "0" or a comma separated list of statements of the form
383 [ugoa]*[+-=][rwxst]* . E.g. ug=rx,a-rwx
384
385 -file-mode mode
386 Like -dir-mode but for all regular data files in the image.
387
388 -pad
389 Add 300 KiB to the end of the produced ISO image. This
390 circumvents possible read errors from ISO images which have been
391 written to CD media in TAO mode. The additional bytes are
392 claimed as part of the ISO image if not --emul-toc is given.
393 Option -pad is the default.
394
395 -no-pad
396 Disable padding of 300 KiB to the end of the produced ISO image.
397 This is safe if the image is not meant to be written on CD or if
398 it gets written to CD as only track in write mode SAO.
399
400 --old-empty
401 Use the old way of of giving block addresses in the range of
402 [0,31] to files with no own data content. The new way is to have
403 a dedicated block to which all such files will point.
404
405 Settings for standards compliance:
406
407 -iso-level number
408 Specify the ISO 9660 version which defines the limitations of
409 file naming and data file size. The naming restrictions do not
410 apply to the Rock Ridge names but only to the low-level ISO 9660
411 names. There are three conformance levels:
412 Level 1 allows ISO names of the form 8.3 and file size up to 4
413 GiB - 1.
414 Level 2 allows ISO names with up to 32 characters and file size
415 up to 4 GiB - 1.
416 Level 3 allows ISO names with up to 32 characters and file size
417 of up to 400 GiB - 200 KiB. (This size limitation is set by the
418 xorriso implementation and not by ISO 9660 which would allow
419 nearly 8 TiB.)
420 Pseudo-level 4 enables production of an additional ISO 9660:1999
421 directory tree.
422
423 -disallow_dir_id_ext
424 Do not follow a bad habit of mkisofs which allows dots in the
425 ISO names of directories. On the other hand, some bootable
426 GNU/Linux images depend on this bad habit.
427
428 -U
429 This option allows ISO file names without dot and up to 37
430 characters, ISO file paths longer than 255 characters, and all
431 ASCII characters in file names. Further it omits the semicolon
432 and the version numbers at the end of ISO names.
433 This all violates ISO 9660 specs.
434
435 -untranslated-filenames
436 Alias of -U.
437
438 -untranslated_name_len number
439 Allow ISO file names up to the given number of characters
440 without any character conversion. The maximum number is 96. If
441 a file name has more characters, then image production will fail
442 deliberately.
443 This violates ISO 9660 specs.
444
445 -allow-lowercase
446 Allow lowercase character in ISO file names.
447 This violates ISO 9660 specs.
448
449 -relaxed-filenames
450 Allow nearly all 7-bit characters in ISO file names. Not
451 allowed are 0x0 and '/'. If not option -allow-lowercase is
452 given, then lowercase letters get converted to uppercase.
453 This violates ISO 9660 specs.
454
455 -d
456 Do not add trailing dot to ISO file names without dot.
457 This violates ISO 9660 specs.
458
459 -omit-period
460 Alias of -d.
461
462 -l
463 Allow up to 31 characters in ISO file names.
464
465 -full-iso9660-filenames
466 Alias of -l.
467
468 -max-iso9660-filenames
469 Allow up to 37 characters in ISO file names.
470 This violates ISO 9660 specs.
471
472 -N
473 Omit the semicolon and the version numbers at the end of ISO
474 names.
475 This violates ISO 9660 specs.
476
477 -omit-version-number
478 Alias of -N.
479
480 Settings for standards extensions:
481
482 -R
483 With mkisofs this option enables Rock Ridge extensions.
484 xorrisofs produces them by default. It is strongly discouraged
485 to disable them by option --norock.
486
487 -rock
488 Alias of -R.
489
490 -r
491 Enable Rock Ridge and set user and group id of all files in the
492 ISO image to 0. Grant r-permissions to all. Deny all
493 w-permissions. If any x-permission is set, grant x-permission
494 to all. Remove s-bit and t-bit.
495 These attribute changes stay delayed until mkisofs emulation
496 ends. Within the same -as mkisofs emulation command they can be
497 revoked by a subsequent option --norock. For compatibility
498 reasons, option -R does not revoke the changes ordered by -r.
499
500 -rational-rock
501 Alias of -r.
502
503 --norock
504 This option disables the production of Rock Ridge extensions for
505 the ISO 9660 file objects. The multi-session capabilities of
506 xorrisofs depend much on the naming fidelity of Rock Ridge. So
507 it is strongly discouraged to disable it by this option, except
508 for the special use case to revoke the effect of -r by:
509 --norock -R
510
511 --set_all_file_dates timestring
512 Set mtime, atime, and ctime of all files and directories to the
513 given time.
514 Valid timestring formats are: 'Nov 8 14:51:13 CET 2007',
515 110814512007.13, 2007110814511300. See also --modification-date=
516 and man xorriso, Examples of input timestrings.
517 If the timestring is "set_to_mtime", then the atime and ctime of
518 each file and directory get set to the value found in their
519 mtime.
520 These actions stay delayed until actual ISO production begins.
521 Up to then they can be revoked by --set_all_file_dates with
522 empty timestring or timestring "default".
523 The timestamps of the El Torito boot catalog file get refreshed
524 when the ISO is produced. They can be influenced by
525 --modification-date=.
526
527 -file_name_limit number
528 Set the maximum permissible length for file names in the range
529 of 64 to 255. Path components which are longer than the given
530 number will get truncated and have their last 33 bytes
531 overwritten by a colon ':' and the hex representation of the MD5
532 of the first 4095 bytes of the whole oversized name. Potential
533 incomplete UTF-8 characters will get their leading bytes
534 replaced by '_'.
535 Linux kernels up to at least 4.1 misrepresent names of length
536 254 and 255. If you expect such names in or under disk_paths
537 and plan to mount the ISO by such Linux kernels, consider to set
538 -file_name_limit 253.
539
540 -D The standard ECMA-119 demands that no path in the image shall
541 have more than 8 name components or 255 characters. Therefore it
542 would be necessary to move deeper directory trees to a higher
543 directory. Rock Ridge offers an opportunity to let these
544 relocated directories appear at their original deep position,
545 but this feature might not be implemented properly by operating
546 systems which mount the image.
547 Option -D disables this deep directory relocation, and thus
548 violates ISO 9660 specs.
549 xorrisofs has -D set by default. If given explicitly then it
550 overrides the options -rr_reloc_dir and -hide-rr-moved.
551
552 -disable-deep-relocation
553 Alias of -D.
554
555 -rr_reloc_dir name
556 Enable the relocation of deep directories and thus avoid
557 ECMA-119 file paths of more than 8 name components or 255
558 characters. Directories which lead to such file paths will get
559 moved to a directory in the root directory of the image. Its
560 name gets set by this option. It is permissible to use the root
561 directory itself.
562 The overall directory tree will appear originally deep when
563 interpreted as Rock Ridge tree. It will appear as re-arranged if
564 only ECMA-119 information is considered.
565 If the given relocation target directory does not already exist
566 when image production begins, then it will get created and
567 marked for Rock Ridge as relocation artefact. At least on
568 GNU/Linux it will not be displayed in mounted Rock Ridge images.
569 The name must not contain a '/' character after its first
570 character and it must not be longer than 255 bytes.
571 This option has no effect if option -D is present.
572
573 -hide-rr-moved
574 Alias of -rr_reloc_dir "/.rr_moved"
575
576 --for_backup
577 Enable all options which improve backup fidelity:
578 --acl, --xattr-any, --md5, --hardlinks.
579 If you later restore a backup with xattr from non-user
580 namespaces, then make sure that the target operating system and
581 filesystem know what these attributes mean. Possibly you will
582 need administrator privileges to record or restore such
583 attributes. At recording time, xorriso will try to tolerate
584 missing privileges and just record what is readable.
585 Option -xattr after option -for_backup excludes non-user
586 attributes from being recorded.
587
588 --acl
589 Enable recording and loading of ACLs from GNU/Linux or FreeBSD
590 (see man getfacl, man acl). They will not be in effect with
591 mounted ISO images. But xorriso can restore them on the same
592 systems when extracting files from the ISO image.
593
594 --xattr
595 Enable recording and loading of GNU/Linux or FreeBSD extended
596 attributes in user namespace (see man getfattr and man attr, man
597 getextattr and man 9 extattr, respectively). They will not be
598 in effect with mounted ISO images. But xorriso can restore them
599 on the same systems when extracting files from the ISO image.
600
601 --xattr-any
602 Enable recording and loading of GNU/Linux or FreeBSD extended
603 attributes in all namespaces. This might need administrator
604 privileges, even if the owner of the disk file tries to read the
605 attributes.
606
607 --md5
608 Enable recording of MD5 checksums for the overall ISO image and
609 for each single data file in the image. xorriso can check the
610 content of an ISO image with these sums and raise alert on
611 mismatch. See man xorriso, options -check_media, check_md5_r.
612 xorriso can print recorded MD5 checksums. E.g. by:
613 -find / -exec get_md5
614
615 --hardlinks
616 Enable loading and recording of hardlink relations. Search for
617 families of iso_rr files which stem from the same disk file,
618 have identical content filtering and have identical properties.
619 The members of each family get the same inode number in the ISO
620 image.
621 Whether these numbers are respected at mount time depends on the
622 operating system. xorriso can create hardlink families when
623 extracting files from the ISO image.
624
625 --scdbackup_tag disk_path record_name
626 Append a scdbackup checksum record to the image. This works only
627 if the parameter next_writeable_address of option -C is 0 and
628 --md5 is enabled. If disk_path is not an empty string, then
629 append a scdbackup checksum record to the end of this file.
630 record_name is a word that gets part of tag and record.
631 Program scdbackup_verify will recognize and verify tag and file
632 record.
633 An empty record_name disables this feature.
634
635 -J
636 Enable the production of an additional Joliet directory tree
637 along with the ISO 9660 Rock Ridge tree.
638
639 -joliet
640 Alias of -J.
641
642 -joliet-long
643 Allow 103 characters in Joliet file names rather than 64 as is
644 prescribed by the specification. Allow Joliet paths longer than
645 the prescribed limit of 240 characters.
646 Oversized names get truncated. Without this option, oversized
647 paths get excluded from the Joliet tree.
648
649 -joliet-utf16
650 Encode Joliet file names in UTF-16BE rather than UCS-2. The
651 difference is with characters which are not present in UCS-2 and
652 get encoded in UTF-16 by 2 words of 16 bit each. Both words
653 then stem from a reserved subset of UCS-2.
654
655 -hfsplus
656 Enable the production of an additional HFS+ filesystem inside
657 the ISO 9660 image and mark it by Apple Partition Map (APM)
658 entries in the System Area, the first 32 KiB of the image.
659 This may collide with options like -G or -isohybrid-mbr which
660 submit user data for inclusion in the same address range. The
661 first 8 bytes of the System Area get overwritten by { 0x45,
662 0x52, 0x08 0x00, 0xeb, 0x02, 0xff, 0xff } which can be executed
663 as x86 machine code without negative effects. So if an MBR gets
664 combined with this feature, then its first 8 bytes should
665 contain no essential commands.
666 The next blocks of 2 KiB in the System Area will be occupied by
667 APM entries. The first one covers the part of the ISO image
668 before the HFS+ filesystem metadata. The second one marks the
669 range from HFS+ metadata to the end of file content data. If
670 more ISO image data follow, then a third partition entry gets
671 produced. Other features of xorriso might cause the need for
672 more APM entries.
673 Be aware that HFS+ is case-insensitive although it can record
674 file names with upper-case and lower-case letters. Therefore,
675 file names from the iso_rr name tree may collide in the HFS+
676 name tree. In this case they get changed by adding underscore
677 characters and counting numbers. In case of very long names, it
678 might be necessary to map them to "MANGLED_...".
679 WARNING:
680 The HFS+ implementation in libisofs has a limit of 125,829,120
681 bytes for the size of the overall directory tree. This suffices
682 for about 300,000 files of normal name length. If the limit gets
683 exceeded, a FAILURE event will be issued and the ISO production
684 will not happen.
685
686 -hfsplus-serial-no
687 Set a string of 16 digits "0" to "9" and letters "a" to "f",
688 which will be used as unique serial number of an emerging HFS+
689 filesystem.
690
691 -hfsplus-block-size number
692 Set the allocation block size to be used when producing HFS+
693 filesystems. Permissible are 512, 2048, or 0. The latter lets
694 the program decide.
695
696 -apm-block-size number
697 Set the block size to be used when describing partitions by an
698 Apple Partition Map. Permissible are 512, 2048, or 0. The latter
699 lets the program decide.
700 Note that size 512 is not compatible with production of GPT, and
701 that size 2048 will not be mountable -t hfsplus at least by
702 older Linux kernels.
703
704 -hfsplus-file-creator-type creator type iso_rr_path
705 Set the HFS+ creator and type attributes of a file in the
706 emerging image. These are two codes of 4 characters each.
707
708 -hfs-bless-by blessing iso_rr_path
709 Issue a HFS+ blessing. They are roles which can be attributed to
710 up to four directories and a data file:
711 "ppc_bootdir", "intel_bootfile", "show_folder", "os9_folder",
712 "osx_folder".
713 They may be abbreviated as "p", "i", "s", "9", and "x".
714 Each such role can be attributed to at most one file object.
715 "intel_bootfile" is the one that would apply to a data file. All
716 others apply to directories. No file object can bear more than
717 one blessing.
718
719 -hfs-bless disk_path
720 Issue HFS+ blessing "ppc_bootdir" to the directory which stems
721 from the directory disk_path in the local filesystem tree.
722 This works only if there is at least one data file underneath
723 the directory. disk_path can become ambiguous if files from
724 different local filesystem sub-trees are put into the same
725 sub-tree of the ISO image. Consider to use -hfs-bless-by "p"
726 for unambiguous addressing via iso_rr_path.
727
728 Settings for file hiding:
729
730 -hide disk_path_pattern
731 Make files invisible in the directory tree of ISO 9660 and Rock
732 Ridge, if their disk_path matches the given shell parser
733 pattern. The data content of such hidden files will be included
734 in the resulting image, even if they do not show up in any
735 directory. But you will need own means to find nameless data in
736 the image.
737 This command does not apply to the boot catalog.
738
739 -hide-list disk_path
740 Perform -hide using each line out of file disk_path as argument
741 disk_path_pattern.
742
743 -hide-joliet disk_path_pattern
744 Like option -hide but making files invisible in the directory
745 tree of Joliet, if their disk_path matches the given shell
746 parser pattern.
747
748 -hide-joliet-list disk_path
749 Perform -hide-joliet using each line out of file disk_path as
750 argument disk_path_pattern.
751
752 -hide-hfsplus disk_path_pattern
753 Like option -hide but making files invisible in the directory
754 tree of HFS+, if their disk_path matches the given shell parser
755 pattern.
756
757 -hide-hfsplus-list disk_path
758 Perform -hide-hfsplus using each line out of file disk_path as
759 argument disk_path_pattern.
760
761 ISO image ID strings:
762
763 The following strings and file addresses get stored in the Primary
764 Volume Descriptor of the ISO9660 image. The file addresses are ISO 9660
765 paths. These files should have iso_rr_paths which consist only of the
766 characters [A-Z0-9_] and exactly one dot which separates at most 8
767 characters from at most 3 characters.
768
769 -V text
770 Set the Volume Id of the ISO image. xorriso accepts any text up
771 to 32 characters, but according to rarely obeyed specs stricter
772 rules apply:
773 Conformant are ASCII characters out of [A-Z0-9_]. Like:
774 "IMAGE_23"
775 Joliet allows 16 UCS-2 characters. Like: "Windows name"
776 Be aware that the volume id might get used automatically as name
777 of the mount point when the medium is inserted into a playful
778 computer system.
779
780 -volid text
781 Alias of -V.
782
783 -volset text
784 Set the Volume Set Id of the ISO image. Permissible are up to
785 128 characters.
786
787 -P text
788 Set the Publisher Id of the ISO image. This may identify the
789 person or organisation who specified what shall be recorded.
790 Permissible are up to 128 characters.
791
792 -publisher text
793 Alias of -P.
794
795 -A text
796 Set the Application Id of the ISO image. This may identify the
797 specification of how the data are recorded. Permissible are up
798 to 128 characters.
799 The special text "@xorriso@" gets converted to the id string of
800 xorriso which is normally written as Preparer Id. It is a wrong
801 tradition to write the program id as Application Id.
802
803 -appid text
804 Alias of -A.
805
806 -sysid text
807 Set the System Id of the ISO image. This may identify the system
808 which can recognize and act upon the content of the System Area
809 in image blocks 0 to 15. Permissible are up to 32 characters.
810
811 -p text
812 Set the Preparer Id of the ISO image. This may identify the
813 person or other entity which controls the preparation of the
814 data which shall be recorded. Normally this should be the id of
815 xorriso and not of the person or program which operates xorriso.
816 Please avoid to change it. Permissible are up to 128
817 characters.
818 The special text "@xorriso@" gets converted to the id string of
819 xorriso which is default at program startup.
820
821 -preparer text
822 Alias of -p.
823
824 -abstract iso_path
825 Set the address of the Abstract File of the ISO image. This
826 should be the ISO 9660 path of a file in the image which
827 contains an abstract statement about the image content.
828 Permissible are up to 37 characters.
829
830 -biblio iso_path
831 Set the address of the Biblio File of the ISO image. This should
832 be the ISO 9660 path of a file in the image which contains
833 bibliographic records. Permissible are up to 37 characters.
834
835 -copyright iso_path
836 Set the address of the Copyright File of the ISO image. This
837 should be the ISO 9660 path of a file in the image which
838 contains a copyright statement. Permissible are up to 37
839 characters.
840
841 --modification-date=YYYYMMDDhhmmsscc
842 Set a timestring that overrides ISO image creation and
843 modification timestamps literally. It must consist of 16
844 decimal digits which form YYYYMMDDhhmmsscc, with YYYY between
845 1970 and 2999. Time zone is GMT. It is supposed to match this
846 GRUB line:
847 search --fs-uuid --set YYYY-MM-DD-hh-mm-ss-cc
848 E.g. 2010040711405800 is 7 Apr 2010 11:40:58 (+0 centiseconds).
849 Among the influenced timestamps are: isohybrid MBR id, El Torito
850 boot catalog file, HFS+ superblock.
851
852 --application_use character|0xXY|disk_path
853 Specify the content of the Application Use field which can take
854 at most 512 bytes.
855 If the parameter of this command is empty, then the field is
856 filled with 512 0-bytes. If it is a single character, then it
857 gets repeated 512 times. If it begins by "0x" followed by two
858 hex digits [0-9a-fA-F], then the digits are read as byte value
859 which gets repeated 512 times.
860 Any other parameter text is used as disk_path to open a data
861 file and to read up to 512 bytes from it. If the file is smaller
862 than 512 bytes, then the remaining bytes in the field get set to
863 binary 0.
864
865 El Torito Bootable ISO images:
866
867 The precondition for a bootable ISO image is to have in the ISO image
868 the files of a boot loader. The boot facilities of computers get
869 directed to such files, which usually execute further program files
870 from the ISO image. xorrisofs can produce several kinds of boot block
871 or boot record, which become part of the ISO image, and get interpreted
872 by the according boot facility.
873
874 An El Torito boot record points the bootstrapping facility to a boot
875 catalog with one or more boot images, which are binary program files
876 stored in the ISO image. The content of the boot image files is not in
877 the scope of El Torito.
878 xorriso composes the boot catalog according to the boot image files
879 given and structured by options -b, -e, -eltorito-alt-boot, and
880 --efi-boot. Often it contains only one entry.
881 Normally the boot images are data files inside the ISO filesystem. By
882 special path "--interval:appended_partition_NNN:all::" it is possible
883 to refer to an appended partition. The number NNN gives the partition
884 number as used with the corresponding option -append_partition. E.g.:
885 -append_partition 2 0xef /tmp/efi.img
886 -e --interval:appended_partition_2:all::
887 El Torito gets interpreted by boot facilities PC-BIOS and EFI. Most
888 bootable GNU/Linux CDs are equipped with ISOLINUX or GRUB boot images
889 for PC-BIOS.
890 xorrisofs supports the example options out of the ISOLINUX wiki, the
891 options used in GRUB script grub-mkrescue, and the example in the
892 FreeBSD AvgLiveCD wiki.
893
894 For CD booting via boot facilities other than PC-BIOS and EFI, and for
895 booting from USB sticks or hard disks, see the next section about the
896 System Area.
897
898 -b iso_rr_path
899 Specify the boot image file which shall be mentioned in the
900 current entry of the El Torito boot catalog. It will be marked
901 as suitable for PC-BIOS.
902 With boot images from ISOLINUX and GRUB this option should be
903 accompanied by options -c , -no-emul-boot , -boot-load-size 4 ,
904 -boot-info-table.
905
906 -eltorito-boot iso_rr_path
907 Alias of -b.
908
909 -eltorito-alt-boot
910 Finalize the current El Torito boot catalog entry and begin a
911 new one. A boot image file and all its necessary options shall
912 be specified before option -eltorito-alt-boot. All further El
913 Torito boot options apply to the new catalog entry. Up to 32
914 catalog entries are possible.
915
916 -e iso_rr_path
917 Specify the boot image file which shall be mentioned in the
918 current entry of the El Torito boot catalog. It will be marked
919 as suitable for EFI.
920 Option -e should be followed by option -no-emul-boot and no
921 other El Torito options before an eventual -eltorito-alt-boot.
922
923 --efi-boot iso_rr_path
924 Perform -eltorito-alt-boot, option -e with the given
925 iso_rr_path, -no-emul-boot, and again -eltorito-alt-boot. This
926 gesture is used for achieving EFI-bootability of the GRUB2
927 rescue CD.
928
929 -eltorito-platform "x86"|"PPC"|"Mac"|"efi"|0xnn|nnn
930 Set the Platform Id number for the next option -b or
931 -eltorito-boot. The number may be chosen by a platform name or
932 by a number between 0 and 255 (0x00 and 0xFF). "x86" = 0 is for
933 PC-BIOS, "PPC" = 1 for some PowerPC systems, "Mac" = 2 for some
934 MacIntosh systems, "efi" = 0xEF for EFI on modern PCs with x86
935 compatible CPUs or others.
936 If the new platform id differs from the previous one,
937 -eltorito-alt-boot gets performed.
938
939 -boot-load-size number|"full"
940 Set the number of 512-byte blocks to be loaded at boot time from
941 the boot image in the current catalog entry.
942 Non-emulating BIOS bootimages usually need a load size of 4.
943 Nevertheless the default setting of mkisofs is to use the full
944 size of the boot image rounded up to a multiple of 4 512-byte
945 blocks. This default may be explicitly enforced by the word
946 "full" instead of a number.
947 EFI boot images usually get set the number of blocks occupied by
948 the boot image file.
949 El Torito cannot represent load sizes higher than 65535.
950
951 -hard-disk-boot
952 Mark the boot image in the current catalog entry as emulated
953 hard disk. (Not suitable for any known boot loader.)
954
955 -no-emul-boot
956 Mark the boot image in the current catalog entry as not
957 emulating floppy or hard disk. (This is to be used with all
958 known boot loaders.)
959 If neither -hard-disk-boot nor -no-emul-boot is given, then the
960 boot image will be marked as emulating a floppy. (Not suitable
961 for any known boot loader.)
962
963 -eltorito-id text|56_hexdigits
964 Define the ID string of the boot catalog section where the boot
965 image will be listed. If the value consists of 56 characters
966 [0-9A-Fa-f] then it is converted into 28 bytes, else the first
967 28 characters become the ID string. The ID string of the first
968 boot image becomes the overall catalog ID. It is limited to 24
969 characters. Other id_strings become section IDs.
970
971 -eltorito-selcrit hexdigits
972 Define the Selection Criteria of the boot image. Up to 20 bytes
973 get read from the given characters [0-9A-Fa-f]. They get
974 attributed to the boot image entry in the catalog.
975
976 -boot-info-table
977 Overwrite bytes 8 to 63 in the current boot image. The
978 information will be supplied by xorriso in the course of image
979 production: Block address of the Primary Volume Descriptor,
980 block address of the boot image file, size of the boot image
981 file.
982
983 --grub2-boot-info
984 Overwrite bytes 2548 to 2555 in the current boot image by the
985 address of that boot image. The address is written as 64 bit
986 little-endian number. It is the 2KB block address of the boot
987 image content, multiplied by 4, and then incremented by 5.
988
989 -c iso_rr_path
990 Set the address of the El Torito boot catalog file within the
991 image. This file address is not significant for the booting
992 PC-BIOS or EFI, but it may later be read by other programs in
993 order to learn about the available boot images.
994
995 -eltorito-catalog iso_rr_path
996 Alias of -c.
997
998 --boot-catalog-hide
999 Prevent the El Torito boot catalog from appearing as file in the
1000 directory trees of the image.
1001
1002 System Area, MBR, GPT, APM, other boot blocks:
1003
1004 The first 16 blocks of an ISO image are the System Area. It is
1005 reserved for system dependent boot software. This may be the boot
1006 facilities and partition tables of various hardware architectures.
1007 A MBR (Master Boot Record) contains boot code and a partition table.
1008 It is read by PC-BIOS when booting from USB stick or hard disk, and by
1009 PowerPC CHRP or PReP when booting. An MBR partition with type 0xee
1010 indicates the presence of GPT.
1011 A GPT (GUID Partition Table) marks partitions in a more modern way. It
1012 is read by EFI when booting from USB stick or hard disk, and may be
1013 used for finding and mounting a HFS+ partition inside the ISO image.
1014 An APM (Apple Partition Map) marks the HFS+ partition. It is read by
1015 Macs for booting and for mounting.
1016 MBR, GPT and APM are combinable. APM occupies the first 8 bytes of MBR
1017 boot code. All three do not hamper El Torito booting from CDROM.
1018 xorrisofs supports further boot facilities: MIPS Big Endian (SGI), MIPS
1019 Little Endian (DEC), SUN SPARC, HP-PA, DEC Alpha. Those are mutually
1020 not combinable and also not combinable with MBR, GPT, or APM.
1021
1022 Several of the following options expect disk paths as input but also
1023 accept description strings for the libisofs interval reader, which is
1024 able to cut out data from disk files or -indev and to zeroize parts of
1025 the content: -G, -generic-boot, --embedded-boot, --grub2-mbr,
1026 -isohybrid-mbr, -efi-boot-part, -prep-boot-part, -B, -sparc-boot,
1027 -append_partition.
1028 The description string consists of the following components, separated
1029 by colon ':'
1030 "--interval:"Flags":"Interval":"Zeroizers":"Source
1031 The component "--interval" states that this is not a plain disk path
1032 but rather a interval reader description string.
1033 The component Flags modifies the further interpretation:
1034 "local_fs" demands to read from a file depicted by the path in Source.
1035 "imported_iso" demands to read from the -indev. This works only if
1036 -outdev is not the same as -indev. The Source component is ignored.
1037 "appended_partition_NNN" with a decimal number NNN works only for
1038 options which announce El Torito boot image paths: -b, -e, --efi-boot.
1039 The number gives the partition number as used with the corresponding
1040 option -append_partition.
1041 The component Interval consists of two byte address numbers separated
1042 by a "-" character. E.g. "0-429" means to read bytes 0 to 429.
1043 The component Zeroizers consists of zero or more comma separated
1044 strings. They define which part of the read data to zeroize. Byte
1045 number 0 means the byte read from the Interval start address. Each
1046 string may be one of:
1047 "zero_mbrpt" demands to zeroize the MBR partition table if bytes 510
1048 and 511 bear the MBR signature 0x55 0xaa.
1049 "zero_gpt" demands to check for a GPT header in bytes 512 to 1023, to
1050 zeroize it and its partition table blocks.
1051 "zero_apm" demands to check for an APM block 0 and to zeroize its
1052 partition table blocks.
1053 Start_byte"-"End_byte demands to zeroize the read-in bytes beginning
1054 with number Start_byte and ending after End_byte.
1055 The component Source is the file path with flag "local_fs", and ignored
1056 with flag "imported_iso".
1057 Byte numbers may be scaled by a suffix out of {k,m,g,t,s,d} meaning
1058 multiplication by {1024, 1024k, 1024m, 1024g, 2048, 512}. A scaled
1059 value end number depicts the last byte of the scaled range.
1060 E.g. "0d-0d" is "0-511".
1061 Examples:
1062 "local_fs:0-32767:zero_mbrpt,zero_gpt,440-443:/tmp/template.iso"
1063 "imported_iso:45056d-47103d::"
1064
1065 -G disk_path
1066 Copy at most 32768 bytes from the given disk file to the very
1067 start of the ISO image.
1068 Other than a El Torito boot image, the file disk_path needs not
1069 to be added to the ISO image. It will not show up as file in the
1070 directory trees.
1071 In multi-session situations, the special disk_path "." prevents
1072 reading of a disk file but nevertheless causes the adjustments
1073 in the existing MBR, which were ordered by other options.
1074
1075 -generic-boot disk_path
1076 Alias of -G.
1077
1078 --embedded-boot disk_path
1079 Alias of -G.
1080
1081 --grub2-mbr disk_path
1082 Install disk_path in the System Area and treat it as modern
1083 GRUB2 MBR. The content start address of the first boot image is
1084 converted to a count of 512 byte blocks, and an offset of 4 is
1085 added. The result is written as 64 bit little-endian number to
1086 byte address 0x1b0.
1087
1088 -isohybrid-mbr disk_path
1089 Install disk_path as ISOLINUX isohybrid MBR which makes the boot
1090 image given by option -b bootable from USB sticks and hard disks
1091 via PC-BIOS. This preparation is normally done by ISOLINUX
1092 program isohybrid on the already produced ISO image.
1093 The disk path should lead to one of the Syslinux files
1094 isohdp[fp]x*.bin . The MBR gets patched according to isohybrid
1095 needs. The first partition describes the range of the ISO image.
1096 Its start is at block 0 by default, but may be set to 64 disk
1097 blocks by option -partition_offset 16.
1098 For the meaning of special disk_path "." see option -G.
1099
1100 -isohybrid-gpt-basdat
1101 Mark the current El Torito boot image (see options -b and -e) in
1102 an actually invalid GPT as partition of type Basic Data. This
1103 works only with -isohybrid-mbr and has the same impact on the
1104 system area as -efi-boot-part. It cannot be combined with
1105 -efi-boot-part or -hfsplus.
1106 The first three boot images which are marked by GPT will also
1107 show up as partition entries in MBR. The MBR partition of type
1108 0xEF is what actually is used by EFI firmware for booting from
1109 USB stick. The MBR partition for PC-BIOS gets type 0x00 rather
1110 than 0x17 in this case. Often the further MBR entries are the
1111 ones which actually get used by EFI.
1112
1113 -isohybrid-gpt-hfsplus
1114 Mark the current El Torito boot image (see options -b and -e) in
1115 GPT as partition of type HFS+. Impact and restrictions are like
1116 with -isohybrid-gpt-basdat.
1117
1118 -isohybrid-apm-hfsplus
1119 Mark the current El Torito boot image (see options -b and -e) in
1120 Apple Partition Map as partition of type HFS+. This works only
1121 with -isohybrid-mbr and has a similar impact on the system area
1122 as -hfsplus. It cannot be combined with -efi-boot-part or
1123 -hfsplus.
1124 The ISOLINUX isohybrid MBR file must begin by a known pattern of
1125 32 bytes of x86 machine code which essentially does nothing. It
1126 will get overwritten by 32 bytes of APM header mock-up.
1127
1128 -part_like_isohybrid
1129 Control whether -isohybrid-gpt-basdat, -isohybrid-gpt-hfsplus,
1130 and -isohybrid-apm-hfsplus apply even if not -isohybrid-mbr is
1131 present. No MBR partition of type 0xee emerges, even if GPT
1132 gets produced. Gaps between GPT and APM partitions will not be
1133 filled by more partitions. Appended partitions get mentioned in
1134 APM if other APM partitions emerge.
1135
1136 -iso_mbr_part_type "default"|number|type_guid
1137 Set the partition type of the MBR or GPT partition which
1138 represents the ISO or at least protects it.
1139 Number may be 0x00 to 0xff. The text "default" re-enables the
1140 default types of the various occasions to create an ISO MBR
1141 partition. This is without effect if no such partition emerges
1142 by other settings or if the partition type is prescribed
1143 mandatorily like 0xee for GPT protective MBR or 0x96 for CHRP.
1144 If instead a type_guid is given by a 32-digit hex string like
1145 a2a0d0ebe5b9334487c068b6b72699c7 or by a structured text like
1146 EBD0A0A2-B9E5-4433-87C0-68B6B72699C7, then it will be used as
1147 partition type if the ISO filesystem appears as partition in
1148 GPT. In MBR, C12A7328-F81F-11D2-BA4B-00A0C93EC93B will be
1149 mapped to 0xef. Any other GUID will be mapped to 0x83.
1150
1151 --protective-msdos-label
1152 Patch the System Area by a simple PC-DOS partition table where
1153 partition 1 claims the range of the ISO image but leaves the
1154 first block unclaimed. This is mutally exclusive to option
1155 -isohybrid-mbr.
1156
1157 --mbr-force-bootable
1158 Enforce an MBR partition with "bootable/active" flag if options
1159 like --protective-msdos-label or --grub2-mbr are given. These
1160 options normally cause the flag to be set if there is an MBR
1161 partition of type other than 0xee or 0xef. If no such partition
1162 exists, then no bootflag is set, unless --mbr-force-bootable
1163 forces creation of a dummy partition of type 0x00 which covers
1164 only the first block of the ISO image.
1165 If no bootable MBR is indicated by other options and a partition
1166 gets created by -append_partition, then --mbr-force-bootable
1167 causes a bootflag like it would do with e.g.
1168 --protective-msdos-label.
1169
1170 -partition_offset 2kb_block_adr
1171 Cause a partition table with a single partition that begins at
1172 the given block address. This is counted in 2048 byte blocks,
1173 not in 512 byte blocks. If the block address is non-zero then it
1174 must be at least 16. Values larger than 16 are hardly of use. A
1175 non-zero partition offset causes two superblocks to be generated
1176 and two sets of directory trees. The image is then mountable
1177 from its absolute start as well as from the partition start.
1178 The offset value of an ISO image gets preserved when a new
1179 session is added to a loaded image. So the value defined here
1180 is only in effect if a new ISO image gets written.
1181
1182 -partition_hd_cyl number
1183 Set the number of heads per cylinder for the MBR partition
1184 table. 0 chooses a default value. Maximum is 255.
1185
1186 -partition_sec_hd number
1187 Set the number of sectors per head for the MBR partition table.
1188 0 chooses a default value. Maximum is 63.
1189 The product partition_sec_hd * partition_hd_cyl * 512 is the
1190 cylinder size. It should be divisible by 2048 in order to make
1191 exact alignment possible. With appended partitions and
1192 -appended_part_as_gpt there is no limit for the number of
1193 cylinders. Else there may be at most 1024 of them. If the
1194 cylinder size is too small to stay below the limit, then
1195 appropriate values of partition_hd_cyl are chosen with
1196 partition_sec_hd 32 or 63. If the image is larger than
1197 8,422,686,720 bytes, then the cylinder size constraints cannot
1198 be fulfilled for MBR. They seem not overly important anyway.
1199 Flat block addresses in partition tables are good for 1 TiB.
1200
1201 -partition_cyl_align mode
1202 Control image size alignment to an integer number of cylinders.
1203 It is prescribed by isohybrid specs and it seems to please
1204 program fdisk. Cylinder size must be divisible by 2048. Images
1205 larger than 8,323,596,288 bytes cannot be aligned in MBR
1206 partition table.
1207 Mode "auto" is default. Alignment by padding happens only if
1208 option -isohybrid-mbr is given.
1209 Mode "on" causes alignment by padding with option
1210 --protective-msdos-label too. Mode "all" is like "on" but also
1211 pads up partitions from -append_partition to an aligned size.
1212 Mode "off" disables alignment unconditionally.
1213
1214 -append_partition partition_number type_code disk_path
1215 Cause a prepared filesystem image to be appended to the ISO
1216 image and to be described by a partition table entry in a boot
1217 block at the start of the emerging ISO image. The partition
1218 entry will bear the size of the submitted file rounded up to the
1219 next multiple of 2048 bytes or to the next multiple of the
1220 cylinder size.
1221 Beware of subsequent multi-session runs. The appended partition
1222 will get overwritten.
1223 partition_number may be 1 to 4. Number 1 will put the whole ISO
1224 image into the unclaimed space before partition 1. So together
1225 with most xorriso MBR or GPT features, number 2 would be the
1226 most natural choice.
1227 The type_code may be "FAT12", "FAT16", "Linux", or a hexadecimal
1228 number between 0x00 and 0xff. Not all those numbers will yield
1229 usable results. For a list of codes search the Internet for
1230 "Partition Types" or run fdisk command "L". If the partition
1231 appears in GPT then type_code 0xef is mapped to the EFI System
1232 Partition Type GUID. All others get mapped to Basic Data Type
1233 GUID.
1234 type_code may also be a type GUID as plain hex string like
1235 a2a0d0ebe5b9334487c068b6b72699c7 or as structured text like
1236 EBD0A0A2-B9E5-4433-87C0-68B6B72699C7. It will be used if the
1237 partition is mentioned in GPT. In MBR,
1238 C12A7328-F81F-11D2-BA4B-00A0C93EC93B will be mapped to 0xef. Any
1239 other GUID will be mapped to 0x83. In APM,
1240 48465300-0000-11AA-AA11-00306543ECAC will be mapped to partition
1241 type "Apple_HFS", any other to "Data".
1242 If some other command causes the production of GPT, then the
1243 appended partitions will be mentioned there too, even if not
1244 -appended_part_as_gpt is given.
1245
1246 -appended_part_as_gpt
1247 Marks partitions from -append_partition in GPT rather than in
1248 MBR. In this case the MBR shows a single partition of type 0xee
1249 which covers the whole output data.
1250 By default, appended partitions get marked in GPT only if GPT is
1251 produced because of other options.
1252
1253 -appended_part_as_apm
1254 Marks partitions from -append_partition in Apple Partition Map,
1255 too.
1256 By default, appended partitions get marked in APM only if APM is
1257 produced because of other options and -part_like_isohybrid is
1258 enabled.
1259
1260 -efi-boot-part disk_path
1261 Copy a file from disk into the emerging ISO image and mark it by
1262 a GPT entry as EFI System Partition. EFI boot firmware is
1263 supposed to use a FAT filesystem image in such a partition for
1264 booting from USB stick or hard disk.
1265 Instead of a disk_path, the word --efi-boot-image may be given.
1266 It exposes in GPT the content of the first El Torito EFI boot
1267 image as EFI system partition. EFI boot images are introduced by
1268 options -e or --efi-boot. The affected EFI boot image cannot
1269 show up in HFS+ because it is stored outside the HFS+ partition.
1270
1271 --gpt_disk_guid value
1272 Control whether an emerging GPT shall get a randomly generated
1273 disk GUID or whether the GUID is supplied by the user. Value
1274 "random" is default. Value "modification-date" produces a low
1275 quality GUID from the value set by option --modification-date=.
1276 A string of 32 hex digits, or a RFC 4122 compliant GUID string
1277 may be used to set the disk GUID directly. UEFI prescribes the
1278 first three components of a RFC 4122 GUID string to be
1279 byte-swapped in the binary representation:
1280 E.g. --gpt_disk_guid 2303cd2a-73c7-424a-a298-25632da7f446 equals
1281 --gpt_disk_guid 2acd0323c7734a42a29825632da7f446
1282 The partition GUIDs get generated by minimally varying the disk
1283 GUID.
1284
1285 -chrp-boot-part
1286 Mark the block range of the whole emerging ISO image as MBR
1287 partition of type 0x96. This is not compatible with any other
1288 feature that produces MBR partition entries. It makes GPT
1289 unrecognizable.
1290 CHRP is often used in conjunction with HFS. It is not yet tested
1291 whether HFS+ filesystems produced with option -hfsplus would
1292 boot on any CHRP capable machine which does not boot pure ISO
1293 9660 as well.
1294
1295 -chrp-boot
1296 Alias of -chrp-boot-part.
1297
1298 -prep-boot-part disk_path
1299 Copy a file from disk into the emerging ISO image and mark it by
1300 a MBR partition entry of type 0x41. PReP boot firmware is
1301 supposed to read the content of the partition as single ELF
1302 executable file. This option is compatible with other MBR
1303 partitions and with GPT.
1304
1305 -mips-boot iso_rr_path
1306 Declare a data file in the image to be a MIPS Big Endian boot
1307 file and cause production of a MIPS Big Endian Volume Header.
1308 This is mutually exclusive with production of other boot blocks
1309 like MBR. It will overwrite the first 512 bytes of any data
1310 provided by -G. Up to 15 boot files can be declared by multiple
1311 -mips-boot options.
1312
1313 -mipsel-boot iso_rr_path
1314 Declare a data file in the image to be the MIPS Little Endian
1315 boot file. This is mutually exclusive with other boot blocks.
1316 It will overwrite the first 512 bytes of any data provided by
1317 -G. Only a single boot file can be declared by -mipsel-boot.
1318
1319 -B disk_path[,disk_path ...]
1320 Cause one or more data files on disk to be written after the end
1321 of the ISO image. A SUN Disk Label will be written into the
1322 first 512 bytes of the ISO image which lists this image as
1323 partition 1 and the given disk_paths as partition 2 up to 8.
1324 The disk files should contain suitable boot images for SUN SPARC
1325 systems.
1326 The pseudo disk_path "..." causes that all empty partition
1327 entries become copies of the last non-empty entry. If no other
1328 disk_path is given before "..." then all partitions describe the
1329 ISO image. In this case, the boot loader code has to be imported
1330 by option -G.
1331
1332 -sparc-boot disk_path[,disk_path ...]
1333 Alias of -B.
1334
1335 -sparc-label text
1336 Set the ASCII label text of a SUN Disk Label.
1337
1338 --grub2-sparc-core iso_rr_path
1339 Cause the content address and size of the given data file in the
1340 image to be written after the SUN Disk Label. Both numbers are
1341 counted in bytes. The address is written as 64 bit big-endian
1342 number to byte 0x228. The size is written as 32 bit big-endian
1343 number to byte 0x230.
1344
1345 -hppa-cmdline text
1346 Set the PALO command line for HP-PA. Up to 1023 characters are
1347 permitted by default. With -hppa-hdrversion 4 the limit is 127.
1348 Note that the first five -hppa options are mandatory, if any of
1349 the -hppa options is given. Only option -hppa-hdrversion is
1350 allowed to be missing.
1351
1352 -hppa-bootloader iso_rr_path
1353 Designate the given path as HP-PA bootloader file.
1354
1355 -hppa-kernel-32 iso_rr_path
1356 Designate the given path as HP-PA 32 bit kernel file.
1357
1358 -hppa-kernel-64 iso_rr_path
1359 Designate the given path as HP-PA 64 bit kernel file.
1360
1361 -hppa-ramdisk iso_rr_path
1362 Designate the given path as HP-PA RAM disk file.
1363
1364 -hppa-hdrversion number
1365 Choose between PALO header version 5 (default) and version 4.
1366 For the appropriate value see in PALO source code:
1367 PALOHDRVERSION.
1368
1369 -alpha-boot iso_rr_path
1370 Declare a data file in the image to be the DEC Alpha SRM
1371 Secondary Bootstrap Loader and cause production of a boot sector
1372 which points to it. This is mutually exclusive with production
1373 of other boot blocks like MBR.
1374
1375 Character sets:
1376
1377 Character sets should not matter as long as only english alphanumeric
1378 characters are used for file names or as long as all writers and
1379 readers of the medium use the same character set. Outside these
1380 constraints it may be necessary to let xorriso convert byte codes.
1381 A conversion from input character set to the output character set is
1382 performed when an ISO image gets written. Vice versa there is a
1383 conversion from output character set to the input character set when an
1384 ISO image gets loaded. The sets can be defined by options
1385 -input-charset and -output-charset, if needed.
1386
1387 -input-charset character_set_name
1388 Set the character set from which to convert disk file names when
1389 inserting them into the ISO image.
1390
1391 -output-charset character_set_name
1392 Set the character set from which to convert names of loaded ISO
1393 images and to which to convert names when writing ISO images.
1394
1395 Jigdo Template Extraction:
1396
1397 From man genisoimage: "Jigdo is a tool to help in the distribution of
1398 large files like CD and DVD images; see http://atterer.net/jigdo/ for
1399 more details. Debian CDs and DVD ISO images are published on the web in
1400 jigdo format to allow end users to download them more efficiently."
1401 If the use of libjte was enabled at compile time of xorriso, then
1402 xorrisofs can produce a .jigdo and a .template file together with a
1403 single-session ISO image. If not, then Jigdo options will cause a
1404 FAILURE event, which normally leads to program abort.
1405 One may determine the ability for Jigdo by:
1406 $ xorrisofs -version 2>&1 | grep '^libjte' && echo YES
1407
1408 The .jigdo file contains checksums and symbolic file addresses. The
1409 .template file contains the compressed ISO image with reference tags
1410 instead of the content bytes of the listed files.
1411 Input for this process are the normal arguments for a xorrisofs session
1412 with no image loaded, and a checksum file which lists those data files
1413 which may be listed in the .jigdo file and externally referenced in the
1414 .template file. Each designated file is represented in the checksum
1415 file by a single text line:
1416 Checksum as hex digits, 2 blanks, size as 12 decimal digits or blanks,
1417 2 blanks, symbolic file address
1418 The kind of checksum is chosen by -jigdo "checksum_algorithm" with
1419 values "md5" (32 hex digits) or "sha256" (64 hex digits). It will also
1420 be used for the file address lines in the .jigdo file.
1421 The default is "md5".
1422 The file address in a checksum file line has to bear the same basename
1423 as the disk_path of the file which it shall match. The directory path
1424 of the file address is decisive for To=From mapping, not for file
1425 recognition. After To=From mapping, the file address gets written into
1426 the .jigdo file. Jigdo restore tools will convert these addresses into
1427 really reachable data source addresses from which they can read.
1428 If the list of jigdo parameters is not empty, then padding will be
1429 counted as part of the ISO image.
1430
1431 -jigdo-checksum-algorithm "md5"|"sha256"
1432 Set the checksum algorithm which shall be used for the data file
1433 entries in the .jigdo file and is expected in the checksum file.
1434 Default is "md5".
1435
1436 -jigdo-jigdo disk_path
1437 Set the disk_path for the .jigdo file with the checksums and
1438 download addresses for filling the holes in .template.
1439
1440 -jigdo-template disk_path
1441 Set the disk_path for the .template file with the holed and
1442 compressed ISO image copy.
1443
1444 -jigdo-min-file-size size
1445 Set the minimum size for a data file to be listed in the .jigdo
1446 file and being a hole in the .template file. size may be a
1447 plain number counting bytes, or a number with appended letter
1448 "k", "m", "g" to count KiB (1024 bytes), MiB (1024 KiB), or GiB
1449 (1024 MiB).
1450
1451 -jigdo-force-checksum disk_path_pattern
1452 adds a regular expression pattern which will get compared with
1453 the absolute disk_path of any data file that was not found in
1454 the checksum file. A match causes a MISHAP event, which
1455 normally does not abort the program run but finally causes a
1456 non-zero exit value of the program.
1457
1458 -jigdo-force-md5 disk_path_pattern
1459 Outdated alias of -jigdo-force-checksum.
1460
1461 -jigdo-exclude disk_path_pattern
1462 Add a regular expression pattern which will get compared with
1463 the absolute disk_path of any data file. A match causes the file
1464 to stay in .template in any case.
1465
1466 -jigdo-map To=From
1467 Add a string pair of the form To=From to the parameter list. If
1468 a data file gets listed in the .jigdo file, then it is referred
1469 by the file address from its line in the checksum file. This
1470 file address gets checked whether it begins with the From
1471 string. If so, then this string will be replaced by the To
1472 string and a ':' character, before it goes into the .jigdo file.
1473 The From string should end by a '/' character.
1474
1475 -checksum-list disk_path
1476 Set the disk_path where to find the checksum file file with
1477 symbolic file addresses and checksums according to
1478 -jigdo-checksum-algorithm.
1479
1480 -md5-list disk_path
1481 Outdated alias of -checksum-list.
1482
1483 -jigdo-template-compress "gzip"|"bzip2"
1484 Choose one of "bzip2" or "gzip" for the compression of the
1485 template file. The jigdo file is put out uncompressed.
1486
1487 -checksum_algorithm_iso list_of_names
1488 Choose one or more of "md5", "sha1", "sha256", "sha512" for the
1489 auxiliary "# Image Hex" checksums in the .jigdo file. The
1490 list_of_names may e.g. look like "md5,sha1,sha512". Value "all"
1491 chooses all available algorithms. Note that MD5 stays always
1492 enabled.
1493
1494 -checksum_algorithm_template list_of_names
1495 Choose the algorithms for the "# Template Hex" checksums in the
1496 .jigdo file. The rules for list_of_names are the same as with
1497 -checksum_algorithm_iso.
1498
1499 Miscellaneous options:
1500
1501 -print-size
1502 Print to stdandard output the foreseeable number of 2048 byte
1503 blocks in the emerging ISO image. Do not produce this image.
1504 The result depends on several settings.
1505 If option --emul-toc is given, then padding (see -pad) is not
1506 counted as part of the image size. In this case either use
1507 -no-pad or add 150 (= 300 KiB) to the resulting number.
1508 If mkisofs emulation ends after option -print-size, then the
1509 properties of the most recently specified boot image file cannot
1510 be edited by subsequent xorriso commands.
1511
1512 --no_rc
1513 Only if used as first argument this option prevents reading and
1514 interpretation of startup files. See section FILES below.
1515
1516 -help
1517 List supported options to stderr. Original mkisofs options bear
1518 their original mkisofs description texts.
1519
1520 -quiet
1521 Suppress most messages of the program run, except those which
1522 indicate problems or errors.
1523
1524 -gui
1525 Increase the frequency of pacifier messages while writing an ISO
1526 image.
1527
1528 -log-file disk_path
1529 Truncate file disk_path to 0 size and redirect to it all
1530 messages which would normally appear on stderr. -log-file with
1531 empty text as disk_path re-enables output to stderr.
1532
1533 -v
1534 Enable the output of informational program messages.
1535
1536 -verbose
1537 Alias of -v.
1538
1539 -version
1540 Print to standard output a text that begins with
1541 "mkisofs 2.01-Emulation Copyright (C)"
1542 and to standard error the version information of xorriso.
1543
1545 Overview of examples:
1546 A simple image production run
1547 Set ISO image paths by -graft-points
1548 Perform multi-session runs
1549 Let xorrisofs work underneath growisofs
1550 Incremental backup of a few directory trees
1551 Incremental backup with accumulated trees
1552 Create bootable images for PC-BIOS and EFI
1553
1554 A simple image production run
1555 A prepared file tree in directory ./for_iso gets copied into the root
1556 directory of the ISO image. File permissions get set to read-only for
1557 everybody. Joliet attributes for Microsoft systems get added. The
1558 resulting image gets written as data file ./image.iso on disk.
1559 $ xorrisofs -r -J -o ./image.iso ./for_iso
1560
1561 Set ISO image paths by -graft-points
1562 Without option -graft-points each given disk file is copied into the
1563 root directory of the ISO image, maintaining its name. If a directory
1564 is given, then its files and sub-directories are copied into the root
1565 directory, maintaining their names.
1566 $ xorrisofs ... /home/me/datafile /tmp/directory
1567 yields in the ISO image root directory:
1568 /datafile
1569 /file_1_from_directory
1570 ...
1571 /file_N_from_directory
1572
1573 With option -graft-points it is possible to put files and directories
1574 to arbitrary paths in the ISO image.
1575 $ xorrisofs ... -graft-points /home/me/datafile /dir=/tmp/directory
1576 yields in the ISO image root directory:
1577 /datafile
1578 /dir
1579 Eventually needed parent directories in the image will be created
1580 automatically:
1581 /datafiles/file1=/home/me/datafile
1582 yields in the ISO image:
1583 /datafiles/file1
1584 The attributes of directory /datafiles get copied from /home/me on
1585 disk.
1586
1587 Normally one should avoid = and \ characters in the ISO part of a
1588 pathspec. But if it must be, one may escape them:
1589 /with_\=_and_\\/file=/tmp/directory/file
1590 yields in the ISO image:
1591 /with_=_and_\/file
1592
1593 Perform multi-session runs
1594 This example works for multi-session media only: CD-R[W], DVD-R[W],
1595 DVD+R, BD-R. Add cdrskin option --grow_overwriteable_iso to all -as
1596 cdrecord runs in order to enable multi-session emulation on
1597 overwritable media.
1598 The first session is written like this:
1599 $ xorrisofs -graft-points \
1600 /tree1=prepared_for_iso/tree1 \
1601 | xorriso -as cdrecord -v dev=/dev/sr0 blank=fast -multi -eject -
1602 Follow-up sessions are written like this (the run of dd is only to give
1603 demons a chance to spoil it):
1604 $ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo)
1605 $ dd if=/dev/sr0 count=1 >/dev/null 2>&1
1606 $ xorrisofs -M /dev/sr0 -C $m -graft-points \
1607 /tree2=prepared_for_iso/tree2 \
1608 | xorriso -as cdrecord -v dev=/dev/sr0 -waiti -multi -eject -
1609 Always eject the drive tray between sessions.
1610 The run of xorriso -as mkisofs will read old sessions via the CD-ROM
1611 driver of /dev/sr0. This driver might not be aware of the changed
1612 content as long as the medium is not loaded again. In this case the
1613 previous session would not be properly assessed by xorriso and the new
1614 session would contain only the newly added files.
1615 Some systems have not enough patience with automatic tray loading and
1616 some demons may interfere with a first CD-ROM driver read attempt from
1617 a freshly loaded medium.
1618 When loading the tray manually, wait 10 seconds after the drive has
1619 stopped blinking.
1620 A safe automatic way seems to be a separate run of xorriso for loading
1621 the tray with proper waiting, and a subsequent run of dd which shall
1622 offer itself to any problems caused by demons assessing the changed
1623 drive status. If this does not help, insert a run of "sleep 10"
1624 between xorriso and dd.
1625
1626 Let xorrisofs work underneath growisofs
1627 growisofs expects an ISO formatter program which understands options -C
1628 and -M. A variable is defined to override the hardcoded default name.
1629 $ export MKISOFS="xorrisofs"
1630 $ growisofs -Z /dev/dvd /some/files
1631 $ growisofs -M /dev/dvd /more/files
1632 If no "xorrisofs" is available on your system, then you will have to
1633 create a link pointing to the xorriso binary and tell growisofs to use
1634 it. E.g. by:
1635 $ ln -s $(which xorriso) "$HOME/xorrisofs"
1636 $ export MKISOFS="$HOME/xorrisofs"
1637 One may quit mkisofs emulation by argument "--" and make use of all
1638 xorriso commands. growisofs dislikes options which start with "-o" but
1639 -outdev must be set to "-". So use "outdev" instead:
1640 $ growisofs -Z /dev/dvd --for_backup -- \
1641 outdev - -update_r /my/files /files
1642 $ growisofs -M /dev/dvd --for_backup -- \
1643 outdev - -update_r /my/files /files
1644 Note that --for_backup is given in the mkisofs emulation. To preserve
1645 the recorded extra data it must already be in effect, when the
1646 emulation loads the image.
1647
1648 Incremental backup of a few directory trees
1649 This changes the directory trees /open_source_project and
1650 /personal_mail in the ISO image so that they become exact copies of
1651 their disk counterparts. ISO file objects get created, deleted or get
1652 their attributes adjusted accordingly.
1653 ACL, xattr, hard links and MD5 checksums will be recorded. It is
1654 expected that inode numbers in the disk filesystem are persistent over
1655 cycles of mounting and booting. Files with names matching *.o or *.swp
1656 get excluded explicitly.
1657
1658 To be used several times on the same medium, whenever an update of the
1659 two disk trees to the medium is desired. Begin with a blank medium and
1660 update it until he run fails gracefully due to lack of remaining space
1661 on the old one.
1662 Always eject the drive tray between sessions. A run of dd shall give
1663 demons a chance to spoil the first read on freshly loaded media.
1664 $ msinfo=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo)
1665 $ dd if=/dev/sr0 count=1 >/dev/null 2>&1
1666 $ load_opts=
1667 $ test -n "$msinfo" && load_opts="-M /dev/sr0 -C $msinfo"
1668 $ xorrisofs $load_opts -o - --for_backup -m '*.o' -m '*.swp' \
1669 -V PROJ_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" -graft-points \
1670 -old-root / \
1671 /projects=/home/thomas/projects \
1672 /personal_mail=/home/thomas/personal_mail \
1673 | xorriso -as cdrecord dev=/dev/sr0 -v -multi -waiti -eject -
1674
1675 This makes sense if the full backup leaves substantial remaining
1676 capacity on media and if the expected changes are much smaller than the
1677 full backup.
1678
1679 Better do not use your youngest backup for -old-root. Have at least
1680 two media which you use alternatingly. So only older backups get
1681 endangered by the new write operation, while the newest backup is
1682 stored safely on a different medium.
1683 Always have a blank medium ready to perform a full backup in case the
1684 update attempt fails due to insufficient remaining capacity. This
1685 failure will not spoil the old medium, of course.
1686
1687 If inode numbers on disk are not persistent, then use option
1688 --old-root-no-ino . In this case an update run will compare recorded
1689 MD5 sums against the current file content on hard disk.
1690
1691 With mount option -o "sbsector=" on GNU/Linux or -s on FreeBSD or
1692 NetBSD it is possible to access the session trees which represent the
1693 older backup versions. With CD media, GNU/Linux mount accepts session
1694 numbers directly by its option "session=".
1695 Multi-session media and most overwritable media written by xorriso can
1696 tell the sbsectors of their sessions by xorriso option -toc:
1697 $ xorriso -dev /dev/sr0 -toc
1698 xorriso can print the matching mount command for a session number:
1699 $ xorriso -mount_cmd /dev/sr0 session 12 /mnt
1700 or for a volume id that matches a search expression:
1701 $ xorriso -mount_cmd /dev/sr0 volid '*2008_12_05*' /mnt
1702 Both yield on standard output something like:
1703 mount -t iso9660 -o nodev,noexec,nosuid,ro,sbsector=1460256
1704 '/dev/sr0' '/mnt'
1705 The superuser may let xorriso execute the mount command directly:
1706 # osirrox -mount /dev/sr0 "volid" '*2008_12_05*' /mnt
1707
1708 Incremental backup with accumulated trees
1709 Solaris does not offer the option to mount older sessions. In order to
1710 keep them accessible, one may map all files to a file tree under a
1711 session directory and accumulate those directories from session to
1712 session. The -root tree is cloned from the -old-root tree before it
1713 gets compared with the appropriate trees on disk.
1714 This demands to know the previously used session directory name.
1715 With the first session:
1716 $ xorrisofs -root /session1 \
1717 -o - --for_backup -m '*.o' -m '*.swp' \
1718 -V PROJ_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" -graft-points \
1719 /projects=/home/thomas/projects \
1720 /personal_mail=/home/thomas/personal_mail \
1721 | xorriso -as cdrecord dev=/dev/sr0 -v blank=as_needed \
1722 -multi -waiti -eject -
1723
1724 With the second session, option -old-root refers to /session1 and the
1725 new -root is /session2.
1726 Always eject the drive tray between sessions. A run of dd shall give
1727 demons a chance to spoil the first read on freshly loaded media.
1728 $ msinfo=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo)
1729 $ dd if=/dev/sr0 count=1 >/dev/null 2>&1
1730 $ load_opts=
1731 $ test -n "$msinfo" && load_opts="-M /dev/sr0 -C $msinfo"
1732 $ xorrisofs $load_opts -root /session2 -old-root /session1 \
1733 -o - --for_backup -m '*.o' -m '*.swp' \
1734 -V PROJ_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" -graft-points \
1735 /projects=/home/thomas/projects \
1736 /personal_mail=/home/thomas/personal_mail \
1737 | xorriso -as cdrecord dev=/dev/sr0 -v -multi -waiti -eject -
1738 With the third session, option -old-root refers to /session2. The new
1739 -root is /session3. And so on.
1740
1741 Create bootable images for PC-BIOS and EFI
1742 The SYSLINUX/ISOLINUX boot loader suite is popular for booting PC-BIOS.
1743 The ISOLINUX wiki prescribes to create on disk a directory ./CD_root
1744 and to copy all desired files underneath that directory. Especially
1745 file isolinux.bin shall be copied to ./CD_root/isolinux/isolinux.bin .
1746 This is the boot image file.
1747 The prescribed mkisofs options can be used unchanged with xorrisofs:
1748 $ xorrisofs -o output.iso \
1749 -b isolinux/isolinux.bin -c isolinux/boot.cat \
1750 -no-emul-boot -boot-load-size 4 -boot-info-table \
1751 ./CD_root
1752 Put it on CD by a burn program. E.g.:
1753 $ xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed output.iso
1754
1755 The image from above example will boot from CD, DVD or BD, but not from
1756 USB stick or other hard-disk-like devices. This can be done by help of
1757 an isohybrid MBR. Syslinux provides matching template files as
1758 isohdp[fp]x*.bin . E.g. /usr/lib/syslinux/isohdpfx.bin .
1759 If a few hundred KB of size do not matter, then option
1760 -partition_offset can be used to create a partition table where
1761 partition 1 starts not at block 0. This facilitates later manipulations
1762 of the USB stick by tools for partitioning and formatting.
1763 The image from the following example will be prepared for booting via
1764 MBR and its first partition will start at hard disk block 64.
1765 It will also boot from optical media.
1766 $ xorrisofs -o output.iso \
1767 -b isolinux/isolinux.bin -c isolinux/boot.cat \
1768 -no-emul-boot -boot-load-size 4 -boot-info-table \
1769 -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin \
1770 -partition_offset 16 \
1771 ./CD_root
1772 Become superuser and copy the image to the unpartitioned base device
1773 file of the USB stick. On GNU/Linux this is e.g. /dev/sdb, not
1774 /dev/sdb1.
1775 CAUTION: This will overwrite any partitioning on the USB stick and make
1776 remaining data unaccessible.
1777 So first make sure you got the correct address of the intended device.
1778 E.g. by reading 100 MiB data from it and watching it blinking:
1779 # dd bs=2K if=/dev/sdb count=50K >/dev/null
1780 Now copy the image onto it
1781 # dd bs=2K if=output.iso of=/dev/sdb
1782
1783 Now for EFI:
1784 The boot image file has to be the image of an EFI System Partition,
1785 i.e. a FAT filesystem with directory /EFI/BOOT and boot files with EFI
1786 prescribed names: BOOTIA32.EFI for 32 bit x86, BOOTx64.EFI for 64 bit
1787 AMD/x86 (in UEFI-2.4 there is indeed a lower case "x"), BOOTAA64.EFI
1788 for 64 bit ARM. The software in the FAT filesystem should be able to
1789 find and inspect the ISO filesystem for boot loader configuration and
1790 start of operating system. GRUB2 program grub-mkimage can produce such
1791 a FAT filesystem with suitable content, which then uses further GRUB2
1792 software from the ISO filesystem.
1793 EFI boot equipment may be combined with above ISOLINUX isohybrid for
1794 PC-BIOS in a not really UEFI-2.4 compliant way, which obviously works
1795 well. It yields MBR and GPT partition tables, both with nested
1796 partitions. Assumed the EFI System Partition image is ready as
1797 ./CD_root/boot/grub/efi.img, add the following options before the
1798 directory address ./CD_root:
1799 -eltorito-alt-boot -e 'boot/grub/efi.img' -no-emul-boot \
1800 -isohybrid-gpt-basdat \
1801 More compliant with UEFI-2.4 is to decide for either MBR or GPT and to
1802 append a copy of the EFI System Partition in order to avoid overlap of
1803 ISO partition and EFI partition. Here for MBR:
1804 -eltorito-alt-boot -e 'boot/grub/efi.img' -no-emul-boot \
1805 -append_partition 2 0xef ./CD_root/boot/grub/efi.img \
1806 The resulting ISOs are supposed to boot from optical media and USB
1807 stick. One may omit option -eltorito-alt-boot if no option -b is used
1808 to make the ISO bootable via PC-BIOS.
1809
1810 For ISOs with pure GRUB2 boot equipment consider to use GRUB2 tool
1811 grub-mkrescue as frontend to xorrisofs.
1812
1813 If you have a bootable ISO filesystem and want to know its equipment
1814 plus a proposal how to reproduce it, try:
1815 $ xorriso -hfsplus on -indev IMAGE.iso \
1816 -report_el_torito plain -report_system_area plain \
1817 -print "" -print "======= Proposal for xorrisofs options:" \
1818 -report_el_torito as_mkisofs
1819
1821 Startup files:
1822 If not --no_rc is given as the first argument then xorrisofs attempts
1823 on startup to read and execute lines from the following files:
1824 /etc/default/xorriso
1825 /etc/opt/xorriso/rc
1826 /etc/xorriso/xorriso.conf
1827 $HOME/.xorrisorc
1828 The files are read in the sequence given here, but none of them is
1829 required to exist. The lines are not interpreted as xorrisofs options
1830 but as generic xorriso commands. See man xorriso.
1831
1832 After the xorriso startup files, the program tries one by one to open
1833 for reading:
1834 ./.mkisofsrc
1835 $MKISOFSRC
1836 $HOME/.mkisofsrc
1837 $(dirname $0)/.mkisofsrc
1838 On success it interprets the file content and does not try further
1839 files. The last address is used only if start argument 0 has a
1840 non-trivial dirname.
1841 The reader currently interprets the following NAME=VALUE pairs:
1842 APPI default for -A
1843 PUBL default for -publisher
1844 SYSI default for -sysid
1845 VOLI default for -V
1846 VOLS default for -volset
1847 Any other lines will be silently ignored.
1848
1850 The following environment variables influence the program behavior:
1851 HOME is used to find xorriso and mkisofs startup files.
1852 MKISOFSRC may be used to point the program to a mkisofs startup file.
1853 SOURCE_DATE_EPOCH belongs to the specs of reproducible-builds.org. It
1854 is supposed to be either undefined or to contain a decimal number which
1855 tells the seconds since january 1st 1970. If it contains a number, then
1856 it is used as time value to set the default of --modification-date=.
1857 --gpt_disk_guid defaults to "modification-date". The default of
1858 --set_all_file_dates is then "set_to_mtime". Further the "now" time
1859 for ISO nodes without disk source is then set to the SOURCE_DATE_EPOCH
1860 value.
1861 Startup files and program options can override the effect of
1862 SOURCE_DATE_EPOCH.
1863
1864
1866 For generic xorriso command mode
1867 xorriso(1)
1868
1869 For the cdrecord emulation of xorriso
1870 xorrecord(1)
1871
1872 For mounting xorriso generated ISO 9660 images (-t iso9660)
1873 mount(8)
1874
1875 Other programs which produce ISO 9660 images
1876 mkisofs(8), genisoimage(8)
1877
1878 Programs which burn sessions to optical media
1879 growisofs(1), cdrecord(1), wodim(1), cdrskin(1), xorriso(1)
1880
1881 ACL and xattr
1882 getfacl(1), setfacl(1), getfattr(1), setfattr(1)
1883
1884 MD5 checksums
1885 md5sum(1)
1886
1887 On FreeBSD the commands for xattr and MD5 differ
1888 getextattr(8), setextattr(8), md5(1)
1889
1891 To report bugs, request help, or suggest enhancements for xorriso,
1892 please send electronic mail to the public list <bug-xorriso@gnu.org>.
1893 If more privacy is desired, mail to <scdbackup@gmx.net>.
1894 Please describe what you expect xorriso to do, the program arguments or
1895 dialog commands by which you tried to achieve it, the messages of
1896 xorriso, and the undesirable outcome of your program run.
1897 Expect to get asked more questions before solutions can be proposed.
1898
1900 Thomas Schmitt <scdbackup@gmx.net>
1901 for libburnia-project.org
1902
1904 Copyright (c) 2011 - 2021 Thomas Schmitt
1905 Permission is granted to distribute this text freely. It shall only be
1906 modified in sync with the technical properties of xorriso. If you make
1907 use of the license to derive modified versions of xorriso then you are
1908 entitled to modify this text under that same license.
1909
1911 xorrisofs is in part based on work by Vreixo Formoso who provides
1912 libisofs together with Mario Danic who also leads the libburnia team.
1913 Vladimir Serbinenko contributed the HFS+ filesystem code and related
1914 knowledge.
1915 Compliments towards Joerg Schilling whose cdrtools served me for ten
1916 years.
1917
1918
1919
1920 Version 1.5.4, Jan 30, 2021 XORRISOFS(1)