Проблема: При монтировании флешки, отформатированной как FAT16/FAT32, имена файлов, записанные кириллицей в кодировке cp1251, отображаются некоей абракадаброй.
Решение я нашел на форуме Русскоязычное сообщество Ubuntu Linux в теме KDE4 и кириллица смонтированных дисков. Поэтому за этот рецепт стоит сказать огромное спасибо товарищам romeg и NoOne с этого форума.
Собственно, само решение:
Все действия выполняются от имени суперпользователя (root).
1) Создаем файл /sbin/mount.mvfat
#!/bin/bash
dev=$1
mpoint=$(echo $2 | sed -e 's/\ /\\\\ /')
shift
shift
eval mount -t vfat $dev $mpoint $@,quiet,iocharset=utf8,codepage=1251,showexec,umask=0,flush
2) Делаем его исполняемым:
# chmod +x /sbin/mount.mvfat
3) Создаем файл /etc/hal/fdi/policy/10_my_fsops.fdi
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="volume.fstype" string="vfat">
<match key="@block.storage_device:storage.hotpluggable" bool="true">
<merge key="volume.fstype" type="string">mvfat</merge>
<merge key="volume.policy.mount_filesystem" type="string">mvfat</merge>
<merge key="volume.mount.valid_options" type="strlist">utf8</merge>
<merge key="volume.mount.valid_options" type="strlist">shortname=</merge>
<merge key="volume.mount.valid_options" type="strlist">codepage=</merge>
<merge key="volume.mount.valid_options" type="strlist">iocharset=</merge>
<merge key="volume.mount.valid_options" type="strlist">umask=</merge>
<merge key="volume.mount.valid_options" type="strlist">dmask=</merge>
<merge key="volume.mount.valid_options" type="strlist">fmask=</merge>
<merge key="volume.mount.valid_options" type="strlist">uid=</merge>
<merge key="volume.mount.valid_options" type="strlist">flush</merge>
</match>
</match>
</device>
</deviceinfo>
Все! После этого, кириллица на флешке отображается правильно.