Добрый день! Буду благодарен за помочь.
Цель - примонтировать сетевую папку Windows (server 2008r2). Есть две команды:
mount.cifs 192.168.123.123/public /mnt/share -o user=login,pass=password,dom=domen.local,iocharset=utf8
или
mount.cifs 192.168.123.123/public /mnt/share -o user=login,pass=password,dom=domen.local,iocharset=cp1251
Обе команды рабочие - все монтируется, но проблема в том, что все русскоязычные каталоги - идут вопросами.
Что пробовал:
- Вносить изменения в команды (где-то подсмотрел):
mount.cifs 192.168.123.123/public /mnt/share -o user=login,pass=password,dom=domen.local,iocharset=utf8,codepage=cp1251
mount.cifs 192.168.123.123/public /mnt/share -o user=login,pass=password,dom=domen.local,iocharset=utf8,codepage=utf8
mount.cifs 192.168.xx.xxx/public /mnt/share -o user=login,pass=password,dom=domen.local,iocharset=cp1251,codepage=cp1251
Сразу в ошибку вываливается: mount error(22): Invalid argument
Подозреваю, что просто параметр «codepage=» - не существует.
- Копал в сторону консоли - тоже не получилось:
Копал по инструкции:
А. Проверить какая локаль сейчас установлена можно с помощью команды
locale
Обычно вывод команды выглядит примерно так:
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Это означает что кодировка у нас в консоли используется en_US.UTF-8. Но вывод может выглядеть совсем иначе. Например вот так:
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
Значит есть проблемы.
Б. Для того чтобы проверить наличие готовых локалей в системе выполняем команду
locale -a | grep ru
И в выводе команды ищем необходимую нам локаль. Для случая с кодировкой UTF-8 необходимая локаль имеет вид ru_RU.utf8. Если такая строка есть в выводе команды то делаем следующее:
В.Создаем файл /etc/sysconfig/i18n командой:
touch /etc/sysconfig/i18n
После чего в файл пишем следующие строки:
LANG="ru_RU.UTF-8"
SUPPORTED="ru_RU.UTF-8:ru_RU:ru"
SYSFONT="latarcyrheb-sun16"
После этих изменений сохраняем файл, выходим из консоли и заходим в нее опять. После этих действий мы наблюдаем русский шрифт в локали.
Команда locale выдает у меня текст, где POSIX. Проделал все по инструкции, но на выходе - ничего не получилось.
То есть в файл /etc/sysconfig/i18n параметры я внес. Систему перезагрузил.
Перемонтировал папку - кодировка не поменялась.
Результат команды locale также не изменился - POSIX
Но консоль это лишь один из вариантов - может быть это вообще ложный след.
Не пойму как решить проблему? Помогите, пожалуйста.
Спасибо.