Живой Linux своими руками, Эпизод 3: Тюнинг системы

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


Экономим место
Лучше начинать с базовой установки своего дистрибутива и, в зависимости от задач, сносить одни пакеты и ставить другие. Тут главное не увлекаться и знать, что место на диске ограничено, хотя сжатие у squashfs с патчем lzma весьма сильное.

Что можно удалить из базового дистрибутива
Пример с дистрибутивным ядром показателен - его снос высвобождает целых 60Мб. Но есть куча других мелких и не очень утилит, которые не нужны в таком объёме, особенно в бездонной директории /usr. Итак:

  • снос дистрибутивного ядра и замена "живым"
  • aptitude purge python2.4
  • удаление утилит тестирования типа reportbug, installation-report и прочих
  • вырубка всяких альтернативных утилит типа dc, nano, tcsh, portmap
  • прополка от python-selinux, policycoreutils и прочих параноидальных прибамбасов
  • долой info, bind9, whois, finger, telnet....
  • убирать документацию разработчиков из /usr/share/doc и словарей из /usr/share/dict - это не столько сокращает объём сколько уменьшает количество файлов (где-то на 10 тысяч)
  • локали (/usr/share/i18n/locales), мануалы (/usr/share/man) и шрифты оставить только нужные и на тех языках, о которых вы слышали. Локали можно убрать с помощью localepurge.
В общем, следует пройтись с топором по директориям, особенно сильно им размахивая в /usr, где добра больше всего. Всё это поможет сэкономить место для чего-нибудь действительно полезного. Например, для иксов :-)
У меня в итоге получилось, что базовый ISO-образ вместе с иксами, MC и IceWM занимает чуть больше 100Мб. В ходе тестирования в эмуляторе выяснилось, что загружается сие чудо в системах с более чем 64Мб ОЗУ. На ноутбуке загрузилось примерно за минуту, нашло все устройства и даже примонтировало автоматом все диски.


Что стоит установить в базовую систему
Всё сказанное ниже будет сильно зависеть от того, что вы хотите сделать из системы. Но я думаю, совсем не лишним и не обременительным будет установить:
  • облегчённые утилиты для интернет: wget и elinks
  • утилиты тестирования оборудования: dmidecode, lshw, hdparm, memtest86+, bonnie++
  • samba для общения с оффтопичной системой
Это сформирует базовую систему, которую лучше всего скопировать куда-нибудь и сжать в архив. При необходимости её легко дополнять и обвешивать программами под текущие нужды - а дальше можно печь живые диски, как горячие пирожки, при помощи live-скриптов.


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

Автоматический логин
Чтобы каждый раз не писать пароль, лучше всего настроить автоматический вход в систему. Если диск спасательный, то можно сделать так: удалить пакет xdm и поставить mingetty - так обеспечивается вход в систему пользователя без пароля и запуск иксов, когда они нужны.
Итак:
aptitude remove xdm
aptitude install mingetty


После этого заходим в /etc/inittab меняем строку вида
1:2345:respawn:/sbin/getty 38400 tty1
на
1:2345:respawn:/sbin/mingetty --autologin имяпользователя tty1
Заменяя имяпользователя на логин реального юзера, имеем беспарольный вход в систему (взято отсюда). Потом, если потребуются иксы, пишем startx и наслаждаемся.


Настройка иксов

Если вы хотите, чтобы иксы (если они есть, конечно) запускались всегда и везде, нужно прописать драйвер vesa:
Section "Device"
Identifier "Cirrus Logic GD 5446"

Driver "vesa"
BusID "PCI:0:2:0"
EndSection

И не забыть про кириллицу

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc104"
Option "XkbLayout" "us,ru(winkeys)"
Option "XkbOptions" "grp:alt_shift_toggle"

EndSection
Если вы эстет, то можно ещё долго изгаляться со шрифтами и прочими рюшечками. Мне и обычных шрифтов хватает - лишь бы там были русские буквы и читалось без особого напряга.

Так же не стоит забывать про разрешение экрана - указывайте все при конфигурации иксов:
dpkg-reconfigure xserver-xorg
Повыключайте разного рода ускоряющие драйверы типа glx и dri, если вы создаёте спасательный диск. В общем, тюнинг системы - дело увлекательное...

9 комментариев: |высказаться!| RSS-лента дискуссии.|
asv комментирует...

Если ставить /базовую/ систему тогда нет нужды руками вычищать reportbug, installation-report, dc, nano, tcsh, portmap и всего прочего. Их просто не будет.
Насчет локалей, есть в репозитории стандартная утилита localepurge.

virens комментирует...

2 asv комментирует...
Если ставить /базовую/ систему тогда нет нужды руками вычищать reportbug, installation-report, dc, nano, tcsh, portmap и всего прочего. Их просто не будет.
Странно, а у меня они автоматом поставились. Но на всякий случай упомяну.

Насчет локалей, есть в репозитории стандартная утилита localepurge.
Это да, забыл совсем. Спасибо, добавил в пост.

asv комментирует...

Вот в этом месте, если убрать галки со всех пунктов, мы получим debian base system, там будет абсолютный минимум необходимый для функционирования системы. http://photos1.blogger.com/blogger/5591/3303/320/debianEtch16.0.jpg

virens комментирует...

2 asv комментирует...
Вот в этом месте, если убрать галки со всех пунктов, мы получим debian base system, там будет абсолютный минимум необходимый для функционирования системы
Это я в курсе :-) Речь идёт о системе, в которую уже поставлены иксы, icewm и другие приложения для человеческой работы.

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

> Автоматический логин

Если использовать готовое решение из дебиана и для дебиана (коим
является live-helper), то об этом помнить не надо, а скрипт настроит
автологин самостоятельно.

Также live-helper настраивает беспарольный вход для пользователя user. И
всё автоматически.

> Настройка иксов

Иксы уже сто лет как настраиваются автоматически безо всякого указания
видеодрайвера.

> И не забыть про кириллицу

Нижеприведённое полезно в дальней перспективе с учётом того, что в x.org
конфигурацию через файл уже почти отломали.

$ cd ~/live/chroot/home/user
$ cat .xsession
setxkbmap us,ru\(winkeys\) -option grp:ctrl_shift_toggle -option ctrl:nocaps
xxkb &
icewm-session
$ cat .xxkbrc
XXkb.mainwindow.enable: no
XXkb.button.enable: no

> убирать документацию разработчиков из /usr/share/doc

И напороться на отсутствие необходимой в экстренный момент документации,
если live cd использовался в качестве rescue cd. Например, testdisk
хранит полезную документацию именно в /usr/share/doc.

> и словарей из /usr/share/dict - это не столько сокращает объём сколько уменьшает количество файлов (где-то на 10 тысяч)

Не легче ли удалить пакет со словарями!?

Я лично считаю совет "пройтись по /usr с rm-ом" весьма опасным. Лучше
удалять ненужные пакеты, а не экономить копейки, боясь удалить что-то
нужное. Вот я при сборке личного livecd не экономил, а всё равно в 300
мб уложился (с учётом сжатия от squashfs).

// Alexander Galanin

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

Да, и еще бы не мешало для нечеловеческойфайловойсистемы установить пкетик ntfs-3g.

// мимо проходил

VeGeek комментирует...

> Настройка иксов
> И не забыть про кириллицу
man live-helper.
Настройки иксов вполне можно указать в опциях загрузки мега live-cd безо всякой дебильной правки конфигов.

samson комментирует...

ужас.

каких только гамаков с лыжами не напридумывают, лишь бы live-helper не использовать.

virens комментирует...

2 samson комментирует...
каких только гамаков с лыжами не напридумывают
Это потому, кто "кошерные" велосипеды хреново документированы.

лишь бы live-helper не использовать
Вот поэтому и изобретаем свои, с шахматами и поэтессами (с) :-)

Хотя да, live-helper надо было бы упомянуть. За пинок в правильном направлении спасибо. Ну и пост несколько несвежий, выложил, т.к. жалко было удалять (а мне ещё пригодится). Скоро будут веселее посты, stay tuned.

Отправить комментарий

Подписаться на RSS-ленту комментариев к этому посту.