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)

Commands                                            udftools                                         UDFLABEL(8)