Русификация FreeBSD
В общем случае можно, конечно, обойтись и без русификации, но если у вас гетерогенная сеть, состоящая из хостов под управлением Windows и FreeBSD с общими расшаренными ресурсами, то лучше их привести к одной кодировке. Поскольку Windows особой гибкостью никогда не отличалась, то надо подстраиваться под нее и выбирать кодировку CP1251.
Существует несколько способов, позволяющих русифицировать интерфейс консоли FreeBSD. Один из них заключается в добавлении класса языкового аккаунта в файл /etc/login.conf:
winrus|Russian Win Accounts:\
:charset=CP1251:\
:lang=ru_RU.CP1251:\
:tc=default:
Сохраняем файл и даем команду для сохранения изменений в хешированной базе данных:
cap_mkdb /etc/login.conf
Задаем имя класса winrus пользователя, к примеру, с логином winuser:
pw usermod winuser -L winrus
Проверяем изменения:
cat /etc/master.passwd | grep winuser
winuser:$1$eiJnoeEf$u8EdnHwOK.GDtfMcU1O.I.:1007:0:winrus:0:0:winuser:
/home/winuser:/bin/bash
Класс можно задать также через утилиту vipw (только аккуратно, т.к. файл откроется в редакторе vi), добавив класс winrus в пятое поле в строке пользователя.
Другой способ, более гибкий - через задание переменных окружения пользователя в файлах домашней директории /home/winuser/.profile и /home/winuser/.cshrc:
cat .profile | grep CP1251
LANG=ru_RU.CP1251; export LANG
LC_ALL=ru_RU.CP1251; export LC_ALL
MM_CHARSET=CP1251; export MM_CHARSET
cat .cshrc | grep CP1251
setenv LC_ALL ru_RU.CP1251
setenv LANG ru_RU.CP1251
setenv MM_CHARSET CP1251
Либо эти же изменения можно внести глобально в файлы /etc/profile и /etc/csh.login. Первый файл в этих случаях - для пользователей оболочки bash, второй - для csh.
Далее понадобятся файлы клавиатурной раскладки ru.cp1251.kbd и таблицы перекодировки win2cpp866.scm:
cd /usr/share/syscons/keymaps
wget http://www.o-nix.com/media/download/ru.cp1251.kbd
cd /usr/share/syscons/keymaps
wget http://www.o-nix.com/media/download/win2cpp866.scm
После чего добавляем в файл /etc/rc.conf строки:
keymap=ru.cp1251
scrnmap="win2cpp866"
font8x16=cp866b-8x16
font8x14=cp866-8x14
font8x8=cp866-8x8
И меняем локальные консоли cons25 на cons25r в файле конфигурации терминалов /etc/ttys:
ttyv0 "/usr/libexec/getty Pc" cons25r on secure
ttyv1 "/usr/libexec/getty Pc" cons25r on secure
ttyv2 "/usr/libexec/getty Pc" cons25r on secure
ttyv3 "/usr/libexec/getty Pc" cons25r on secure
ttyv4 "/usr/libexec/getty Pc" cons25r on secure
ttyv5 "/usr/libexec/getty Pc" cons25r on secure
ttyv6 "/usr/libexec/getty Pc" cons25r on secure
ttyv7 "/usr/libexec/getty Pc" cons25r on secure
После чего рестартуем драйвер консоли:
/etc/rc.d/syscons restart
Теперь можно без проблем монтировать в консоли FreeBSD сетевые ресурсы Windows с русскими названиями и даже с пробелами. Например, сетевой каталог на Windows с названием "Какая-то папка на винде" монтируем в каталог /mnt/winshare:
mount_smbfs -N -E cp1251:cp866 -I 10.10.10.10 //USERNAME@SERVERNAME/Какая-то\ папка\ на\ винде /mnt/winshare
Где -N - не спрашивать пароль, -I - ip-адрес хоста Windows, SERVERNAME - NetBIOS-имя хоста (можно глянуть командой nbtscan 10.10.10.10), USERNAME - имя пользователя, для которого расшарен ресурс на Windows. Если в названии сетевого каталога Windows содержатся пробелы, их нужно экранировать обратным слэшем.
-E cp1251:cp866 - для перекодирования из CP1251 в CP866, чтобы избежать проблем с символами псевдографики и управляющими символами в консоли.
<< Автозапуск во FreeBSD Алиас команды >>