Mitlas (mitlas) wrote,
Mitlas
mitlas

Category:

бинарное обновление FreeBSD с custom kernel

за многие годы процесс обновления этой замечательной ОС стал намного проще и быстрее, что не может не радовать

однако, нынешние админы элементарно ленятся компилировать оптимизированное ядро и получают ядро системы размером в 157Мб вместо 7.5Мб - разница в 21 раз

кроме того, из-за архитектурных особенностей i386, для использования системой оперативной памяти сверх 4Гб, необходимо использовать монолитное ядро без подгружаемых модулей (KLM) и включённым режимом PAE (physical address extension). хотя, fusefs как-то умудряется подгружаться отдельно

итак, обновление системы с оптимизированным ядром:

0. обязательно делаем бэкап /etc

cp -R /etc /root/backup/etc-8.1

1. обновляем все установленные порты

portsnap fetch update
pkg_version -v | grep need
portupgrade -af

2. перезагружаемся с ядром GENERIC (иначе freebsd-update будет жаловаться на жизнь)

nextboot -k GENERIC
shutdown -r now

3. обновляем систему до нужной версии

freebsd-update -r 8.2-RELEASE upgrade
freebsd-update install

4. перезагружаемся всё равно с GENERIC

nextboot -k GENERIC
shutdown -r now

5. обновляем Ruby (как основу механизма портов), пересоздаём базу портов и обновляем все установленные порты

portupgrade -f ruby
rm /var/db/pkg/pkgdb.db
portupgrade -f ruby18-bdb
rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db
portupgrade -af
pkg_version -v | grep need

6. финальный вызов freebsd-update для удаления всего ненужного от прежней версии системы

freebsd-update install

7. перезагружаемся с GENERIC. здесь возможны грабли - перед ребутом необходимо выполнить в /etc 'grep -Iir "< current" *', чтобы выявить конфигурационные файлы, в которых не выполнена коррекция различий между версиями системы (иначе можно получить не запускающийся sshd и потерять доступ к серверу)

nextboot -k GENERIC
shutdown -r now

8. после ребута - компилируем и инсталлируем оптимизированное ядро с любимым конфигом

cd /sys/i386/conf
config ARTEFEECT-forpost-PAE
cd ../compile/ARTEFFECT-forpost-PAE
make cleandepend && make depend
make install

9. перезагружаемся с новым ядром

shutdown -r now

10. пересобираем некоторые программы, установленные не из портов и не работающие по причине замены-утраты некоторых библиотек - мне, например, пришлось пересобрать только php
Tags: freebsd, unix
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments