Provided by: udftools_2.0-2_amd64 bug

NAME

       mkudffs - create an UDF filesystem

SYNOPSIS

       mkudffs [ options ] device [ blocks-count ]

DESCRIPTION

       mkudffs  is  used  to  create  a UDF filesystem on a device (usually a disk).  device is the special file
       corresponding to the device (e.g.  /dev/hdX) or file image. blocks-count is the number of blocks  on  the
       device.  If  omitted,  mkudffs  automagically figures the filesystem size.  The order of options matters.
       Encoding option must be first and options to override default settings implied by the media type  or  UDF
       revision should be after the option they are overriding.

OPTIONS

       -h,--help
              Display the usage and list of options.

       -l,--label= label
              Specify  the  UDF  label.  UDF  label  is synonym for specifying both --lvid and --vid options. If
              omitted, mkudffs label is LinuxUDF.  (Option available since mkudffs 1.1)

       -u,--uuid= uuid
              Specify the UDF uuid. Must be exactly 16 hexadecimal lowercase digits and is  used  for  first  16
              characters  of --fullvsid option. If omitted, mkudffs uuid is generated from local time and random
              number.  (Option available since mkudffs 1.1)

       -b,--blocksize= block-size
              Specify the size of blocks in bytes. Valid block size for a UDF filesystem  is  power  of  two  in
              range  from  512  to  32768  and  must  match  a device logical (sector) size. If omitted, mkudffs
              block-size is set to device logical block (sector) size. If logical block (sector) size is unknown
              (e.g.  when  creating  disk  image)  then for --media-type=hd is used block-size 512 and for other
              media types 2048.

       -m,--media-type= media-type
              Specify the media type. Must be specified before --udfrev.  Valid media types are:

                   hd (default)    HD (Hard Disk)

                   worm            WORM (Write Once Read Many)

                   mo              MO (Magneto Optical)

                   cd              CD-ROM (CD Read-Only Memory)

                   cdr             CD-R (CD Recordable)

                   cdrw            CD-RW (CD Read-Write)

                   dvd             DVD-ROM (DVD Read-Only Memory)

                   dvdr            DVD-R (DVD Recordable)

                   dvdrw           DVD-RW (DVD Read-Write)

                   dvdram          DVD-RAM (DVD Random Access Memory)

                   bdr             BD-R (Blu-ray Disc Recordable)

              (Short option variant -m and values cd, dvdr, bdr are available since mkudffs 2.0)

       -r,--udfrev= udf-revision
              Specify the UDF revision to use, either in  hexadecimal  (e.g.  0x0201)  or  decimal  (e.g.  2.01)
              format.  Valid  revisions  arei  1.02,  1.50,  2.00,  2.01,  2.50  and  2.60.  If omitted, mkudffs
              udf-revision is 2.01, except for Blu-ray Discs which is 2.50. UDF revisions higher then  2.01  are
              experimental. Option must be specified after --media-type. (Values in decimal format and revisions
              higher then 2.01 are supported since mkudffs 2.0)

       -n,--no-write
              Not really, do not write to device. Just simulate and  display  what  would  happen  with  device.
              Useful  for  determining  calculated  location  of  different UDF blocks.  (Option available since
              mkudffs 2.0)

       --new-file
              Create a new image file specified by device with blocks-count and fail if file already exists.  If
              omitted,  mkudffs  creates a new image file only in case it does not exist yet.  (Option available
              since mkudffs 2.0)

       --lvid= logical-volume-identifier
              Specify the Logical Volume Identifier. If omitted, mkudffs logical-volume-identifier is  LinuxUDF.
              Most UDF implementations uses this identifier as a disk label.

       --vid= volume-identifier
              Specify the Volume Identifier. If omitted, mkudffs volume-identifier is LinuxUDF.

       --vsid= volume-set-identifier
              Specify the 17.-127. character of Volume Set Identifier. If omitted, mkudffs volume-set-identifier
              is LinuxUDF.

       --fsid= file-set-identifier
              Specify the File Set Identifier. If omitted, mkudffs file-set-identifier is LinuxUDF.

       --fullvsid= full-volume-set-identifier
              Specify the full Volume Set Identifier. Overwrite previous  --uuid  and  --vsid  options.  (Option
              available since mkudffs 1.1)

       --uid= uid
              Specify  the  uid  of the root (/) directory. If omitted, mkudffs uid is 0. Special value -1 means
              invalid or not specified uid.  (Option available since mkudffs 1.1)

       --gid= gid
              Specify the gid of the root (/) directory. If omitted, mkudffs gid is 0. Special  value  -1  means
              invalid or not specified gid.  (Option available since mkudffs 1.1)

       --mode= mode
              Specify  permissions  in  octal  mode  bits of the root (/) directory. If omitted, mkudffs mode is
              0755. (Option available since mkudffs 2.0)

       --bootarea= fill
              Specify how to fill UDF boot area which is first 32kB of disk and  is  not  used  by  UDF  itself.
              Option  mbr  make  sense only when running mkudffs on whole disk, not on just one partition. Valid
              options are:

                   preserve        preserve existing UDF boot area, do not touch  it  (default  for  media  type
                                   different from hd)

                   erase           erase  existing UDF boot area, fill it by zeros (default for hd media type on
                                   partitions and on removable disks)

                   mbr             put MBR table with one partition which  starts  at  sector  0  (includes  MBR
                                   itself) and spans whole disk device, needed only for non-removable hard disks
                                   used on Microsoft Windows systems (default for hd media type on non-removable
                                   hard disk without partitions), see section WHOLE DISK VS PARTITION

              (Option available since mkudffs 2.0)

       --strategy= strategy
              Specify  the  allocation  strategy  to  use.  Valid strategies are 4 and 4096. If omitted, mkudffs
              strategy is based on the --media-type.

       --spartable, --spartable= spartable-number
              Enable usage Sparing Table. Optionally specify also the number of sparing  tables.  Valid  numbers
              are  1-4.  When  spartable-number  is  omitted  then  two tables are written to disc. If option is
              omitted then usage of Sparing Table depends on media  type.  (Option  prior  to  mkudffs  2.0  was
              available only for cdrw media type)

       --sparspace= num-of-entires
              Specify the number of entries in Sparing Table. If omitted, default number of entries is 1024, but
              depends on media type. (Option available since mkudffs 2.0)

       --packetlen= length
              Packet length in number of blocks for Sparing Table. It specify also size of the Sparing Space. If
              omitted, default value for DVD discs 16 blocks, otherwise 32.

       --vat  Enable  usage  of Virtual Allocation Table (VAT). If omitted, usage depends on media type. (Option
              available since mkudffs 2.0)

       --closed
              Close disc with Virtual Allocation Table. AVDP is written also to the end of disc. By default disc
              with Virtual Allocation Table is not closed.

       --space= space
              Specify  the  Space  Set.  Unallocated  Space  Set is used for media which blocks may be allocated
              immediately. Freed Space Set is used for media which blocks needs to be specially  prepared/erased
              before allocation. In Space Table is stored list of unallocated extents. In Space Bitmap is stored
              bitmap of unallocated blocks. Not used for VAT.

                   freedbitmap     Freed Bitmap

                   freedtable      Freed Table

                   unallocbitmap   Unallocated Bitmap (default)

                   unalloctable    Unallocated Table

       --ad= ad
              Specify the Allocation Descriptors of the root (/) directory.

                   inicb           Allocation Descriptors in ICB (default)

                   short           Short Allocation Descriptors

                   long            Long Allocation Descriptors

       --noefe
              Don't Use Extended File Entries for the root (/) directory. Affects only UDF 2.00 or higher.  Must
              be specified after --udfrev.

       --locale
              Treat identifier string options as strings encoded according to current locale settings (default).
              Must be specified as first argument.  (Option available since mkudffs 2.0)

       --u8   Treat identifier string options as strings  encoded  in  8-bit  OSTA  Compressed  Unicode  format,
              equivalent to Latin1 (ISO-8859-1). Must be specified as first argument.

       --u16  Treat  identifier  string  options  as  strings  encoded in 16-bit OSTA Compressed Unicode format,
              equivalent to UCS-2BE. Note that it is not possible to include zero byte in command line  options,
              therefore  any  character which has at least one zero byte cannot be supplied (this applies to all
              Latin1 characters). Must be specified as first argument.

       --utf8 Treat identifier string options as strings encoded in UTF-8. Must be specified as first argument.

