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)