Provided by: udftools_2.3-2_amd64 bug

NAME

       mkudffs — create a 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. It 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 a
              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. (Prior to mkudffs 1.1 default value was always 2048 independently of --media-type)

       -m,--media-type= media-type
              Specify the media type. Must be specified before --udfrev. Default  value  is  autodetected.  When
              autodetection  does not work (e.g. when creating disk image) then hd value is assumed. Valid media
              types are:

                   hd              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  and
              autodetection is supported since mkudffs 2.2)

       -r,--udfrev= udf-revision
              Specify  the  UDF  revision to use, either in hexadecimal BCD (e.g. 0x0201) or decimal (e.g. 2.01)
              format. Valid revisions are 1.01, 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  UDF
              revisions  higher  then 2.01 are supported since mkudffs 2.0, UDF revision 1.01 is supported since
              mkudffs 2.1)

       -n,--no-write
              Not really, do not write to device. Just simulate and  display  what  would  happen  with  device.
              Useful  for  determining  the 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 use 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)

       --owner= owner-name
              Specify  the  Owner  name,  person  creating the medium or filesystem. It is stored in UDF Logical
              Volume Info1, part of UDF Implementation Use Volume Descriptor. (Option  available  since  mkudffs
              2.3)

       --organization= organization-name
              Specify  the  Organization name responsible for creating the medium or filesystem. It is stored in
              UDF Logical Volume Info2, part of UDF Implementation  Use  Volume  Descriptor.  (Option  available
              since mkudffs 2.3)

       --contact= contact-information
              Specify  the  Contact information for the medium or filesystem. It is stored in UDF Logical Volume
              Info3, part of UDF Implementation Use Volume Descriptor. (Option available since mkudffs 2.3)

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

       --read-only
              This   option  specify  that  the  whole  UDF  disk  should  be  treated  as  read-only.  It  sets
              SoftWriteProtect domain flag in Logical Volume Descriptor and in File  Set  Descriptor.  Plus  for
              overwritable  media  types (hd, dvdram, dvdrw) set UDF Access Type to read-only. (Option available
              since mkudffs 2.2)

       --bootarea= fill
              Specify how to fill UDF boot area which is the first 32kB of the 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

                   mbr:sec-size  same  as mbr but explicitly set MBR sector size to sec-size value, default sec-
                                 size is device logical block (sector) size with fallback to size 512 bytes

              (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 the spartable number is omitted then two tables are written  to  the  disc.  If  the
              option  is omitted then usage of Sparing Table depends on the 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, the default number of entries is 1024,
              but depends on the media type. (Option available since mkudffs 2.0)

       --packetlen= length
              Packet  length  in  a  number of blocks used for alignment. All continuous UDF structures would be
              aligned to packets. It specifies also the size of the Sparing Space and packet length  in  Sparing
              Table. It should match the device ECC/packet length. If omitted, default value for DVD discs is 16
              blocks, for CD/BD discs it is 32 blocks and otherwise 1 block. (Option prior to  mkudffs  2.1  was
              available only for cdrw and dvdrw media types)

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

       --startblock= start-block
              Specify the block location where the UDF filesystem starts.

              Normally start block is 0, but when creating second or higher session for Multisession UDF optical
              disc it is the block location where that new session starts.

              When  updating existing Multisession UDF image file, mkudffs overwrites only data blocks for a new
              session at start block position in the image file.

              When creating a new UDF image file, mkudffs stores only data blocks for a new session at beginning
              of  the  image  file. Therefore data for start block would be written to the zero block instead of
              the start block. Such image without leading  blocks  (where  are  located  previous  sessions)  is
              suitable  for  burning a new session to the optical disc. But it cannot be read or detected by any
              UDF tool until leading zero blocks (or previous sessions) are prepended to the image file.

              For calculating position where a new session of particular optical disc should start  is  required
              to  use  software  which  would  be  used  for burning newly created image. So for example, if for
              burning is used wodim(1) then second value on output from  wodim  -msinfo  call  is  start  block.
              Accordingly  for  cdrecord(1)  call  cdrecord  -msinfo  or for cdrdao(1) call cdrdao msinfo or for
              xorriso(1) call xorriso -as cdrecord dev=/dev/cdrw -msinfo.

              (Option available since mkudffs 2.3)

       --minblocks= min-num-of-blocks
              Specify minimal number of blocks to write on disc with Virtual Allocation Table.

              This option affects block position where is written Virtual Allocation Table.  And in case  option
              --closed  is  used  then  also  it  affects  block position of the second Anchor Volume Descriptor
              Pointer.

              Default value for cdr media type is 300. This is safe default to allow burning CD-R disc image  in
              Track-at-Once mode. This mode requires to burn image with minimal size of 300 sectors. Burning CD-
              R discs in other modes (e.g. Disc-at-Once or Packet-Writing)  may  allow  to  allow  to  use  also
              smaller disc images.

              For all other media types there is no default minimal limit.

              (Option available since mkudffs 2.3)

       --closed
              Close disc with Virtual Allocation Table. AVDP is written also to the end of the disc. By default,
              the 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  the  current  locale  settings
              (default). Must be specified as the first argument. (Option available since mkudffs 2.0)

       --u8   Treat identifier string options as strings encoded in 8-bit OSTA Compressed Unicode format without
              leading Compression ID byte, which is 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
              without leading Compression ID byte, which is equivalent to UTF-16BE. 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  the  first
              argument.

       --utf8 Treat  identifier  string  options  as  strings  encoded  in UTF-8. Must be specified as the first
              argument. (Prior to mkudffs 2.0 this was default option)

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 the device. Typically hard disks have sector size 512 bytes and optical media 2048
       bytes. Therefore UDF block size must match the logical sector size of the 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 a logical sector size of the 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.  A
       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 an 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 spans whole
       disk device. So the whole disk device and also the 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 a 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  a  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
       than  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).

       mkudffs prior to version 2.2 was unable to process Unicode strings with code points  above  U+FFFF.  When
       option  --utf8  was  specified  then input strings were limited to 3-byte UTF-8 sequences and when option
       --u16 was specified then input strings were limited just to UCS-2BE strings (subset of UTF-16BE).

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