@ Карта сайта News Автора!

Bog BOS: Solaris 2.5.0

Последние изменения:
2015.11.18: hard: обновлена статья про ИБП и их мониторинг

Последнее изменение файла: 2014.08.29
Скопировано с www.bog.pp.ru: 2016.06.25

Bog BOS: Solaris 2.5.0

Загрузка

BIOS для Sparc называется - PROM монитор (OpenBoot). Представляет собой интерпретатор Forth со встроенными управляющими словами, необходимыми для диагностики и загрузки ОС. Интерпретатор позволяет пользователю составлять и выполнять произвольные программы на языке Forth (т.е. для простых вычислений можно обойтись без загрузки ОС ;). В отличие от IBM PC BIOS он позволяет временно прерывать работу ОС для выполнения команд монитора (нажать Stop-A на Sparc клавиатуре типа 5 или послать Break из терминальной программы). Признаком работы монитора является префикс "ok" в начале строки (иногда можно попасть на уровень "урезанного" монитора с префиксом ">", чтобы перейти к нормальному Forth монитору необходимо ввести команду "n").

Описание команд монитора - monitor(1M). Основные команды:

Смотреть описание boot, bootinit, eeprom.

SX (/SUNW,sx@f,80000000) - графический ускоритель, встроенный в контроллер памяти SPARCstation 20. Может выводить результат в DRAM или видеопамять (VRAM). Видеопамять (буфер кадра) находится в адресном пространстве основной памяти. Физически реализована в виде VSIMM (модули 4 или 8 MB в слотах 7 и 4) - cgfourteen. Изображение из VRAM отображается на монитор (т.е. если нет ни одного VSIMM, то изображения не будет несмотря на наличие SX). Команда sxconfig(1M) позволяет зарезервировать часть ОП для ускорения работы SX (после внесения изменений требуется перезагрузиться). Для настройки работы самого VRAM используется cg14config(1M).

S24 (/iommu.../sbus.../SUNW,tcx@2,800000) - графический ускоритель и видеобуфер. На SPARCstation 4 - встроенный (имеется свободный разъем для дополнительного VSIMM). Настройка - tcxconfig(1M).

Исследование оборудования

prtconf -v.

prtfru - информация о ЦП и ОП.

prtpicl. В частности, температура - "prtpicl -v -c temperature-sensor", вентиляторы - "prtpicl -v -c fan", диски - prtpicl -v -c block.

/usr/platform/SUNW,Sun-Blade-1000/sbin/prtdiag -v

Диски и файловые системы

Директория /devices хранит имена физических устройств, оформленные как символьные и блочные устройства Unix. Имена файлов отражают способ подсоединения устройств (/devices/iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000/sd@0,0:a - это первый раздел на 0-м SCSI устройстве, подключенном к 0-му SCSI контроллеру на шине SBus).

Директория /dev хранит имена логических устройств, являющихся символическими ссылками на физические устройства.

Имя раздела имеет вид: /dev/dsk/c0tDd0sP, где D - SCSI идентификатор диска, P - номер раздела от 0 до 7 (2 - специальный номер, обозначающий весь диск). При доступе к raw устройству (например, при форматировании) вместо dsk пишется rdsk.

format c0t?d0s2 (форматирование диска, разбиение на разделы, анализ поверхности в разных режимах).

prtvtoc /dev/rdsk/c0t?d0s2 (посмотреть таблицу разделов).

newfs -v /dev/rdsk/c0t?d0s? (создать файловую систему в разделе):

tunefs - поменять параметры несмонтированной файловой системы.

mount /dev/dsk/c0t?d0s?

/etc/vfstab - таблица разделов, используемая при загрузке.

lsof - посмотреть список открытых файлов.

Максимальное количество дескрипторов файлов: по умолчанию - 64, ограничения ядра - 1024 (ulimit -S -n 1024), но stdlib поддерживает не больше 255, так что программы, написанные без извращений, больше 255 получить не могут (причем сообщений об ошибках не выдается, точнее возникают наведенные ошибки).

Менеджер томов vold отслеживает установку дискет и CD-ROM и автоматически монтирует файловую систему (обычно в /vol, volfs(7FS)). Файл конфигурации: /etc/vold.conf (vold.conf(4), перечитывает по сигналу HUP); запуск: /etc/init.d/volmgt; директория разделяемых библиотек: /usr/lib/vold/; журнал: /var/adm/vold.log; утилиты: volcancel, volcheck, volmissing, rmmount (vold монтирует том в /floppy/ и /cdrom/ с использованием имени тома).

Swap

