четверг, 26 июля 2007 г.

Slackware 12

Наконец-то добрался до Slackware 12. Как обычно, сначала любую новую операционую систему я пробую устанавливать в виртуальной машине. Инсталяция прошла гладко, ни на шаг не отступая от классической схемы установки Slackware — консоль, разбиение диска с помощью fdisk, выбор пакетов для установки из списка. Как обычно выбираю абсолютный минимум необходимых пакетов. Отметил, что теперь по умолчанию предлагается форматировать разделы диска в ext3, вместо raiserfs как было раньше. Порадовало наличие пакета openvpn. До 12-ой версии Slackware похоже был последним дистрибутивом, содержащим веб сервер apache1. Теперь он заменен сразу на apache2.2!, кто-то наверное обрадуется, а мне немного грустно, т.к. возможностей apache1 мне хватало абсолютно.

Для каждой виртуальной машины я выделяю 48Мб памяти. Для Slackware с версий 9.1 по 11 этого вполне хватало не только для загрузки, но и для адекватной работы в качестве девелоперской машины LAMP сервером, естественно без иксов. Но вот загружается Slackware 12 и первое впечатление — дааа, потяжелела слакварь, курсор в консоле еле ворочается, память занята вся и ещё немало подкачки отъела.

Однако проблема довольно быстро решается:

  1. Отключаем появившиеся в Слаке новомодные сервисы, необходимые только для десктопа. Для этого снимаем атрибут исполняемого файла с:

    • /etc/rc.d/rc.hald
    • /etc/rc.d/rc.messagebus
    • /etc/rc.d/rc.udev
  2. В /etc/rc.d/rc.modules отключаем загрузку ненужных модулей ядра, а именно:

    # /sbin/modprobe psmouse proto=imps
    # /sbin/modprobe pcspkr
    # /sbin/modprobe -q parport_pc 2> /dev/null
    # /sbin/modprobe agpgart 2> /dev/null
    # /sbin/modprobe capability

    После этого в памяти оставался ещё не нужный нам модуль ядра ipv6. Его отключаем добавлением следующих строчек в /etc/modprobe.d/blacklist:

    alias net-pf-10 off
    blacklist ipv6
  3. Многие знают, что Slackware 12, тоже одним из последних, перешел на ядро 2.6. Но не все знают, что теперь в Slackware 12 есть две сборки ядра, называемые huge и generic. По умолчанию грузится huge, где большинство модулей вкомпилены в ядро. Так не возникают проблемы при загрузкой с разных файловых систем, но это ядро занимает много памяти. Чтобы переключится на generic ядро скорее вам всего нужно будет собрать initrd, содержащий как минимум модуль ядра для корневой файловой системы. Краткие объяснения и инструкция содержатся в файле /boot/README.initrd. В моём случае понадобилось выполнить следующую команду:

    mkinitrd -c -k 2.6.21.5-smp -m ext3

    Добавляем пункт загрузки с generic ядра в меню lilo, для этого вставляем строки в файл /etc/lilo.conf:

    image = /boot/vmlinuz-generic-smp-2.6.21.5-smp
      initrd = /boot/initrd.gz
      root = /dev/XXXN
      label = Linux-generic
      read-only

После этих действий система стала вести себя более отзывчиво :-). 48 Мб опять хватает. В общем я доволен. Мы получили дистрибутив, который с одной стороны идет в ногу со временем, включающий последние достижения Open Source, обновленные версии всех программ. С другой стороны Slackware строго придерживается собственных традиций, устанавливаются оригинальные версии программ, без патчей. Позволяется максимально возможную гибкость в настройке системы. В общем, я всё больше убеждаюсь, что Slacware лучшая ОС для серверных решений.

2 комментария:

Анонимный комментирует...

Чудесная статья!

Анонимный комментирует...

она не может быть лучшей по одной простой причине: жёсткая привязка к x86