In UDF, what's the difference between a volume identifier, volume set identifier, logical volume identifier, and file set identifier?

I see that mkudffs has options for four different identifiers: the logical volume (--lvid), the volume (--vid), the volume set (--vsid), and the file set identifier (--fsid). It, however, gives no guidance to what those mean.

So, I went to the UDF specs. Starting with ISO/IEC 13346 aka ECMA-167, I find that:

10.1.4 Volume Identifier (BP 24)

This field shall specify an identification of the volume.

14.1.10 Logical Volume Identifier (BP 112)

This field shall specify an identification of the logical volume on which the file set is recorded.

14.1.12 File Set Identifier (BP 304)

This field shall specify an identification of the file set described by this File Set Descriptor.

Well, that was useful.

So, I tried the OSTA UDF Spec 1.02, as that is the UDF version I'm trying to generate. It didn't help much (though did caution me against "fixed or trivial values").

I tried the UDF 1.50 specification which further tells me me—in §4.1—that before displaying those values, that an OS-specific transform using algorithms described in §4.1.2.1 must be applied. Of course, the next section after §4.1 is §4.2, so good luck on that. Also, the LogicalVolumeIdentifier is "extremely important in logical volume identification when multiple media are present within a jukebox. The name is typically what is displayed to the user."

So, I try the UDF 2.01 specification, and now I know that By now at least they've realized it's 4.2.2.1, which does exist, but doesn't help (it deals with stuff like character sets).

So, so far as I can tell:

  • The Logical Volume Identifier is what is displayed to the user (possibly only by jukeboxes). So it should be set to something meaningful, e.g., the disc title. I assume this is the disc title that Windows, Mac OS, or Nautilus would display.
  • The others exist only to waste space on the disc, having no actual description of what they're for. Despite that, I should set them to values which are neither fixed nor trivial. Possibly, I should just set them to random (i.e., not fixed) lines from Shakespeare (i.e., not trivial).

Or, better yet: what are the other fields for?


These are bunch of not useful strings, except LVID.

Form mkudffs:

  • --lvid Specify the logical volume identifier. It sets given string to the following fields:
    • Logical Volume Identifier in the Logical Volume Descriptor (See Figure 15 in ECMA-167)
    • Logical Volume Identifier in the Implementation Use. (See 2.2.7.2 in UDF 2.01)
    • Logical Volume Identifier in the File Set Descriptor. (See Figure 9 in ECMA-167) File Set Descriptor. (See Figure 9 in [ECMA-167][5]).
      Logical Volume Identifier shown in windows as disk label.
  • --vid Specify the volume identifier. It sets givend string to the Volume Identifier field in the Primary Volume Descriptor. (See Figure 6 in ECMA-167). Maximum length 31 bytes. Default value "Linux UDF".
  • --vsid Specify the volume set identifier. It sets given string to the volume set identifier field in the Primary Volume Desriptor. (See Figure 6 in ECMA-167). Maximum length 127 bytes. Default value "Linux UDF".
    Volume Set Identifier can be edited by some Disk authoring programs like ImgBurn, MagicISO. It specify an identification of the volume set of which the volume is a member.
  • --fsid Specify the file set identifier. It sets File Set Identifier field in the File Set Descriptor. (See Figure 9 in ECMA-167). Maximum length 31 bytes. Default value "Linux UDF".

I think these are completely up to you; I'd say the fields are there to support enterprise processes. One use that comes readily to mind is to use the volume set identifier for stuff like "monthly full backup of FOO, 2015-12", and the volume identifier could then be something like "disk 1 of 42". Or maybe you'll actually have a physical identifier, e.g. a barcode, printed on the disk, and the volume identifier can hold that (so that you can identify the disk either by reading it in a drive or by pointing a barcode reader at it).

I imagine the file set identifier could be useful when you're putting a bunch of files in the filesystem that form some manner of logical unit (a "set"), but they don't intuitively form a "volume"; for example, "Mariah Carey .gifs 1994-1998" or "Bob's high school essays".