udflabel

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

NAME

   udflabel  show or change UDF filesystem label

SYNOPSIS

   udflabel [encoding-options] [block-options] [identifier-options] device [new-label]

DESCRIPTION

   When udflabel is invoked without identifier-options and without specifying new-label then it shows current label of UDF filesystem on device to standard output terminated by new line.
   Otherwise  it  updates  UDF  filesystem (up to the revision 2.60) on device with new specified identifiers from identifier-options. Specifying new-label is synonym for both --lvid and
   --vid, see section UDF LABEL AND UUID.

OPTIONS GENERAL OPTIONS

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

BLOCK OPTIONS

   -b,--blocksize= block-size
          Specify the size of blocks in bytes. Valid block size for a UDF filesystem is a power of two in the range from 512 to 32768 and must match a device logical  (sector)  size.  If
          omitted, udflabel tries to autodetect block size. First it tries logical (sector) size and then all valid block sizes.

   --startblock= start-block
          Specify  the  block location where the UDF filesystem starts. It is used for calculating the block location of the Volume Recognition Sequence (32 kB after the start block) and
          the first Anchor Volume Descriptor Pointer (256 blocks after the start block).

          Normally start block is 0, but for Multisession UDF optical discs it is the block location where the last session of Multisession UDF disc starts.

          If omitted, udflabel for optical disc tries to detect start block of the last session from disc Table Of Contents. Otherwise value 0 is used.

          For accessing some previous session of Multisession UDF optical disc, it is required to specify correct block where that previous session starts. And also to specify where that
          session ends via --lastblock option.

          For Multisession UDF disc images stored in file there is no way to detect where the last session starts and therefore it is necessary to specify the correct start  block  loca
          tion manually from the original optical disc Table Of Contents.

          (Option available since udflabel 2.3)

   --lastblock= last-block
          Specify  the  block location where the UDF filesystem ends. It is used for calculating the block location of second and third Anchor Volume Descriptor Pointer (256 blocks prior
          the last block and the last block itself).

          Normally last block is number of disk blocks minus one, but for Multisession UDF optical discs when reading different session than the last one (specified by  --startblock)  it
          is the block location where the specified session ends.

          If omitted, udflabel for optical disc tried to detect the last recorded block with fallback to the last block of device or disk file image.

          For accessing some previous session of Multisession UDF optical disc, it is required to specify correct value for both --startblock and --lastblock options.

          (Option available since udflabel 2.3)

   --vatblock= vat-block
          Specify  the  block  location  of  the  Virtual Allocation Table. Virtual Allocation Table is present only on UDF disks with Virtual Partition Map and must be at the last writ
          ten/recorded disk block.

          If omitted, udflabel for optical disc tries to detect the last recorded block with fallback to the last block of block device or disk file image or block specified  by  --last
          block. In most cases, this fallback does not have to work and for disk file images with Virtual Allocation Table it is necessary to specify the correct location.

          Virtual Allocation Table contains Logical Volume Identifier (UDF Label).

   --force
          Force  updating  UDF  disks  without  write support or write protected UDF disks. Some UDF disks may have set write protect flag. Some media, like CD-ROM, DVD-ROM or BD-ROM are
          read-only. Other media, like CD-RW or DVD-RW, are write-once. UDF is designed also for such media where updating Label or Identifiers is not possible. But in some  rare  cases,
          it  could  make  sense to try and overwrite the existing Label or Identifiers also for UDF filesystem which has Access Type either Read-Only or Recordable (Write-Once). This is
          possible only if underlying media supports overwriting. E.g. UDF image of CD-ROM stored on hard disk or Read-Only UDF image burned to DVD-RAM or BD-RE discs. Option --force ig
          nores UDF Access Type and treats it as Overwritable. Also it ignores UDF SoftWriteProtect and HardWriteProtected flags.

   -n,--no-write
          Not really, do not write to device. Just simulate and display what would happen with device. Useful for determining which UDF blocks would be overwritten.

