degustateur

[info]unixblog


Руслан Валиев

Unix Blog


Google Wave
degustateur
[info]unixblog


Кому еще не досталось? Есть восемь инвайтов.

Акклиматизация
degustateur
[info]unixblog
Уф, неужели большинство коробок опустошено, мебель собрана, провода раскиданы. И вчера активировали тырнет. В этот раз повезло — моя квартира в ~200 метрах от DSLAM'а:



Теперь можно серфить в три раза бытсрее (в Лионе было не больше 4 mbit):




А после двух с лишним лет работы на дому, немного сложно снова переключиться на режим «дом-работа-дом»:




На улице — последние теплые дни:


Поехали
degustateur
[info]unixblog
Всем привет.

Ну, наконец-таки свершилось. Я нашел работу.

С 17-го марта я побывал не менее, чем на пятидесяти интервью. Абсолютно серьезно. То ли харизма у меня такая, то ли, действительно, кризис, но опыт зато я приобрел нехилый.

Мне посчастливилось рассказать о себе таким крупным фирмам как Google, Amazon и IBM. А живя в Лионе, я побывал на интервью в Люксембурге, Швейцарии и юге Франции. Если считать в среднем, то наколесил я примерно на 8000 км.
Обидно, конечно, когда после десяти часов за рулем, тебе звонят на следующий день и говорят, мол, сорри, но ты не в шорт-листе. В то же время, жертвовать надо. Жизнь-то идет.

В общем, первый рабочий день у меня через неделю. Впереди куча приятных хлопот. Переезжать будем все-таки :-)

Хочу пожелать таким же, как я — терпения и выносливости. То, что кризиз-шмизис — это одно, а тот, кто ищет, он всегда найдет.

Дзен
degustateur
[info]unixblog


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

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

Я никогда не осуждал тех, у кого на серверах стоит убунту или федора. Для меня это немного странно, да. Но это всего лишь мое мнение, относительно только одного меня и моих собственных мировозрений, а, значит, критика будет эгоизмом с моей стороны.

Мне приятно общаться с людьми до тех пор, пока я не наблюдаю перевеса маятника в какую-то одну сторону. Злость вызывают обсирающие виндовс и интернет эксплорер. Не меньшую злость вызывают обсирающие юникс, линукс и файрфокс.

Я за право выбора и считаю, что самая лучшая операционка и браузер пока не существуют. Есть много хороших ОС, для разных задач. На столе у меня макось, сафари и файрфокс. На домашнем сервере солярис с zfs, линукс с астериском и виндовс с принтером. Должно ли вас это волновать? Нет.

Всего по чуть-чуть
degustateur
[info]unixblog
1) Solaris на NTFS.

2) В DD-WRT найдена уязвимость, позволяющая запускать комманды под рутом.

3) Мать всех USB-хабов: Cambrionix 49-Port USB Hub.

4) Главные новинки 120-го билда OpenSolaris: RAIDZ3; latencytop.

Did you mean?
degustateur
[info]unixblog
Гугл радует. Алгоритм настолько хорош, что при запросе а-ля "recursion", он спрашивает, не имел ли я ввиду "recursion".

Что же такое "рекурсия"?

"Рекурсия — способ общего определения объекта или действия через себя, с использованием ранее заданных частных определений. Рекурсия используется, когда можно выделить самоподобие задачи."

ZFS Memory Utilization
degustateur
[info]unixblog
В отличии от традиционных файловых систем (включая UFS, VxFS, NFS и т. д.), которые используют виртуальную память для кеширования данных, ZFS использует свой уникальный механизм — ARC (adaptive replacement cache).

По умолчанию, ARC резервирует всю физическую память минус 1GB. Тут можно почитать подробно о тюнинге ARC'a: http://www.solarisinternals.com/wiki/index.php/ZFS_Evil_Tuning_Guide#Limiting_the_ARC_Cache

А так распределилась память на моем сервере:

mv designerus unixblog
degustateur
[info]unixblog


Переименовал свой блог из "designerus" в "unixblog", чтобы подчеркнуть основное направление информации в постах.

Все контакты, теги и комментарии сохранены, и автоматически перенесены на новый адрес.

Руслан ex-designerus Валиев

Сортируем список
degustateur
[info]unixblog


Заметил, что время, потраченное на закупку продуктов значительно уменьшилось после того, как я начал сортировать список по фигуркам. Можно даже обойтись без ручки и не зачеркивать то, что уже в корзине.

А как бы вы отсортировали этот список, чтобы не возвращаться в один и тот же отдел два раза?

Социальные сети
degustateur
[info]unixblog


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

Меня можно найти по этим ссылкам:

- Вконтакте
- Facebook
- LinkedIn

Сортировка фотографий
degustateur
[info]unixblog
Открыл для себя прекрасную программку под названием exiftool. Позволяет, среди прочего, работать с EXIF-информацией. Но моей целью было немного другое. Мне нужно было рассортировать фотки по датам.

Уже много лет в моей папке с фотографиями царит беспорядок: таймстемпы у большинства файлов не соответсвуют реальным датам, куча файлов и папок с одинаковыми именами и т. д.
Я уже даже начал писать скрипт, который с помощью другой утилиты, exiv2, берет таймстемп из каждого файла и пишет в другой файл. Затем другая функция запускает touch -d ... file. И еще раз убедился в том, что нужно гуглить, перед тем как писать что-то.

В общем, скачал ExifTool-7.76.tar.gz, распаковал. Оказалось, что написано на перле. Попробовал запустить, но получил ошибку о недостающем Image/ExifTool. Поставил этот модуль, запустил две(!) комманды и 55GB были автоматически отсортированы по папкам. Гениально просто.

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

server:~# exiftool "-FileName<CreateDate" -r -d "%Y_%m_%d-%H%M%S.%%e" /storage/photo

Вторая комманда сортирует фотки по папкам:

server:~# exiftool "-Directory<DateTimeOriginal" -r -d "%Y/%m/%d" /storage/photo

SCSA
degustateur
[info]unixblog


Yeah, baby!

Current music
degustateur
[info]unixblog


Настоятельно рекомендую.
Tags:

Аспекты безопасности в Solaris-зонах
degustateur
[info]unixblog
Вдогонку к предыдущему посту, хочу поделиться интересным чтивом.
В качестве примера показано, как создать и изолировать в плане безопасности зону с Apache.


Установка CentOS 3.9 в lx-branded-зоне
degustateur
[info]unixblog
Никогда не пробовал создавать Linux branded зоны. Вы наверняка помните эту фичу из проекта BrandZ.
В такую зону, якобы, можно поставить Linux.

А я, гуляя по docs.sun.com, как раз наткнулся на System Administration Guide: Solaris Conatiners-Resource Management and Solaris Zones и вспомнил про BrandZ. Ну, думаю, надо заполнить небольшой, но пробел.

В доке упоминаются RHEL 3.x и CentOS 3.x как поддерживаемые дистры. RedHat не имею, поэтому скачал CentOS 3.9

Создаю новую зону:

server:~# zonecfg -z centos
centos: No such zone configured
Use ‘create’ to begin configuring a new zone.
zonecfg:centos > create -t SUNWlx
zonecfg: centos > set zonepath=/storage/zones/centos
zonecfg: centos > exit


Инсталлирую зону. Попытка №1:

server:~# zoneadm -z centos install -d /export/home/centos
A ZFS file system has been created for this zone.

Checking for valid Linux distribution ISO images...

No supported Linux distributions found.

Installation of server to zone
'centos' FAILED Tue May 5 23:33:30 CEST 2009.

Cleaning up after failed install...

Installation of zone 'centos' FAILED.

See the log file:
'/storage/zones/centos/root/var/log/centos.install.29175.log'
for details.

Хм, странно. Я же скачал CentOS 3.9, а инсталлер говорит "No supported Linux distributions found." Полез назад в док и открыл для себя, что поддерживаются-то только версии 3.5—3.8. Фак! Поставил на всякий случай скачиваться 3.8, а сам, тем временем, стал искать, как инсталлер делает валидацию.

Открываю лог, читаю. Нахожу интересную строку:

Checking ISOs against distro file "/usr/lib/brand/lx/distros/centos38.distro"...

Последующее изучение этого файла наводит меня на мысль, что инсталлер можно обмануть.

server:/usr/lib/brand/lx/distros# cat centos38.distro
...
# Installation information for the CentOS 3.8 distribution disc set:
#
# + Serial number (as found in the disc set's .discinfo file)
# + Version Name
# + Order CDs holding the distribution must be installed in
# + MB of disk space required to hold a full install of the distribution
#
distro_serial=1155307611.42
distro_version="3.8"

Делаю копию:

server:/usr/lib/brand/lx/distros# cp centos38.distro centos39.distro

Придется замаунтить образ с CentOS 3.9 и взять оттуда серийник:

