декабря 10, 2007

STOP-A на клавиатуре PC

Попал в трудную ситуацию - отправил pruduction сервер SunFire V490 на перезагрузку, а он завис... Может параметры перезагрузки не проверил, может еще что... Но результат - сервер завис на этапе загрузки в OpenBoot. Что делать? Хорошо, что я подключил к последовательному порту терминальный сервер - так что могу подключиться к консоли еще не загрузившегося сервера и поправить загрузку.

И что я там вижу? Процесс загрузки прервался и просит ввести какое-то имя файла. Ну точно - ошибся в параметрах. По инструкции нужно нажать STOP+A, чтобы выйти на приглашение PROM ("ok"). Но проблема в том, что такой комбинации на PC клавиатуре нет. В общем -3 часа. В общем решение такое:

  • На терминальном сервере для порта должен быть выключен "Transparent mode" и включен "Break - Enabled";
  • После этого подключаемся к порту telnet'ом (не ssh) и выбираем команду терминала "Send break". В PuTTY это выглядит так - щелчок правой кнопкой на заголовке окна - выбираем из меню "Special command" -> Break. И таки видим заветный "ok", откуда набираем "boot" и наконец загружаемся.

► Статья полностью...

декабря 07, 2007

IBM pSeries 570 - инсталляция.

Я сделал это! Наконец-то мне удалось поработать с основными типами UNIX серверов ведущих брэндов - Sun и IBM. Сегодня запустил машину IBM pSeries 570 (8 x Power-5, 32G RAM). Сильная железяка :)

В нашей комплектации она состоит из 2-х рэков (rack), по 4 юнита (unit) каждый. Рэки соединяются системными шинами и образуют один сервер, который в дальнейшем разделяется на виртуальные разделы, но в отличии от виртуализации на уровне OS это виртуализация на уровне аппаратуры. Т.е. разделы изолированы полностью. На разделы ставится OS AIX - Linux от IBM. Думаю, что проблем с его освоением особых не будет.

На данном этапе состоялся запуск сервера и сдача его сервис-инженеру IBM, на гарантию. Из интересных вещей инталляции запомнилось следующее:

  • Стойку IBM прислал в сборе, поэтому она была жутко тяжелой и пришлось изрядно повозиться поднимая ее на 16-й этаж. Сервера конечно пришлось извлечь и поднимать отдельно. При высоте в 42 юнита стойка не прходила в некоторые проемы, приходилось класть ее не бок... Песня.
  • Для системного управления сервером используется вспомогательный сервер - т.н. HMC (Hardware Management Console). А его в нашей поставке не заказали... Что делать? Пришлось повозиться - расскажу дальше.
  • Кроме того - в спецификации не была учтена опция Advanced Power Virtualization, из-за этого нет возможности покрошить сервер на кучу виртуалок (Micro Partitioning), а только с кратностью до процессора.
  • Все железо жутко дорогое... Ну это собственно не удивительно - IBM.

HMC на VMware

HMC пришлось поднимать на VMware, так как аппаратного не купили. Вообще-то HMC, как она продается, - это одно-юнитовый сервер x86, на котором крутится Linux (SUSE), на котором запущен Java софт. Что порадовало - IBM дает свободно скачать весь дистрибутив (~2.5G) в разделе Recovery Media, но абы на что он не ставится - проверяет тип сервера (machine type)... Вот от этого его и пришлось отучать.

Пришлось пересобрать имидж диска, с помощью mkisofs, убрав проверку типа машины в скриптах установки (isolinux\initrd.gz) и поправив там же XF86Config для VMware. В конфиге X используем драйвер vesa и глубину 8 бит.

Команда монтирования initrd, для редактирования:

  $ mkdir mount_dir
  $ gunzip initrd.gz
  $ sudo mount -o loop initrd mount_dir

Команда создания загрузочного имиджа:

  $ cd image_dir
  $ sudo mkisofs -b isolinux/isolinux.bin -c isolinux/boot.cat \
    -no-emul-boot -boot-load-size 4 -boot-info-table \
    -input-charset=cp1251 \
    -o ../HMC_Recovery_V7R3.2.0_1.1.iso -J -R .

В конфигурации виртуального хоста ставим IDE диск ~80G, без preallocation и две сетевых карты. Одну карту включаем в общую сеть, вторую - в выделенный VLAN, в который включаются сервисные процессоры. Кстати на ней-же нужно запустить DHCP.

Пароли по умолчанию в HMC - hscroot / abc123; root / passw0rd

Дальше - стандартная установка HMC с загрузочного диска, это все описано в руководстве.

Ссылки


► Статья полностью...

ноября 19, 2007

ThinkPad Z60t WiFi & F7

This is notes how I got my ThinkPad Z60t to connect to my 802.11 Wi-Fi router under Fedora 7 OS.
1. Attach Livna repository, then install system drivers, etc.:
  yum -y install madwifi kmod-madwifi wpa_supplicant wpa_supplicant-gui
2. Run the following to generate the wpa_supplicant.conf
  /usr/sbin/wpa_passphrase put_network_ssid_here >>
  /etc/wpa_supplicant/wpa_supplicant.conf
Check /etc/wpa_supplicant/wpa_supplicant.conf and remove any dummy network definitions. Finally it should look like this:
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel

network={
       ssid="put_network_ssid_here"
       scan_ssid=1
       key_mgmt=WPA-PSK
       psk=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
}
3. Ensure "ONBOOT=yes " in /etc/sysconfig/network-scripts/ifcfg-ath0, mine is below:
 DEVICE=ath0
 ONBOOT=yes
 BOOTPROTO=dhcp
 TYPE=Wireless
 USERCTL=yes
 IPV6INIT=no
 PEERDNS=yes
 ESSID=here_my_essid
 MODE=Managed
 RATE=Auto
 CHANNEL=1
4. Edit /etc/sysconfig/wpa_supplicant and make sure these are the values set in it
 INTERFACES="-iath0"
 DRIVERS="-Dmadwifi"
5. Edit source file /etc/init.d/wpa_supplicant and replace digit 12 to 09 in the header (5-th line) and perform next system command, it'll rebuild symlinks:
  /sbin/chkconfig --level 35 wpa_supplicant on
6. As root run the following:
  /sbin/chkconfig --level 35 wpa_supplicant on
  /sbin/chkconfig NetworkManager off
  /sbin/chkconfig NetworkManagerDispatcher off
7. We have to setup default route to the our router. I don't know why it is not set by ifup-wireless in the way like it's done by ifup-eth? Anyhow I had to create file /etc/sysconfig/network-scripts/route-ath0 and put route there -
default via 192.168.1.1
8. Reboot...

Summary

Configuration is almost straightforward, only the bug with wpa_supplicant is a bit disappointing. There is some obscure reasons why the wpa_supplicant should wait for networking to startup. It have to be ready before we try to enable any wireless interface. I've looked up Bugzilla and found that this bug is very longstanding, since F5, in despite of the obvious necessity of the fix it is ported happily to F8... See #244029

References

  1. Fedora 7 & Intel 3945 WIFI
  2. Atheros Chipset Based Cards + MadWifi Installation & Usage
  3. Bug #244029

► Статья полностью...

ноября 08, 2007

Управление патчами - PCA

Компания Sun в разное время предлагала различные инструменты для анализа и управления патчами, например PatchDiag, PatchCheck, PatchPro, smpatch, Sun Update Connection (см. подробнее на Sun Patch Portal).

Некоторые из них недостаточно активно поддерживались, некоторые огромны и непонятны, некоторые не работают на ранних релизах Solaris либо на машинах с минимальной конфигурацией, некоторые требуют сложных процедур установки и регистрации. Ни одна из них мне не нравится - управление патчами должно быть простым.

PCA - Patch Check Advanced (pca) генерирует списки установленных и отсутствующих пакетов для систем Solaris и может скачивать патчи. Она разрешает зависимости между патчами и устанавливает их в правильном порядке. Она может быть единственной утилитой какая Вам когда либо понадобится для управления патчами на хосте, или вш всей сети. Она представляет собой единственный скрипт на Perl и работает на всех версиях Solaris как SPARC так и x86.

Установка очень проста. Скачивается скрипт куда-нибудь в пути и записывается конфигурационный файл: /etc/pca.conf. Внимание - требуется эккаунт на SunSolve и желательно сервисный контракт - иначе нельзя будет устанавливать патчи в которых улучшения, а не исправления системы.

Примеры команд

Привожу примеры наиболее часто употребляемых команд. Подробнее см. документацию.

Команда проверки системы на предмет отсутствующих required и security патчей:

 $ sudo pca -l missingrs

Просмотр файла описания патча:

 $ sudo pca --readme 121019

Команда установки отсутствующих required и security патчей, не требующих перезагрузки:

 $ sudo pca --noreboot --safe --install missingrs

