_ RU.UNIX.BSD (2:5077/15.22) _____________________________________ RU.UNIX.BSD _
From : Yar Tikhiy 2:5020/118 10 Mar 99 18:13:52
Subj : upgrade from FreeBSD 2.1 to 2.2
________________________________________________________________________________
From: Yar Tikhiy <yar@comp.chem.msu.su>
Reply-To: yar@comp.chem.msu.su
Vadim Fedorchuk <fvr@kyigs.saratov.su> wrote:
VF> Можно ли перейти от 2.1 к 2.2 не переустанавливая систему целиком? Hапример
VF> обновить ядро или еще как-нибудь?
Просто установить новое ядро не получится, так как есть утилиты,
чувствительные к расположению элементов во внутренных структурах
ядра (ps, *stat, ...). Кроме того, переустановить систему
целиком - не проблема. Самое сложное (хотя это вовсе несложно, когда
есть чудесная утилита sdiff) - обновить потом /etc. Всякие же
пользовательские программы можно или вообще не обновлять (если лень),
или потом потихоньку позаменять (что лучше, так как а) надо помнить
о существовании дыр в старых демонах; б) у многих программ появились
ports, сильно облегчающие последующие апгрейды и т.п.)
Вот общая методика, подходящая не только для апгрейда 2.1->2.2:
распаковываем необходимые части дистрибутива
(не забыть о compat2?, который полезен при апгрейде и 2.x, и старых
3.0-SNAP) в какой-нибудь каталог и в итоге получаем полное дерево
системы. Потом делаем так:
cd /usr
for d in bin compat include info lib libexec mdec sbin share src; do
mv $d $d.old
mv /where/is/new/system/usr/$d /usr
done
cd /
for d in boot lkm modules sbin stand; do
mv $d $d.old
mv /where.../$d /
done
mv /where.../kernel.GENERIC /
mv /bin /bin.old
/sbin.old/reboot
Понятно, что вышеописанная процедура подходит для апгрейдов
2.x->2.x, 2.x->3.x и 3.x->3.x, только будет поругиваться на
отсутствие boot, modules и mdec в тех или иных местах. В качестве
упражнения для читателя предлагается сделать процедуру чище :-)
Потом грузим новый kernel.GENERIC (так как в общем случае, особенно
при апгрейде с 2.x до 3.x, новое ядро в старой системе пересобрать
просто так не получится; надо сперва собирать config), собираем
новое ядро и объединяем старый и новый /etc.
При апгрейде 2->3 надо не забыть до перезагрузки новым MAKEDEV
наделать special'ов для scsi (da вместо sd), иначе нельзя будет
перемонтировать root в rw, и система нормально не загрузится.
При апгрейде старой 2.x до 3.1 еще стоит до перезагрузки записать
новые boot blocks (они переехали из /usr/mdec в /boot, так что
надо сказать
/sbin.o/disklabel -b /boot/boot1 -s /boot/boot2 -B <rootdisk>)
Еще до апгрейда неплохо поставить root'у шелл /bin/csh вместо какого-нибудь
из /usr/local/bin, чтобы голова о shared lib version заранее не болела
(я накололся при апгрейде 3.0-SNAP-19971225 до 3.1-RELEASE на то,
что нет соотв. версии библиотеки termlib для tcsh даже при установленном
compat'е)
Вот и вся хитрость.
SY, Yar
--- TIN pre-1.4
* Origin: Chem. Dept. of Moscow State University (2:5020/118@fidonet)
_ RU.UNIX.BSD (2:5077/15.22) _____________________________________ RU.UNIX.BSD _
From : Serg V. Shubenkov 2:5020/400 Thu 14 Jan 99 16:53
Subj : FreeBSD. Remote upgrade
________________________________________________________________________________
From: "Serg V. Shubenkov" <serg@macomnet.ru>
Saveliev Andrey wrote:
>
> Мои приветствия...
> Hе объяснит ли кто-нибудь технологию перехода с FreeBSD 2.2.5 на 2.2.6
> без
> полной переустановки всей системы. Интересует вариант постепенного
> перехода.
> Что-то слышал про cvsup. Для этого она или я ошибаюсь.
Вот последовательность действий:
1. pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/CVSup/cvsupit.tgz
2. Say yes to everything except to do the Update and the firewall, ports
as you wish...
3. vi /etc/cvsupfile
4. change RELENG_2_2 to RELENG_2_2_6_RELEASE
5. cvsup -L 2 -g /etc/cvsupfile
6. cd /usr/src
7. make world (do not reboot afterwards, this takes a long time).
8. backup /etc/ (cd /etc; tar cvf /tempdir/etcback.tar)
9. cd /usr/src/sys/i386/conf
10. cp GENERIC MYKERNEL (your kernel)
11. vi MYKERNEL (edit as desired)
12. config MYKERNEL
13. cd ../../compile/MYKERNEL
14. make depend; make; make install
15. cd /usr/obj/etc (not sure on this one, pulling from memory)
16. rm master.passwd, group, rc.conf (look at this one and merge where
necessary), and whichever other files you have modified.
17. copy to /etc the rest (with subdirectories).
18. vi /etc/fstab
19. change wd0a to wd0s1a
20. reboot the beast