Имеем рабочий сервер под управлением FreeBSD 7.4
Необходимо обновить его до последней стабильной версии – 9.2
Основная причина – окончание поддержки FreeBSD 7.x и множество нерабочих портов.
Сразу обновить с 7.4 до 9.2 не получится, для начала надо сделать промежуточное обновление до 8.4.
Поехали…
1. Обновление 7.4 -> 8.4
удаляем старые исходники:
# rm -r /usr/obj
# rm -r /usr/src
закачиваем новые:
# svn co svn://svn.freebsd.org/base/stable/8 /usr/src
# cd /usr/src
# mergemaster -p
# make -j4 buildworld
# make -j4 buildkernel
# make installkernel
# make installworld
# mergemaster -iU
и получаем ошибку:
—-
*** Creating the temporary root environment in /var/tmp/temproot
*** /var/tmp/temproot ready for use
*** Creating and populating directory structure in /var/tmp/temproot
*** FATAL ERROR: Cannot ‘cd’ to /usr/src and install files to
the temproot environment
—-
поможет перезагрузка
# reboot
повторяем еще раз
# mergemaster -iU
ошибка не повторилась,
подтверждал все вопросы системы про удаление или выполнение(y)
# reboot
проверяем версию обновленной системы:
# uname -r
8.4-STABLE
2. теперь обновляю 8.4 -> 9.2
все аналогично предыдущему обновлению:
# rm -r /usr/obj
# rm -r /usr/src
# svn co svn://svn.freebsd.org/base/stable/9 /usr/src
# cd /usr/src
# mergemaster -p
# make -j4 buildworld
# make -j4 buildkernel
# make installkernel
# make installworld
# mergemaster -iU
# reboot
ОС не поднялась, ошибка загрузки системы “gm0s1a failed with error 19″:
–
Mounting from ufs:/dev/mirror/gm0s1a failed with error 19.
Loader variables:
vfs.root.mountfrom=ufs:/dev/mirror/gm0s1a
vfs.root.mountfrom.options=rw
Manual root filesystem specification:
: [options]
Mount using filesystem
and with the specified (optional) option list.
eg. ufs:/dev/da0s1a
zfs:tank
cd9660:/dev/acd0 ro
(which is equivalent to: mount -t cd9660 -o ro /dev/acd0 /)
? List valid disk boot devices
. Yield 1 second (for background tasks)
Abort manual input
mountroot>
–
т.к. сервер HP ProLiant DL120 G5, то зашел в iLo и перегрузил сервер,
после чего в loader prompt и выполнены команды:
–
OK set kern.geom.part.check_integrity=0
OK boot
–
при этом с ходу зайти в iLo не удалось, вылезла ошибка:
–
iLO remote console crashes with error “com.serverengines.rdr.EndOfStream: EndOfStream”
–
проблема с iLo решена по этому мануалу.
поехали дальше…
проблема с загрузкой ОС возникает при наличии программного RAID – gmirror
проверить можно так:
# gpart status
Name Status Components
mirror/gm0s1 CORRUPT mirror/gm0
# gpart show
=> 63 488397104 mirror/gm0 MBR (232G) [CORRUPT]
63 488397105 1 freebsd [active] (232G)
=> 0 488397105 mirror/gm0s1 BSD (232G)
0 20971520 1 freebsd-ufs (10G)
20971520 8288698 2 freebsd-swap (4G)
29260218 20971520 4 freebsd-ufs (10G)
50231738 204800000 5 freebsd-ufs (97G)
255031738 233365367 6 freebsd-ufs (111G)
======================
есть три решения:
1) отключить механизм целостности разделов:
# echo “kern.geom.part.check_integrity=0″ >> /boot/loader.conf
2) временно отключить проверку и последовательно пересоздать каждую из нод зеркала
3) временно отключить проверку и загрузится в single mode и прогнать fsck
до окончания обновления выбран 1-й вариант, продолжение следует
проверяем версию обновленной системы:
# uname -r
9.2-STABLE
3. обновление портов
удаляем старые исходники портов:
# rm -r /usr/ports
получаем новые:
# portsnap fetch
# portsnap extract
# portsnap fetch update
указываем нужную версию питона
# echo “DEFAULT_VERSIONS=python=2.7 python2=2.7 python3=3.3″ >> /etc/make.conf
сперва обновляем утилиту обновления портов:
# portupgrade -frR portupgrade
а потом и все остальные порты:
# portupgrade -farR
Взято от сюда http://www.net-adm.ru/articles/57-upgrade-freebsd-7-to-9.html
Recent Comments