Для справки - команда перезагрузки системы с реконфигурацией...

  $ sudo touch /reconfigure; sync; sudo init 6;

Ссылки


► Статья полностью...

октября 07, 2007

Удаление sendmaill из дочерних зон

Проблема - удалил из глобальной зоны sendmail, а в локальных зонах он не был остановлен... И не удалился соответственно.

Получилась патовая ситуация - в глобальной зоне пакета нет (SUNWsndmr), а в локальной он не удаляется, потому, что нужно удалить сначала из глобальной. Что делать?

Попытка прямого удаления пакета из зоны:

  $ sudo pkgrm -A SUNWsndmr
  pkgrm: ERROR: no package associated with <SUNWsndmr>

Правильная команда позволяет удалять любой пакет из зоны, не удаляя из глобальной зоны и выглядит так:

  $ sudo pkgrm -s /var/sadm/pkg SUNWsndmr
  ...
  Removal of <SUNWsndmr> was successful.

► Статья полностью...

октября 03, 2007

Сворачивание статей в блоге.

В движке блога blogspot.com все меня устраивало, кроме одного - как сделать так, чтобы статьи не публиковались на главной странице целиком?

В общем озадачился я этой проблемой и нашел-таки решение. Далее привожу свою версию последовательности действий.

1. Сначала нужно экспортировать шаблон в файл XML в разделе "Шаблон" => "Изменить HTML" => "Зарезервировать/восстановить шаблон"

2. Далее, открыв файл шаблона в редакторе, вставляем ниже следующий код внутрь тэга <head>:

<style>
  <b:if cond='data:blog.pageType == "item"'>
    span.fullpost {display:inline;}
  <b:else/>
    span.fullpost {display:none;}
  </b:if>
</style>

3. Находим тэг <data:post.body/> и после него ставим:

<b:if cond='data:blog.pageType != "item"'><br />
  <a expr:href='data:post.url'>Подробнее...</a>
</b:if>

4. Измененный шаблон загружаем обратно. Там же, в разделе "Зарезервировать/восстановить шаблон"

5. В дальнейшем, в процессе редактировании каждой новой статьи блога, свертываемую часть сообщения - ту которая не должна отображаться на главной странице, нужно заключить в тэг <span class="fullpost"> </span>. Это конечно не совсем наглядно, однако позволяет четко знать, какая часть сообщения видна.

Ссылки


► Статья полностью...

июля 10, 2007

Запуск програм X11 через ssh туннель из под root и используя sudo

