mkudffs(8) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | COMPATIBILITY | EXIT STATUS | LIMITATIONS | BUGS | AUTHOR | AVAILABILITY | SEE ALSO | COLOPHON

MKUDFFS(8)               System Manager's Manual              MKUDFFS(8)

NAME         top

       mkudffs — create a UDF filesystem

SYNOPSIS         top

       mkudffs [ options ] device [ blocks-count ]

DESCRIPTION         top

       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         top

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

   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         top

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

LIMITATIONS         top

       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         top

       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         top

       Ben Fennema
       Pali Rohár <pali.rohar@gmail.com>

AVAILABILITY         top

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

SEE ALSO         top

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

COLOPHON         top

       This page is part of the udftools (Linux tools for UDF
       filesystems and DVD/CD-R(W) drives) project.  Information about
       the project can be found at ⟨https://github.com/pali/udftools⟩.
       If you have a bug report for this manual page, see
       ⟨https://github.com/pali/udftools/issues⟩.  This page was
       obtained from the project's upstream Git repository
       ⟨https://github.com/pali/udftools.git⟩ on 2024-06-14.  (At that
       time, the date of the most recent commit that was found in the
       repository was 2021-12-09.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there
       is a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to
       man-pages@man7.org

System Management Commands      udftools                      MKUDFFS(8)

Pages that refer to this page: udfinfo(1)wrudf(1)mount(8)udflabel(8)