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)