IDENTIFIER OPTIONS

   -u,--uuid= uuid
          Specify the UDF uuid. Must be exactly 16 hexadecimal lowercase digits and is used for first 16 characters of --fullvsid option. Special value random generates new uuid from lo
          cal time and a random number. See section UDF LABEL AND UUID.

   --lvid= new-logical-volume-identifier
          Specify the new Logical Volume Identifier.

   --vid= new-volume-identifier
          Specify the new Volume Identifier.

   --vsid= new-volume-set-identifier
          Specify the new 17.127. character of Volume Set Identifier. See section UDF LABEL AND UUID.

   --fsid= new-file-set-identifier
          Specify the new File Set Identifier.

   --fullvsid= new-full-volume-set-identifier
          Specify the new Volume Set identifier. Overwrite previous --uuid and --vsid options. See section UDF LABEL AND UUID.

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

   --organization= new-organization-name
          Specify the new 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 udflabel 2.3)

   --contact= new-contact-information
          Specify  the new 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 udflabel 2.3)

   --appid= new-application-identifier
          Specify the new Application Identifier which identifies application that created medium or filesystem. It is stored in UDF Primary Volume Descriptor.  This  identifier  can  be
          empty or must start with * and contain only 7bit ASCII characters. (Option available since udflabel 2.3)

   --impid= new-developer-identifier
          Specify  the  new  Developer Identifier for Implementation Identifier. It is unique identification of the implementation which created medium or filesystem. It is stored in UDF
          Primary Volume Descriptor. This identifier must start with * and contain only 7bit ASCII characters. (Option available since udflabel 2.3)

ENCODING OPTIONS

   --locale
          Treat identifier string options as strings encoded according to current locale settings (default). Must be specified as the first argument.

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

UDF LABEL AND UUID

   UDF specification does not say anything about a disk label but it describes that UDF Logical Volume Identifier is an extremely important field for media identification in a jukebox as
   that field is displayed to the user. And based on this statement it is a common practice for the majority of UDF implementations to use UDF Logical Volume Identifier as a UDF disk la
   bel.

   UDF specification does not have a concept of disk UUID like other filesystems. But mandates that the first 16 characters of UDF Volume Set Identifier are unique,  a  non-fixed  and  a
   non-trivial value. Plus first eight characters are hexadecimal digits. Windows application format.exe and Mac OS X application newfs_udf are known to violates this requirement and set
   only the first 8 characters as unique (others are fixed). Since, there are still a lot of UDF implementations which use in the first 16 characters only hexadecimal digits and all com
   pliant  UDF  implementations  have  hexadecimal digits in the first 8 characters, the following algorithm for generating stable UUID was informally chosen and now is used by udftools,
   util-linux, grub2 and other projects:

          0. If Volume Set Identifier has less then 8 characters then stop with empty UUID
          1. Take the first 16 bytes from UTF-8 encoded string of Volume Set Identifier
          2. If all bytes are hexadecimal digits then use their lowercase form as UUID
          3. If first 8 bytes are not all hexadecimal digits then convert those 8 bytes to their hexadecimal representation (resulting in 16 bytes) and use as UUID
          4. Otherwise, compose UUID from two 8 byte parts:
                 1. part: Use the lowercase form of the first 8 bytes (which are hexadecimal digits)
                 2. part: Convert next 4 bytes (9.12. pos.) to their hexadecimal representation

   Which means that this generated UUID has always 16 hexadecimal lowercase digits. In most cases, this UUID matches case-insensitively the first 16 characters of UDF Volume Set  Identi
   fier  and  for all disks compliant to the UDF specification the first 8 bytes of UUID matches case-insensitively the first 8 characters of UDF Volume Set Identifier. In that algorithm
   was chosen UTF-8 encoding because it is the only commonly used Unicode transformation to bytes with fixed points in all hexadecimal digits.

EXIT STATUS

   udflabel returns 0 if successful, non-zero if there are problems like block device does not contain UDF filesystem or updating failed.

LIMITATIONS

   udflabel is not able to set new Label, Logical Volume Identifier and File Set Identifier for disks with Virtual Allocation Table (used by Write Once media).

   udflabel prior to version 2.3 was unable to handle Multisession UDF discs correctly. It always accessed only the first session (the oldest one) and not the last session (the most  re
   cent).

   udflabel prior to version 2.2 was unable to print and process Unicode strings with code points above U+FFFF correctly. 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).

   udflabel prior to version 2.2 ignored UDF SoftWriteProtect and HardWriteProtected flags and overwritten such disks without any notice.

   udflabel  prior  to version 2.2 was not able to set a new Label, Logical Volume Identifier and File Set Identifier for disks with Metadata Partition (used by UDF revisions higher then
   2.01).

   udflabel prior to version 2.1 was not able to read Label correctly if the disk had Virtual Allocation Table stored outside of Information Control Block.

AUTHOR

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

AVAILABILITY

   udflabel is part of the udftools package since version 2.0 and is available from https://github.com/pali/udftools/.

SEE ALSO

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

Commands udftools UDFLABEL(8)