Provided by: udftools_2.0-2_amd64 bug

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 show current
       label  of  UDF  filesystem  on  device to standard output terminated by new line. Otherwise it update 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 power of two in
              range from 512 to 32768 and must match a device logical (sector) size. If omitted, udflabel  tries
              to autodetect block size. It tries logical (sector) size and then all valid block sizes.

       --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 written/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. In most cases this fallback does not have  to  work
              and for disk file images with Virtual Allocation Table is necessary to specify correct location.

              Virtual  Allocation  Table  on  disks  with UDF revisions higher then 1.50 contains Logical Volume
              Identifier (UDF Label).

       --force
              Force updating UDF disks without write support. 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 overwrite existing Label or Identifiers also for UDF filesystem which has Access  Type  either
              Read-Only  or  Recordable  (Write-Once).  This  is  possible  only  if  underlaying 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 ignores UDF Access Type and treat it as Overwritable.

       -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  local  time  and
              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.

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

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

UDF LABEL AND UUID

       UDF specification does not say anything  about  a  disk  label  but  describe  that  UDF  Logical  Volume
       Identifier  is 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 majority of UDF  implementations  to
       use UDF Logical Volume Identifier as a UDF disk label.

       UDF  specification does not have 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). Because there are still lot of UDF implementations which use in the first 16 characters only
       hexadecimal digits and all  compliant  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 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  Identifier  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
       Metadata  Partition  (used  by UDF revisions higher then 2.01) or Virtual Allocation Table (used by Write
       Once media). Also is not able to read Label correctly if disk has 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)