MKHYBRID



NAME

       mkhybrid  - create an hybrid ISO9660/JOLIET/HFS filesystem
       with optional Rock Ridge attributes.


SYNOPSIS

       mkhybrid [ -a ] [ -abstract FILE ] [ -biblio FILE ]  [  -b
       eltorito_boot_image  ]  [  -B sparc_boot_image_list ] [ -G
       generic_boot_image ] [ -gui ] [ -C #,# ] [ -hard-disk-boot
       ]  [  -no-emul-boot  ]  [  -no-boot ] [ -boot-load-seg ] [
       -boot-load-size ] [ -boot-info-table ] [ -c boot_catalog ]
       [  -copyright FILE ] [ -A application_id ] [ -f ] [ -d ] [
       -D ] [ -hide glob ] [ -hide-list  file  ]  [  -hide-joliet
       glob ] [ -hide-joliet-list file ] [ -hide-joliet-trans-tbl
       ] [ -hide-rr-moved ] [ -J ] [ -l ]  [  -L  ]  [  -log-file
       log_file  ]  [ -M path | device ] [ -nobak ] [ -no-bak ] [
       -no-split-symlink-components ] [  -no-split-symlink-fields
       ] [ -path-list file ] [ -p preparer ] [ -print-size ] [ -P
       publisher ] [ -quiet ] [ -r ] [ -R ] [ -sysid ID ] [ -T  |
       -table-name  TABLE_NAME ] [ -v ] [ -V volid ] [ -volset ID
       ] [ -volset-size # ] [ -volset-seqno # ] [ -x path ] [  -z
       ]  [  -m  glob ] [ -hfs | -apple ] [ -map mapping_file ] [
       -magic magic_file ] [ -probe ] [ -no-desktop ] [ -mac-name
       ]   [   -boot-hfs-file  driver_file  [  -part  ]  [  -auto
       AutoStart_file ] [ -cluster-size size ] [ -hide-hfs glob ]
       [  -hide-hfs-list file ] [ -hfs-volid hfs_volid ] [ -icon-
       position ] [ -prep-boot FILE ] [ --cap ] [ --netatalk ]  [
       --double  ] [ --ethershare ] [ --ushare ] [ --exchange ] [
       --sgi ] [ --xinet ] [ --macbin ] [ --single ] [ --dave ] [
       --sfm ] -o filename pathspec [pathspec]


DESCRIPTION

       mkhybrid  is effectively a pre-mastering program to gener-
       ate an HFS/ISO9660/JOLIET hybrid filesystem. It  is  based
       on  mkisofs(1) and will generate a pure ISO9660 filesystem
       unless the HFS hybrid command line options are given.

       mkhybrid can  generate  a  true  (or  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 Hierarchical
       File System and is the native file system used  on  Macin-
       tosh computers.

       As  an alternative, mkhybrid can generate the Apple Enten-
       sions to ISO9660 for each file. These  extensions  provide
       each file with CREATOR, TYPE and certain Finder Flags when
       accessed from a Macintosh. See the MACINTOSH FILE  FORMATS
       section below.

       mkhybrid  takes  a snapshot of a given directory tree, and
       generates a binary  image  which  will  correspond  to  an
       ISO9660  or HFS filesystem when written to a block device.

       mkhybrid is also capable  of  generating  the  System  Use
       Sharing  Protocol  records  specified  by  the  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  longer  filenames,  uid/gid,
       posix permissions, and block and character devices.

       Each  file  written  to the iso9660 filesystem must have a
       filename in the 8.3 format (8 characters, period, 3  char-
       acters,  all  upper  case),  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.  mkhybrid generally
       tries to form correct names by forcing the  unix  filename
       to  upper case and truncating as required, but often times
       this yields unsatisfactory results when  there  are  cases
       where  the  truncated  names are not all unique.  mkhybrid
       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 have a 3 digit number as an  exten-
       sion  (where  the  number is guaranteed to be unique).  An
       example of this would be the files foo.bar and foo.bar.~1~
       -  the  file foo.bar.~1~ would be written as FOO.000;1 and
       the file foo.bar would be written as FOO.BAR;1

       When used with various HFS options, mkhybrid 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 MACINTOSH FILE
       FORMATS section below for more about formats mkhybrid sup-
       ports.

       Note that mkhybrid 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  disk.   The
       cdwrite utility is one such tool that runs under Linux and
       performs this task.  The  latest  version  of  cdwrite  is
       capable  of  communicating with Phillips/IMS/Kodak, HP and
       Yamaha drives.  Most writers come with some version of DOS
       software  that  allows  a  direct image copy of an iso9660
       image to the writer.  The current version  of  cdwrite  is
       available   from  ftp://sunsite.unc.edu/utils/disk-manage-
       ment/cdwrite-2.0.tar.gz Note that  cdwrite  has  not  been
       actively maintained since 1995.

       The cdrecord utility is another utility capable of burning
       an actual disc.  The latest version of cdrecord is  avail-
       able     from     ftp://ftp.fokus.gmd.de/pub/unix/cdrecord
       Cdrecord is under constant development.

       Also you should know that most cd writers are very partic-
       ular  about  timing.   Once  you start to burn a disc, you
       cannot let their buffer empty before you are done, or  you
       will end up with a corrupt disc.  Thus it is critical that
       you be able to maintain an uninterrupted  data  stream  to
       the  writer  for  the  entire  time that the disc is being
       written.

       pathspec is the path of the directory tree  to  be  copied
       into the iso9660 filesystem.  Multiple paths can be speci-
       fied, and mkhybrid will merge the files found  in  all  of
       the specified path components to form the cdrom image.

       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 ../old.lis exists, and you wish
       to include it in the cdrom image.


            foo/bar/=../old.lis

       will  include  the  file  old.lis  in  the  cdrom image at
       /foo/bar/old.lis, while

            foo/bar/xxx=../old.lis

       will include the  file  old.lis  in  the  cdrom  image  at
       /foo/bar/xxx.   The  same  sort of syntax can be used with
       directories as well.  mkhybrid will create any directories
       required  such  that  the  graft points exist on the cdrom
       image - the directories do not need to appear  in  one  of
       the  paths.   Any  directories that are created on the fly
       like this will have permissions  0555  and  appear  to  be
       owned  by  the person running mkhybrid.  If you wish other
       permissions or owners of the intermediate directories, the
       easiest solution is to create real directories in the path
       such that mkhybrid doesn't have to invent them.

       mkhybrid will also run on Win9X/NT4 machines when compiled
       with   Cygnus'   cygwin   (available  from  http://source-
       ware.cygnus.com/cygwin/).  Therefore  most  references  in
       this man page to Unix can be replaced with Win32.



OPTIONS

       -a     Include  all files on the iso9660 filesystem.  Nor-
              mally files that contain the characters '~' or  '#'
              will  not  be  included (these are typically backup
              files for editors under unix). This option  is  now
              obsolete (see -no-bak option).

       -abstract FILE
              Specifies  the  abstract file name.  This parameter
              can  also  be  set  in  the  file  .mkisofsrc  with
              ABST=filename.   If  specified  in both places, the
              command line version is used.

       -A application_id
              Specifies a text string that will be  written  into
              the volume header.  This should describe the appli-
              cation that will be on the disc.  There is space on
              the  disc  for 128 characters of information.  This
              parameter can also be set in  the  file  .mkisofsrc
              with  APPI=id.   If  specified  in both places, the
              command line version is used.

       -biblio FILE
              Specifies the bibliographic file name.  This param-
              eter  can  also  be set in the file .mkisofsrc with
              BIBLO=filename.  If specified in both  places,  the
              command line version is used.

       -b eltorito_boot_image
              Specifies  the  path and filename of the boot image
              to be used when making an "El Torito" bootable  CD.
              The  pathname  must  be relative to the source path
              specified to mkhybrid.  This option is required  to
              make a bootable CD.  The boot image must be exactly
              the size of either a  1.2,  1.44,  or  a  2.88  meg
              floppy, and mkhybrid will use this size when creat-
              ing the output iso9660 filesystem.  It  is  assumed
              that  the first 512 byte sector should be read from
              the boot image (it is essentially emulating a  nor-
              mal floppy drive).  This will work, for example, if
              the boot image is a LILO based boot floppy.

       -B 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.  There may be empty fields  in  the  comma
              separated  list.  This option is required to make a
              bootable CD for Sun sparc systems.  If  the  -B  or
              -sparc-boot  option  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 slice 1 ... slice 7  for  the
              boot  images  that  have  been  specified with this
              option. Byte offset 512 ... 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 an
              ufs filesystem that is  used  primary  kernel  boot
              stage.

              The  implemented  boot  method  is  the boot method
              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. For this  reason,
              it  should  be  usable  for any OS that boots off a
              sparc system.

       -G generic_boot_image
              Specifies the path and filename of the generic boot
              image to be used when making a generic bootable CD.
              The generic_boot_image wil be placed on  the  first
              16  sectors of the CD. The first 16 sectors are the
              sectors that are located before the iso9660 primary
              volume descriptor.  If this option is used together
              with the -sparc-boot option,  the  Sun  disk  label
              will  overlay  the  first  512 bytes of the generic
              boot image.

       -hard-disk-boot
              Specifies that the boot image used  to  create  "El
              Torito" bootable CDs is a hard disk image. The hard
              disk image must begin with  a  master  boot  record
              that contains a single partition.

       -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.

       -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.

       -boot-load-seg segment_address
              Specifies  the  load  segment  address  of the boot
              image for no-emulation "El Torito" CDs.

       -boot-load-size load_sectors
              Specifies the number of "virtual"  (512-byte)  sec-
              tors  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.

       -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 modified in the source filesystem, so  make
              sure  to  make a copy if this file cannot be easily
              regenerated!  See the  BOOT INFO TABLE section  for
              a description of this table.

       -C last_sess_start,next_sess_start
              This option is needed when mkhybrid is used to cre-
              ate the image of a second session or a higher level
              session  for  a  multi session disk.  The option -C
              takes a pair of two numbers separated by  a  comma.
              The  first number is the sector number of the first
              sector in the last session of the disk that  should
              be  appended to.  The second number is the starting
              sector number of the  new  session.   The  expected
              pair   of  numbers  may  be  retrieved  by  calling
              cdrecord -msinfo ...  the -C  option  may  only  be
              uses in conjunction with the -M option.

       -c boot_catalog
              Specifies the path and filename of the boot catalog
              to be used when making an "El Torito" bootable  CD.
              The  pathname  must  be relative to the source path
              specified to mkhybrid.  This option is required  to
              make  a  bootable  CD.   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, as it  will  be
              excluded.  Usually  a  name  like "boot.catalog" is
              chosen.

       -copyright FILE
              Specifies the Copyright file name.  This  parameter
              can  also  be  set  in  the  file  .mkisofsrc  with
              COPY=filename.  If specified in  both  places,  the
              command line version is used.

       -d     Omit  trailing period from files that do not have a
              period.  This violates the ISO9660 standard, but it
              happens to work on many systems.  Use with caution.

       -D     Do not use deep directory relocation,  and  instead
              just  pack  them in the way we see them.  This vio-
              lates the ISO9660 standard, but it  works  on  many
              systems.  Use with caution.

       -f     Follow  symbolic links when generating the filesys-
              tem.  When this option  is  not  in  use,  symbolic
              links  will be entered using Rock Ridge if enabled,
              otherwise the file will be ignored.

       -gui   Switch the behaviour  for  a  GUI.  This  currently
              makes  the  output  more verbose but may have other
              effects in future.

       -hide glob
              Hide glob from being seen on the  ISO9660  or  Rock
              Ridge  directory.   glob is a shell wild-card-style
              pattern that must match any part of the filename or
              path.   Multiple  globs may be hidden (up to 1000).
              If glob matches a directory, then the  contents  of
              that  directory  will  be  hidden.   All the hidden
              files will still be written to the output CD  image
              file.  Should be used with the -hide-joliet option.

       -hide-list file
              A file containing a list of globs to be  hidden  as
              above.

       -hide-joliet glob
              Hide  glob from being seen on the Joliet directory.
              glob is a shell wild-card-style pattern  that  must
              match  any  part of the filename or path.  Multiple
              globs may be hidden (up to 1000).  If glob  matches
              a  directory,  then  the contents of that directory
              will be hidden.  All the hidden files will still be
              written  to  the  output  CD image file.  Should be
              used with the -hide option.

       -hide-joliet-list file
              A file containing a list of globs to be  hidden  as
              above.

       -hide-joliet-trans-tbl
              Hide  the  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.

       -hide-rr-moved
              Rename  the  directory RR_MOVED to .rr_moved in the
              Rock Ridge tree.  It seems to be impossible to com-
              pletely  hide  the RR_MOVED directory from the Rock
              Ridge tree.  This option  only  makes  the  visible
              tree better to understand for people who don't know
              what this directory is for.  If you need to have no
              RR_MOVED  directory  at  all, you should use the -D
              option. Note that in case that the  -D  option  has
              been  specified,  the  resulting  filesystem is not
              ISO9660 level-1 compliant and will not be  readable
              on MS-DOS.

       -l     Allow  full  32  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  32  characters.
              If  you  use this option, the disc may be difficult
              to use on a MS-DOS system, but this comes in  handy
              on  some  other  systems  (such as the Amiga).  Use
              with caution.

       -J     Generate Joliet directory records  in  addition  to
              regular iso9660 file names.  This is primarily use-
              ful when the discs are to be used on Windows-NT  or
              Windows-95  machines.    The  Joliet  filenames are
              specified in Unicode and each path component can be
              up to 64 Unicode characters long.

       -L     Allow filenames to begin with a period.  Usually, a
              leading dot is replaced with an underscore in order
              to maintain MS-DOS compatibility.

       -log-file log_file
              Redirect  all error, warning and informational mes-
              sages to log_file instead of the standard error.

       -m glob
              Exclude glob from being written to CDROM.  glob  is
              a  shell  wild-card-style  pattern  that must match
              part of the filename (not the path as  with  option
              -x).   Technically  glob  is  matched  against  the
              d->d_name part of the  directory  entry.   Multiple
              globs may be excluded (up to 1000).  Example:

              mkhybrid -o rom -m '*.o' -m core -m foobar

              would  exclude  all  files  ending  in ".o", called
              "core" or "foobar" to be copied to CDROM. Note that
              if  you had a directory called "foobar" it too (and
              of course all its descendants) would be excluded.

              NOTE: The -m and -x option description should  both
              be  updated, they are wrong.  Both now work identi-
              cal and use filename globbing. A file is exluded if
              either the last component matches or the whole path
              matches.

       -exclude-list file
              A file containing a list of globs to be exclude  as
              above.

       -M path
              or

       -M 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 dev=
              parameter of cdrecord.  The output of mkhybrid will
              be  a  new  session which should get written to the
              end of the image specified in -M.   Typically  this
              requires  multi-session capability for the recorder
              and cdrom drive that you are  attempting  to  write
              this  image  to.   This  option may only be used in
              conjunction with the -C option.

       -N     Omit version numbers from ISO9660 file names.  This
              may violate the ISO9660 standard, but no one really
              uses the version numbers anyway.  Use with caution.

       -nobak

       -no-bak
              Do  not  include  backup files files on the iso9660
              filesystem.  If the -no-bak  option  is  specified,
              files that contain the characters '~' or '#' or end
              in '.bak' will not be included (these are typically
              backup files for editors under unix).

       -no-rr Do  not use the Rock Ridge attributes from previous
              sessions.  This may  help  to  avoid  getting  into
              trouble  when mkisofs finds illegal Rock Ridge sig-
              natures on an old session.

       -no-split-symlink-components
              Don't split the SL components, but begin a new Con-
              tinuation  Area  (CE)  instead. This may waste some
              space, but the SunOS 4.1.4 cdrom driver has  a  bug
              in  reading split SL components (link_size = compo-
              nent_size instead of link_size +=  component_size).

       -no-split-symlink-fields
              Don't split the SL fields, but begin a new Continu-
              ation 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 SL fields (a `/' can be
              dropped).

       -o filename
              is  the  name  of  the  file  to  which the iso9660
              filesystem image should be written.  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 special  device
              for  a  regular  disk drive, in which case the disk
              partition can be mounted  and  examined  to  ensure
              that the premastering was done correctly.

       -path-list file
              A  file  containing  a list of filespec directories
              and filenames to be added to the  ISO9660  filesys-
              tem. This list of filespecs are processed after any
              that appear on the command line. If the argument is
              -, then the list is read from the standard input.

       -P publisher_id
              Specifies  a  text string that will be written into
              the volume header.  This should describe  the  pub-
              lisher of the CDROM, usually with a mailing address
              and phone number.  There is space on the  disc  for
              128  characters of information.  This parameter can
              also be set in the file .mkisofsrc with PUBL=.   If
              specified  in both places, the command line version
              is used.

       -p preparer_id
              Specifies a text string that will be  written  into
              the  volume  header.  This should describe the pre-
              parer of the CDROM, usually with a mailing  address
              and  phone  number.  There is space on the disc for
              128 characters of information.  This parameter  can
              also  be set in the file .mkisofsrc with PREP=.  If
              specified in both places, the command line  version
              is used.

       -print-size
              Print  estimated  filesystem  size  and  exit. This
              option is needed for Disk At  Once  mode  and  with
              some   CD-R   drives   when  piping  directly  into
              cdrecord.  In this case it is needed  to  know  the
              size  of  the  filesystem before the actual CD-cre-
              ation is done.  The option  -print-size  allows  to
              get  this  size  from  a "dry-run" before the CD is
              actually written.

       -quiet This makes mkhybrid even less verbose.  No progress
              output will be provided.

       -R     Generate  SUSP  and RR records using the Rock Ridge
              protocol to  further  describe  the  files  on  the
              iso9660 filesystem.

       -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 executa-
              bles 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 CD-Rom 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 file system, and set-id  bits
              are not desirable for uid 0 or gid 0.  When used on
              Win32, the execute bit is set on all files.

       -sysid ID
              Specifies the system ID.  This parameter  can  also
              be  set in the file .mkisofsrc with SYSI=system_id.
              If specified in both places, the command line  ver-
              sion is used.

       -T     Generate  a file TRANS.TBL in each directory on the
              CDROM, which can be used on non-Rock Ridge  capable
              systems  to  help establish the correct file names.
              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.

       -table-name TABLE_NAME
              Alternative   translation   table  file  name  (see
              above). Implies the -T option.  If you are creating
              a multi-session image you must use the same name as
              in the previous session.

       -U     Allows "Untranslated" filenames, completely violat-
              ing  the  iso9660 standards described above. Forces
              on the -d, -l, -L and -N  flags,  and  also  allows
              more  than  one  '.'  character in the filename, as
              well as mixed case filenames.  This  is  useful  on
              HP-UX  system,  where  the built-in CDFS filesystem
              does not recognize ANY extensions. Use with extreme
              caution.

       -V volid
              Specifies  the  volume ID (volume name or label) to
              be written into the master block.   This  parameter
              can  also  be  set  in  the  file  .mkisofsrc  with
              VOLI=id.  If specified in both places, the  command
              line  version  is  used.  Note that if you assign a
              volume ID, this is the name that will  be  used  as
              the  mount point used by the Solaris volume manage-
              ment system and the name that is  assigned  to  the
              disc on a Windows or Mac platform.

       -volset ID
              Specifies  the  volset ID.  This parameter can also
              be set in the file .mkisofsrc with  VOLS=volset_id.
              If  specified in both places, the command line ver-
              sion is used.

       -volset-size #
              Sets the volume set size to #.  The volume set size
              is  the  number  of CD's that are in a CD set.  The
              -volset-size option may be used to create CD's that
              are  part  of  e.g. a Operation System installation
              set of CD's.  The option -volset-size must be spec-
              ified before -volset-seqno on each command line.

       -volset-seqno #
              Sets the volume set sequence number to #.  The vol-
              ume set sequence number is the index number of  the
              current  CD  in  a CD set.  The option -volset-size
              must be specified before -volset-seqno on each com-
              mand line.

       -v     Verbose  execution.  If  given twice on the command
              line, extra debug information will be printed.

       -x path
              Exclude path from being  written  to  CDROM.   path
              must  be  the  complete  pathname that results from
              concatenating the pathname given  as  command  line
              argument  and  the path relative to this directory.
              Multiple paths may be excluded (up to 1000).  Exam-
              ple:

              mkhybrid -o cd -x /local/dir1 -x /local/dir2 /local

              NOTE: The -m and -x option description should  both
              be  updated, they are wrong.  Both now work identi-
              cal and use filename globbing. A file is exluded if
              either the last component matches or the whole path
              matches.

       -z     Generate special  SUSP  records  for  transparently
              compressed files.  This is only of use and interest
              for hosts that support  transparent  decompression.
              This  is  an experimental feature, and no hosts yet
              support this, but there are ALPHA patches for Linux
              that can make use of this feature.


HFS OPTIONS

       -hfs   Create an ISO9660/HFS hybrid CD. This option should
              be used in conjuction with the -map, -magic  and/or
              the various double dash options given below.

       -apple Create an ISO9660 CD with Apple's extensions. Simi-
              lar to the  -hfs  option,  except  that  the  Apple
              Extensions to ISO9660 are added instead of creating
              an HFS hybrid volume.

       -map mapping_file
              Use the 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
              CREATOR/TYPE section below.

       -magic magic_file
              The CREATOR and TYPE information is set by using  a
              file's magic number (usually the first few bytes of
              a file). The 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
              the -map option. See the CREATOR/TYPE section below
              for more details.

       -probe Search the contents of  files  for  all  the  known
              Apple/Unix  file  formats.   See the MACINTOSH FILE
              FORMATS section below for more about these formats.
              However,  the  only  way to check for MacBinary and
              AppleSingle files is to open and read them.  There-
              fore  this  option may increase processing time. It
              is better to use one or more  double  dash  options
              given  below  if  the Apple/Unix formats in use are
              known.

       -no-desktop
              Do not create (empty) Desktop files. New HFS  Desk-
              top  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.

       -mac-name
              Use the HFS filename as the starting point for  the
              ISO9660,  Joliet and Rock Ridge file names. See the
              MACINTOSH FILE NAMES section below for more  infor-
              mation.

       -boot-hfs-file driver_file
              Installs  the  driver_file  that  may  make  the CD
              bootable on a Macintosh. See the  HFS  BOOT  DRIVER
              section below. (Alpha).

       -part  Generate  an  HFS  partition  table. By default, no
              partition table is generated, but some older Macin-
              tosh  CDROM  drivers need an HFS partition table on
              the CDROM to be able to recognize a hybrid CDROM.

       -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).

       -cluster-size size
              Set  the size in bytes of the cluster or allocation
              units of PC Exchange files. Implies the  --exchange
              option.  See  the  MACINTOSH  FILE  FORMATS section
              below.

       -hide-hfs glob
              Hide glob from the HFS volume. The file  or  direc-
              tory  will still exist in the ISO9660 and/or Joliet
              directory.  glob is a shell wild-card-style pattern
              that  must  match any part of the filename Multiple
              globs may be excluded (up to 1000).  Example:

              mkhybrid -o rom -hfs -hide-hfs '*.o' -hide-hfs foo-
              bar

              would  exclude  all  files ending in ".o" or called
              "foobar" from the HFS volume. Note that if you  had
              a  directory  called "foobar" it too (and of course
              all its descendants) would be excluded.   The  glob
              can  also  be  a  path  name relative to the source
              directories given on the command line. Example:

              mkhybrid -o rom -hfs -hide-hfs src/html src

              would exclude just the  file  or  directory  called
              "html"  from the "src" directory. Any other file or
              directory called "html" in the  tree  will  not  be
              excluded.   Should  be  used  with the -hide and/or
              -hide-joliet options.

       -hide-hfs-list file
              A file containing a list of globs to be  hidden  as
              above.

       -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 volid used with the -V option

       -icon-position
              Use  the  icon  position information, if it exists,
              from the Apple/Unix file.   Information  to  decode
              this  data from UShare or XINET (SGI) files is cur-
              rently unavailable. This option may become  set  by
              default in the future. (Alpha).

       -prep-boot FILE
              PReP  boot  image  file.  Up  to 4 are allowed. See
              README.prep_boot (Alpha)

       --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 double dash options are given.

       --netatalk
              Look for NETATALK Macintosh files

       --double
              Look for AppleDouble Macintosh files

       --ethershare
              Look for Helios EtherShare Macintosh files

       --ushare
              Look for IPT UShare Macintosh files


       --exchange
              Look for PC Exchange Macintosh files

       --sgi  Look for SGI Macintosh files

       --xinet
              Look for XINET Macintosh files

       --macbin
              Look for MacBinary Macintosh files

       --single
              Look for AppleSingle Macintosh files

       --dave Look  for  Thursby  Software Systems DAVE Macintosh
              files

       --sfm  Look for Microsoft's Services for  Macintosh  files
              (NT only) (Alpha)



CREATOR/TYPE

       A  Macintosh  file  has  two properties associated with it
       which define which application created the file, the  CRE-
       ATOR  and what data the file contains, the TYPE.  Both are
       (exactly) 4 letter strings. Usually this allows  a  Macin-
       tosh 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.

       The CREATOR and TYPE information is stored in all the var-
       ious Apple/Unix encoded files.  For other files it is pos-
       sible to base the  CREATOR  and  TYPE  on  the  filename's
       extension  using  a  mapping file (the -map option) and/or
       using the magic number (usually a signature in  the  first
       few  bytes)  of  a file (the -magic option). If both these
       options are given, then their order on the command line is
       important. If the -map option is given first, then a file-
       name extension match is attempted before  a  magic  number
       match.  However, if the -magic option is given first, then
       a magic number match is attempted before a filename exten-
       sion match.

       If  a  mapping  or  magic file is not used, or no match is
       found then the default CREATOR and TYPE  for  all  regular
       files  can be set by using entries in the .mkisofsrc file,
       otherwise the default CREATOR  and  TYPE  are  'unix'  and
       'TEXT'.

       The  format of the mapping file is the same afpfile format
       as used by aufs.  This  file  has  five  columns  for  the
       extension,  file  translation,  CREATOR, TYPE and Comment.
       Lines starting with the '#' character  are  comment  lines
       and are ignored. An example file would be like:

       # Example filename mapping file
       #
       # EXTN   XLate   CREATOR   TYPE     Comment
       .tif     Raw     '8BIM'    'TIFF'   "Photoshop TIFF image"
       .hqx     Ascii   'BnHq'    'TEXT'   "BinHex file"
       .doc     Raw     'MSWD'    'WDBN'   "Word file"
       .mov     Raw     'TVOD'    'MooV'   "QuickTime Movie"
       *        Ascii   'ttxt'    'TEXT'   "Text file"

       Where:

              The  first  column  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.

              The Xlate column defines the type of text  transla-
              tion  between  the  Unix  and  Macintosh file it is
              ignored by mkhybrid, but is kept to  be  compatible
              with aufs(1).  Although mkhybrid does not alter the
              contents of a file, if a binary file has it's  TYPE
              set as 'TEXT', it may be read incorrectly on a Mac-
              intosh. Therefore a better choice for  the  default
              TYPE may be '????'

              The  CREATOR and TYPE keywords must be 4 characters
              long and enclosed in single quotes.

              The comment field is enclosed in double quotes - it
              is  ignored by mkhybrid, but is kept to be compati-
              ble with aufs.

       The format of the magic file is almost  identical  to  the
       magic(4) file used by the Linux file(1) command - the rou-
       tines for reading and decoding the magic file are based on
       the Linux file(1) command.

       This file has four tab separated columns for the byte off-
       set, type, test and message.  Lines starting with the  '#'
       character  are  comment  lines and are ignored. An example
       file would be like:

       # 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    \037\235   LZIV ZIVU  standard unix compress
       0       string    \037\213   GNUz ZIVU  gzip compressed data
       0       string    %!         ASPS TEXT  Postscript

       0       string    \004%!     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)

       The format of the file is described in  the  magic(4)  man
       page.  The  only difference here is that for each entry in
       the magic file, the message for the initial offset must be
       4  characters for the CREATOR followed by 4 characters for
       the TYPE - 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  ini-
       tial offset lines are used.

       Using  the  -magic  option may significantly increase pro-
       cessing time as each file has to opened and read  to  find
       it's magic number.

       In  summary,  for all files, the default CREATOR is 'unix'
       and the default TYPE is 'TEXT'.  These can be  changed  by
       using entries in the .mkisofsrc file.

       If  the  a  file is in one of the known Apple/Unix formats
       (and the format has been selected), then the  CREATOR  and
       TYPE  are  taken  from the values stored in the Apple/Unix
       file.

       Other files can have their CREATOR and TYPE set from their
       file name extension (the -map option), or their magic num-
       ber (the -magic option). If the default match is  used  in
       the  mapping  file, then these values override the default
       CREATOR and TYPE.

       A   full   CREATOR/TYPE   database   can   be   found   at
       http://www.angelfire.com/il/szekely/index.html



MACINTOSH FILE FORMATS

       Macintosh  files  have  two  parts  called  the  Data  and
       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 - probably the most impor-
       tant are the TYPE and CREATOR. Again Unix has  no  concept
       of these types of attributes.

       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.

       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  finder
       info).    Unfortunately,  it  seems  that  every  software
       package that stores Macintosh files on Unix has  chosen  a
       completely different storage method.

       The  Apple/Unix formats that mkhybrid (partially) supports
       are:

       CAP AUFS format
              Data fork stored in a file. Resource fork in subdi-
              rectory  .resource with same filename as data fork.
              Finder info in .finderinfo subdirectory  with  same
              filename.

       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/finderinfo
              stored  in subdirectory .AppleDouble with same name
              as data fork.

       AppleSingle
              Data structures similar to above, except both forks
              and finder info are stored in one file.

       Helios EtherShare
              Data  fork  stored  in  a  file.  Resource fork and
              finder info together  in  subdirectory  .rsrc  with
              same filename as data fork.

       IPT UShare
              Very  similar  to  the  EtherShare  format, but the
              finder info is stored slightly differently.

       MacBinary
              Both forks and finder info stored in one file.

       Apple PC Exchange
              Used by Macintoshes to store  Apple  files  on  DOS
              (FAT)  disks.  Data fork stored in a file. Resource
              fork    in    subdirectory     resource.frk     (or
              RESOURCE.FRK).  Finder  info  as one record in file
              finder.dat (or FINDER.DAT). Separate finder.dat for
              each data fork directory.

              Note: mkhybrid 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
              the -cluster-size option.  The cluster  or  alloca-
              tion  size  can  be  found by using the DOS utility
              CHKDSK.

              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  msdos
              (not vfat) when using Linux.

       SGI/XINET
              Used  by  SGI  machines  when they mount HFS disks.
              Data fork stored in a file. Resource fork in subdi-
              rectory  .HSResource with same name. Finder info as
              one record in file .HSancillary. Separate .HSancil-
              lary for each data fork directory.

       Thursby Software Systems DAVE
              Allows  Macintoshes  to  store  Apple  files on SMB
              servers.  Data fork stored in a file. Resource fork
              in  subdirectory resource.frk. Uses the AppleDouble
              format to store resource fork.

       Services for Macintosh
              Format of  files  stored  by  NT  Servers  on  NTFS
              filesystems.  Data  fork  is  stored as "filename".
              Resource fork stored as a NTFS stream called "file-
              name:AFP_Resource".  The finder info is stored as a
              NTFS stream  called  "filename:Afp_AfpInfo".  These
              streams are normally invisible to the user.

              Warning:  mkhybrid  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, then NT converts these characters to  Private
              Use Unicode characters. The characters are: " * / <
              > ?  | also a space or period if  it  is  the  last
              character of the file name, character codes 0x01 to
              0x1f (control characters) and Apple' apple logo.

              Unfortunately, these private Unicode characters are
              not  readable by the mkhybrid NT executable. There-
              fore any file or directory  name  containing  these
              characters will be ignored - including the contents
              of any such directory.

       mkhybrid 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 -  see  the  MACINTOSH  FILE  NAMES  section
       below.

       When  using  the  -apple  option, the TYPE and CREATOR are
       stored in the optional System Use or  SUSP  field  in  the
       ISO9660  Directory  Record  -  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 exist-
       ing Rock Ridge attributes (i.e. to get  the  Apple  exten-
       sions you get the Rock Ridge extensions as well).

       The  Apple  extensions  require  the  resource  fork to be
       stored as an ISO9660 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

       When  using  the  -hfs  option,  the TYPE and CREATOR plus
       other finder info, are stored in a separate HFS directory,
       not  visible on the ISO9660 volume. The HFS directory ref-
       erences the same data and resource  fork  files  described
       above.

       In most cases, it is better to use the -hfs option instead
       of the -apple option, 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 - important when the total  size
       of the source files is approaching 650MB.





MACINTOSH FILE NAMES

       Where  possible,  the  HFS filename that is stored with an
       Apple/Unix file is used for the HFS part of the  CD.  How-
       ever, not all the Apple/Unix encodings store the HFS file-
       name with the finderinfo. In these cases, the  Unix  file-
       name  is  used  - with escaped special characters. Special
       characters include '/' and characters with codes over 127.

       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 ":".

       If  mkhybrid  can't find an HFS filename, then it uses the
       Unix name, with any %xx or :xx characters (xx ==  two  hex
       digits)  converted to a single character code. If "xx" are
       not hex digits ([0-9a-fA-F]), then they are left  alone  -
       although any remaining ":" is converted to "%" as colon is
       the HFS directory separator. Care must  be  taken,  as  an
       ordinary Unix file with %xx or :xx will also be converted.
       e.g.

       This:2fFile   converted to This/File

       This:File     converted to This%File

       This:t7File   converted to This%t7File

       Although HFS filenames appear to support upper  and  lower
       case letters, the filesystem is case insensitive. i.e. the
       filenames "aBc" and "AbC" are the same. If a file is found
       in  a directory with the same HFS name, then mkhybrid will
       attempt, where possible, to make a unique name  by  adding
       '_' characters to one of the filenames.

       If  an  HFS  filename exists for a file, then mkhybrid can
       use this name as  the  starting  point  for  the  ISO9660,
       Joliet  and  Rock  Ridge  filenames  using  the  -mac-name
       option. Normal Unix files without an HFS name  will  still
       use their Unix name.  e.g.

       If  a MacBinary (or PC Exchange) file is stored as someim-
       age.gif.bin on the Unix filesystem,  but  contains  a  HFS
       file  called  someimage.gif,  then  this  is the name that
       would appear on the HFS part of the CD. However, as  mkhy-
       brid  uses  the  Unix  name  as the starting point for the
       other names, then the ISO9660 name generated will probably
       be SOMEIMAG.BIN and the Joliet/Rock Ridge would be someim-
       age.gif.bin.  Although the actual data (in this case) is a
       GIF  image.  This  option will use the HFS filename as the
       starting point and  the  ISO9660  name  will  probably  be
       SOMEIMAG.GIF  and  the  Joliet/Rock Ridge would be someim-
       age.gif.

       Using the -mac-name option will not  currently  work  with
       the  -T  option  -  the  Unix  name  will  be  used in the
       TRANS.TBL file, not the Macintosh name.

       The existing mkisofs code  will  filter  out  any  illegal
       characters  for  the  ISO9660 and Joliet filenames, but as
       mkisofs expects to be dealing directly with Unix names, it
       leaves  the Rock Ridge names as is.  But as '/' is a legal
       HFS filename character, the -mac-name option  coverts  '/'
       to a '_' in a Rock Ridge filenames.

       If  the  Apple  extensions are used, then only the ISO9660
       filenames will appear on the Macintosh.  However,  as  the
       Macintosh  ISO9660 drivers can use Level 2 filenames, then
       you can use the -l option without problems on a  Macintosh
       -   still   take   care   over   the  names,  for  example
       this.file.name will be converted to  THIS.FILE  i.e.  only
       have  one  '.',  also  filename  abcdefgh  will be seen as
       ABCDEFGH but abcdefghi will be seen  as  ABCDEFGHI.   i.e.
       with  a '.' at the end - don't know if this is a Macintosh
       problem or mkisofs/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  file-
       names...



BOOT INFORMATION TABLE

       When  the  -boot-info-table  option is given, mkisofs will
       modify the boot file specified by the -b option by insert-
       ing  a 56-byte "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.

       The  format  of this table is as follows; all integers are
       in section 7.3.1 ("little endian") format.

         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

       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).



HFS BOOT DRIVER

       It  may  be  possible  to make the hybrid CD bootable on a
       Macintosh.

       A bootable HFS CD requires an Apple CD-ROM (or compatible)
       driver, a bootable HFS partition and the necessary System,
       Finder, etc. files.

       A driver can be obtained from any other Macintosh bootable
       CD-ROM  using the apple_driver utility. This file can then
       be used with the -boot-hfs-file option.

       The HFS partition (i.e. the hybrid disk in our case)  must
       contain  a  suitable System Folder, again from another CD-
       ROM or disk.

       For a partition to be bootable, it  must  have  it's  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 - unfortunately I don't
       know the full spec for the boot  block,  so  I'm  guessing
       that the following will work OK.

       Therefore, the utility 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
       mkhybrid.

       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.




CONFIGURATION

       mkhybrid  looks for the .mkisofsrc file, first in the cur-
       rent working directory, then in the user's home directory,
       and  then in the directory in which the mkhybrid binary is
       stored.  This file is assumed to contain a series of lines
       of  the  form "TAG=value", and in this way you can specify
       certain options.  The case of the tag is not  significant.
       Some  fields  in the volume header are not settable on the
       command line, but can be altered  through  this  facility.
       Comments  may  be  placed  in this file, using lines which
       start with a hash (#) character.

       APPI   The  application  identifier  should  describe  the
              application  that  will  be  on the disc.  There is
              space on the disc for 128  characters  of  informa-
              tion.   May be overridden using the -A command line
              option.

       COPY   The copyright information, often the name of a file
              on the disc containing the copyright notice.  There
              is space in the disc for 37 characters of  informa-
              tion.   May be overridden using the -copyright com-
              mand line option.

       ABST   The abstract information, often the name of a  file
              on the disc containing an abstract.  There is space
              in the disc for 37 characters of information.   May
              be  overridden  using  the  -abstract  command line
              option.

       BIBL   The bibliographic information, often the name of  a
              file  on the disc containing a bibliography.  There
              is space in the disc for 37 characters of  informa-
              tion.   May  be overridden using the -bilio command
              line option.

       PREP   This should describe the  preparer  of  the  CDROM,
              usually  with  a  mailing address and phone number.
              There is space on the disc for  128  characters  of
              information.   May  be overridden using the -p com-
              mand line option.

       PUBL   This should describe the publisher  of  the  CDROM,
              usually  with  a  mailing address and phone number.
              There is space on the disc for  128  characters  of
              information.   May  be overridden using the -P com-
              mand line option.

       SYSI   The System Identifier.  There is space on the  disc
              for   32   characters   of   information.   May  be
              overridden using the -sysid command line option.

       VOLI   The Volume Identifier.  There is space on the  disc
              for  32 characters of information.  May be overrid-
              den using the -V command line option.

       VOLS   The Volume Set Name.  There is space  on  the  disc
              for 278 characters of information.  May be overrid-
              den using the -volset command line option.

       TYPE   The default  TYPE  for  Macintosh  files.  Must  be
              exactly 4 characters.

       CREATOR
              The  default  CREATOR  for Macintosh files. Must be
              exactly 4 characters.

       mkhybrid can also  be  configured  at  compile  time  with
       defaults   for   many  of  these  fields.   See  the  file
       defaults.h.



EXAMPLES

       To create a HFS hybrid CD with the Joliet and  Rock  Ridge
       extensions of the source directory cd_dir:

       % mkhybrid -o cd.iso -r -J -hfs cd_dir

       To create a HFS hybrid CD from the source directory cd_dir
       that contains Netatalk Apple/Unix files:

       % mkhybrid -o cd.iso --netatalk cd_dir

       To create a  HFS  hybrid  CD  from  the  source  directory
       cd_dir,  giving  all files CREATOR and TYPES based on just
       their filename extensions listed in the file "mapping".:

       % mkhybrid -o cd.iso -map mapping cd_dir

       To create a CD with the  'Apple  Extensions  to  ISO9660',
       from  the  source direcories cd_dir and 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 "magic":

       % mkhybird -o cd.iso -apple -magic magic -probe \
               cd_dir another_dir

       The following example puts different files on the CD  that
       all have the name README, but have different contents when
       seen as a ISO9660/RockRidge, Joliet or HFS CD.

       Current directory contains:

       % ls -F
       README.hfs     README.joliet  README.unix    cd_dir/

       The following command puts the contents of  the  directory
       "cd_dir" on the CD along with the three README files - but
       only one will be seen from each of the three filesystems:

       % mkhybrid -o cd.iso -hfs -J -r \
               -hide README.hfs -hide README.joliet \
               -hide-joliet README.hfs -hide-joliet README.unix \
               -hide-hfs README.joliet -hide-hfs README.unix \
               README=README.hfs README=README.joliet \
               README=README.unix cd_dir

       i.e. the file README.hfs will be seen as README on the HFS
       CD and the other two README files will  be  hidden.  Simi-
       larly for the Joliet and ISO9660/RockRidge CD.

       There  are  probably  all sorts of stange results possible
       with combinations of the hide options ...



AUTHOR

       mkisofs is not based on the standard mk*fs tools for unix,
       because  we  must generate a complete  copy of an existing
       filesystem on a disk in the  iso9660 filesystem.  The name
       mkisofs is probably a bit of a misnomer, since it not only
       creates the filesystem, but it also populates it as  well.

       Eric       Youngdale       <ericy@gnu.ai.mit.edu>       or
       <eric@andante.org> wrote both the Linux isofs9660 filesys-
       tem  and  the  mkisofs  utility.   The  copyright  for the
       mkisofs utility is held by Yggdrasil  Computing,  Incorpo-
       rated.

       mkhybrid is based on mkisofs and works in exactly the same
       way as mkisofs without the HFS options. The change in name
       is  to signify that it does something extra. If you do not
       need the HFS options, then  you  should  really  be  using
       mkisofs.

       HFS  hybrid  code  Copyright (C) James Pearson 1997, 1998,
       1999, 2000
       libhfs code Copyright (C) 1996, 1997 Robert Leslie
       libfile code Copyright (C) Ian F. Darwin 1986, 1987, 1989,
       1990, 1991, 1992, 1994, 1995.




NOTES

       Mkhybrid  may  safely  be installed suid root. This may be
       needed to allow mkhybrid to read the previous session when
       creating a multi session image.


BUGS

       o      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.

       o      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 multi-session mode.

       o      Does not properly  read  relocated  directories  in
              multi-session 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.

       o      Does not re-use RR_MOVED when  doing  multi-session
              from TRANS.TBL

       o      Does  not  create  whole_name entry for RR_MOVED in
              multi-session mode.

       There may be some other ones.  Please, report them to  the
       author.




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 mkhybrid will work as expected (although I
       haven't had a major problem yet). Most of the HFS features
       work  fine,  however, some are not fully tested. These are
       marked as Alpha above.

       Although HFS filenames appear to support upper  and  lower
       case letters, the filesystem is case insensitive. i.e. the
       filenames "aBc" and "AbC" are the same. If a file is found
       in  a directory with the same HFS name, then mkhybrid will
       attempt, where possible, to make a unique name  by  adding
       '_' characters to one of the filenames.

       HFS  file/directory  names that share the first 31 charac-
       ters have _N' (N == decimal number)  substituted  for  the
       last few characters to generate unique names.

       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 "oldname" is to added to the CD, then
       you can not use the command line:

              mkhybrid -o output.raw -hfs newname=oldname cd_dir

       mkhybrid will be unable to decode "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.

       When creating an HFS volume with the multisession options,
       -M  and  -C, only files in the last session will be in the
       HFS volume. i.e. mkhybrid can not add existing files  from
       previous sessions to the HFS volume.

       Symbolic  links  (as with all other non-regular files) are
       not added to the HFS directory.

       Hybrid volumes may be larger  than  pure  ISO9660  volumes
       containing the same data.

       The  resulting  hybrid  volume  can  be accessed on a Unix
       machine  by  using  the  hfsutils  routines.  However,  no
       changes  should  be  made to the contents of the volume as
       it's not a "real" HFS volume.

       Using the -mac-name option will not  currently  work  with
       the  -T  option  -  the  Unix  name  will  be  used in the
       TRANS.TBL file, not the Macintosh name.

       Although mkhybrid does not alter the contents of  a  file,
       if  a  binary  file has it's TYPE set as 'TEXT', it may be
       read incorrectly on a Macintosh. Therefore a better choice
       for the default TYPE may be '????'

       The -mac-boot-file option may not work at all...

       May not work with PC Exchange v2.2 or higher files (avail-
       able with MacOS 8.1).  DOS media  containing  PC  Exchange
       files  should  be  mounted  as  type msdos (not vfat) when
       using Linux.

       The SFM format is only partially supported - see MACINTOSH
       FILE FORMATS section above.

       It is not possible to use the the -sparc-boot or -generic-
       boot  options  with  the  -boot-hfs-file   or   -prep-boot
       options.




SEE ALSO

       mkisofs(8), magic(5), apple_driver(8)


FUTURE IMPROVEMENTS

       Some sort of gui interface.


AVAILABILITY

       mkisofs  is available as part of the cdrecord package from
       ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/

       mkhybrid           is            available            from
       ftp://ftp.ge.ucl.ac.uk/pub/mkhfs    and    hfsutils   from
       ftp://ftp.mars.org/pub/hfs



MAILING LISTS

       If you want to actively take part on  the  development  of
       mkisofs  and/or mkhybrid, you may join the cdwriting mail-
       ing list by sending mail to:

               other-cdwrite-request@lists.debian.org

       and include the word subscribe  in  the  body.   The  mail
       address of the list is:

               cdwrite@lists.debian.org



MKHYBRID MAINTAINER

       James Pearson

       j.pearson@ge.ucl.ac.uk



MKISOFS MAINTAINER

       Joerg Schilling
       Seestr. 110
       D-13353 Berlin
       Germany

       Mail bugs and suggestions to:

       schilling@fokus.gmd.de     or     js@cs.tu-berlin.de    or
       joerg@schily.isdn.cs.tu-berlin.de