server:~# mount -F hsfs -o ro `/usr/sbin/lofiadm -a /export/home/centos/CentOS-3.9-i386-binDVD.iso` /mnt
server:~# cat /mnt/.discinfo
1183469235.986110
final
i386
1,2,3
RedHat/base
RedHat/RPMS
RedHat/pixmaps

Копирую серийник и вставляю его в centos39.distro:

server:~# cat /usr/lib/brand/lx/distros/centos39.distro
...
distro_serial=1183469235.986110
distro_version="3.9"
...

Можно попробовать установить зону заново. Но сначала придется перенести ее в статус "configured". Попытка №2:

server:~# zoneadm -z centos uninstall
Are you sure you want to uninstall zone centos (y/[n])? y
The ZFS file system for this zone has been destroyed.
server:~# zoneadm -z centos install -d /export/home/centos
A ZFS file system has been created for this zone.

Checking for valid Linux distribution ISO images...
Installing distribution 'CentOS (DVD)'...
Installing cluster 'desktop'
Installing miniroot for zone 'centos'.
Attempting to locate 30 packages...

Installing 30 miniroot packages...

Setting up the initial lx brand environment.
System configuration modifications complete.
Duplicating miniroot; this may take a few minutes...
Booting zone miniroot...
Miniroot zone setup complete.

Performing full install for zone 'centos'.
Attempting to locate 669 packages...

Installing zone 'centos' from
ISO "/export/home/centos/CentOS-3.9-i386-binDVD.iso".

Checking for deferred packages...
Attempting to locate 3 packages...

Installing 665 packages; this may take several minutes...

Install of zone 'centos' from
FAILED.

Installation of CentOS to zone
'centos' FAILED Wed May 6 00:08:13 CEST 2009.

Cleaning up after failed install...

Installation of zone 'centos' FAILED.

See the log file:
'/storage/zones/centos/root/var/log/centos.install.29388.log'
for details.

Да епт, что теперь?! Опять смотрю в лог и вижу причину ошибки:

server:~# cat /storage/zones/centos/root/var/log/centos.install.29388.log
...
ERROR: Unable to locate some needed packages:
gaim expectk tcl-html tcllib
...

Я просто убрал упоминания об этих пакетах в rhel_centos_common и centos39.distro:

server:/usr/lib/brand/lx/distros# grep gaim *
rhel_centos_common: gaim

server:/usr/lib/brand/lx/distros# grep expectk *
centos38.distro: expectk
centos39.distro: expectk

server:/usr/lib/brand/lx/distros# grep tcl-html *
centos38.distro: tcl-html
centos39.distro: tcl-html

server:/usr/lib/brand/lx/distros# grep tcllib *
centos38.distro: tcllib
centos39.distro: tcllib

В очередной раз пробую установить зону. Попытка №3:

server:~# zoneadm -z centos uninstall
Are you sure you want to uninstall zone centos (y/[n])? y
The ZFS file system for this zone has been destroyed.
server:~# zoneadm -z centos install -d /export/home/centos
A ZFS file system has been created for this zone.

Checking for valid Linux distribution ISO images...
Installing distribution 'CentOS (DVD)'...
Installing cluster 'desktop'
Installing miniroot for zone 'centos'.
Attempting to locate 30 packages...

Installing 30 miniroot packages...

Setting up the initial lx brand environment.
System configuration modifications complete.
Duplicating miniroot; this may take a few minutes...
Booting zone miniroot...
Miniroot zone setup complete.

Performing full install for zone 'centos'.
Attempting to locate 665 packages...

Installing zone 'centos' from
ISO "/export/home/centos/CentOS-3.9-i386-binDVD.iso".

Checking for deferred packages...
Attempting to locate 3 packages...

Installing 665 packages; this may take several minutes...

Installing 3 deferred packages; this may take a few minutes...

Completing installation; this may take a few minutes.
Setting up the initial lx brand environment.
System configuration modifications complete.
Installation of CentOS to zone
'centos' completed Wed May 6 00:33:00 CEST 2009.

Installation of zone 'centos' completed successfully.

Details saved to log file:
"/storage/zones/centos/root/var/log/centos.install.6722.log"

Алоха!

server:~# zlogin centos
[Connected to zone 'centos' pts/6]
-bash-2.05b# uname -a
Linux centos 2.4.21 BrandZ fake linux i686 i686 i386 GNU/Linux

Патчим x86.miniroot своим драйвером
degustateur
[info]unixblog
Вчера достал старый ноут и решил поставить на него десятую солярку. Я готовлюсь к тестам по Sun Cluster, поэтому второй комп может пригодиться. Да вот только DVD-привод (MATSHITADVD-RAM UJ-845S) на нем уже давно не работает. Я два раза посылал ноут в ASUS, чтоб мне поменяли привод и оба раза он ломался. Видимо, карма плохая.