Посмотреть, сколько занято, сколько осталось:
/etc/swap -l
/etc/swap -s

Зарезервировать место под будующую swap-область (из-под root):
mkfile размерm имя-файла

Активизировать swap-область:
/etc/swap -a full-file-name

Добавить в /etc/vfstab строчку (после монтирования файловой системы, внутри которой лежит файл - swap-область):

    полное-имя-файла  -  -  swap  -  no  -

Перестать использовать файл в качестве swap-области:
/usr/sbin/swap -d ═full-file-name

Руссификация X Windows (openwin)

Шрифты. Кладем в каталог X11fonts_KOI koi8-шрифты (pcf.Z и bdf.gz). Ставим этот каталог первым в списке поиска каталогов с фонтами (xset +fp после запуска openwin или редактируем файл /usr/openwin/lib/X11/fontserver.cfg) и прописываем koi8-r алиасами на все фонты типа iso8859-1. Метод злобный (в обход всех стандартов), но радикальный (действует на все программы разом).

Клавиатура. xmodmap koi8.qwerty.xmm (CapsLock переключает в русский режим - яверты). Улучшенную версию взять у Мошкова.

Я это вставил в скрипт startx, который при необходимости запускает openwin и делает много других полезных вещей.

Сеть

Конфигурационные файлы:

Переход на новую сеть:

  1. подсоединить новый канал и убедиться, что он работает
  2. подсоединиться к порту нового провайдера и убедиться, что он работает
  3. получить новые адреса в RIPE (через новый LIR)
  4. правим BBS, чтобы воспринимала новые адреса (telnetd.c: bog_telned_localmodem, bog_telnetd_restrict, bog_telnetd_notlc, bog_telnetd_nocs, bog_telnetd_noforum, bog_telnetd_noemail)
  5. правим sendmail, чтобы воспринимала новые адреса (conf.c: checkcompat)
  6. на всех Solaris-ах добавляем строку в /etc/inet/netmasks: новая сеть и ее маска
  7. на всех кисках на ethernet интерфейсах добавить secondary ip-адрес из новой сетки
  8. на распасовочной киске добавить доступ по ip rcmd с новых адресов
  9. на всех Solaris-ах пробуем /sbin/ifconfig le0:1 inet адрес up netmask 255.255.255.224 broadcast широковещательный-адрес mtu 1500 -trailers и нагло вставляем ее в /etc/init.d/rootusr и /etc/rcS.d/S30rootusr.sh после цикла подъема аппаратных интерфейсов (не забыть удалить bu-файлы))
  10. давим на провайдера, пока он не обеспечит маршрутизацию
  11. узнать у провайдера адреса вторичных DNS-серверов для обратного домена
  12. поднимаем сервера обратного домена у себя
  13. договариваемся о вторичном сервере обратных доменов с товарищем, он его поднимает
  14. провайдер должен договориться с RIPE насчет обратных доменов (то что они есть в БД еще ни очем не говорит)
  15. inn (user: news;cd inn-.../site; добавить в nnrp.access новые адреса; make install)
  16. wu-ftpd
  17. на всех Solaris-ах пробуем /usr/sbin/route add default новый-адрес-основного-маршрутизатора 1 (надо ли? - пришлось выключить)
  18. на всех Solaris-ах добавляем строку в /etc/defaultrouter: новый ip-адрес основного маршрутизатора
  19. на всех клиентских кисках:
    1. добавляем новый адрес tacacs-сервера, затем удаляем старый
    2. добавляем новый адрес сервера журнализации и удаляем старый
    3. добавляем маршрут по умолчанию на новый адрес и удаляем старый
    4. меняем адреса местных ntp-серверов
    5. удаляем список доступа 1 (установлен на входе в async, препятствуя нашим клиентам использовать не наши адреса) и добавляем его снова, но на этот раз в нем разрешен новый диапазон клиентских адресов
  20. поменять конфигурацию сервера времени в Solaris: /etc/ntp.conf - добавить как бы новых соседей и новую подсеть в restrict, перезапустить xntpd
  21. на всех Solaris-ах оставить в /etc/resolv.conf имена только своих серверов имен
  22. на всех Solaris-ах в /etc/inet/hosts добавить новые адреса для всех Solaris-ов
  23. принтер
  24. rsh
  25. в tacacs_after_ppp меняем адреса в ограничениях на доступ классов ═unlimit и local-ppp

