Трямки всем. Заполучил проблему. Есть сервер который необходимо удаленно проапгрейдить с 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-тий gcc
make 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 и вываливается таже самая ошибка.
Кто-то может подсказать как ее побороть?