Поднял, в общем, JumpStart на другой машине, создал правила, профиль и т. д. Драйверов на сетевую карту (Marvell Technology Group Ltd. 88E8001 Gigabit Ethernet Controller) в десятке нет, поэтому пришлось патчить образ:

js-server:~# gunzip < x86.miniroot > /tmp/x86.miniroot.$$
js-server:~# mount $(lofiadm -a /tmp/x86.miniroot.$$) /mnt
js-server:~# pkgadd -R /mnt SKGEsol


Моего алиаса в /etc/driver_aliases, разумеется, не было. Добавил свой:

js-server:~# echo "skge \"pci1043,173c\"" >> /etc/driver_aliases


Запаковал новый образ:

js-server:~# umount /mnt
js-server:~# lofiadm -d /tmp/x86.miniroot.$$
js-server:~# gzip < /tmp/x86.miniroot.$$ > x86.miniroot


Почти все готово. DHCP-сервер у меня на рутере:

router#conf t
router(config)#ip dhcp pool test-pool1
router(dhcp-config)#bootfile pxegrub.I86PC.Solaris_10-1
router(dhcp-config)#next-server 10.0.0.40
router(dhcp-config)#end
router#sh run
...
!
ip dhcp pool test-pool1
   network 10.0.0.0 255.255.255.0
   bootfile pxegrub.I86PC.Solaris_10-1
   next-server 10.0.0.40
   dns-server 10.0.0.41 212.27.40.240
   default-router 10.0.0.1
   domain-name valiyev.com
...


Конец.

В поисках нового
degustateur
[info]unixblog
Да, кстати, в Гугл меня не взяли. Или правильнее будет сказать, что в этот раз не взяли :-)
Я и так им благодарен за уникальную возможность. За время подготовок я открыл для себя много нового.

В связи с таким поворотом событий я продолжаю свои поиски. На этот раз мне предстоит съездить в Люксембург. С радостью выслушаю тех, кто уже успел побывать в этой маленькой стране, о которой я почти ничего не слышал.
Итого: около 530 км в каждую сторону.

Будут хорошие новости — сообщу.


Компания Oracle купила Sun Microsystems за 7.4 миллиарда долларов
degustateur
[info]unixblog


Компании Oracle и Sun Microsystems подписали соглашение о передаче активов Sun компании Oracle по цене $9.50 за акцию. Общий размер сделки составил около 7.4 миллиарда долларов или 5.6 миллиардов с учетом оплаты долгов. Полностью завершить сделку компании намерены летом.

opennet.ru

VirtualBox, Solaris & USB-поддержка
degustateur
[info]unixblog
Узнав недавно о долгожданной поддержке USB на хостах с Солярисом, я решил проверить все на практике.

В общем, задача: сделать так, чтобы можно было пользоваться всеми функциями Canon MP530 (print, copy, scan) в виртуальной машине с Windows XP.

Для решения этой проблемы мне надо произвести следующее:

    1) Сделать апгрейд VirtualBox с версии 2.1 на 2.2;
    2) Создать новую виртуальную машину;
    3) Установить Windows XP и принтер.

Чтобы сделать апгрейд, нужно:

    1) Остановить все запущенные виртуальные машины, если таковые имеются;
    2) Удалить старый VirtualBox;
    3) Установить новый VirtualBox.

Итак, останавливаю две другие машины с Линуксом:

server:~# VBoxManage controlvm virt-debian poweroff
server:~# VBoxManage controlvm virt-redhat poweroff


Перед установкой новой версии нужно удалить старую:

server:~# pkgrm SUNWvbox
server:~# pkgrm SUNWvboxkern


Подготовка к установке:

server:~# wget http://download.virtualbox.org/virtualbox/2.2.0/VirtualBox-2.2.0-45846-SunOS.tar.gz
server:~# gunzip -cd VirtualBox-2.2.0-45846-SunOS.tar.gz | tar xvf -


Пока вопросов нет? Отлично, продолжаю. Требуется установить два пакета. В первом пакете находится модуль vbi (VirtualBox kernel interface module). Во втором — сама программа.

server:~# pkgadd -d VirtualBoxKern-2.2.0-SunOS.pkg
server:~# pkgadd -d VirtualBox-2.2.0-SunOS-x86.pkg


На этом установка новой версии VirtualBox завершена. Перехожу ко второму шагу: создаванию новой виртуальной машины.

