Home

Удалённо апгрейдим систему FreeBSD с 8.4-STABLE до 9.1-STABLE

Предисловие.

Есть мнение, что для успешного обновления одной ветки до другой сначала нужно обновить установленную версию до самой свежей версии в этой ветке.

В предыдущей записи я обновил систему до 8.4-STABLE, поэтому мне ничего обновлять не нужно, если же у тебя ветка 8 не обновлена до текущего состояния STABLE, то я рекомендую это сделать, иначе дальше не читай и сам себе злобный буратина. ))

 

# uname -a

FreeBSD web2.yaol.ru 8.4-PRERELEASE FreeBSD 8.4-PRERELEASE #0 r248935: Sun Mar 31 05:00:20 MSK 2013     Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.:/usr/obj/usr/src/sys/KMD  amd64

 

Теперь на обновлённой до 8.4-STABLE системе делаем следующее:

# rm -r /usr/obj/

# rm -r /usr/src/

 

Так как subversion уже установлен и работает, то этот шаг пропускаем . (Даже несмотря на то, что после обновления системы 7.4 до 8.4 я не пересобирал порты)

# cd /usr/src/devel/subversion/

# make install clean

 

Сливаем дерево исходников для 9ой версии.

# svn co svn://svn.freebsd.org/base/stable/9 /usr/src

 

(это делалось в предыдущей записи при обновлнеии 7.4 -> 8.4 => пропускаем) Так как я планирую сразу после обновления системы обновлять порты, то нужно обновить дерево портов сейчас - потом оно может не заработать из-за смены версии FreeBSD

# rm -r /usr/ports/

# svn co svn://svn.FreeBSD.org/ports/head /usr/ports

 

Теперь удалённо пересобираем систему FreeBSD.

# cd /usr/src/

# mergemaster -p

# make -j4 buildworld

# make -j4 buildkernel

# make installkernel

# make installworld

# mergemaster -iU

команда успешно выполнилась. На все вопросы по удалению и выполнению я отвечал y.

Иногда, например, при обновлении с версии 8.4 до 9.2 эта команда не срабатывает - ругается на отсутствие простейших команд. Уверен, что это из-за установки нового мира. Поэтому делаем reboot и после перезагрузки выполняем mergemaster -iU, а потом снова reboot.

 

после следующей команды система не поднялась: 

# reboot

пишет Mointing from ufs:/dev/ad4s1a failed with error 19.

 

….добрался до машины - виноват старый биос F3 на матери GigaByte GA78GM-S2H - FreeBSD не видит жёсткий диск вообще, даже в режиме IDE Native Mode - с такими граблями и 9ой версией фри я сталкивался раньше - система на эту мать и старый биос просто не устанавливается, потому что также не видит жёсткий диск. Лечится обновлением биоса до F11.

После обновления BIOS система FreeBSD загрузилась без правки каких-либо конфигов.

Таким образом констатирую успешный апдейт с версии FreeBSD 8.4 до версии 9.1

 

Дальше нужно пересобирать все порты в принудительном порядке.

Я делаю это так:

# portupgrade -farR

 

Система упала, записав в лог

kernel: pid 46569 (try), uid 0: exited on signal 10 (core dumped)

Умерла на обновлении sqlite3.o

 

Попробую тогда для начала сделать

# portupgrade -frR portupgrade

 

Снова запускаю

# portupgrade -farR

sqlite3.o прошло мимо, пошло собираться дальше.

 

(через несколько часов) Всё успешно пересобралось.

Теперь вместо устаревшей системы FreeBSD 7.4-STABLE, которая предварительно была проапгрейжена до 8.4-STABLE, имеем систему 9.1-STABLE со всеми пересобранными под неё портами.