summaryrefslogtreecommitdiff
path: root/genisoimage/genisoimage.1
diff options
context:
space:
mode:
Diffstat (limited to 'genisoimage/genisoimage.1')
-rw-r--r--genisoimage/genisoimage.12823
1 files changed, 2823 insertions, 0 deletions
diff --git a/genisoimage/genisoimage.1 b/genisoimage/genisoimage.1
new file mode 100644
index 0000000..d05b24a
--- /dev/null
+++ b/genisoimage/genisoimage.1
@@ -0,0 +1,2823 @@
+'\" t
+.\" genisoimage.1 -*- nroff -*- To render, first run through tbl
+.\" Copyright 1993-1998 by Yggdrasil Computing
+.\" Copyright 1996-1997 by Robert Leslie
+.\" Copyright 1997-2001 by James Pearson
+.\" Copyright 1999-2006 by Joerg Schilling
+.\" Copyright 2002-2003 by Jungshik Shin
+.\" Copyright 2003 by Jaakko Heinonen
+.\" Copyright 2006 by the Cdrkit maintainers
+.\"
+.TH GENISOIMAGE 1 "13 Dec 2006"
+.\" ----------------------------------------
+.SH NAME
+genisoimage \- create ISO9660/Joliet/HFS filesystem with optional Rock Ridge attributes
+.\" ----------------------------------------
+.SH SYNOPSIS
+.B genisoimage
+.RI [ options ]
+.RB [ \-o
+.IR filename ]
+.IR pathspec " [" "pathspec ..." ]
+.\" ----------------------------------------
+.SH DESCRIPTION
+.B genisoimage
+is a pre-mastering program to generate ISO9660/Joliet/HFS hybrid
+filesystems.
+.PP
+.B genisoimage
+is capable of generating the
+.B System Use Sharing Protocol records (SUSP)
+specified by the
+.BR "Rock Ridge Interchange Protocol" .
+This is used to further describe the
+files in the ISO9660 filesystem to a Unix host, and provides information such
+as long filenames, UID/GID, POSIX permissions, symbolic links, and
+block and character device files.
+.PP
+If Joliet or HFS hybrid command line options are specified,
+.B genisoimage
+will create the additional filesystem metadata needed for Joliet or HFS.
+Otherwise
+.B genisoimage
+will generate a pure ISO9660 filesystem.
+.PP
+.B genisoimage
+can generate a
+.I true
+(or
+.IR shared )
+HFS hybrid filesystem. The same files are seen as HFS files when
+accessed from a Macintosh and as ISO9660 files when accessed from other
+machines. HFS stands for
+.I Hierarchical File System
+and is the native filesystem used on Macintosh computers.
+.PP
+As an alternative,
+.B genisoimage
+can generate the
+.I Apple Extensions to ISO9660
+for each file. These extensions provide each file with CREATOR, TYPE and
+certain Finder flags when accessed from a Macintosh. See the
+.B HFS MACINTOSH FILE FORMATS
+section below.
+.PP
+.B genisoimage
+takes a snapshot of a given directory tree, and generates a
+binary image which will correspond to an ISO9660 and/or HFS filesystem when
+written to a block device.
+.PP
+Each file written to the ISO9660 filesystem must have a filename in the 8.3
+format (up to 8 characters, period, up to 3 characters, all uppercase), even
+if Rock Ridge is in use. This filename is used on systems that are not able
+to make use of the Rock Ridge extensions (such as MS-DOS), and each filename
+in each directory must be different from the other filenames in the same
+directory.
+.B genisoimage
+generally tries to form correct names by forcing the Unix filename to
+uppercase and truncating as required, but often this yields unsatisfactory
+results when the truncated names are not all unique.
+.B genisoimage
+assigns weightings to each filename, and if two names that are otherwise the
+same are found, the name with the lower priority is renamed to include a
+3-digit number (guaranteed to be unique). For example, the two files
+.I foo.bar
+and
+.I foo.bar.~1~
+could be rendered as
+.I FOO.BAR;1
+and
+.IR FOO000.BAR;1 .
+.PP
+When used with various HFS options,
+.B genisoimage
+will attempt to recognise files stored in a number of Apple/Unix file formats
+and will copy the data and resource forks as well as any
+relevant Finder information. See the
+.B HFS MACINTOSH FILE FORMATS
+section below for more about formats
+.B genisoimage
+supports.
+.PP
+Note that
+.B genisoimage
+is not designed to communicate with the writer directly. Most writers
+have proprietary command sets which vary from one manufacturer to
+another, and you need a specialized tool to actually burn the disc.
+.B wodim
+is one such tool. The latest version of
+.B wodim
+is available from
+.IR http://www.cdrkit.org/ .
+.PP
+.B pathspec
+is the path of the directory tree to be copied into the ISO9660 filesystem.
+Multiple paths can be specified, and
+.B genisoimage
+will merge the files found in all of the specified path components to
+form the filesystem image.
+.PP
+If the option
+.B \-graft\-points
+has been specified, it is possible to graft the paths at points other
+than the root directory, and it is possible to graft files or
+directories onto the cdrom image with names different than what they
+have in the source filesystem. This is easiest to illustrate with a
+couple of examples. Let's start by assuming that a local file
+.I ../old.lis
+exists, and you wish to include it in the cdrom image.
+.IP
+foo/bar/=../old.lis
+.PP
+will include
+.I old.lis
+in the cdrom image at
+.IR /foo/bar/old.lis ,
+while
+.IP
+foo/bar/xxx=../old.lis
+.PP
+will include
+.I old.lis
+in the cdrom image at
+.IR /foo/bar/xxx .
+The same sort of syntax can be used with directories as well.
+.B genisoimage
+will create any directories required such that the graft
+points exist on the cdrom image \(em the directories do not need to
+appear in one of the paths. By default, any directories that are created on
+the fly like this will have permissions 0555 and appear to be owned by the
+person running
+.BR genisoimage .
+If you wish other permissions or owners of
+the intermediate directories, see
+.BR \-uid ", " \-gid ", " \-dir\-mode ", " \-file\-mode " and " \-new\-dir\-mode .
+.PP
+.B genisoimage
+will also run on Windows machines when compiled with Cygnus' cygwin
+(available from
+.IR http://www.cygwin.com/ ).
+Therefore most references in this man page to
+.I Unix
+can be replaced with
+.IR Win32 .
+.\" ----------------------------------------
+.SH OPTIONS
+.PP
+Several options can be specified as defaults in a
+.I .genisoimagerc
+configuration file, as well as on the command line. If a parameter is
+specified in both places, the setting from the command line is used.
+For details on the format and possible locations of this file, see
+.BR genisoimagerc (5).
+.TP
+.BI \-abstract " file"
+Specifies the abstract filename. There is space for 37 characters.
+Equivalent to
+.B ABST
+in the
+.I .genisoimagerc
+file.
+.TP
+.BI \-A " application_id"
+Specifies a text string that will be written into the volume header.
+This should describe the application that will be on the disc. There
+is space for 128 characters. Equivalent to
+.B APPI
+in the
+.I .genisoimagerc
+file.
+.TP
+.B \-allow\-limited\-size
+When processing files larger than 2GiB which cannot be easily represented in
+ISO9660, add them with a shrunk visible file size to ISO9660 and with the
+correct visible file size to the UDF system. The result is an inconsistent
+filesystem and users need to make sure that they really use UDF rather than
+ISO9660 driver to read a such disk. Implies enabling
+.BR \-udf.
+.TP
+.B \-allow\-leading\-dots
+.TP
+.B \-ldots
+Allow ISO9660 filenames to begin with a period. Usually, a leading dot is
+replaced with an underscore in order to maintain MS-DOS compatibility.
+.br
+This violates the ISO9660 standard, but it happens to work on many systems.
+Use with caution.
+.TP
+.B \-allow\-lowercase
+This options allows lowercase characters to appear in ISO9660 filenames.
+.br
+This violates the ISO9660 standard, but it happens to work on some systems.
+Use with caution.
+.TP
+.B \-allow\-multidot
+This options allows more than one dot to appear in ISO9660 filenames.
+A leading dot is not affected by this option, it
+may be allowed separately using
+.BR \-allow\-leading\-dots .
+.br
+This violates the ISO9660 standard, but it happens to work on many systems.
+Use with caution.
+.TP
+.BI \-biblio " file"
+Specifies the bibliographic filename. There is space for 37 characters.
+Equivalent to
+.B BIBL
+in the
+.I .genisoimagerc
+file.
+.TP
+.B \-cache\-inodes
+.TP
+.B \-no\-cache\-inodes
+Enable or disable caching inode and device numbers to find hard links
+to files. If
+.B genisoimage
+finds a hard link (a file with multiple names), the file will also be
+hard-linked on the CD, so the file contents only appear once. This
+helps to save space.
+.B \-cache\-inodes
+is default on Unix-like operating systems, but
+.B \-no\-cache\-inodes
+is default on some other systems such as Cygwin, because it is not safe
+to assume that inode numbers are unique on those systems. (Some
+versions of Cygwin create fake inode numbers using a weak hashing
+algorithm, which may produce duplicates.) If two files have the same
+inode number but are not hard links to the same file,
+.B genisoimage \-cache\-inodes
+will not behave correctly.
+.B \-no\-cache\-inodes
+is safe in all situations, but in that case
+.B genisoimage
+cannot detect hard links, so the resulting CD image may be larger
+than necessary.
+.TP
+.BI \-alpha\-boot " alpha_boot_image"
+Specifies the path and filename of the boot image to be used when
+making an Alpha/SRM bootable CD. The pathname must be relative to the
+source path specified to
+.BR genisoimage .
+.TP
+.BI \-hppa\-bootloader " hppa_bootloader_image"
+Specifies the path and filename of the boot image to be used when
+making an HPPA bootable CD. The pathname must be relative to the
+source path specified to
+.BR genisoimage .
+Other options are required, at the very least a kernel filename and
+a boot command line. See the
+.B HPPA NOTES
+section below for more information.
+.TP
+.BI \-hppa\-cmdline " hppa_boot_command_line"
+Specifies the command line to be passed to the HPPA boot loader when
+making a bootable CD. Separate the parameters with spaces or
+commas. More options must be passed to
+.B genisoimage,
+at the very least a kernel filename and the boot loader filename.
+See the
+.B HPPA NOTES
+section below for more information.
+.TP
+.BI \-hppa\-kernel\-32 " hppa_kernel_32"
+.TP
+.BI \-hppa\-kernel\-64 " hppa_kernel_64"
+Specifies the path and filename of the 32-bit and/or 64-bit kernel images
+to be used when making an HPPA bootable CD. The pathnames must be
+relative to the source path specified to
+.BR genisoimage .
+Other options are required, at the very least the boot loader filename
+and the boot command line. See the
+.B HPPA NOTES
+section below for more information.
+.TP
+.BI \-hppa\-ramdisk " hppa_ramdisk_image"
+Specifies the path and filename of the ramdisk image to be used when
+making an HPPA bootable CD. The pathname must be relative to the
+source path specified to
+.BR genisoimage .
+This parameter is optional. Other options are required, at the very
+least a kernel filename and the boot command line. See the
+.B HPPA NOTES
+section below for more information.
+.TP
+.BI \-mips\-boot " mips_boot_image"
+Specifies the path and filename of the boot image to be used when
+making an SGI/big-endian MIPS bootable CD. The pathname must be
+relative to the source path specified to
+.BR genisoimage .
+This option may be specified several times, to store up to 15 boot
+images.
+.TP
+.BI \-mipsel\-boot " mipsel_boot_image"
+Specifies the path and filename of the boot image to be used when
+making an DEC/little-endian MIPS bootable CD. The pathname must be
+relative to the source path specified to
+.BR genisoimage .
+.TP
+.BI \-B " img_sun4,img_sun4c,img_sun4m,img_sun4d,img_sun4e"
+.TP
+.BI \-sparc\-boot " img_sun4,img_sun4c,img_sun4m,img_sun4d,img_sun4e"
+Specifies a comma-separated list of boot images that are needed to make
+a bootable CD for SPARC systems.
+Partition 0 is used for the ISO9660 image, the first image file is mapped
+to partition 1.
+The comma-separated list may have up to 7 fields, including empty fields.
+This option is required to make a bootable CD for Sun SPARC systems.
+If
+.B \-B
+or
+.B \-sparc\-boot
+has been specified, the first sector of the resulting image will
+contain a Sun disk label. This disk label specifies slice 0 for the
+ISO9660 image and slices 1 to 7 for the boot images that
+have been specified with this option. Byte offsets 512 to 8191
+within each of the additional boot images must contain a primary boot
+that works for the appropriate SPARC architecture. The rest of each
+of the images usually contains a UFS filesystem used for the primary
+kernel boot stage.
+.IP
+The implemented boot method is the one found with SunOS 4.x and SunOS 5.x.
+However, it does not depend on SunOS internals but only on properties of
+the Open Boot prom, so it should be usable for any OS for SPARC systems.
+For more information also see the
+.B NOTES
+section below.
+.IP
+If the special filename
+.B ...
+is used, the actual and all following boot partitions are mapped to the
+previous partition. If
+.B genisoimage
+is called with
+.BI \-G " image " \-B " ..."
+all boot partitions are mapped to the partition that contains the ISO9660
+filesystem image and the generic boot image that is located in the first
+16 sectors of the disc is used for all architectures.
+.TP
+.BI \-G " generic_boot_image"
+Specifies the path and filename of the generic boot image to be used when making
+a generic bootable CD. The boot image will be placed on the first 16
+sectors of the CD, before the ISO9660 primary volume descriptor.
+If this option is used together with
+.BR \-sparc\-boot ,
+the Sun disk label will overlay the first 512 bytes of the generic
+boot image.
+.TP
+.BI \-b " eltorito_boot_image"
+Specifies the path and filename of the boot image to be used when making
+an El Torito bootable CD for x86 PCs. The pathname must be relative to
+the source path specified to
+.BR genisoimage .
+This option is required to make an El Torito bootable CD.
+The boot image must be exactly 1200 kB, 1440 kB or 2880 kB, and
+.B genisoimage
+will use this size when creating the output ISO9660 filesystem. The PC
+BIOS will use the image to emulate a floppy disk, so the first 512-byte
+sector should contain PC boot code. This will work, for example, if
+the boot image is a LILO-based boot floppy.
+.IP
+If the boot image is not an image of a floppy, you need to add either
+.BR \-hard\-disk\-boot " or " \-no\-emul\-boot .
+If the system should not boot off the emulated disk, use
+.BR \-no\-boot .
+.IP
+If
+.B \-sort
+has not been specified, the boot images are sorted
+with low priority (+2) to the beginning of the medium.
+If you don't like this, you need to specify a sort weight of 0 for the boot images.
+.TP
+.B \-eltorito\-alt\-boot
+Start with a new set of El Torito boot parameters. Up to 63 El Torito
+boot entries may be stored on a single CD.
+.TP
+.BI \-hard\-disk\-boot
+Specifies that the boot image used to create El Torito bootable CDs is
+a hard disk image. The image must begin with a master boot
+record that contains a single partition.
+.TP
+.BI \-no\-emul\-boot
+Specifies that the boot image used to create El Torito bootable CDs is
+a "no emulation" image. The system will load and execute this image without
+performing any disk emulation.
+.TP
+.BI \-no\-boot
+Specifies that the created El Torito CD should be marked as not bootable. The
+system will provide an emulated drive for the image, but will boot off
+a standard boot device.
+.TP
+.BI \-boot\-load\-seg " segment_address"
+Specifies the load segment address of the boot image for no-emulation
+El Torito CDs.
+.TP
+.BI \-boot\-load\-size " load_sectors"
+Specifies the number of "virtual" (512-byte) sectors to load in
+no-emulation mode. The default is to load the entire boot file. Some
+BIOSes may have problems if this is not a multiple of 4.
+.TP
+.B \-boot\-info\-table
+Specifies that a 56-byte table with information of the CD-ROM layout
+will be patched in at offset 8 in the boot file. If this option is
+given, the boot file is
+.IR "modified in the source filesystem" ,
+so make a copy of this file if it cannot be easily regenerated!
+See the
+.B EL TORITO BOOT INFO TABLE
+section for a description of this table.
+.TP
+.BI \-C " last_sess_start,next_sess_start"
+This option is needed to create a CD Extra or the image of a second
+session or a higher-level session for a multisession disc.
+.B \-C
+takes two numbers separated by a comma. The first is the first sector
+in the last session of the disc that should be appended to.
+The second number is the starting sector number of the new session.
+The correct numbers may be retrieved by calling
+.B wodim \-msinfo ...
+If
+.B \-C
+is used in conjunction with
+.BR \-M ,
+.B genisoimage
+will create a filesystem image that is intended to be a continuation
+of the previous session.
+If
+.B \-C
+is used without
+.BR \-M ,
+.B genisoimage
+will create a filesystem image that is intended to be used for a second
+session on a CD Extra. This is a multisession CD that holds audio data
+in the first session and an ISO9660 filesystem in the second session.
+.TP
+.BI \-c " boot_catalog"
+Specifies the path and filename of the boot catalog, which is required
+for an El Torito bootable CD. The pathname must be relative to the source
+path specified to
+.BR genisoimage .
+This file will be inserted into the output tree and not created
+in the source filesystem, so be
+sure the specified filename does not conflict with an existing file, or
+it will be excluded. Usually a name like
+.I boot.catalog
+is chosen.
+.IP
+If
+.B \-sort
+has not been specified, the boot catalog sorted
+with low priority (+1) to the beginning of the medium.
+If you don't like this, you need to specify a sort weight of 0 for the boot catalog.
+.TP
+.B \-check\-oldnames
+Check all filenames imported from the old session for compliance with
+the ISO9660 file naming rules.
+Without this option, only names longer than 31 characters are checked,
+as these files are a serious violation of the ISO9660 standard.
+.TP
+.BI \-check\-session " file"
+Check all old sessions for compliance with actual
+.B genisoimage
+ISO9660 file naming rules.
+This is a high-level option that combines
+.B \-M
+.I file
+.BR "\-C 0,0 \-check\-oldnames" .
+For the parameter
+.IR file ,
+see the description of
+.BR \-M .
+.TP
+.BI \-copyright " file"
+Specifies copyright information, typically a filename on the disc.
+There is space for 37 characters. Equivalent to
+.B COPY
+in the
+.I .genisoimagerc
+file.
+.TP
+.B \-d
+Do not append a period to files that do not have one.
+.br
+This violates the ISO9660 standard, but it happens to work on many systems.
+Use with caution.
+.TP
+.B \-D
+Do not use deep directory relocation, and instead just pack them in the
+way we see them.
+.br
+If ISO9660:1999 has not been selected,
+this violates the ISO9660 standard, but it happens to work on many systems.
+Use with caution.
+.TP
+.BI \-dir\-mode " mode"
+Overrides the mode of directories used to create the image to
+.IR mode ,
+specified as 4 digits of permission bits as in
+.BR chmod (1).
+This option automatically enables Rock Ridge extensions.
+.TP
+.B \-dvd\-video
+Generate a DVD-Video compliant UDF filesystem. This is done by sorting the
+order of the content of the appropriate files and by adding padding
+between the files if needed.
+Note that the sorting only works if the DVD-Video filenames include uppercase
+characters only.
+.IP
+Note that in order to get a DVD-Video compliant filesystem image, you
+need to prepare a DVD-Video compliant directory tree. This requires a
+directory
+.B VIDEO_TS
+(all caps) in the root directory of the resulting DVD, and usually
+another directory
+.BR AUDIO_TS .
+.B VIDEO_TS
+needs to include all needed files (filenames must be all caps) for a
+compliant DVD-Video filesystem.
+.TP
+.B \-f
+Follow symbolic links when generating the filesystem. When this option is not
+in use, symbolic links will be entered using Rock Ridge if enabled, otherwise
+they will be ignored.
+.TP
+.BI \-file\-mode " mode"
+Overrides the mode of regular files used to create the image to
+.IR mode ,
+specified as 4 digits of permission bits as in
+.BR chmod (1).
+This option automatically enables Rock Ridge extensions.
+.TP
+.BI \-gid " gid"
+Overrides the group ID read from the source files to the value of
+.IR gid .
+Specifying this option automatically enables Rock Ridge extensions.
+.TP
+.B \-gui
+Switch the behaviour for a GUI. This currently makes the output more verbose
+but may have other effects in the future.
+.TP
+.B \-graft\-points
+Allow use of graft points for filenames. If this option is used, all
+filenames are checked for graft points. The filename is divided at the
+first unescaped equal sign. All occurrences of `\(rs' and `=' characters
+must be escaped with `\(rs' if
+.B \-graft\-points
+has been specified.
+.TP
+.BI \-hide " glob"
+Hide any files matching
+.IR glob ,
+a shell wildcard pattern, from being seen in the ISO9660 or Rock Ridge
+directory.
+.I glob
+may match any part of the filename or path. If
+.I glob
+matches a directory, the contents of that directory will be hidden.
+In order to match a directory name, make sure the pathname does not include
+a trailing `/' character.
+All the hidden files will still be written to the output CD image file.
+See also
+.BR \-hide\-joliet ,
+and
+.IR README.hide .
+This option may be used multiple times.
+.TP
+.BI \-hide\-list " file"
+A file containing a list of shell wildcards to be hidden. See
+.BR \-hide .
+.TP
+.BI \-hidden " glob"
+Add the hidden (existence) ISO9660 directory attribute for files and
+directories matching
+.IR glob ,
+a shell wildcard pattern. This attribute will prevent the files from
+being shown by some MS-DOS and Windows commands.
+.I glob
+may match any part of the filename or path.
+In order to match a directory name, make sure the pathname does not include
+a trailing `/' character.
+This option may be used multiple times.
+.TP
+.BI \-hidden\-list " file"
+A file containing a list of shell wildcards to get the hidden
+attribute. See
+.BR \-hidden .
+.TP
+.BI \-hide\-joliet " glob"
+Hide files and directories matching
+.IR glob ,
+a shell wildcard pattern, from being seen in the Joliet directory.
+.I glob
+may match any part of the filename or path. If
+.I glob
+matches a directory, the contents of that directory will be hidden.
+In order to match a directory name, make sure the pathname does not include
+a trailing `/' character.
+All the hidden files will still be written to the output CD image file.
+This option is usually used with
+.BR \-hide .
+See also
+.IR README.hide .
+This option may be used multiple times.
+.TP
+.BI \-hide\-joliet\-list " file"
+A file containing a list of shell wildcards to be hidden from the
+Joliet tree. See
+.BR \-hide\-joliet .
+.TP
+.B \-hide\-joliet\-trans\-tbl
+Hide the
+.I TRANS.TBL
+files from the Joliet tree.
+These files usually don't make sense in the Joliet world as they list
+the real name and the ISO9660 name which may both be different from the
+Joliet name.
+.TP
+.B \-hide\-rr\-moved
+Rename the directory
+.I RR_MOVED
+to
+.I .rr_moved
+in the Rock Ridge tree.
+It seems to be impossible to completely hide the
+.I RR_MOVED
+directory from the Rock Ridge tree.
+This option only makes the visible tree less confusing for
+people who don't know what this directory is for.
+If you need to have no
+.I RR_MOVED
+directory at all, you should use
+.BR \-D .
+Note that if
+.B \-D
+has been specified, the resulting filesystem is not ISO9660
+level-1 compliant and will not be readable on MS-DOS.
+See also the
+.B NOTES
+section.
+.TP
+.BI \-input\-charset " charset"
+Input charset that defines the characters used in local filenames.
+To get a list of valid charset names, call
+.BR "genisoimage \-input\-charset help" .
+To get a 1:1 mapping, you may use
+.B default
+as charset name. The default initial values are
+.I cp437
+on DOS-based systems and
+.I iso8859-1
+on all other systems. See the
+.B CHARACTER SETS
+section below for more details.
+.TP
+.BI \-output\-charset " charset"
+Output charset that defines the characters that will be used in Rock Ridge
+filenames. Defaults to the input charset. See
+.B CHARACTER SETS
+section below for more details.
+.TP
+.BI \-iso\-level " level"
+Set the ISO9660 conformance level. Valid numbers are 1 to 4.
+.IP
+With level 1, files may only consist of one section and filenames are
+restricted to 8.3 characters.
+.IP
+With level 2, files may only consist of one section.
+.IP
+With level 3, no restrictions (other than ISO-9660:1988) do apply.
+.IP
+With all ISO9660 levels from 1 to 3, all filenames are restricted to
+uppercase letters, numbers and underscores (_). Filenames are
+limited to 31 characters, directory nesting is limited to 8
+levels, and pathnames are limited to 255 characters.
+.IP
+Level 4 officially does not exist but
+.B genisoimage
+maps it to ISO-9660:1999, which is ISO9660 version 2.
+.IP
+With level 4, an enhanced volume descriptor with version number
+and file structure version number set to 2 is emitted.
+Directory nesting is not limited to 8 levels,
+there is no need for a file to contain a dot and the dot has no
+special meaning, filenames do not have version numbers,
+.\" (f XXX ??? The character used for filling byte positions which are
+.\" specified to be characters is subject to agreement between the
+.\" originator and the recipient of the volume),
+and filenames can be up to 207 characters long, or 197 characters if
+Rock Ridge is used.
+.IP
+When creating Version 2 images,
+.B genisoimage
+emits an enhanced volume descriptor, similar but not identical to a
+primary volume descriptor. Be careful not to use broken software
+to make ISO9660 images bootable by assuming a second PVD copy and patching
+this putative PVD copy into an El Torito VD.
+.TP
+.B \-J
+Generate Joliet directory records in addition to regular ISO9660
+filenames. This is primarily useful when the discs are to be used on
+Windows machines. Joliet filenames are specified in Unicode and each
+path component can be up to 64 Unicode characters long.
+Note that Joliet is not a standard \(em only Microsoft Windows and Linux
+systems can read Joliet extensions. For greater portability, consider
+using both Joliet and Rock Ridge extensions.
+.TP
+.B \-joliet\-long
+Allow Joliet filenames to be up to 103 Unicode characters, instead of
+64. This breaks the Joliet specification, but appears to work. Use
+with caution.
+.\" The number 103 is derived from: the maximum Directory Record Length
+.\" (254), minus the length of Directory Record (33), minus CD-ROM XA
+.\" System Use Extension Information (14), divided by the UTF-16
+.\" character size (2).
+.TP
+.BI \-jcharset " charset"
+A combination of
+.B \-J \-input\-charset
+.IR charset .
+See the
+.B CHARACTER SETS
+section below for more details.
+.TP
+.B \-l
+Allow full 31-character filenames. Normally the ISO9660 filename will be in an
+8.3 format which is compatible with MS-DOS, even though the ISO9660 standard
+allows filenames of up to 31 characters. If you use this option, the disc may
+be difficult to use on a MS-DOS system, but will work on most other systems.
+Use with caution.
+.TP
+.B \-L
+Outdated option; use
+.B \-allow\-leading\-dots
+instead.
+.TP
+.BI \-jigdo\-jigdo " jigdo_file"
+Produce a
+.B jigdo
+.I .jigdo
+metadata file as well as the filesystem image. See the
+.B JIGDO NOTES
+section below for more information.
+.TP
+.BI \-jigdo\-template " template_file"
+Produce a
+.B jigdo
+.I .template
+file as well as the filesystem image. See the
+.B JIGDO NOTES
+section below for more information.
+.TP
+.BI \-jigdo\-min\-file\-size " size"
+Specify the minimum size for a file to be listed in the
+.I .jigdo
+file. Default (and minimum allowed) is 1KB. See the
+.B JIGDO NOTES
+section below for more information.
+.TP
+.BI \-jigdo\-force\-md5 " path"
+Specify a file pattern where files
+.I must
+be contained in the externally-supplied MD5 list as supplied by
+.BR \-md5\-list .
+See the
+.B JIGDO NOTES
+section below for more information.
+.TP
+.BI \-jigdo\-exclude " path"
+Specify a file pattern where files will not be listed in the
+.I .jigdo
+file. See the
+.B JIGDO NOTES
+section below for more information.
+.TP
+.BI \-jigdo\-map " path"
+Specify a pattern mapping for the jigdo file
+(e.g.
+.IR Debian=/mirror/debian ).
+See the
+.B JIGDO NOTES
+section below for more information.
+.TP
+.BI \-md5\-list " md5_file"
+Specify a file containing the MD5sums, sizes and pathnames of the
+files to be included in the
+.I .jigdo
+file. See the
+.B JIGDO NOTES
+section below for more information.
+.TP
+.BI \-jigdo\-template\-compress " algorithm
+Specify a compression algorithm to use for template date. gzip and
+bzip2 are currently supported, and gzip is the default. See the
+.B JIGDO NOTES
+section below for more information.
+.TP
+.BI \-log\-file " log_file"
+Redirect all error, warning and informational messages to
+.I log_file
+instead of the standard error.
+.TP
+.BI \-m " glob"
+Exclude files matching
+.IR glob ,
+a shell wildcard pattern, from being written to CD-ROM.
+.I glob
+may match either the filename component or the full pathname.
+This option may be used multiple times. For example:
+.sp
+ genisoimage \-o rom \-m \(aq*.o\(aq \-m core \-m foobar
+.sp
+would exclude all files ending in `.o', or called
+.IR core " or " foobar
+from the image. Note that if you had a directory called
+.IR foobar ,
+it too (and of course all its descendants) would be excluded.
+.TP
+.BI \-exclude\-list " file"
+A file containing a list of shell wildcards to be excluded. See
+.BR \-m .
+.TP
+.B \-max\-iso9660\-filenames
+Allow ISO9660 filenames to be up to 37 characters long.
+This option enables
+.B \-N
+as the extra name space is taken from the space reserved for
+file version numbers.
+.br
+This violates the ISO9660 standard, but it happens to work on many systems.
+Although a conforming application needs to provide a buffer space of at
+least 37 characters, discs created with this option may cause a buffer
+overflow in the reading operating system. Use with extreme care.
+.TP
+.BI \-M " path"
+.TP
+.BI \-M " device"
+.TP
+.BI \-dev " device"
+Specifies path to existing ISO9660 image to be merged. The alternate form
+takes a SCSI device specifier that uses the same syntax as the
+.B dev=
+parameter of
+.BR wodim .
+The output of
+.B genisoimage
+will be a new session which should get written to the end of the
+image specified in
+.BR \-M .
+Typically this requires multisession capability for the CD recorder
+used to write the image. This option may only be used in conjunction
+with
+.BR \-C .
+.TP
+.B \-N
+Omit version numbers from ISO9660 filenames.
+.br
+This violates the ISO9660 standard, but no one really uses the
+version numbers anyway. Use with caution.
+.TP
+.BI \-new\-dir\-mode " mode"
+Specify the mode, a 4-digit number as used in
+.BR chmod (1),
+to use when creating new directories in the filesystem image. The
+default is 0555.
+.TP
+.B \-nobak
+.TP
+.B \-no\-bak
+Exclude backup files files on the ISO9660 filesystem; that is,
+filenames that contain the characters `~' or `#' or end in
+.IR .bak .
+These are typically backup files for Unix text editors.
+.TP
+.B \-force\-rr
+Do not use the automatic Rock Ridge attributes recognition for previous sessions.
+This can work around problems with images created by, e.g., NERO Burning ROM.
+.TP
+.B \-no\-rr
+Do not use the Rock Ridge attributes from previous sessions.
+This may help to avoid problems when
+.B genisoimage
+finds illegal Rock Ridge signatures on an old session.
+.TP
+.B \-no\-split\-symlink\-components
+Don't split the symlink components, but begin a new Continuation Area (CE)
+instead. This may waste some space, but the SunOS 4.1.4 cdrom driver
+has a bug in reading split symlink components.
+.IP
+It is questionable whether this option is useful nowadays.
+.TP
+.B \-no\-split\-symlink\-fields
+Don't split the symlink fields, but begin a new Continuation Area (CE)
+instead. This may waste some space, but the SunOS 4.1.4 and
+Solaris 2.5.1 cdrom driver have a bug in reading split symlink fields
+(a `/' can be dropped).
+.IP
+It is questionable whether this option is useful nowadays.
+.TP
+.BI \-o " filename"
+Specify the output file for the the ISO9660 filesystem image.
+This can be a disk file, a tape drive, or it can correspond directly
+to the device name of the optical disc writer. If not specified, stdout is
+used. Note that the output can also be a block device for a regular
+disk partition, in which case the ISO9660 filesystem can be mounted
+normally to verify that it was generated correctly.
+.TP
+.B \-pad
+Pad the end of the whole image by 150 sectors (300 kB). This option is
+enabled by default. If used in combination with
+.BR \-B ,
+padding is inserted between the ISO9660 partition and the boot
+partitions, such that the first boot partition starts
+on a sector number that is a multiple of 16.
+.IP
+The padding is needed as many operating systems (e.g. Linux)
+implement read-ahead bugs in their filesystem I/O. These bugs result in read
+errors on files that are located near the end of a track, particularly
+if the disc is written in Track At Once mode, or where a CD audio track
+follows the data track.
+.\" XXX: Someone should check to see if the Linux readahead bug is
+.\" XXX: still present, and update this comment accordingly.
+.TP
+.B \-no\-pad
+Do not pad the end by 150 sectors (300 kB) and do not make the the boot partitions
+start on a multiple of 16 sectors.
+.TP
+.BI \-path\-list " file"
+A file containing a list of
+.I pathspec
+directories and filenames to be added to the ISO9660 filesystem. This list
+of pathspecs are processed after any that appear on the command line. If the
+argument is
+.IR \- ,
+the list is read from the standard input.
+.TP
+.B \-P
+Outdated option; use
+.B \-publisher
+instead.
+.TP
+.BI \-publisher " publisher_id"
+Specifies a text string that will be written into the volume header.
+This should describe the publisher of the CD-ROM, usually with a
+mailing address and phone number. There is space for 128 characters.
+Equivalent to
+.B PUBL
+in the
+.I .genisoimagerc
+file.
+.TP
+.BI \-p " preparer_id"
+Specifies a text string that will be written into the volume header.
+This should describe the preparer of the CD-ROM, usually with a mailing
+address and phone number. There is space for 128 characters.
+Equivalent to
+.B PREP
+in the
+.I .genisoimagerc
+file.
+.TP
+.B \-print\-size
+Print estimated filesystem size in multiples of the sector size (2048 bytes)
+and exit. This option is needed for
+Disk At Once mode and with some CD-R drives when piping directly into
+.BR wodim ,
+cases where
+.B wodim
+needs to know the size of the filesystem image in advance.
+Old versions of
+.B mkisofs
+wrote this information (among other information) to
+.IR stderr .
+As this turns out to be hard to parse, the number without any other information
+is now printed on
+.I stdout
+too.
+If you like to write a simple shell script, redirect
+.I stderr
+and catch the number from
+.IR stdout .
+This may be done with:
+.sp
+ cdblocks=\` genisoimage \-print\-size \-quiet .\|.\|. \`
+.br
+ genisoimage .\|.\|. | wodim .\|.\|. tsize=${cdblocks}s \-
+.TP
+.B \-quiet
+This makes
+.B genisoimage
+even less verbose. No progress output will be provided.
+.TP
+.B \-R
+Generate SUSP and RR records using the Rock Ridge protocol to further describe
+the files on the ISO9660 filesystem.
+.TP
+.B \-r
+This is like the \-R option, but file ownership and modes are set to
+more useful values. The uid and gid are set to zero, because they are
+usually only useful on the author's system, and not useful to the
+client. All the file read bits are set true, so that files and
+directories are globally readable on the client. If any execute bit is
+set for a file, set all of the execute bits, so that executables are
+globally executable on the client. If any search bit is set for a
+directory, set all of the search bits, so that directories are globally
+searchable on the client. All write bits are cleared, because the
+filesystem will be mounted read-only in any case. If any of the special
+mode bits are set, clear them, because file locks are not useful on a
+read-only filesystem, and set-id bits are not desirable for uid 0 or
+gid 0.
+When used on Win32, the execute bit is set on
+.I all
+files. This is a result of the lack of file permissions on Win32 and the
+Cygwin POSIX emulation layer. See also
+.BR \-uid ", " \-gid ,
+.BR \-dir\-mode ", " \-file\-mode
+and
+.BR \-new\-dir\-mode .
+.TP
+.B \-relaxed\-filenames
+Allows ISO9660 filenames to include all 7-bit ASCII characters except
+lowercase letters.
+.br
+This violates the ISO9660 standard, but it happens to work on many systems.
+Use with caution.
+.TP
+.BI \-root " dir"
+Moves all files and directories into
+.I dir
+in the image. This is essentially the
+same as using
+.B \-graft\-points
+and adding
+.I dir
+in front of every pathspec, but is easier to use.
+.I dir
+may actually be several levels deep. It is
+created with the same permissions as other graft points.
+.TP
+.BI \-old-root " dir"
+This option is necessary when writing a multisession
+image and the previous (or even older) session was written with
+.B -root
+.IR dir .
+Using a directory name not found in the previous session
+causes
+.B genisoimage
+to abort with an error.
+Without this option,
+.B genisoimage
+would not be able to find unmodified files and would
+be forced to write their data into the image once more.
+.B \-root
+and
+.B \-old-root
+are meant to be used together to do incremental backups.
+The initial session would e.g. use:
+.B genisoimage \-root backup_1
+.IR dirs .
+The next incremental backup with
+.B genisoimage \-root backup_2 \-old-root backup_1
+.I dirs
+would take another snapshot of these directories. The first
+snapshot would be found in
+.BR backup_1 ,
+the second one in
+.BR backup_2 ,
+but only modified or new files need to be written
+into the second session.
+Without these options, new files would be added and old ones would be
+preserved. But old ones would be overwritten if the file was
+modified. Recovering the files by copying the whole directory back
+from CD would also restore files that were deleted
+intentionally. Accessing several older versions of a file requires
+support by the operating system to choose which sessions are to be
+mounted.
+.TP
+.BI \-sort " sort_file"
+Sort file locations on the media. Sorting is controlled by a file that
+contains pairs of filenames and sorting offset weighting.
+If the weighting is higher, the file will be located closer to the
+beginning of the media, if the weighting is lower, the file will be located
+closer to the end of the media. There must be only one space or tabs
+character between the filename and the
+weight and the weight must be the last characters on a line. The filename
+is taken to include all the characters up to, but not including the last
+space or tab character on a line. This is to allow for space characters to
+be in, or at the end of a filename.
+This option does
+.B not
+sort the order of the filenames that appear
+in the ISO9660 directory. It sorts the order in which the file data is
+written to the CD image, which is useful in order to optimize the
+data layout on a CD. See
+.B README.sort
+for more details.
+.TP
+.BI \-sparc\-boot " img_sun4,img_sun4c,img_sun4m,img_sun4d,img_sun4e"
+See
+.B \-B
+above.
+.TP
+.BI \-sparc\-label " label"
+Set the Sun disk label name for the Sun disk label that is created with
+.BR \-sparc-boot .
+.TP
+.B \-split\-output
+Split the output image into several files of approximately 1 GB each.
+This helps to create DVD-sized ISO9660 images on operating systems without
+large file support.
+.B wodim
+will concatenate more than one file into a single track if writing to a DVD.
+To make
+.B \-split\-output
+work,
+.BI \-o " filename"
+must be specified. The resulting output images will be named:
+.IR filename_00 ", " filename_01 ", " filename_02 ....
+.TP
+.BI \-stream\-media\-size " #"
+Select streaming operation and set the media size to # sectors.
+This allows you to pipe the output of the
+.BR tar (1)
+program into
+.B genisoimage
+and to create an ISO9660 filesystem without the need of an intermediate
+tar archive file.
+If this option has been specified,
+.B genisoimage
+reads from
+.I stdin
+and creates a file with the name
+.IR STREAM.IMG .
+The maximum size of the file (with padding) is 200 sectors less than the
+specified media size. If
+.B \-no\-pad
+has been specified, the file size is 50 sectors less than the specified media size.
+If the file is smaller,
+.B genisoimage
+will write padding. This may take awhile.
+.IP
+The option
+.B \-stream\-media\-size
+creates simple ISO9660 filesystems only and may not used together with multisession
+or hybrid filesystem options.
+.TP
+.BI \-stream\-file\-name " name"
+Reserved for future use.
+.TP
+.BI \-sunx86\-boot " UFS_img,,,AUX1_img"
+Specifies a comma-separated list of filesystem images that are needed to make
+a bootable CD for Solaris x86 systems.
+.IP
+Note that partition 1 is used for the ISO9660 image and that partition 2 is
+the whole disk, so partition 1 and 2 may not be used by external partition data.
+The first image file is mapped to partition 0.
+There may be empty fields in the comma-separated list,
+and list entries for partition 1 and 2 must be empty.
+The maximum number of supported partitions is 8 (although the Solaris x86
+partition table could support up to 16 partitions), so it is impossible
+to specify more than 6 partition images.
+This option is required to make a bootable CD for Solaris x86 systems.
+.IP
+If
+.B \-sunx86\-boot
+has been specified, the first sector of the resulting image will
+contain a PC fdisk label with a Solaris type 0x82 fdisk partition that
+starts at offset 512 and spans the whole CD.
+In addition, for the Solaris type 0x82 fdisk partition, there is a
+SVr4 disk label at offset 1024 in the first sector of the CD.
+This disk label specifies slice 0 for the first (usually UFS type)
+filesystem image that is used to boot the PC and slice 1 for
+the ISO9660 image.
+Slice 2 spans the whole CD slice 3 .\|.\|. slice 7 may be used for additional
+filesystem images that have been specified with this option.
+.IP
+A Solaris x86 boot CD uses a 1024 byte sized primary boot that uses the
+.B El-Torito no-emulation
+boot mode and a secondary generic boot that is in CD sectors 1\|.\|.15.
+For this reason, both
+.BI "-b " bootimage " \-no\-emul\-boot"
+and
+.BI \-G " genboot"
+must be specified.
+.TP
+.BI \-sunx86\-label " label"
+Set the SVr4 disk label name for the SVr4 disk label that is created with
+.BR \-sunx86-boot .
+.TP
+.BI \-sysid " ID"
+Specifies the system ID. There is space for 32 characters.
+Equivalent to
+.B SYSI
+in the
+.I .genisoimagerc
+file.
+.TP
+.B \-T
+Generate a file
+.I TRANS.TBL
+in each directory on the CD-ROM, which can be used
+on non-Rock\ Ridge-capable systems to help establish the correct filenames.
+There is also information present in the file that indicates the major and
+minor numbers for block and character devices, and each symlink has the name of
+the link file given.
+.TP
+.BI \-table\-name " table_name"
+Alternative translation table filename (see above). Implies
+.BR \-T .
+If you are creating a multisession image you must use the same name
+as in the previous session.
+.TP
+.BI \-ucs\-level " level"
+Set Unicode conformance level in the Joliet SVD. The default level is 3.
+It may be set to 1..3 using this option.
+.TP
+.B \-udf
+Include UDF filesystem support in the generated filesystem image. UDF
+support is currently in alpha status and for this reason, it is not
+possible to create UDF-only images. UDF data structures are currently
+coupled to the Joliet structures, so there are many pitfalls with the
+current implementation. There is no UID/GID support, there is no POSIX
+permission support, there is no support for symlinks. Note that UDF
+wastes the space from sector ~20 to sector 256 at the beginning of the
+disc in addition to the space needed for real UDF data structures.
+.TP
+.BI \-uid " uid"
+Overrides the uid read from the source files to the value of
+.IR uid .
+Specifying this option automatically enables Rock Ridge extensions.
+.TP
+.B \-use\-fileversion
+The option
+.B \-use\-fileversion
+allows
+.B genisoimage
+to use file version numbers from the filesystem.
+If the option is not specified,
+.B genisoimage
+creates a version number of 1 for all files.
+File versions are strings in the range
+.I ;1
+to
+.I ;32767
+This option is the default on VMS.
+.TP
+.B \-U
+Allows "untranslated" filenames, completely violating the ISO9660 standards
+described above. Enables the following flags:
+.B \-d \-l \-N \-allow\-leading\-dots \-relaxed\-filenames
+.BR "\-allow\-lowercase \-allow\-multidot \-no\-iso\-translate" .
+Allows more than one `.' character in the filename, as well as
+mixed-case filenames. This is useful on HP-UX, where the built-in
+.I cdfs
+filesystem does not recognize any extensions. Use with extreme caution.
+.TP
+.B \-no\-iso\-translate
+Do not translate the characters `#' and `~' which are invalid for ISO9660 filenames.
+Although invalid, these characters are often used by Microsoft systems.
+.br
+This violates the ISO9660 standard, but it happens to work on many systems.
+Use with caution.
+.TP
+.BI \-V " volid"
+Specifies the volume ID (volume name or label) to be written into the
+master block. There is space for 32 characters. Equivalent to
+.B VOLI
+in the
+.I .genisoimagerc
+file. The volume ID is used as the mount point by the Solaris volume
+manager and as a label assigned to a disc on various other platforms
+such as Windows and Apple Mac OS.
+.TP
+.BI \-volset " ID"
+Specifies the volume set ID. There is space for 128 characters.
+Equivalent to
+.B VOLS
+in the
+.I .genisoimagerc
+file.
+.TP
+.BI \-volset\-size " #"
+Sets the volume set size to #.
+The volume set size is the number of CDs that are in a CD volume set.
+A volume set is a collection of one or more volumes, on which a set of
+files is recorded.
+.IP
+Volume Sets are not intended to be used to create a set numbered CDs
+that are part of e.g. a Operation System installation set of CDs.
+Volume Sets are rather used to record a big directory tree that would not
+fit on a single volume.
+Each volume of a Volume Set contains a description of all the directories
+and files that are recorded on the volumes where the sequence numbers
+are less than, or equal to, the assigned Volume Set Size of the current
+volume.
+.IP
+.B genisoimage
+currently does not support a
+.B \-volset\-size
+that is larger than 1.
+.IP
+The option
+.B \-volset\-size
+must be specified before
+.B \-volset\-seqno
+on each command line.
+.TP
+.BI \-volset\-seqno " #"
+Sets the volume set sequence number to #.
+The volume set sequence number is the index number of the current
+CD in a CD set.
+The option
+.B \-volset\-size
+must be specified before
+.B \-volset\-seqno
+on each command line.
+.TP
+.B \-v
+Verbose execution. If given twice on the command line, extra debug information
+will be printed.
+.TP
+.BI \-x " glob"
+Identical to
+.B \-m
+.IR glob .
+.TP
+.B \-z
+Generate special
+.I RRIP
+records for transparently compressed files.
+This is only of use and interest for hosts that support transparent
+decompression, such as Linux 2.4.14 or later. You must specify
+.BR \-R " or " \-r
+to enable Rock Ridge, and generate compressed files using the
+.B mkzftree
+utility before running
+.BR genisoimage .
+Note that transparent compression is a nonstandard Rock Ridge extension.
+The resulting disks are only transparently readable if used on Linux.
+On other operating systems you will need to call
+.B mkzftree
+by hand to decompress the files.
+.\" ----------------------------------------
+.SH "HFS OPTIONS"
+.TP
+.B \-hfs
+Create an ISO9660/HFS hybrid CD. This option should be used in conjunction
+with the
+.BR \-map ,
+.B \-magic
+and/or the various
+.I double dash
+options given below.
+.TP
+.B \-apple
+Create an ISO9660 CD with Apple's extensions. Similar to
+.BR \-hfs ,
+except that the Apple Extensions to ISO9660 are added instead of
+creating an HFS hybrid volume.
+Former
+.B genisoimage
+versions did include Rock Ridge attributes by default if
+.B \-apple
+was specified. This versions of
+.B genisoimage
+does not do this anymore. If you like to have Rock Ridge attributes,
+you need to specify this separately.
+.TP
+.BI \-map " mapping_file"
+Use the
+.I mapping_file
+to set the CREATOR and TYPE information for a file based on the
+filename's extension. A filename is
+mapped only if it is not one of the know Apple/Unix file formats. See the
+.B HFS CREATOR/TYPE
+section below.
+.TP
+.BI \-magic " magic_file"
+The CREATOR and TYPE information is set by using a file's
+.I magic number
+(usually the first few bytes of a file). The
+.I magic_file
+is only used if a file is not one of the known Apple/Unix file formats, or
+the filename extension has not been mapped using
+.BR \-map .
+See the
+.B HFS CREATOR/TYPE
+section below for more details.
+.TP
+.BI \-hfs\-creator " creator"
+Set the default CREATOR for all files. Must be exactly 4 characters. See the
+.B HFS CREATOR/TYPE
+section below for more details.
+.TP
+.BI \-hfs\-type " type"
+Set the default TYPE for all files. Must be exactly 4 characters. See the
+.B HFS CREATOR/TYPE
+section below for more details.
+.TP
+.B \-probe
+Search the contents of files for all the known Apple/Unix file formats.
+See the
+.B HFS MACINTOSH FILE FORMATS
+section below for more about these formats.
+However, the only way to check for
+.I MacBinary
+and
+.I AppleSingle
+files is to open and read them, so this option may
+increase processing time. It is better to use one or more
+.I double dash
+options given below if the Apple/Unix formats in use are known.
+.TP
+.B \-no\-desktop
+Do not create (empty) Desktop files. New HFS Desktop files will be created
+when the CD is used on a Macintosh (and stored in the System Folder).
+By default, empty Desktop files are added to the HFS volume.
+.TP
+.B \-mac\-name
+Use the HFS filename as the starting point for the ISO9660, Joliet and
+Rock Ridge filenames. See the
+.B HFS MACINTOSH FILENAMES
+section below for more information.
+.TP
+.BI \-boot\-hfs\-file " driver_file"
+Installs the
+.I driver_file
+that
+.I may
+make the CD bootable on a Macintosh. See the
+.B HFS BOOT DRIVER
+section below. (Alpha).
+.TP
+.B \-part
+Generate an HFS partition table. By default, no partition table is generated,
+but some older Macintosh CD-ROM drivers need an HFS partition table on the
+CD-ROM to be able to recognize a hybrid CD-ROM.
+.TP
+.BI \-auto " AutoStart_file"
+Make the HFS CD use the QuickTime 2.0 Autostart feature to launch an
+application or document. The given filename must be the name of a document or
+application located at the top level of the CD. The filename must be less
+than 12 characters. (Alpha).
+.TP
+.BI \-cluster\-size " size"
+Set the size in bytes of the cluster or allocation units of PC Exchange
+files. Implies
+.BR \-\-exchange .
+See the
+.B HFS MACINTOSH FILE FORMATS
+section below.
+.TP
+.BI \-hide\-hfs " glob"
+Hide
+.IR glob ,
+a shell wildcard pattern, from the HFS volume. The file or directory
+will still exist in the ISO9660 and/or Joliet directory.
+.I glob
+may match any part of the filename. Multiple globs may be excluded.
+Example:
+.sp
+ genisoimage \-o rom \-hfs \-hide\-hfs \(aq*.o\(aq \-hide\-hfs foobar
+.sp
+would exclude all files ending in `.o' or called
+.I foobar
+from the HFS volume. Note that if you had a directory called
+.IR foobar ,
+it too (and of course all its descendants) would be excluded. The
+.I glob
+can also be a path name relative to the source directories given on the
+command line. Example:
+.sp
+ genisoimage \-o rom \-hfs \-hide\-hfs src/html src
+.sp
+would exclude just the file or directory called
+.I html
+from the
+.I src
+directory. Any other file or directory called
+.I html
+in the tree will not be excluded. Should be used with
+.B \-hide
+and/or
+.BR \-hide\-joliet .
+In order to match a directory name, make sure the pattern does not
+include a trailing `/' character. See
+.I README.hide
+for more details.
+.TP
+.BI \-hide\-hfs\-list " file"
+Specify a file containing a list of wildcard patterns to be hidden as in
+.BR \-hide\-hfs .
+.TP
+.BI \-hfs\-volid " hfs_volid"
+Volume name for the HFS partition. This is the name that is
+assigned to the disc on a Macintosh and replaces the
+.I volid
+used with
+.BR \-V .
+.TP
+.B \-icon\-position
+Use the icon position information, if it exists, from the Apple/Unix file.
+The icons will appear in the same position as they would on a Macintosh
+desktop. Folder location and size on screen, its scroll positions, folder
+View (view as Icons, Small Icons, etc.) are also preserved.
+.\" This option may become set by default in the future.
+(Alpha).
+.TP
+.BI \-root\-info " file"
+Set the location, size on screen, scroll positions, folder View etc. for the
+root folder of an HFS volume. See
+.I README.rootinfo
+for more information. (Alpha)
+.TP
+.BI \-prep\-boot " file"
+PReP boot image file. Up to 4 are allowed. See
+.I README.prep_boot
+for more information. (Alpha)
+.TP
+.BI \-chrp\-boot
+Add CHRP boot header.
+.TP
+.BI \-input\-hfs\-charset " charset"
+Input charset that defines the characters used in HFS filenames when
+used with
+.BR \-mac\-name .
+The default charset is
+.I cp10000
+(Mac Roman). See the
+.B CHARACTER SETS
+and
+.B HFS MACINTOSH FILENAMES
+sections below for more details.
+.TP
+.BI \-output\-hfs\-charset " charset"
+Output charset that defines the characters that will be used in the HFS
+filenames. Defaults to the input charset. See the
+.B CHARACTER SETS
+section below for more details.
+.TP
+.B \-hfs\-unlock
+By default,
+.B genisoimage
+will create an HFS volume that is locked.
+This option leaves the volume unlocked so that other applications (e.g.
+.BR hfsutils )
+can modify the volume. See the
+.B HFS PROBLEMS/LIMITATIONS
+section below for warnings about using this option.
+.TP
+.BI \-hfs\-bless " folder_name"
+"Bless" the given directory (folder). This is usually the
+.I System Folder
+and is used in creating HFS bootable CDs. The name of the directory must
+be the whole path name as
+.B genisoimage
+sees it. E.g., if the given pathspec is
+.I ./cddata
+and the required folder is called
+.IR "System Folder" ,
+the whole path name is
+.I \(dq/cddata/System Folder\(dq
+(remember to use quotes if the name contains spaces).
+.TP
+.BI \-hfs\-parms " parameters"
+Override certain parameters used to create the HFS filesystem. Unlikely to
+be used in normal circumstances. See the
+.I libhfs_iso/hybrid.h
+source file for details.
+.TP
+.B \-\-cap
+Look for AUFS CAP Macintosh files. Search for CAP Apple/Unix file formats
+only. Searching for the other possible Apple/Unix file formats is disabled,
+unless other
+.I double dash
+options are given.
+.TP
+.B \-\-netatalk
+Look for NETATALK Macintosh files
+.TP
+.B \-\-double
+Look for AppleDouble Macintosh files
+.TP
+.B \-\-ethershare
+Look for Helios EtherShare Macintosh files
+.TP
+.B \-\-ushare
+Look for IPT UShare Macintosh files
+.TP
+.B \-\-exchange
+Look for PC Exchange Macintosh files
+.TP
+.B \-\-sgi
+Look for SGI Macintosh files
+.TP
+.B \-\-xinet
+Look for XINET Macintosh files
+.TP
+.B \-\-macbin
+Look for MacBinary Macintosh files
+.TP
+.B \-\-single
+Look for AppleSingle Macintosh files
+.TP
+.B \-\-dave
+Look for Thursby Software Systems DAVE Macintosh files
+.TP
+.B \-\-sfm
+Look for Microsoft's Services for Macintosh files (NT only) (Alpha)
+.TP
+.B \-\-osx\-double
+Look for Mac OS X AppleDouble Macintosh files
+.TP
+.B \-\-osx\-hfs
+Look for Mac OS X HFS Macintosh files
+.\" ----------------------------------------
+.SH "CHARACTER SETS"
+.B genisoimage
+processes filenames in a POSIX-compliant way as strings of 8-bit characters.
+To represent all codings for all languages, 8-bit characters are not
+sufficient. Unicode or ISO-10646
+define character codings that need at least 21 bits to represent all
+known languages. They may be represented with
+.IR UTF-32 ", " UTF-16 " or " UTF-8
+coding. UTF-32 uses a plain 32-bit coding but seems to be uncommon.
+UTF-16 is used by Microsoft with Win32 with the disadvantage that
+16-bit characters are not compliant with the POSIX filesystem
+interface.
+.PP
+Modern Unix operating systems may use UTF-8 coding for filenames.
+Each 32-bit character is represented by one or more 8-bit characters.
+If a character is coded in
+.I ISO-8859-1
+(used in Central Europe and North America) is maps 1:1 to a
+UTF-32 or UTF-16 coded Unicode character.
+If a character is coded in
+.I 7-Bit ASCII
+(used in USA and other countries with limited character set)
+is maps 1:1 to a UTF-32, UTF-16 or UTF-8 coded Unicode character.
+Character codes that cannot be represented as a single byte in UTF-8
+(if the value is > 0x7F) use escape sequences that map to more than
+one 8-bit character.
+.PP
+If all operating systems used UTF-8,
+.B genisoimage
+would not need to recode characters in filenames.
+Unfortunately, Apple uses completely nonstandard codings and Microsoft
+uses a Unicode coding that is not compatible with the POSIX filename
+interface.
+.PP
+For all non-UTF-8-coded operating systems, the actual character
+that each byte represents depends on the
+.I character set
+or
+.I codepage
+(the name used by Microsoft)
+used by the local operating system \(em the characters in a character
+set will reflect the region or natural language set by the user.
+.PP
+Usually character codes 0x00-0x1f are control characters, codes 0x20-0x7f
+are the 7-bit ASCII characters and (on PCs and Macs) 0x80-0xff are used
+for other characters.
+.PP
+As there are a lot more than 256 characters/symbols in use, only a small
+subset are represented in a character set. Therefore the same character code
+may represent a different character in different character sets. So a filename
+generated, say in central Europe, may not display the same character
+when viewed on a machine in, say eastern Europe.
+.PP
+To make matters more complicated, different operating systems use
+different character sets for the region or language. For example, the
+character code for `\('e' (small e with acute accent)
+may be character code 0x82 on a PC,
+code 0x8e on a Macintosh, code 0xe9 on a Unix system in western Europe,
+and code 0x000e9 in Unicode.
+.PP
+As long as not all operating systems and applications use the same
+character set as the basis for filenames, it may be
+necessary to specify which character set your filenames use in and which
+character set the filenames should appear on the CD.
+.PP
+There are four options to specify the character sets you want to use:
+.TP
+.B \-input\-charset
+Defines the local character set you are using on your host machine.
+Any character set conversions that take place will use this character
+set as the starting point. The default input character sets are
+.I cp437
+on MS-DOS-based systems and
+.I iso8859-1
+on all other systems. If
+.B \-J
+is given, the Unicode equivalents of the input character set
+will be used in the Joliet directory.
+.B \-jcharset
+is the same as
+.BR "\-input\-charset \-J" .
+.TP
+.B \-output\-charset
+Defines the character set that will be used with for the Rock Ridge names
+on the CD. Defaults to the input character set.
+.TP
+.B \-input\-hfs\-charset
+Defines the HFS character set used for HFS filenames decoded from
+any of the various Apple/Unix file formats. Only useful when used with
+.BR \-mac\-name .
+See the
+.B HFS MACINTOSH FILENAMES
+for more information. Defaults to
+.I cp10000
+(Mac Roman).
+.TP
+.B \-output\-hfs\-charset
+Defines the HFS character set used to create HFS filenames from the input
+character set in use. In most cases this will be from the character set
+given with
+.BR \-input\-charset .
+Defaults to the input HFS character set.
+.PP
+There are a number of character sets built in to
+.BR genisoimage .
+To get a listing, use
+.BR "\-input\-charset help" .
+This list doesn't include the charset derived from the current locale,
+if
+.B genisoimage
+is built with
+.I iconv
+support.
+.PP
+Additional character sets can be read from file for any of the character
+set options by giving a filename as the argument to the options. The given
+file will only be read if its name does not match one of the built-in
+character sets.
+.PP
+The format of the character set files is the same as the mapping files
+available from
+.IR http://www.unicode.org/Public/MAPPINGS .
+This format is:
+.IP
+Column #1 is the input byte code (in hex as 0xXX)
+.br
+Column #2 is the Unicode (in hex as 0xXXXX)
+.br
+The rest of the line is ignored.
+.PP
+Any blank line, line without two (or more) columns in the above format
+or comments lines (starting with the # character) are ignored without any
+warnings. Any missing input code is mapped to Unicode character 0x0000.
+.PP
+Note that, while UTF-8 is supported, other Unicode encodings such as
+UCS-2/UTF-16 and UCS-4/UTF-32 are not, as POSIX operating systems
+cannot handle them natively.
+.PP
+A 1:1 character set mapping can be defined by using the keyword
+.I default
+as the argument to any of the character set options. This is the behaviour
+of old versions of
+.BR mkisofs .
+.PP
+The ISO9660 filenames generated from the input filenames are not converted
+from the input character set. The ISO9660 character set is a very limited
+subset of the ASCII characters, so any conversion would be pointless.
+.PP
+Any character that
+.B genisoimage
+cannot convert will be replaced with a `_' character.
+.\" ----------------------------------------
+.SH "HFS CREATOR/TYPE"
+A Macintosh file has two properties associated with it which define
+which application created the file, the
+.I CREATOR
+and what data the file contains, the
+.IR TYPE .
+Both are (exactly) 4 letter strings. Usually this
+allows a Macintosh user to double-click on a file and launch the correct
+application etc. The CREATOR and TYPE of a particular file can be found by
+using something like ResEdit (or similar) on a Macintosh.
+.PP
+The CREATOR and TYPE information is stored in all the various Apple/Unix
+encoded files.
+For other files it is possible to base the CREATOR and TYPE on the
+filename's extension using a
+.I mapping
+file (with
+.BR \-map )
+and/or using the
+.I magic number
+(usually a
+.I signature
+in the first few bytes) of a file (with
+.BR \-magic ).
+If both these options are given, their order on the command
+line is significant. If
+.B \-map
+is given first, a filename extension match is attempted
+before a magic number match. However, if
+.B \-magic
+is given first, a magic number match is attempted before a
+filename extension match.
+.PP
+If a mapping or magic file is not used, or no match is found, the default
+CREATOR and TYPE for all regular files can be set by using entries in the
+.I .genisoimagerc
+file or using
+.B \-hfs\-creator
+and/or
+.BR \-hfs\-type ,
+otherwise the default CREATOR and TYPE are
+.IR Unix " and " TEXT .
+.PP
+The format of the
+.I mapping
+file is the same
+.I afpfile
+format as used by
+.BR aufs .
+This file has five columns for the
+.IR extension ,
+.IR "file translation" ,
+.IR CREATOR ,
+.IR TYPE " and"
+.IR Comment .
+Lines starting with the `#' character are
+comment lines and are ignored. An example file would be like:
+.PP
+.TS
+tab (/);
+l s s s s
+l s s s s
+l l l l l .
+# Example filename mapping file
+#
+# EXTN/XLate/CREATOR/TYPE/Comment
+\&.tif/Raw/\(aq8BIM\(aq/\(aqTIFF\(aq/\(dqPhotoshop TIFF image\(dq
+\&.hqx/Ascii/\(aqBnHq\(aq/\(aqTEXT\(aq/\(dqBinHex file\(dq
+\&.doc/Raw/\(aqMSWD\(aq/\(aqWDBN\(aq/\(dqWord file\(dq
+\&.mov/Raw/\(aqTVOD\(aq/\(aqMooV\(aq/\(dqQuickTime Movie\(dq
+*/Ascii/\(aqttxt\(aq/\(aqTEXT\(aq/\(dqText file\(dq
+.TE
+.PP
+Where:
+.IP
+The first column
+.I EXTN
+defines the Unix filename extension to be
+mapped. The default mapping for any filename extension that doesn't
+match is defined with the `*' character.
+.IP
+The
+.I Xlate
+column defines the type of text translation between the Unix and
+Macintosh file it is ignored by
+.BR genisoimage ,
+but is kept to be compatible with
+.BR aufs (1).
+Although
+.B genisoimage
+does not alter the contents of a file, if a binary file has its TYPE
+set as
+.IR TEXT ", it " may
+be read incorrectly on a Macintosh. Therefore a better choice for the
+default TYPE may be
+.IR ???? .
+.IP
+The
+.I CREATOR
+and
+.I TYPE
+keywords must be 4 characters long and enclosed in single quotes.
+.IP
+The comment field is enclosed in double quotes \(em it is ignored by
+.BR genisoimage ,
+but is kept to be compatible with
+.BR aufs .
+.PP
+The format of the
+.I magic
+file is almost identical to the
+.BR magic (5)
+file used by the
+.BR file (1)
+command.
+.PP
+This file has four tab-separated columns for the
+.IR "byte offset" ,
+.IR type ,
+.I test
+and
+.IR message .
+Lines starting with the `#' character are
+comment lines and are ignored. An example file would be like:
+.PP
+.TS
+tab (/);
+l s s s
+l s s s
+l l l l .
+# Example magic file
+#
+# off/type/test/message
+0/string/GIF8/8BIM GIFf GIF image
+0/beshort/0xffd8/8BIM JPEG image data
+0/string/SIT!/SIT! SIT! StuffIt Archive
+0/string/\(rs037\(rs235/LZIV ZIVU standard Unix compress
+0/string/\(rs037\(rs213/GNUz ZIVU gzip compressed data
+0/string/%!/ASPS TEXT Postscript
+0/string/\(rs004%!/ASPS TEXT PC Postscript with a ^D to start
+4/string/moov/txtt MooV QuickTime movie file (moov)
+4/string/mdat/txtt MooV QuickTime movie file (mdat)
+.TE
+.PP
+The format of the file is described in
+.BR magic (5).
+The only difference here is that for each entry in the magic file, the
+.I message
+for the initial offset must be be 4 characters for the CREATOR followed
+by 4 characters for the TYPE \(em white space is
+optional between them. Any other characters on this line are ignored.
+Continuation lines (starting with a `>') are also ignored, i.e., only
+the initial offset lines are used.
+.PP
+Using
+.B \-magic
+may significantly increase processing time as each file has to opened
+and read to find its magic number.
+.PP
+In summary, for all files, the default CREATOR is
+.I Unix
+and the default TYPE is
+.IR TEXT .
+These can be changed by using entries in the
+.I .genisoimagerc
+file or by using
+.B \-hfs\-creator
+and/or
+.BR \-hfs\-type .
+.PP
+If the a file is in one of the known Apple/Unix formats (and the format
+has been selected), the CREATOR and TYPE are taken from the values
+stored in the Apple/Unix file.
+.PP
+Other files can have their CREATOR and TYPE set from their filename
+extension (with
+.BR \-map ),
+or their magic number (with
+.BR \-magic ).
+If the default match is used in the
+.I mapping
+file, these values override the default CREATOR and TYPE.
+.PP
+A full CREATOR/TYPE database can be found at
+.IR http://www.angelfire.com/il/szekely/ .
+.\" ----------------------------------------
+.SH "HFS MACINTOSH FILE FORMATS"
+Macintosh files have two parts called the
+.I Data
+and
+.IR "Resource fork" .
+Either may be empty. Unix (and many other OSs) can only
+cope with files having one part (or fork). To add to this, Macintosh files
+have a number of attributes associated with them \(em probably the most
+important are the TYPE and CREATOR. Again, Unix has no concept of these
+types of attributes.
+.PP
+E.g., a Macintosh file may be a JPEG image where the image is stored in the
+Data fork and a desktop thumbnail stored in the Resource fork. It is usually
+the information in the data fork that is useful across platforms.
+.PP
+Therefore to store a Macintosh file on a Unix filesystem, a way has to be
+found to cope with the two forks and the extra attributes (which are
+referred to as the
+.IR "Finder info" ).
+Unfortunately, it seems that every software package that stores Macintosh
+files on Unix has chosen a completely different storage method.
+.PP
+The Apple/Unix formats that
+.B genisoimage
+(partially) supports are:
+.IP "CAP AUFS format"
+Data fork stored in a file. Resource fork in subdirectory
+.I .resource
+with same filename as data fork. Finder info in subdirectory
+.I .finderinfo
+with same filename.
+.IP "AppleDouble/Netatalk"
+Data fork stored in a file. Resource fork stored in a file with
+same name prefixed with `%'. Finder info also stored in same
+`%' file. Netatalk uses the same format, but the resource
+fork/Finder info stored in subdirectory
+.I .AppleDouble
+with same filename as data fork.
+.IP AppleSingle
+Data structures similar to above, except both forks and Finder
+info are stored in one file.
+.IP "Helios EtherShare"
+Data fork stored in a file. Resource fork and Finder info together in
+subdirectory
+.I .rsrc
+with same filename as data fork.
+.IP "IPT UShare"
+Like the EtherShare format, but the Finder info
+is stored slightly differently.
+.IP MacBinary
+Both forks and Finder info stored in one file.
+.IP "Apple PC Exchange"
+Used by Macintoshes to store Apple files on DOS (FAT) disks.
+Data fork stored in a file. Resource fork in subdirectory
+.IR resource.frk " (or " RESOURCE.FRK ).
+Finder info as one record in file
+.IR finder.dat " (or " FINDER.DAT ).
+Separate
+.I finder.dat
+for each data fork directory.
+.IP
+Note:
+.B genisoimage
+needs to know the native FAT cluster size of the disk that the PC Exchange
+files are on (or have been copied from). This size is given by
+.BR \-cluster\-size .
+The cluster or allocation size can be found by using the DOS utility
+.BR chkdsk .
+.IP
+May not work with PC Exchange v2.2 or higher files (available with MacOS 8.1).
+DOS media containing PC Exchange files should be mounted as type
+.I msdos
+(not
+.IR vfat )
+when using Linux.
+.IP SGI/XINET
+Used by SGI machines when they mount HFS disks. Data fork stored
+in a file. Resource fork in subdirectory
+.I .HSResource
+with same filename. Finder info as one record in file
+.IR .HSancillary ". Separate " .HSancillary
+for each data fork directory.
+.IP "Thursby Software Systems DAVE"
+Allows Macintoshes to store Apple files on SMB servers.
+Data fork stored in a file. Resource fork in subdirectory
+.IR resource.frk .
+Uses the AppleDouble format to store resource fork.
+.IP "Services for Macintosh"
+Format of files stored by NT Servers on NTFS filesystems. Data fork is
+stored as
+.IR filename .
+Resource fork stored as a NTFS stream called
+.IR filename:AFP_Resource .
+The Finder info is stored as a NTFS stream called
+.IR filename:Afp_AfpInfo .
+NTFS streams are normally invisible to the user.
+.IP
+Warning:
+.B genisoimage
+only partially supports the SFM format. If an HFS file
+or folder stored on the NT server contains an illegal
+NT character in its name, NT converts these characters to
+.I Private Use Unicode
+characters. The characters are: \(dq * / < > ? \(rs | and a space or
+period if it is the last character of the filename, character codes 0x01
+to 0x1f (control characters) and Apple's apple logo.
+.IP
+Unfortunately, these private Unicode characters are not readable by the
+.B genisoimage
+NT executable. Therefore any file or directory
+name containing these characters will be ignored \(em including the contents of
+any such directory.
+.IP "Mac OS X AppleDouble"
+When HFS/HFS+ files are copied or saved by Mac OS X on to a non-HFS
+filesystem (e.g. UFS, NFS etc.), the files are stored in AppleDouble format.
+Data fork stored in a file. Resource fork stored in a file with
+same name prefixed with `._'. Finder info also stored in same `._' file.
+.IP "Mac OS X HFS (Alpha)"
+Not really an Apple/Unix encoding, but actual HFS/HFS+ files on a Mac\ OS\ X
+system. Data fork stored in a file. Resource fork stored in a pseudo file
+with the same name with the suffix
+.IR /rsrc .
+The Finder info is only available via a Mac OS X library call.
+.IP
+See also
+.IR README.macosx .
+.IP
+Only works when used on Mac OS X.
+.IP
+If a file is found with a zero
+length resource fork and empty finderinfo, it is assumed not to have
+any Apple/Unix encoding \(em therefore a TYPE and CREATOR can be set using
+other methods.
+.PP
+.B genisoimage
+will attempt to set the CREATOR, TYPE, date and possibly other flags from
+the finder info. Additionally, if it exists, the Macintosh filename is set
+from the finder info, otherwise the Macintosh name is based on the Unix
+filename \(em see the
+.B HFS MACINTOSH FILENAMES
+section below.
+.PP
+When using
+.BR \-apple ,
+the TYPE and CREATOR are stored in the optional System Use or
+.I SUSP
+field
+in the ISO9660 Directory Record \(em in much the same way as the Rock Ridge
+attributes are. In fact to make life easy, the Apple extensions are added
+at the beginning of the existing Rock Ridge attributes (i.e., to get the Apple
+extensions you get the Rock Ridge extensions as well).
+.PP
+The Apple extensions require the resource fork to be stored as an ISO9660
+.I associated
+file. This is just like any normal file stored in the ISO9660 filesystem
+except that the associated file flag is set in the Directory Record (bit
+2). This file has the same name as the data fork (the file seen by
+non-Apple machines). Associated files are normally ignored by other OSs
+.PP
+When using
+.BR \-hfs ,
+the TYPE and CREATOR plus other finder info, are stored in a separate
+HFS directory, not visible on the ISO9660 volume. The HFS directory references
+the same data and resource fork files described above.
+.PP
+In most cases, it is better to use
+.B \-hfs
+instead of
+.BR \-apple ,
+as the latter imposes the limited ISO9660 characters allowed in
+filenames. However, the Apple extensions do give the advantage that the
+files are packed on the disk more efficiently and it may be possible to fit
+more files on a CD.
+.\" ----------------------------------------
+.SH "HFS MACINTOSH FILENAMES"
+Where possible, the HFS filename that is stored with an Apple/Unix file
+is used for the HFS part of the CD. However, not all the Apple/Unix
+encodings store the HFS filename with the finderinfo. In these cases,
+the Unix filename is used \(em with escaped special characters. Special
+characters include `/' and characters with codes over 127.
+.PP
+AUFS escapes these characters by using `:' followed by the character code
+as two hex digits. Netatalk and EtherShare have a similar scheme, but uses
+`%' instead of a `:'.
+.PP
+If
+.B genisoimage
+cannot find an HFS filename, it uses the Unix name, with any
+.IR %xx " or " :xx
+characters
+.RI ( xx
+are two hex digits) converted to a single character code. If
+.I xx
+are not hex digits ([0-9a-fA-F]), they are
+left alone \(em although any remaining `:' is converted to `%', as `:'
+is the HFS directory separator. Care must be taken, as an ordinary Unix
+file with
+.I %xx
+or
+.I :xx
+will also be converted. e.g.
+.PP
+.TS
+l l
+l s
+l l
+l s
+l l .
+This:2fFile converted to This/File
+
+This:File converted to This%File
+
+This:t7File converted to This%t7File
+.TE
+.PP
+Although HFS filenames appear to support uppercase and lowercase letters,
+the filesystem is case-insensitive, i.e., the filenames
+.IR aBc " and " AbC
+are the same. If a file is found in a directory with the same HFS name,
+.B genisoimage
+will attempt to make a unique name by adding `_' characters
+to one of the filenames.
+.PP
+If an HFS filename exists for a file,
+.B genisoimage
+can use this name as the starting point for the ISO9660, Joliet and
+Rock Ridge filenames using
+.BR \-mac\-name .
+Normal Unix files without an HFS name will still use their Unix name.
+e.g.
+.PP
+If a MacBinary (or PC Exchange) file is stored as
+.I someimage.gif.bin
+on the Unix filesystem, but contains a HFS file called
+.IR someimage.gif ,
+this is the name that would appear on the HFS part of the CD. However, as
+.B genisoimage
+uses the Unix name as the starting point for the other names,
+the ISO9660 name generated will probably be
+.I SOMEIMAG.BIN
+and the Joliet/Rock Ridge would be
+.IR someimage.gif.bin .
+This option will use
+the HFS filename as the starting point and the ISO9660 name will probably be
+.I SOMEIMAG.GIF
+and the Joliet/Rock Ridge would be
+.IR someimage.gif .
+.PP
+.B \-mac\-name
+will not currently work with
+.B \-T
+\(em the Unix name will be used in the
+.I TRANS.TBL
+file, not the Macintosh name.
+.PP
+The character set used to convert any HFS filename to a Joliet/Rock Ridge
+filename defaults to
+.I cp10000
+(Mac Roman).
+The character set used can be specified using
+.BR \-input\-hfs\-charset .
+Other built-in HFS character sets are:
+.I cp10006
+(MacGreek),
+.I cp10007
+(MacCyrillic),
+.I cp10029
+(MacLatin2),
+.I cp10079
+(MacIcelandandic) and
+.I cp10081
+(MacTurkish).
+.PP
+Note: the character codes used by HFS filenames taken from the various
+Apple/Unix formats will not be converted as they are assumed to be in the
+correct Apple character set. Only the Joliet/Rock Ridge names derived from
+the HFS filenames will be converted.
+.PP
+The existing
+.B genisoimage
+code will filter out any illegal characters for the ISO9660 and Joliet
+filenames, but as
+.B genisoimage
+expects to be dealing directly with Unix names, it leaves the Rock
+Ridge names as is. But as `/' is a legal HFS filename character,
+.B \-mac\-name
+converts `/' to a `_' in Rock Ridge filenames.
+.PP
+If the Apple extensions are used, only the ISO9660 filenames will
+appear on the Macintosh. However, as the Macintosh ISO9660 drivers can use
+.I Level 2
+filenames, you can use options like
+.B \-allow\-multidot
+without problems on
+a Macintosh \(em still take care over the names, for example
+.I this.file.name
+will be converted to
+.I THIS.FILE
+i.e. only have one `.', also filename
+.I abcdefgh
+will be seen as
+.I ABCDEFGH
+but
+.I abcdefghi
+will be seen as
+.I ABCDEFGHI.
+i.e. with a `.' at the end \(em don't know if this is a Macintosh
+problem or a
+.BR genisoimage / mkhybrid
+problem. All filenames will be in uppercase
+when viewed on a Macintosh. Of course, DOS/Win3.X machines will not be able
+to see Level 2 filenames...
+.\" ----------------------------------------
+.SH "HFS CUSTOM VOLUME/FOLDER ICONS"
+To give a HFS CD a custom icon, make sure the root (top level) folder includes
+a standard Macintosh volume icon file. To give a volume a custom icon on
+a Macintosh, an icon has to be pasted over the volume's icon in the "Get Info"
+box of the volume. This creates an invisible file called
+.I Icon\(rsr
+(`\(rsr' is the carriage return character) in the root folder.
+.P
+A custom folder icon is very similar \(em an invisible file called
+.I Icon\(rsr
+exists in the folder itself.
+.P
+Probably the easiest way to create a custom icon that
+.B genisoimage
+can use is to format a blank HFS floppy disk on a Mac and paste an icon
+to its "Get Info" box. If using Linux with the HFS module installed,
+mount the floppy:
+.IP
+mount \-t hfs /dev/fd0 /mnt/floppy
+.PP
+The floppy will be mounted as a CAP filesystem by default. Then run
+.B genisoimage
+using something like:
+.IP
+genisoimage \-\-cap \-o output source_dir /mnt/floppy
+.PP
+If you are not using Linux, you can use
+.B hfsutils
+to copy the icon file from the floppy. However, care has to be taken,
+as the icon file contains a control character. For example:
+.IP
+hmount /dev/fd0
+.br
+hdir \-a
+.br
+hcopy \-m Icon^V^M icon_dir/icon
+.PP
+Where `^V^M' is control-V followed by control-M. Then run
+.B genisoimage
+by using something like:
+.IP
+genisoimage \-\-macbin \-o output source_dir icon_dir
+.PP
+The procedure for creating/using custom folder icons is very similar \(em paste
+an icon to folder's "Get Info" box and transfer the resulting
+.I Icon\(rsr
+file to the relevant directory in the
+.B genisoimage
+source tree.
+.PP
+You may want to hide the icon files from the ISO9660 and Joliet trees.
+.PP
+To give a custom icon to a Joliet CD, follow the instructions found at
+.IR http://www.cdrfaq.org/faq03.html#S3-21-1 .
+.\" ----------------------------------------
+.SH "HFS BOOT DRIVER"
+It
+.I may
+be possible to make the hybrid CD bootable on a Macintosh.
+.PP
+A bootable HFS CD requires an Apple CD-ROM (or compatible) driver, a bootable
+HFS partition and the necessary System, Finder, etc. files.
+.PP
+A driver can be obtained from any other Macintosh bootable CD-ROM using the
+.B apple_driver
+utility. This file can then be used with
+.BR \-boot\-hfs\-file .
+.PP
+The HFS partition (i.e. the hybrid disk in our case) must contain a
+suitable System Folder, again from another CD-ROM or disk.
+.PP
+For a partition to be bootable, it must have its
+.I boot block
+set. The boot
+block is in the first two blocks of a partition. For a non-bootable partition
+the boot block is full of zeros. Normally, when a System file is copied to
+partition on a Macintosh disk, the boot block is filled with a number of
+required settings \(em unfortunately I don't know the full spec for the boot
+block, so I'm guessing that the following will work.
+.PP
+Therefore, the utility
+.B apple_driver
+also extracts the boot block from the
+first HFS partition it finds on the given CD-ROM and this is used for the
+HFS partition created by
+.BR genisoimage .
+.PP
+.I Please note:
+By using a driver from an Apple CD and copying Apple software to your CD,
+you become liable to obey Apple Computer, Inc. Software License Agreements.
+.\" ----------------------------------------
+.SH "EL TORITO BOOT INFORMATION TABLE"
+When
+.B \-boot\-info\-table
+is given,
+.B genisoimage
+will modify the boot file specified by
+.B \-b
+by inserting a 56-byte
+.I boot information table
+at offset 8 in
+the file. This modification is done in the source filesystem, so make
+sure you use a copy if this file is not easily recreated! This file
+contains pointers which may not be easily or reliably obtained at boot
+time.
+.PP
+The format of this table is as follows; all integers are in
+section 7.3.1 ("little endian") format.
+.sp
+.RS +.2i
+.ta 1.0i 2.5i 3.5i
+.nf
+Offset Name Size Meaning
+ 8 bi_pvd 4 bytes LBA of primary volume descriptor
+12 bi_file 4 bytes LBA of boot file
+16 bi_length 4 bytes Boot file length in bytes
+20 bi_csum 4 bytes 32-bit checksum
+24 bi_reserved 40 bytes Reserved
+.fi
+.RE
+.IP
+The 32-bit checksum is the sum of all the 32-bit words in the boot
+file starting at byte offset 64. All linear block addresses (LBAs)
+are given in CD sectors (normally 2048 bytes).
+.\" ----------------------------------------
+.SH "HPPA NOTES"
+To make a bootable CD for HPPA, at the very least a boot loader file
+.RB ( \-hppa\-bootloader ),
+a kernel image file (32-bit, 64-bit, or both, depending on hardware)
+and a boot command line
+.RB ( \-hppa\-cmdline )
+must be specified. Some systems can boot either a 32- or a 64-bit
+kernel, and the firmware will choose one if both are present.
+Optionally, a ramdisk can be used for the root filesystem using
+.BR \-hppa\-cmdline .
+.\" ----------------------------------------
+.SH "JIGDO NOTES"
+Jigdo is a tool to help in the distribution of large files like CD and
+DVD images; see
+.I http://atterer.org/jigdo/
+for more details. Debian CDs and DVD ISO
+images are published on the web in jigdo format to allow end users to download
+them more efficiently.
+.PP
+To create jigdo and template files alongside the ISO image from
+.BR genisoimage ,
+you must first generate a list of the files that will be
+used, in the following format:
+.sp
+.RS +.2i
+.ta 2.0i 2.0i 5.0i
+.nf
+MD5sum File size Path
+32 chars 12 chars to end of line
+.fi
+.RE
+.IP
+.PP
+The MD5sum must be written in standard hexadecimal notation, the
+file size must list the size of the file in bytes, and the path
+must list the absolute path to the file. For example:
+.sp
+.nf
+00006dcd58ff0756c36d2efae21be376 14736 /mirror/debian/file1
+000635c69b254a1be8badcec3a8d05c1 211822 /mirror/debian/file2
+00083436a3899a09633fc1026ef1e66e 22762 /mirror/debian/file3
+.fi
+.PP
+Once you have this file, call
+.B genisoimage
+with all of your normal command-line parameters. Specify the output
+filenames for the jigdo and template files using
+.BR \-jigdo\-jigdo " and " \-jigdo\-template ,
+and pass in the location of your MD5 list with
+.BR \-md5\-list .
+.PP
+If there are files that you do NOT want to be added into the jigdo
+file (e.g. if they are likely to change often), specify them using
+\-jigdo\-exclude. If you want to verify some of the files as they are
+written into the image, specify them using \-jigdo\-force\-md5. If any
+files don't match,
+.B genisoimage
+will then abort. Both of these options take
+regular expressions as input. It is possible to restrict the set of
+files that will be used further based on size \(em use the
+\-jigdo\-min\-file\-size option.
+.PP
+Finally, the jigdo code needs to know how to map the files it is given
+onto a mirror-style configuration. Specify how to map paths using
+.BR \-jigdo\-map .
+Using
+.I Debian=/mirror/debian
+will cause all
+paths starting with
+.I /mirror/debian
+to be mapped to
+.I Debian:<file>
+in the output jigdo file.
+.\" ----------------------------------------
+.SH EXAMPLES
+.PP
+To create a vanilla ISO9660 filesystem image in the file
+.IR cd.iso ,
+where the directory
+.I cd_dir
+will become the root directory of the CD, call:
+.IP
+% genisoimage \-o cd.iso cd_dir
+.PP
+To create a CD with Rock Ridge extensions of
+the source directory
+.IR cd_dir :
+.IP
+% genisoimage \-o cd.iso \-R cd_dir
+.PP
+To create a CD with Rock Ridge extensions of
+the source directory
+.I cd_dir
+where all files have at least read permission and all files
+are owned by
+.IR root ,
+call:
+.IP
+% genisoimage \-o cd.iso \-r cd_dir
+.PP
+To write a tar archive directly to a CD that will later contain a simple
+ISO9660 filesystem with the tar archive call:
+.IP
+% tar cf \- . | genisoimage \-stream\-media\-size 333000 | \(rs
+.br
+ wodim dev=b,t,l \-dao tsize=333000s \-
+.PP
+To create a HFS hybrid CD with the Joliet and Rock Ridge extensions of
+the source directory
+.IR cd_dir :
+.IP
+% genisoimage \-o cd.iso \-R \-J \-hfs cd_dir
+.PP
+To create a HFS hybrid CD from the source directory
+.I cd_dir
+that contains
+Netatalk Apple/Unix files:
+.IP
+% genisoimage \-o cd.iso \-\-netatalk cd_dir
+.PP
+To create a HFS hybrid CD from the source directory
+.IR cd_dir ,
+giving all files
+CREATOR and TYPES based on just their filename extensions listed in the file
+"mapping".:
+.IP
+% genisoimage \-o cd.iso \-map mapping cd_dir
+.PP
+To create a CD with the Apple Extensions to ISO9660, from the source
+directories
+.I cd_dir
+and
+.IR another_dir .
+Files in all the known Apple/Unix format
+are decoded and any other files are given CREATOR and TYPE based on their
+magic number given in the file
+.IR magic :
+.IP
+% genisoimage \-o cd.iso \-apple \-magic magic \-probe \(rs
+.br
+ cd_dir another_dir
+.PP
+The following example puts different files on the CD that all have
+the name README, but have different contents when seen as a
+ISO9660/Rock Ridge, Joliet or HFS CD.
+.PP
+Current directory contains:
+.IP
+% ls \-F
+.br
+README.hfs README.joliet README.Unix cd_dir/
+.PP
+The following command puts the contents of the directory
+.I cd_dir
+on the
+CD along with the three README files \(em but only one will be seen from
+each of the three filesystems:
+.IP
+% genisoimage \-o cd.iso \-hfs \-J \-r \-graft\-points \(rs
+.br
+ \-hide README.hfs \-hide README.joliet \(rs
+.br
+ \-hide\-joliet README.hfs \-hide\-joliet README.Unix \(rs
+.br
+ \-hide\-hfs README.joliet \-hide\-hfs README.Unix \(rs
+.br
+ README=README.hfs README=README.joliet \(rs
+.br
+ README=README.Unix cd_dir
+.PP
+i.e. the file README.hfs will be seen as README on the HFS CD and the
+other two README files will be hidden. Similarly for the Joliet and
+ISO9660/Rock Ridge CD.
+.PP
+There are probably all sorts of strange results possible with
+combinations of the hide options ...
+.\" ----------------------------------------
+.SH NOTES
+.PP
+.B genisoimage
+may safely be installed suid root. This may be needed to allow
+.B genisoimage
+to read the previous session when creating a multisession image.
+.PP
+If
+.B genisoimage
+is creating a filesystem image with Rock Ridge attributes and the
+directory nesting level of the source directory tree is too much
+for ISO9660,
+.B genisoimage
+will do deep directory relocation.
+This results in a directory called
+.B RR_MOVED
+in the root directory of the CD. You cannot avoid this directory.
+.PP
+Many boot code options for different platforms are mutualy exclusive because
+the boot blocks cannot coexist, ie. different platforms share the same data
+locations in the image. See
+http://lists.debian.org/debian-cd/2006/12/msg00109.html for details.
+.\" ----------------------------------------
+.SH BUGS
+.PP
+Any files that have hard links to files not in the tree being copied to the
+ISO9660 filesystem will have an incorrect file reference count.
+.PP
+Does not check for SUSP record(s) in `.' entry of the
+root directory to verify the existence of Rock Ridge
+enhancements.
+This problem is present when reading old sessions while
+adding data in multisession mode.
+.PP
+Does not properly read relocated directories in multisession
+mode when adding data.
+Any relocated deep directory is lost if the new session does not
+include the deep directory.
+.\" Repeat by: create first session with deep directory relocation
+.\" then add new session with a single dir that differs from the
+.\" old deep path.
+.PP
+Does not re-use
+.I RR_MOVED
+when doing multisession from
+.IR TRANS.TBL .
+.PP
+Does not create whole_name entry for
+.I RR_MOVED
+in multisession mode.
+.PP
+There may be other bugs. Please, report them to the maintainers.
+.\" ----------------------------------------
+.SH "HFS PROBLEMS/LIMITATIONS"
+I have had to make several assumptions on how I expect the modified
+libhfs routines to work, however there may be situations that either
+I haven't thought of, or come across when these assumptions fail.
+Therefore I can't guarantee that
+.B genisoimage
+will work as expected
+(although I haven't had a major problem yet). Most of the HFS features work
+fine, but some are not fully tested. These are marked as
+.I Alpha
+above.
+.PP
+Although HFS filenames appear to support uppercase and lowercase letters,
+the filesystem is case-insensitive, i.e., the filenames
+.IR aBc " and "AbC
+are the same. If a file is found in a directory with the same HFS name,
+.B genisoimage
+will attempt to make a unique name by adding `_' characters
+to one of the filenames.
+.PP
+HFS file/directory names that share the first 31 characters have
+`_N' (a decimal number) substituted for the last few characters
+to generate unique names.
+.PP
+Care must be taken when "grafting" Apple/Unix files or directories (see
+above for the method and syntax involved). It is not possible to use a
+new name for an Apple/Unix encoded file/directory. e.g. If a Apple/Unix
+encoded file called
+.I oldname
+is to added to the CD, you cannot use the command line:
+.IP
+genisoimage \-o output.raw \-hfs \-graft\-points newname=oldname cd_dir
+.PP
+.B genisoimage
+will be unable to decode
+.IR oldname .
+However, you can graft
+Apple/Unix encoded files or directories as long as you do not attempt to
+give them new names as above.
+.PP
+When creating an HFS volume with the multisession options,
+.B \-M
+and
+.BR \-C ,
+only files in the last session will be in the HFS volume. i.e.
+.B genisoimage
+cannot
+.I add
+existing files from previous sessions to the HFS volume.
+.PP
+However, if each session is created with
+.BR \-part ,
+each session will appear as
+separate volumes when mounted on a Mac. In this case, it is worth using
+.BR \-V " or " \-hfs\-volid
+to give each session a unique volume name,
+otherwise each "volume" will appear on the Desktop with the same name.
+.PP
+Symbolic links (as with all other non-regular files) are not added to
+the HFS directory.
+.PP
+Hybrid volumes may be larger than pure ISO9660 volumes
+containing the same data. In some cases (e.g. DVD sized volumes) the
+difference can be significant. As an HFS volume gets bigger, so does the
+allocation block size (the smallest amount of space a file can occupy).
+For a 650MB CD, the allocation block is 10kB, for a 4.7GB DVD it will be
+about 70kB.
+.PP
+The maximum number of files in an HFS volume is about 65500 \(em although
+the real limit will be somewhat less than this.
+.PP
+The resulting hybrid volume can be accessed on a Unix machine by using
+the hfsutils routines. However, no changes can be made to the volume as it
+is set as
+.B locked.
+The option
+.B \-hfs\-unlock
+will create an output image that is unlocked \(em however no changes should be
+made to the contents of the volume (unless you really know what you are
+doing) as it's not a "real" HFS volume.
+.PP
+.B \-mac\-name
+will not currently work with
+.B \-T
+\(em the Unix name will be used in the
+.I TRANS.TBL
+file, not the Macintosh name.
+.PP
+Although
+.B genisoimage
+does not alter the contents of a file, if a binary file has its TYPE
+set as
+.IR TEXT ", it " may
+be read incorrectly on a Macintosh. Therefore a better choice for the
+default TYPE may be
+.IR ???? .
+.PP
+.B \-mac\-boot\-file
+may not work at all...
+.PP
+May not work with PC Exchange v2.2 or higher files (available with MacOS 8.1).
+DOS media containing PC Exchange files should be mounted as type
+.B msdos
+(not
+.BR vfat )
+when using Linux.
+.PP
+The SFM format is only partially supported \(em see
+.B HFS MACINTOSH FILE FORMATS
+section above.
+.PP
+It is not possible to use
+.BR \-sparc\-boot " or " \-generic\-boot " with"
+.BR \-boot\-hfs\-file " or " \-prep\-boot .
+.PP
+.B genisoimage
+should be able to create HFS hybrid images over 4Gb, although this has not
+been fully tested.
+.\" ----------------------------------------
+.SH "SEE ALSO"
+.BR genisoimagerc (5),
+.BR wodim (1),
+.BR mkzftree (8),
+.BR magic (5).
+.\" ----------------------------------------
+.SH AUTHORS
+.B genisoimage
+is derived from
+.B mkisofs
+from the
+.B cdrtools 2.01.01a08
+package from May 2006 (with few updates extracted from cdrtools 2.01.01a24 from
+March 2007) from .IR http://cdrecord.berlios.de/ ,
+but is now part of the
+.B cdrkit
+suite, maintained by Joerg Jaspert, Eduard Bloch, Steve McIntyre, Peter
+Samuelson, Christian Fromme, Ben Hutchings, and other contributors.
+The maintainers can be contacted at
+.IR debburn-devel@lists.alioth.debian.org ,
+or see the
+.B cdrkit
+project web site at
+.IR http://www.cdrkit.org/ .
+.PP
+Eric Youngdale wrote the first versions (1993\(en1998) of
+.BR mkisofs .
+J\(:org Schilling wrote the SCSI transport library and its
+interface, and has maintained
+.B mkisofs
+since 1999. James Pearson wrote the HFS hybrid code, using
+.I libhfs
+by Robert Leslie. Pearson, Schilling, Jungshik Shin and Jaakko
+Heinonen contributed to the character set conversion code. The
+.B cdrkit
+maintainers have maintained
+.B genisoimage
+since 2006.
+.PP
+.nf
+Copyright 1993-1998 by Yggdrasil Computing, Inc.
+Copyright 1996-1997 by Robert Leslie
+Copyright 1997-2001 by James Pearson
+Copyright 1999-2006 by J\(:org Schilling
+Copyright 2007 by J\(:org Schilling (originating few updates)
+Copyright 2002-2003 by Jungshik Shin
+Copyright 2003 by Jaakko Heinonen
+Copyright 2006 by the Cdrkit maintainers
+.fi
+.PP
+If you want to take part in the development of
+.BR genisoimage ,
+you may join the
+.B cdrkit
+developer mailing list by following the instructions on
+.IR http://alioth.debian.org/mail/?group_id=31006 .
+The email address of the list is
+.IR debburn-devel@lists.alioth.debian.org .
+This is also the address for user support questions. Note that
+.BR cdrkit " and " cdrtools
+are not affiliated.
+.PP
+.\" ----------------------------------------
+.SH ACKNOWLEDGEMENTS
+UNIX is a registered trademark of The Open Group in the US and other countries.