Кириллические имена файлов в файловой системе MS Windows

Windows имеет возможность давать имена файлов в кодировке Unicode, поэтому пользователи могут давать осмысленные имена своим файлам. Linux, однако, не даёт полной поддержки для Unicode, поэтому если вы монтируете диск Windows VFAT, то увидите, что подобные имена состоят из вопросительных знаков и прочего мусора.

Здесь указан путь, как получить правильное преобразование:

  1. Убедитесь, что ваше ядро скомпилировано с поддержкой codepage (в частности, с поддержкой кодовых страниц cp866 и KOI8-R — возможно, в виде модулей ls /lib/modules/`uname -r`/fs/nls_*).

  2. Добавьте следующие опции при выполнении mount команды mount:

    codepage=866,iocharset=koi8-r

    или пропишите в /etc/fstab/ примерно такую строчку:

    /dev/hdc1 /Rack vfat iocharset=koi8-r,umask=0,showexec,codepage=866,quiet 0 0

    для выяснения подробностей смотрите man mount.

Более подробно смотрите Documentation/filesystems/vfat.txt в исходниках ядра Linux.