Отключение старой сети:

  1. /etc/inet/netmasks
  2. /etc/init.d/rootusr
  3. /etc/rcS.d/S30rootusr.sh
  4. перезагрузка
  5. убираем из BBS обработку старых адресов
  6. убираем из sendmailобработку старых адресов
  7. убираем старые адреса из INN (nnrp.access)
  8. убираем старые адреса из wu-ftpd
  9. на всех кисках на ethernet интерфейсах убрать secondary ip-адрес
  10. на распасовочной киске убрать доступ по ip rcmd с новых адресов
  11. /etc/inet/hosts
  12. rsh

При наличии более одного адреса на интерфейсе необходимо выполнить
ndd -set /dev/ip ip_enable_group_ifs 0
чтобы запретить использовать дополнительные адреса в качестве обратных адресов IP пакетов.

SAF (Service Access Facility)

SAF - средство для управления терминалами (модемами) и сетевыми устройствами.

sac (Service Access Controller, /usr/lib/saf/sac, администрирование - sacadm, журнал - /var/saf) запускается при переходе в многопользовательский режим (напрямую из /etc/inittab!). Настройка производится с помощью файлов /etc/saf/_sysconfig (установка переменных окружения?) и /etc/saf/_sactab, в котором перечисляются требуемые мониторы портов (текущий список мониторов: sacadm -l; список мониторов с их сервисами: pmadm -l; не запускается, если отсутствует директория /var/saf/имя-монитора):

NFS

Список команд share, выполняемых при загрузке, лежит в /etc/dfs/dfstab. Список файловых систем, к которым разрешен доступ по NFS в текущий момент лежит в /etc/dfs/sharetab. Рекомендуется имена клиентов занести в /etc/hosts.

Время

Часовой пояс (TZ) определяется в файле /etc/TIMEZONE (ссылка на /etc/default/init). Имеется компилятор описаний часовых поясов - zic/zdump, сами описания хранятся в /usr/share/lib/zoneinfo (есть /usr/share/lib/zoneinfo/src). По-моему, в Solaris 8 при описании часовых поясов вида GMT+3 перепутан знак. Необходимо скомпилировать часовой пояс для Москвы самостоятельно ("zic -v /usr/share/lib/zoneinfo/src/europe"), затем поменять /etc/default/init (и /etc/default/login?).

Установка серверов (запуск серверов в /etc/init.d и /etc/rc?.d) и дополнительных программ

Заплатки

Заплатки можно брать здесь (ныне платный) или здесь (ныне закрыт) - в общем, ищите по номеру заплатки в поисковой системе.

Установлены (развернуть и "patchadd имя-каталога"):

  1. что-то с Openwindows (пришла с системой)
  2. 103169-06 - увеличение скорости ftpd и httpd при работе с модемом
  3. 103447-03 - продолжение (как-то с трудом X запустился и NFS перестал узнавать не-Unix машины
  4. 103095-02 - улучшенный pcnfsd (заделана дырка)
  5. 104889-03 - uucico uustat y2000 uucp file forwarding cu 8bit locale
  6. 103667-11 - программы, связанные с DNS (совершенно необходима!)

Интересные группы заплаток:

Проблема Y2k

Сайт фирмы Sun, посвященный проблеме Y2k.

Имеется сборник всех заплаток, связанных с исправлением ошибки 2000 года. Описание: 2.5_y2000_ALL.README


AnswerBook2 HTTP сервер :8888

Как посмотреть, что происходит при выполнении программы

truss [-u a.out -u ld:: -u ::] -f -l -a -i -e [-v all] -o имя-файла-отчёта {команда | -p номер-процесса}

Сокращения, принятые в Solaris

XGL
2D/3D графическая библиотека с прямым доступом к устройству (что-то типа DirectX)
XIL
X Image Library - библиотека для программистов для работы с графикой (вплоть до JPEG и MPEG-1)

Список загруженных модулей

modinfo [-c]

SunPCi

SunPCi - плата с процессором Intel x86 для загрузки и работы с DOS/Windows/Linux. В качестве диска используется файл C.diskimage, который представляет собой образ диска, перед которым записан заголовок размером 1024 байта.

Настройка параметров

/etc/system (в большинстве случаев требуется перезагрузка; текущие параметры можно посмотреть командой sysdef; на всякий случай необходимо сделать копию /etc/system.good, чтобы можно было перезагрузиться с помощью "boot -a")

/etc/default/

UTF-8

Локаль UTF-8 распознаётся, но действует странно, поэтому: "LANG= less имя-файла".

filemgr

/usr/openwin/bin/filemgr имеет проблемы с большими файловыми системами (получает EOVERFLOW в statvfs, файловая система на 9ТБ по NFS), при этом он не показывает первые (в смысле "ls -U") 2 файла в каталоге, принимая их за "." и ".."

Ссылки