Provided by: udftools_2.2-1_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 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.

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

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

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

       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  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 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 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
       Virtual Allocation Table (used by Write Once media).

       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)