COMPATIBILITY

   OPERATING SYSTEMS SUPPORT
       UDF filesystem is natively supported by large amount of operating systems.  See  following  compatibility
       table:

       ┌────────────────────────────┬──────────────────────────┐
       │     Operating system       │ Maximum UDF revision for │
       ├─────────┬──────────────────┼────────────┬─────────────┤
       │  Name   │     Version      │    read    │    write    │
       ├─────────┼──────────────────┼────────────┼─────────────┤
       │         │ 2.3.17 - 2.4.5   │    2.00    │    2.00     │
       │Linux    │ 2.4.6 - 2.6.25   │    2.01    │    2.01     │
       │         │ 2.6.26 (and new) │    2.50    │    2.01     │
       ├─────────┼──────────────────┼────────────┼─────────────┤
       │         │ 98/Me            │    1.02    │    none     │
       │Windows  │ 2000             │    1.50    │    none     │
       │         │ XP               │    2.01    │    none     │
       │         │ Vista (and new)  │    2.60    │    2.50     │
       ├─────────┼──────────────────┼────────────┼─────────────┤
       │Mac OS   │ 8.1 - 8.5        │    1.02    │    none     │
       │         │ 8.6 - 9.2        │    1.50    │    1.50     │
       ├─────────┼──────────────────┼────────────┼─────────────┤
       │         │ 10.0 - 10.3      │    1.50    │    1.50     │
       │Mac OS X │ 10.4             │    2.01    │    2.01     │
       │         │ 10.5 (and new)   │    2.60    │    2.50     │
       ├─────────┼──────────────────┼────────────┼─────────────┤
       │FreeBSD  │ 5 (and new)      │    1.50    │    none     │
       ├─────────┼──────────────────┼────────────┼─────────────┤
       │NetBSD   │ 4.0              │    2.60    │    none     │
       │         │ 5.0 (and new)    │    2.60    │    2.60     │
       ├─────────┼──────────────────┼────────────┼─────────────┤
       │         │ 3.8 - 3.9        │    1.02    │             │
       │OpenBSD  │ 4.0 - 4.6        │    1.50    │    none     │
       │         │ 4.7 (and new)    │    2.60    │             │
       ├─────────┼──────────────────┼────────────┼─────────────┤
       │Solaris  │ 7 (and new)      │    1.50    │    1.50     │
       ├─────────┼──────────────────┼────────────┼─────────────┤
       │AIX      │ 5.2 (and new)    │    2.01    │    2.01     │
       └─────────┴──────────────────┴────────────┴─────────────┘

       Note  that Windows 98 and Windows Me can read UDF filesystem only from CD and DVD optical discs, not from
       hard disks.

   BLOCK SIZE
       In most cases operating systems are unable to mount UDF filesystem if UDF block size differs from logical
       sector  size  of  device.  Typically  hard disks have sector size 512 bytes and optical media 2048 bytes.
       Therefore UDF block size must match logical sector size of device.

       Linux kernel prior to version 2.6.30 used hardcoded UDF block size of 2048 bytes independently of logical
       sector  size, therefore it was not able to automatically mount UDF filesystem if block size differed from
       2048. Since 2.6.30 and prior to 4.11 Linux kernel used logical sector size of device as UDF  block  size,
       plus  it  tried fallback to 2048. Since 4.11 it uses logical sector size and fallbacks to any valid block
       size between logical sector size and 4096. Therefore since version 2.6.30 Linux kernel can  automatically
       mount  UDF  filesystems  correctly if UDF block size matches device logical sector size and since version
       4.11 can automatically also mount devices which sector size does not match UDF block size.  In  any  case
       and  also  for Linux kernel prior to version 2.6.30, different UDF block size (which is not autodetected)
       can be manually specified via bs=blocksize mount parameter.

   WHOLE DISK VS PARTITION
       UDF filesystem is supposed to be formatted on the whole media and not to the partitioned hard  disk.  Mac
       OS X systems enforce this rule and reject to automatically mount UDF filesystem unless it is formatted on
       the whole unpartitioned hard disk. Possible partition table (e.g. MBR or GPT)  on  disk  with  valid  UDF
       filesystem  is  ignored.  On  the other hand Microsoft Windows systems are unable to detect non-removable
       hard disks without MBR or GPT partition table.  Removable disks do not have this restriction. Consequence
       is  that  non-removable  hard  disks  formatted  to  UDF by Windows Vista+ are not recognized by Mac OS X
       systems and vice-versa. Note that manual mount of UDF partition on partitioned hard  disk  on  Mac  OS  X
       system  is  possible  and  working  (e.g.  by  running  commands  mkdir  /Volumes/DriveName  && mount_udf
       /dev/disk1s1 /Volumes/DriveName). But there is no known way to mount unpartitioned non-removable disk  on
       Windows system.

       Thanks  to  reserved  and unused UDF boot area (first 32kB of UDF filesystem) it is possible to deal with
       this problem, by putting MBR on such non-removable hard disk just for compatibility reasons with Windows.
       Such  MBR table would contain one partition which starts at sector 0 (includes MBR itself) and span whole
       disk device. So the whole disk device and also first partition on disk points to same sectors.  Therefore
       UDF  filesystem  can be mounted either from whole disk device (needed for Mac OS X systems) or from first
       partition (needed for Microsoft Windows systems).

       Linux kernel ignores MBR table if contains partition which starts at sector 0.  Normally Linux kernel can
       detect  and  mount  UDF  filesystem  either  on  partition  or on whole disk device. It does not have any
       restrictions.

       mkudffs option --bootarea=mbr put such MBR table for compatibility with Microsoft  Windows  systems  into
       disk when formatting.

   LINUX LABEL BUGS
       In  most  cases  Logical Volume Identifier is used as UDF label. But Linux libblkid prior to version 2.26
       used Volume Identifier. Therefore mkudffs --label for  compatibility  reasons  set  both  Logical  Volume
       Identifier and Volume Identifier.

       Linux  libblkid prior to version 2.30 incorrectly processed non-ASCII identifier strings encoded in 8-bit
       OSTA Compressed Unicode format. Therefore mkudffs since version 2.0 for compatibility  reasons  tries  to
       encode  non-ASCII identifier strings in 16-bit OSTA Compressed Unicode format and then fallbacks to 8-bit
       format.

       For more information about UDF Label and UUID see udflabel(8) section UDF LABEL AND UUID.

EXIT STATUS

       mkudffs returns 0 if successful, non-zero if there are problems.

LIMITATIONS

       mkudffs cannot create UDF 2.50 Metadata partition, therefore it does not  support  UDF  revisions  higher
       then  2.01  for  non  Write Once media yet. So there is no support for Blu-ray discs which needs UDF 2.50
       (except for Blu-ray Disc Recordable which does not require Metadata partition).

BUGS

       mkudffs prior to version 1.1 was unable to process non-ASCII characters from identifier strings in --utf8
       mode,  --vsid  option  was  completely  broken and --blocksize must have been manually specified for hard
       disks as default value was hardcoded for optical disks. mkudffs prior to version 2.0 generated broken and
       unreadable cdr disc images.

AUTHOR

       Ben Fennema <bfennema@falcon.csc.calpoly.edu>
       Pali Rohár <pali.rohar@gmail.com>

AVAILABILITY

       mkudffs is part of the udftools package and is available from https://github.com/pali/udftools/.

SEE ALSO

       pktsetup(8), udflabel(8), cdrwtool(1), udfinfo(1), wrudf(1)