Linux has several filesystem drivers for the File Allocation Table (FAT) filesystem format. These are commonly known by the names used in the mount command to invoke particular drivers in the kernel: msdos, vfat, and umsdos.
Differences, advantages, and disadvantages
All of the Linux filesystem drivers support all of the three File Allocation Table sizes, 12-bit, 16-bit, and 32-bit (the last commonly known as FAT32). Where they differ is in the provision of support for long filenames, beyond the 8.3 filename structure of the original FAT filesystem format, and in the provision of Unix file semantics that do not exist as standard in the FAT filesystem format such as file permissions. The filesystem drivers are mutually exclusive. Only one can be used to mount any given disc volume at any given time. Thus the choice among them is determined by what long filenames and Unix semantics they support and what use one wants to make of the disc volume.
The msdos filesystem driver provides no extra Unix file semantics and no long filename support. If a FAT disc filesystem is mounted using this driver, only 8.3 filenames will be visible, no long filenames will be accessible, nor will any long filename data structures of any kind on the disc volume be maintained. The vfat filesystem driver provides long filename support using the same disc data structures that Microsoft Windows uses for long filename support on FAT format volumes, but it does not support any extra Unix file semantics. The umsdos filesystem driver provides long filename support, and extra Unix file semantics. However, it does so using on-disc data structures that are not recognized by any filesystem drivers for any operating systems other than Linux.
The key advantage to umsdos out of the three is that it provides full Unix file semantics. Therefore it can be used in situations where it is desirable to install Linux on and run it from a FAT disc volume, which require such semantics to be available. However, Linux installed on and running from such a disc volume is slower than Linux installed on and running from a disc volume formatted with, for example, the ext2 filesystem format. Further, unless a utility program is regularly run every time that one switches from running Windows to running Linux, certain changes made to files and directories on the disc by Windows will cause error messages about inaccessible files in Linux.
Full article ▸