Provided by: udftools_2.0-2_amd64 

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)
System Management Commands udftools MKUDFFS(8)