Для файловых систем fat12 и fat16, которые традиционно использовались еще в DOS, необходимо в опциях монтирования (в команду mount или в /etc/fstab) прописывать такие кодировки:
-o iocharset=utf8,codepage=866
Эти опции помогут в Linux-консоли с локалью UTF8 правильно увидеть имена файлов из кодировки 866.
В файловой системе fat32 появилась структура, называемая lfn, благодаря которой имена файлов хранятся в кодировке UTF16. Драйвера файловых систем знают это, и поэтому указывать исходную кодировку через codepage не нужно. Достаточно просто опции:
-o iocharset=utf8
Или может сработать короткая опция:
-o utf8
В документации ее нет для файловых систем типа FAT, но знающие люди говорят что по-факту она работает, и ее проще запомнить.