nvbn 19.02.2009 17:43

How-to`sУскоряем debian

Предупреждение

Все действия производить с чистой системой, в случае с рабочей есть риск всё сломать! Для данных целей рекомендуется netinstall образ

При установке /boot сделать отдельным разделом, хватит 200мб и ext2

Ядро

Для данных целей нужно использовать последнее ядро (>=2.6.28) и собирать его вручную, как правильно это сделать:

1
make menuconfig



В Processor type and features -> Processor family выбириет свой процессор (у меня Core 2/newer Xeon)

В File systems модульно The Extended 4 (ext4) filesystem и выбрать Ext4 extended attributes

Закончим конфигурирование, приступим к сборке:

1
2
3
make-kpkg --initrd --append-to-version="-append" kernel_image kernel_headers

dpkg -i ../linux*.deb



Где append можно заменить на любое своё слово.

Перевод в ext4

Для начала скачаем partdemagic livecd или liveusb, загрузимся с диска.

Чтоб перевести фс в ext4 (не переводите /boot в ext4!) нужно:

1
2
3
tune2fs -O extents,uninit_bg,dir_index /dev/sdXX

fsck -pf /dev/sdXX



Где sdXX - нужный раздел, для просмотра списка разделов введите fdisk -l

Чтобы наша система загружалась нужно сделать:

1
2
3
mount -a

nano /media/sdYY/etc/fstab



nano, так как он встроен в загрузочный диск. sdYY - коренной раздел.

В открывшемся файле в разделах, где стал ext4 меня ext3 на ext4

Если вы перевели / в ext4, то в /media/sdYY/boot/grub/menu.lst

в строчку kernel нашего ядра допишем rootfstype=ext4 и в строчку # kopt= тоже самое.

Теперь можно с чистой совестью перезагружаться в систему с ext4

apt-build

Это программа, благодаря которой можно устанавливать пакеты из исходных кодов, для установки введите aptitude install apt-build, после установки будет предложено выбрать ваш процессор, в интернете можно найти дополнительные параметры для вашего процессора, мой файл настроек (/etc/apt/apt-build.conf):build-dir = /var/cache/apt-build/build

repository-dir = /var/cache/apt-build/repository

Olevel = -O2

mtune = -mtune=core2

options = "-pipe -fomit-frame-pointer"

make_options = "-j4 "

Для начала пересоберём уже установленный пакеты, для этого:

1
2
3
4
5
6
7
dpkg --get-selections | awk '{if ($2 == "install") print $1}' > /etc/apt/apt-build.list

echo "Package: *

Pin: release o=apt-build

Pin-Priority: 990" >> /etc/apt/preference



Последнее было сделано для того, чтоб при обновление собранные пакеты не заменились пакетами из репозитория.

Для пересборки всего вводим apt-build world и когда пишет, что для какой0то программы нет исходных текстов, удаляем её из /etc/apt/apt-build.list



Позже пакеты устанавливать через apt-build install, обновлятся через apt-build upgrade, более подробная информация в man apt-build

Замена init на upstart

upstart работает быстрее, чем init, для замены введите:

1
apt-build install upstart





PS в момент написания статьи собирался kde4, без kde, но с fluxbox система грузится 11 секунд, против 26 в такой же системе, но без оптимизации. Всё работает быстрее, заметно даже на глаз =)


Тэги:
+ 6 -
Похожие Поделиться

zb 20.02.2009 02:58 #
ещё добавлю что неплохо было бы поставить ccache перед перекомпиляцией.
l1feh4ck3r 20.02.2009 03:05 #
Круто, конечно.
А у меня на работющей системе apt-build тупо забивал на параметры компиляции в /etc/apt/apt-build.conf, поэтому отказался от его использования.
nvbn 20.02.2009 08:05 #
Я буду ответственно относиться к безопасности своих приложений.
l1feh4ck3r 20.02.2009 10:59 #
хы. так O2 - это не интересно.
nvbn 20.02.2009 11:15 #
Я буду ответственно относиться к безопасности своих приложений.
xcr 20.02.2009 13:15 #
Да я бы посоветовал в генте вообще забить на gcc-4.3 и пользоваться тем, что предлагают (т.е. 4.1). С 4.3 много чего не собирается. Мне действительно хочется запустить процесс компиляции на ночь, спокойно спать и не находить с утра ошибки компиляции )
MFX 30.03.2009 22:26 #
здорово я с apt-build намаялся...
xcr 23.02.2009 19:36 #
Спасибо за статью, делаю debian из debootstrap и планирую там upstart, ext4, ядро без initrd и прочие прелести.

Кстати, а upstart сейчас есть только в experimental?
unknownDaemon 14.11.2010 03:19 #
Спасибо!

ЗЫ и кстати если писать все это в скрипт, то awk сильно будет мешать, можно заменить например на вот это:
1
2
3
echo "dpkg --get-selections | dpkg --get-selections | sed -e 's/^\(.*\).*install/\1/' > /etc/apt/apt-build.list" >> ${SOURCE}/root/preprc
echo "apt-build -y world" >> ${SOURCE}/root/preprc
echo "apt-build -y install upstart" >> ${SOURCE}/root/preprc

... кусочек моего prepare скрипта ;-)

Еще раз спасибо
unknownDaemon 14.11.2010 03:20 #
блин скопипастил криво в посте выше %)
nvbn 15.11.2010 21:28 #
Статья немного устарела уже =)
unknownDaemon 15.11.2010 21:31 #
Да это не важно, самое путевое, на что вывел гугл при этом... ;-)