Существует проблема запуска программ X11 из под другого пользователя (root) через ssh туннель и с помощью sudo в сеансе пользователя. Она связана с аутентификацией сеансов X11 (Например выдается ошибка: Invalid MIT-MAGIC-COOKIE-1 keyError: Can't open display: :0.0). Данная проблема решается указанным далее образом.

  • Подключаемся к удаленному хосту:
  • ssh -Y USER@some.hostname
  • Получаем рутовые привилегии:
  • su -
  • И объединяем файлы Xauthority:
  • xauth merge /home/USER/.Xauthority

Все, можно запускать программы X11 от имени root.

Кстати, можно включить форвардинг X11 глобально, в конфигурации ssh - /etc/ssh/ssh_config ( ForwardX11 yes), тогда не нужно добавлять флаг -Y в командной строке.

Запуск программ X11 используя sudo

Для того, чтобы запускать программы X11 используя sudo достаточно внести изменения в файл конфигурации /etc/sudoers. А именно - добавить в список параметра env_keep значения DISPLAY и XAUTHORITY:

Defaults env_keep = "DISPLAY XAUTHORITY ..."

Все, можно запускать программы X11 через sudo. Например попробуйте запустить - sudo xclock.

Этот способ работает и из под Gnome и из под KDE. Если в sudoers установлен параметр требовать пароль пользователя, то нужно запускать команду sudo из терминала, так как стандартного диалога GTK/KDE для ввода пароля на предусмотрено.


► Статья полностью...

июня 21, 2007

Замена Sendmail на Postfix в Solaris 10

В Solaris 10 сильно не понравилось отсутствие родного Postfix - все-таки настройка Sendmail это не тривиальная проблема. Проще его снести и поставить что-то приличное. Как это сделать смотрите здесь. У меня все установилось без проблем (V490/SPARC).


► Статья полностью...

Open Source Software for Solaris

Жутко надоело работать с SUNFREEWARE - весьма нудно ставить пакеты и вручную разбирать зависимости. Я уж было решил, что на солярке все так - гм... криво. Оказалось, что не все! Нашел поразительно удобный репозитарий OpenSource пакетов для Solaris 10 - BlastWare. Ну прямо почти как yum! Очень обрадовался. Пользоваться легко - читаем HOWTO, устанавливаем пакет утилит, и все. Можно устанавливать любой пакет из репозитария с автоматическим отслеживанием зависимостей и поддержкой обновлений. Например устанавливаем fortune:
$ sudo /opt/csw/bin/pkg-get -i fortune

► Статья полностью...

июня 18, 2007

Обновление FC6 - FC7

Ну вот, решил обновить свою Fedora Core 6 на 7. Посмотреть на подвижки на фронте разработки FC... Запасся всяческими полезными от здоровья вещами, т.е. пивом, вкусным ужином и DVD с FC7 и вечерком в пятницу засел за медитацию на своем IBM ThinkPad Z60t.

В общем в течении одного-двух часов это было довольно скучное занятие, ничего не происходило, кроме сосредоточенного шуршания винчестера. Я уж даже было поверил, что мне таки удасться обновить систему на гоп-стоп :/

Но потом таки началось развлечение! Сначала, практически закончив все устанавливать инсталлятор anaconda вывалился с какой-то дикой ошибкой, видимо не справившись со всеми этими зависимостями и нимало сумняшись пошел на ребут... Вообще конечно странно и немного непонятно - зачем сосредоточенно готовить какую-то транзакцию по установке, если она не откатывается по ошибке?

Она естественно и не откатилась... Правда система загрузилась практически без проблем, ну не считая каких-то невразумительных выкриков nash. И естественно оказалось, что старые пакеты не деинсталлированны и у меня 5.5G винта забросано системой, что собственно ровно в 2 раза больше нормального.

Удаление пакетов FC6

В общем нужно удалить старые пакеты FC6... Не особо приятно, но надо. Первое, что пришло в голову - делаю выборку всех fc6 пакетов в файл stale.fc6 :

$ sudo rpm -qa | grep "fc6$" | tee stale.fc6

И получаю 800 с лишним пакетов. Гм. Будем резать. Что еще остается?

# cat stale.fc6 | xargs rpm -ev

Естественно вывалилась куча ошибок. Оказалось, ну не то чтобы совсем неожиданно ;), что много fc6 пакетов входят стандартно в fc7. Соответственно есть зависимости. Эти пакеты я не трогаю, просто либо удаляю их из файла stale.fc6, либо прописываю то, что от них зависит. Не мудрено, что инсталлятор сдох...

После того, как нужные пакеты все таки удалились, оказалось что удаляясь они частично попортили уже установленные новые пакеты. А вот это неприятно. Нужно восстановить установленные пакеты fc7.

Восстановление пакетов FC7

Это вот сложнее, чем удалить старые пакеты. Пришлось писать маленькую программку:

#!/usr/bin/perl
# (C) 2007 by Vladimir Kolundin
# Check broken rpms
# Parameters: path of the RPM storage (e.g. DVD)

use strict;

my ($cur_rpm, $cur_arch, $is_bad, $repo);

$repo = shift;
open(RPMH, "rpm -qa 2>&1 |") ||
  die "[938826] Can't execute rpm utility.";

while(<RPMH>) {
  chomp;
  $cur_rpm = $_;
  $is_bad = 0;
  open(CURH, "rpm -q --verify --nodigest $cur_rpm 2>&1 |") ||
    die "[248984] Can't execute rpm utility.";

  while (<CURH>) {
    if (/^missing/i) {
      next if m[/usr/share/doc/];
      $is_bad = 1;
      last;
    }
  }

  close CURH;

  if ($is_bad) {
    $cur_arch = `rpm -q --qf '%{ARCH}' $cur_rpm`;
    $cur_rpm = "$cur_rpm.$cur_arch.rpm";
    print "$cur_rpm\n" if (-e "$repo/$cur_rpm");
  }
}

Суть программки состоит в следующем:

  • Открываем вывод утилиты rpm как файл.
  • Проводим верификацию каждого пакета в выводе на предмет missing файлов, а так как я не особенно не торопился (C), то пакеты у которых не хватает только документации пропускаем (next if m[/usr/share/doc/];).
  • Для найденных битых пакетов ищем файлы на DVD (путь к репозиторию - параметр скрипта), ибо что толку найти битый пакет и не иметь возможности его переустановить?

В результате у меня сформировался список файлов пакетов которые я мог переустановить, что я и сделал:

