Трямки всем. Заполучил проблему. Есть сервер который необходимо удаленно проапгрейдить с 4.11 до 5.4. Порылся в инете. Нашел рецепты о том, что сначала надо накатиться до 5.0, а потом подниматься выше, постепенно. ЧТо бы не пороть фигню, поднял себе локально такой же тазик, поставил такой же софт, короче смоделировал всю туже ситуацию, только меньших размеров на локальном тазике. Сырцы специально выкачал с удаленного сервера и пересобрал мир именно с них:
4.11-RELEASE-p9Что ж начинаю действовать:
Правлю cvsup файл:
[root@k.com.ua] /usr/home/skif/:less /etc/cvsupfile
*default host=cvsup2.ua.freebsd.org
*default base=/usr
*default prefix=/usr
*default release=cvs
*default tag=RELENG_5_0_0_RELEASE
*default delete use-rel-suffix compress
src-all
*default tag=.
ports-allПускаю cvsup:
cvsup -g -L 2 /wtc/cvsupfile
Читаю UPDATING:
.............................................
To upgrade from 4.x-stable to current
-------------------------------------
# 5.x uses more space than 4.x. Also, the location of kernel
# modules has changed. If you are installing 5.0 onto a 4.x
# system, you'll need about 30MB of free disk space on your /
# partition. If you have less than this, you may encounter difficult
# to back out of problems with this proceedure. If /tmp is on
# the / partition, you may want to completely remove all its content
# before upgrading, as this can be a common source of shortage of
# space on /.<make sure you have good level 0 dumps>
<maybe fix /etc/fstab> [7]
make buildworld [9]
make buildkernel KERNCONF=YOUR_KERNEL_HERE [8]
cp src/sys/${MACHINE}/conf/GENERIC.hints /boot/device.hints [2]
make installkernel KERNCONF=YOUR_KERNEL_HERE
cd src/sys/boot ; make install [6]
[1]
<reboot in single user> [3]
mergemaster -p [5]
rm -rf /usr/include/g++
make installworld
mergemaster [4]
<reboot>.............................................
Соотвественно, делаю:make buildworld
прошло отлично, дальше:
make buildkernel KERNCONF=GENERICТоже без проблем.
cp /usr/src/sys/i386/conf/GENERIC.hints /boot/device.hints
Тут тоже проблем само-собой не было.make installkernel KERNCONF=GENERIC
Так же проблем нетcd /usr/src/sys/boot ; make install
Полет нормальный.
А вот здесь следующим шагом надо было уходить в single user, но так как я не мог этого сделать пошел дальше в обычном режиме(здесь на локальном сервере конечно мог, а вот на удаленном?).mergemaster -p
Тоже проблем не вызвал
rm -rf /usr/include/g++
Был проделан как и рекомендовалось в связи с тем что на 5-ке используется 3-тий gccmake installworld
И вот тут начались проблемы:
.........................
PASS: Test notdef detected no regression.
Running test modifiers
PASS: Test modifiers detected no regression.
Running test funny_targets
PASS: Test funny_targets detected no regression.
Checking to see if your booted kernel is fresh enough..
/usr/obj/usr/src/bin/sh/sh -c 'echo "Testing installed kernel for new sigaction(2) syscall"'
Bad system call (core dumped)
*** Error code 140
Stop in /usr/src.
*** Error code 1
.....................
Почесав голову и полазив еще по инету нашел:
/etc/make.conf:CFLAGS= -O -pipe
NOPROFILE= true
USA_RESIDENT= yesПодправил пустил снова, опять лажа. Обиделся. Еще полазил по гуглю, нашел, что нужно сделать предварительно /usr/sbin/mergemaster -v -w 132 Почему именно сейчас, а не позже так и не понял, но сделал. Увы все тоже.
Что ж иду в single mode.
shutdown now
mount -u /
mount -a -t ufs
swapon -aПробую еще раз make installworld и вываливается таже самая ошибка.
Кто-то может подсказать как ее побороть?
Как дополнение - в корочку падает благодаря sh. Саму корочку найти, увы немогу.
>Как дополнение - в корочку падает благодаря sh. Саму корочку найти, увы
>немогу.
Все, кажеться причину нашел. Необходимо выгружать либы. У меня при shutdown now они не выгрузились, пришлось сделать reboot и boot -s после этого все нормально откомпилилось.Как можно выгрузить либы все? не уходя в single user ?