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