If NEW is omitted, then the existing label or volume ID is written to the standard output. A label can't be longer than 11 bytes and should be in all upper case for best compatibility. An empty string or a label consisting only of white space is not allowed. A volume ID must be given as a hexadecimal number (no leading "0x" or similar) and must fit into 32 bits.
When Windows XP or Windows 10 system changes a FAT label it stores it only in the root directory --- letting boot sector unchanged. Which leads to problems when a label is removed on Windows. Old label is still stored in the boot sector but is removed from the root directory.
dosfslabel prior to the version 3.0.7 operated only with FAT labels stored in the boot sector, completely ignoring a volume label in the root directory.
dosfslabel in versions 3.0.7-3.0.15 reads FAT labels from the root directory and in case of absence, it fallbacks to a label stored in the boot sector. Change operation resulted in updating a label in the boot sector and sometimes also in the root directory due to the bug. That bug was fixed in dosfslabel version 3.0.16 and since this version dosfslabel updates label in both location.
Since version 4.2, fatlabel reads a FAT label only from the root directory (like MS-DOS and Windows systems), but changes a FAT label in both locations. In version 4.2 was fixed handling of empty labels and labels which starts with a byte 0xE5. Also in this version was added support for non-ASCII labels according to the specified DOS codepage and were added checks if a new label is valid.
English (India), English (Malaysia), English (Republic of the Philippines),
English (Singapore), English (South Africa), English (United States),
English (Zimbabwe), Filipino, Hausa, Igbo, Inuktitut, Kinyarwanda, Kiswahili,
|720||Arabic, Dari, Persian, Urdu, Uyghur|
|775||Estonian, Latvian, Lithuanian|
Afrikaans, Alsatian, Basque, Breton, Catalan, Corsican, Danish, Dutch,
English (Australia), English (Belize), English (Canada), English (Caribbean),
English (Ireland), English (Jamaica), English (New Zealand),
English (Trinidad and Tobago), English (United Kingdom), Faroese, Finnish,
French, Frisian, Galician, German, Greenlandic, Icelandic, Indonesian, Irish,
isiXhosa, isiZulu, Italian, K'iche, Lower Sorbian, Luxembourgish, Malay,
Mapudungun, Mohawk, Norwegian, Occitan, Portuguese, Quechua, Romansh, Sami,
Scottish Gaelic, Sesotho sa Leboa, Setswana, Spanish, Swedish, Tamazight,
Upper Sorbian, Welsh, Wolof
Albanian, Bosnian (Latin), Croatian, Czech, Hungarian, Polish, Romanian,
Serbian (Latin), Slovak, Slovenian, Turkmen
|855||Bosnian (Cyrillic), Serbian (Cyrillic)|
|857||Azeri (Latin), Turkish, Uzbek (Latin)|
Azeri (Cyrillic), Bashkir, Belarusian, Bulgarian, Kyrgyz, Macedonian, Mongolian,
Russian, Tajik, Tatar, Ukrainian, Uzbek (Cyrillic), Yakut