Стоит отметить, что я, во-первых, работаю удаленно. И, во-вторых, создавать новую виртуальную машину с Windows XP я тоже буду удаленно, с помощью командной строки.

Я выделяю 256МБ оперативной памяти; резервирую 10ГБ дискового пространства; говорю, что надо загружать с CD/DVD и создаю мост со второй сетевой картой на моем сервере (yukonx1). Затем я указываю путь к образу с Windows XP и запускаю инсталляцию.
Потом можно будет открыть rdesktop и подсоединиться к серверу:3391. Почему 3391, а не к стандартному 3389? Просто-напросто, у меня несколько машин с включенным VRDP. И у каждой машины должен быть свой порт.

server:~# VBoxManage createvm -name virt-winxp -register
server:~# VBoxManage createvdi -filename virt-winxp.vdi -size 10000 -register
server:~# VBoxManage registerimage dvd "/storage/xp.iso"
server:~# VBoxManage modifyvm virt-winxp -memory 256MB -hda virt-winxp.vdi -acpi on -boot1 dvd -nic1 bridged -bridgeadapter1 yukonx1 -dvd "/storage/xp.iso" -vrdpport 3391


Чуть не забыл про самое главное. Надо найти принтер и активировать поддержку USB:

server:~# VBoxManage list usbhost
Host USB Devices:

UUID: 75155392-468d-4e27-bde0-40ff85ee872f
VendorId: 0x04a9 (04A9)
ProductId: 0x1712 (1712)
Revision: 1.8 (0108)
Manufacturer: Canon
Product: MP530
SerialNumber: 21A2A0
Address: /dev/usb/4a9.1712/0|/pci@0,0/pci1043,82d4@1d,7/device@2
Current State: Busy
server:~# VBoxManage modifyvm virt-winxp -usb on
server:~# VBoxManage usbfilter add 0 -target virt-winxp -name "Canon MP530 [0108]" -active yes -vendorid 04A9 -productid 1712 -revision 0108 -manufacturer Canon -product MP530 -remote no -serialnumber 21A2A0


Теперь нужно стартануть машину, только после этого принтер будет подключен:

server:~# VBoxHeadless -startvm virt-winxp -vrdp on -vrdpport 3391 &


На этом этапе VirtualBox сам подсоединит принтер, что можно увидеть в логе /var/adm/messages:

server:~# tail -2 /var/adm/messages
Apr 15 17:21:33 server VBoxUSBHelper[2176]: [ID 387370 user.error] VBoxUSBHelper: /usr/sbin/update_drv -d -i pci1043,82d4@1d,7/device@4 ugen
Apr 15 17:21:33 server VBoxSVC[1262]: [ID 594873 user.error] USBProxy: Success captured Canon MP530


Осталось открыть rdesktop и установить Windows, а потом и принтер:

macbook:~ norus$ rdesktop 10.0.0.40:3391


Ну, вот вроде и все. Как всегда, если будут вопросы — пишите.

Напоследок хочу показать, что задача выполнена )

VirtualBox, поддержка USB
degustateur
[info]unixblog
Не так давно я спрашивал в ru_root, как мне решить проблему с USB-принтером. Напомню, что мне требовалась подключить принтер к виртуальной машине с Windows XP. Я, кстати, так и не нашел решения. Ну да ладно.

Похоже, над долгожданной реализацией уже работают, и в версии 2.2.0 добавилась экспериментальная поддержка USB на хостах с OpenSolaris'ом, что не может не радовать. Чувствую, полная реализация не заставит себя долго ждать.

Список новшеств в VirtualBox 2.2.0:
  • OVF (Open Virtualization Format) appliance import and export (see chapter 3.8, Importing and exporting virtual machines, User Manual page 55)
  • Host-only networking mode (see chapter 6.7, Host-only networking, User Manual page 88)
  • Hypervisor optimizations with significant performance gains for high context switching rates
  • Raised the memory limit for VMs on 64-bit hosts to 16GB
  • VT-x/AMD-V are enabled by default for newly created virtual machines
  • USB (OHCI & EHCI) is enabled by default for newly created virtual machines (Qt GUI only)
  • Experimental USB support for OpenSolaris hosts
  • Shared folders for Solaris and OpenSolaris guests
  • OpenGL 3D acceleration for Linux and Solaris guests (see chapter 4.8, Hardware 3D acceleration (OpenGL), User Manual page 70)
  • Added C API in addition to C++, Java, Python and Web Services
Подробности в Changelog

Home