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