# perl check-missing.pl /media/cdrom/Fedora | tee reinstall.fc7
# cd /media/cdrom/Fedora
# cat ~/reinstall.fc7 | xargs rpm -Uhv --force

В результате у меня все пакеты были переустановлены. Осталось только навести глянец.

Наводим глянец

Естественно я подразумеваю, что интернет Вы уже настроили ;) Я же обновляю систему, а не устанавливаю.

Устанавливаем репозиторий LIVNA:

$ sudo rpm -Uvh \ http://rpm.livna.org/fedora/7/i386/livna-release-7-2.noarch.rpm

Приводим в порядок шрифты

$ sudo rpm -Uvh \ http://avi.alkalay.net/software/freetype.bci/FC7/freetype-freeworld-2.3.4-1.i386.rpm

Перезапускаем иксы. Чтобы понять, как это работает читаем Linux Font HOWTO.

Устанавливаем шрифты Web Standard Fonts

Эти пакеты содержат популярные шрифты, такие как Arial, Times New Roman, Tahoma, Verdana, а так же новые шрифты Windows Vista and MS Office 2007. Подробнее смотрим здесь.

$ sudo rpm -Uvh \
http://avi.alkalay.net/software/webcore-fonts/webcore-fonts-3.0-1.noarch.rpm \
http://avi.alkalay.net/software/webcore-fonts/webcore-fonts-vista-3.0-1.noarch.rpm

После этого настраиваем рабочий стол как описано в Linux Font HOWTO, для KDE или Gnome.

Поддержка MP3

$ sudo yum -y install kdemultimedia-extras-nonfree id3v2

Устанавливаем Amarok

$ sudo yum -y install amarok-extras-nonfree

Устанавливаем DVD плеер

$ sudo yum -y install vlc

Вот собствено в общих чертах и все... В районе 5:30 утра я пошел спать. Вполне удовлетворенный :)


► Статья полностью...

апреля 12, 2007

[Solaris] Как узнать к какому пакету принадлежит файл?

Для этого нужно воспользоваться командой pkgchk. Например, для того, чтобы определить к какому пакету принадлежит файл /usr/local/lib/libgmodule-2.0.so.0.1300.0, выполним следующую команду:
$ sudo pkgchk -lp /usr/local/lib/libgmodule-2.0.so.0.1300.0
Pathname: /usr/local/lib/libgmodule-2.0.so.0.1300.0
Type: regular file
Expected mode: 0755
Expected owner: bin
Expected group: bin
Expected file size (bytes): 15484
Expected sum(1) of contents: 22106
Expected last modification: Mar 18 07:35:19 2007
Referenced by the following packages:
        SMCglib
Current status: installed

► Статья полностью...

февраля 21, 2007

Outlook Web Access (OWA) - Неизвестная ошибка.

Сбой: При создании нового сообщения в Outlook Web Access (OWA) IE долго думает, а потом пишет в окне нового сообщения вполне лаконично - Неизвестная ошибка. После нескольких последовательных попыток падает, при этом успевая сказать, что "в то время как он падал" была загружена библиотека [mimectl.dll]. Данные ОС: IE 6.0 Win XP Pro 2002 SP2 Решение: Этот сбой вызван ошибкой модуля S/MIME и (говорят) исправлен во Exchange SP2. Решения два: 1. Удалить сбойный модуль. Выполнить следующие команды в cmd:
prompt> c: prompt> cd "%SystemRoot%\Downloaded Program Files" prompt> regsvr32 /u exsmime.dll prompt> regsvr32 /u mimectl.dll
2. Зарегистрировать новую версию модуля (если установили Exchange SP2) в OWA.
Настройки->Безопасность электронной почты->Установка последней версии элемента управления S/MIME.
Положительным фактором последнего варианта является то, что в дальнейшем этот модуль появляется (как бы можно удалить) в "Установка и удаление программ" -> Microsoft Web Access S/MIME. Отрицательным - то, что он так и не заработал :( Кстати, эта ошибка исправлена и есть хотфикс для Exchange SP 2. Описание бага следующее:
The Compose Message form stops responding after you install Internet Explorer 7.0 and the S/MIME control on an Outlook Web Access client in Exchange Server 2003
Заметьте, что используется 7-я версия IE... Вот еще обсуждение этого фикса на течнете. Кстати после установки этого хотфикса на Exchange 2003 и переустановки модуля на 6-м Explorer'e глюк продолжил свое функционирование :(. Так что придется устанавливать IE 7.0, но на это сегодня я уже не готов...

► Статья полностью...