Technika przydaje się w różnych warunkach. Dzięki niej nazwa pliku może mieć inne kodowanie w zależności od tego w jakim katalogu jest listowany.
Sposób wykorzystałem do łatwego robienia kopii bezpieczeństwa katalogów samby.
Jakiś czas temu przez niedopatrzenie w pliku konfiguracyjnym smb.conf zostawiłem następujące wpisy: unix charset = ISO8859-2; dos charset = CP852. Użytkownicy (którzy generują niestety dużo polskich znaków diakrytycznych) zaczęli zapisywać na dyskach sieciowych pliki przy wykorzystaniu kodowania ISO w ich nazwach. Ponieważ system (debian 5) wykorzystuje kodowanie utf-8 to odczyt tych nazw z poziomu konsoli systemu powodował wyświetlenie znaków zapytania. Chociaż sama samba odczytywała nazwy plików poprawnie, to już robienie kopii zapasowej pliku (tar, 7z) powodowało utratę polskich literek.
Szukając prostego sposobu rozwiązania tego problemu natrafiłem na dwa pakiety dostępne w repozytorium debiana: convmv, fuse-convmvfs. Pierwszy służy do przekształcania nazw plików z jednego formatowania do drugiego. Drugi pakiet umożliwia montowanie (w przestrzeni użytkownika) katalogu w taki sposób aby moduł w locie tłumaczył kodowanie nazw plików.
Konfiguracja fuse-convmvfs:
- aptitude install fuse-convmvfs
- modprobe fuse (można dodać do pliku: /etc/modules)
- convmvfs /home-utf8 -o srcdir=/home, icharset=ISO_8859-2, ocharset=UTF-8 (katalog /home z nazwami plików w iso jest montowany w katalogu /home-utf8 z kodowaniem utf8, polskie znaki są ładnie wyświetlane przez system) – wpis ten można dodać do
Minusy – dodatkowe wykorzystanie procesora przez pakiet.
No Comments