Provided by: udftools_2.3-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 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 location 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 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 or block specified by
              --lastblock.  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.

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

       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)