Устанавливаем комплект файлов для обратной совместимости.1. Загружаем localedata-5.4.tbz и compat6x-i386-6.x.xxxxxx.yyyymm.tbz
с ftp://ftp6.ru.freebsd.org/pub/FreeBSD/ports/i386/packages-7....
2. Первый файл распаковываем (через pkg_add имя_пакета)
в /usr/local/share/compat/, второй в /usr/local/lib/compat/Устанавливаем комплект для обновления.
Загружаем http://people.freebsd.org/~rse/dist/freebsd-adm-1.2.2.tar.gz
1. Распаковываем в /usr/adm:
cd /usr
fetch http://people.freebsd.org/~rse/dist/freebsd-adm-1.2.2.tar.gz
rm -rf adm;
gunzip <freebsd-adm-1.2.2.tar.gz | tar xvf -;
rm -f freebsd-adm-1.2.2.tar.gz2. В файле /usr/adm/cfg/csup.src заменяем RELENG_6 на RELENG_7
Обновляем исходные тексты на FreeBSD 7.0:
cd /usr/src && make cleandir
cd /usr/adm && make updateОбновляем конфигурацию ядра:
vi /sys/`uname -m`/conf/`hostname -s | tr 'a-z' 'A-Z'`1. Добавляем:
options COMPAT_FREEBSD6
options TCP_DROP_SYNFIN
options SCTP # Stream Transmission Control Protocol
options UFS_GJOURNAL # Enable gjournal-based UFS
options STOP_NMI # Stop CPUS using NMI instead of IPI
options AUDIT # Security event auditing
options GEOM_LABEL # Provides labelization
options GEOM_PART_GPT # GUID Partition Tables.
options COMPAT_43TTY # BSD 4.3 TTY compat [KEEP THIS!]
options KSE
device uart # Generic UART driver
device le # AMD Am7900 LANCE and Am79C9xx PCnet
device firmware # firmware assist module
device dcons # Dumb console driver
device dcons_crom # Configuration ROM for dcons2. Убираем:
options GEOM_GPT # GUID Partition Tables.
options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
device lnc # NE2100, NE32-VL Lance Ethernet cards3. Замечание по опциям:
IPSEC_ESP меняем на FAST_IPSEC
вместо PIM используем MROUTING
вместо SCHED_4BSD можно поставить SCHED_ULE
в GENERIC ядре теперь по умолчанию включены:
cpufreq, dumb, uart, fwip (IP over FireWire), wlan_wep, wlan_ccmp и wlan_tkipГотовимся к обновлению:
mergemaster -pСобираем "мир" и ядро:
cd /usr/adm && make world-build kernel-buildУстанавливаем FreeBSD 7.0
make world-install kernel-installЧистим хвосты FreeBSD 6.3:
rm -f /etc/rc.d/ike /etc/rc.d/pccard /etc/rc.d/pcvt /etc/rc.d/ramdisk
rm -f /etc/rc.d/ramdisk-own /etc/rc.d/usbd
make etc
make cleanПерезагружаем машину
shutdown -r nowПродолжаем чистку хвостов:
cd /; exec `/usr/bin/which bash sh | head -1`
PATH=/bin:/usr/bin:/sbin:/usr/sbin; umask 022; unset TMOUTИщем что можно удалить:
( for dir in /bin /sbin /usr/bin /usr/sbin /usr/libexec /usr/libdata; do \
find $dir -mtime +2 -type f -xdev -print; \
find $dir -mtime +2 -type l -xdev -print; \
done ) >/tmp/remove
Смотрим что будем удалять, внимательно анализируем /tmp/remove
Удаляем:
cat /tmp/remove | xargs rm -fИщем что нужно переместить:
( for dir in /lib /usr/lib; do \
find $dir -mtime +2 -type f -xdev -print; \
find $dir -mtime +2 -type l -xdev -print; \
done ) | grep -v /usr/lib/compat >/tmp/moveСмотрим что будем перемещать, внимательно анализируем /tmp/move
for x in `cat /tmp/move`; do chflags noschg $x; mv $x /usr/lib/compat/; doneПодчищаем системы после сборки:
cd /usr/src; make BATCH_DELETE_OLD_FILES=YES delete-old delete-old-libsОкончатально перезагружаемся в FreeBSD 7.0
shutdown -r now
URL: http://people.freebsd.org/~rse/upgrade/freebsd-upgrade-6x-7x...
Обсуждается: http://www.opennet.me/tips/info/1598.shtml
ставить бинари до того как запущено новое ядро - автору жутко везет если он не разу не попалился на этом
>ставить бинари до того как запущено новое ядро - автору жутко везет
>если он не разу не попалился на этомА как вы предлагаете?
оказывается, в первую очередь следует ставить ядро, и затем - мир.
об этом написано на каждом углу^W^Wоф. сайте и в src/UPDATING
Все правильно написано. Вначале ставится compat6x от FreeBSD 7.0, а вот ребут в single посе установки ядра семурки обещает вам немало секса, так как бинари от шестерки с ним работать не будут. Порты как я понял обновляются через freebsd-adm
Учите матчасть, уважаемый
Ядро 7-ки поддерживает бинари 6-ки, потому что обратная совместимость (для основных ABI редко что меняется, а для тех что меняется есть options COMPAT_FREEBSD6 )
А обратное далеко не верно
И вот если на старом ядре поставить новые несовместимые бинари, причем до установки собственно ядра (ребут запустит старое ядро), и причем частично, потому что с момента когда переастанут работать sh,cp и иже с ними, доставить новые бинари до конца не получится - вот это будет незабываемый секис
>а вот ребут
>в single посе установки ядра семурки обещает вам немало секса, так
>как бинари от шестерки с ним работать не будут.Вы пробовали то о чем пишете?!
Обновил коды cvsup, собрал мир и ядро, установил ядро, перезаргузился и поставил мир! После чего пересобрал порты. См. http://www.freebsd.org/releases/7.0R/announce.html
>Все правильно написано. Вначале ставится compat6x от FreeBSD 7.0, а вот ребут
>в single посе установки ядра семурки обещает вам немало секса, так
>как бинари от шестерки с ним работать не будут. Порты как
>я понял обновляются через freebsd-admТолько что ехал с 6.2 до 7.2 без freebsd-adm и никокого секса НЕБЫЛО
пример того, как *НЕ НАДО* делать
Согласен, какой-то ужас вообще. Есть /usr/src/UPDATING где всё описано куда более просто и понятно, всю жизнь именно тем инструкциям следую, всё быстро, просто и гладко.
как делать *ПРАВИЛЬНО* - читать здесь
http://www.freebsd.org/releases/7.0R/announce.html
подробно - здесь
http://www.daemonology.net/blog/2007-11-11-freebsd-major-ver...
почему-то (http://www.daemonology.net/blog/2007-11-11-freebsd-major-ver...)
в правильном варианте не пишут про косяк с деревом портов, дбшкой и руби :)
та схема которая описана как фиксанатуть portupgrade ни-ра не рабочая
Для особо "одаренных". в cvsup нужно говорить RELENG_7_0.
>Для особо "одаренных". в cvsup нужно говорить RELENG_7_0.чем плоха RELENG_7 а.к.а 7.0-STABLE?
я делал через CVSUP. Все прикрасно встало. И на счёт того что ядро 7.0 не будет работать с бинари 6.x туфта. Я установил ядро, перегрузил систему и устновил бинари.
Действительно, чушь полная написана.
Обновлялся 2 раза сначала с помощью freebsd-upgrade вроде всё гуд но pppoe незавелося сразу пришлось как всегда csup'нуться и всё прошло опятьже как всегда нормально Ж)
что я сделал неправильно? (c) bash.org.ru
а тут чтото больно много телодвижений нуна делать О_о
обновился до семерки совершенно без проблем. Единственное что пришлось пересобрать - mpd, что вполне логично.
единственное, что полезного почерпнул из этой ерунды - это BATCH_DELETE_OLD_FILES=YES. Остальное - лажа полная. Люди, не делайте так, как афтор, и будете здоровы.
>единственное, что полезного почерпнул из этой ерунды - это BATCH_DELETE_OLD_FILES=YES. Остальное -
>лажа полная. Люди, не делайте так, как афтор, и будете здоровы.
>Не хочешь написать ru@ (Руслану) чтоб он документировал эту опцию хотябы в комментариях? ;)
>единственное, что полезного почерпнул из этой ерунды - это BATCH_DELETE_OLD_FILES=YES.хосспади, вот так это делается:
yes | make delete-old
Зачем в голове держать названия ненужных опций?
Всё гораздо проще.Конфиг /etc/sys-supfile:
*default host=cvsup7.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs
*default tag=RELENG_7_0
*default delete use-rel-suffix
*default compress
src-allОбновление:
% csup /etc/sys-supfileКоманды по пересборке системы:
% cd /usr/obj && chflags -R noschg *
% cd /usr/obj && rm -rf *
% cd /usr/src && make cleandir && make cleandir && make cleandir
% cd /sys/i386/conf && cp GENERIC SIMPLEGENERIC
% ee /sys/i386/conf/SIMPLEGENERIC #<--тут отредактировал конфиг ядра, если нужно
% ee /etc/make.conf #<--тут отредактировал конфиг make, если нужно
% cd /usr/src && make -j2 buildworld
% cd /usr/src && make buildkernel KERNCONF=SIMPLEGENERIC
% cd /usr/src && make installkernel KERNCONF=SIMPLEGENERIC
% reboot
% ps
% top #<--тут проверил работоспособность нового ядра
^C
% cd /usr/src && make installworld
% mergemaster #<--тут обновил конфиги
% reboot
>
>Устанавливаем комплект файлов для обратной совместимости.
>
>1. Загружаем localedata-5.4.tbz и compat6x-i386-6.x.xxxxxx.yyyymm.tbz
>с ftp://ftp6.ru.freebsd.org/pub/FreeBSD/ports/i386/packages-7....
>2. Первый файл распаковываем (через pkg_add имя_пакета)
>в /usr/local/share/compat/, второй в /usr/local/lib/compat/Дасс - попробывали бы вы это на удалённом сервере делать :).
Мой способ - веселее:
Изучаем возможные проблемы с железом (типа device bge малость поломан). Думаем, а нафиг оно нам? Если понятно нафига - то вперёд.
Берём какой-то пустой раздел, в него распаковываем binary distribution, рихтуем в нём etc/fstab - в нём пишем, что корневой раздел это тот, куда мы распаковали, копируем туда /etc/*asswd, /etc/*wd.db, /etc/group, /etc/rc.local, /etc/rc.conf
далее - перезаписываем новое ядро в свой корневой раздел и редактируем /etc/fstab.
sync, mount -u -o ro всему что можно, перегружаемся (есть вероятность виса. лучше сделать /rescue/reboot -nlq ), проводим "настоящий апгрейд".Я так с 6.2/i386 на 7.0/amd64 уехал.
Лучше всего такое делать, если есть 2 физических диска - тогда можно подстраховаться и сделать так, чтоб махнув диски местами получить рабочий сервер.
Или просто распаковать на второй диск и попросить махнуть шлейфы на дисках местами, описав чего вы этим хотите добиться.
Ну и, конечно, "тренируйтесь на кошках!", до того как :).
2 iZen
% cd /usr/src && make -j2 buildworld
make -j* НЕ РЕКОМЕНДУЕТСЯ разработчиками Фри. См. /usr/src/UPDATING. У меня были проблемы с билдом на 5.Х, после этого не рискую и запускаю без -j.% cd /usr/src && make buildkernel KERNCONF=SIMPLEGENERIC
% cd /usr/src && make installkernel KERNCONF=SIMPLEGENERICПочему не просто
% cd /usr/src && make kernel KERNCONF=SIMPLEGENERIC
?2 All
Странно, но на моем компе фря 7.0 не работает стабильно.
Примеры:
1. при вставке СД в сидюшник ядро не грузится, а виснет на определении сидюка.
2. При монтировании ntfs-раздела (read-only!) странным образом удаляется ntldr, в результате венда не грузится (решается только восстановлением ее из бэкапа).
3. И т.д.После двух дней (ночей) секса поставил 6.3.
Если честно, такого разочарования от новой фри я еще не испытывал со времен 5.0-RELEASE.
>2 iZen
>% cd /usr/src && make -j2 buildworld
>make -j* НЕ РЕКОМЕНДУЕТСЯ разработчиками Фри. См. /usr/src/UPDATING. У меня были проблемы
>с билдом на 5.Х, после этого не рискую и запускаю без
>-j.А что за проблемы у вас были?
Корректное поведение опции -j зависит от GCC.>
>% cd /usr/src && make buildkernel KERNCONF=SIMPLEGENERIC
>% cd /usr/src && make installkernel KERNCONF=SIMPLEGENERIC
>
>Почему не просто
>% cd /usr/src && make kernel KERNCONF=SIMPLEGENERIC
>?Потому что двумя командами легче отследить ошибки каждого этапа компиляции и инсталляции, иначе сложно локализовать возникшую проблему и оперативно исправить её.
>[оверквотинг удален]
>Странно, но на моем компе фря 7.0 не работает стабильно.
>Примеры:
>1. при вставке СД в сидюшник ядро не грузится, а виснет на
>определении сидюка.
>2. При монтировании ntfs-раздела (read-only!) странным образом удаляется ntldr, в результате венда
>не грузится (решается только восстановлением ее из бэкапа).
>3. И т.д.
>После двух дней (ночей) секса поставил 6.3.
>Если честно, такого разочарования от новой фри я еще не испытывал со
>времен 5.0-RELEASE.FreeBSD не для вас. :)
>А что за проблемы у вас были?А ты ни разу не видел насколько бесполезные сообщения об ошибке получаются при использовании данной опции?
>Корректное поведение опции -j зависит от GCC.
gcc: unrecognized option '-j'
Иногда лучше жевать...
Чё ругатсо-то?
Вы посмотрите на дату последней модификации первоисточника %)>Upgrading from FreeBSD 6.X to FreeBSD 7.X
>=========================================
>
>Author: Ralf S. Engelschall <rse@FreeBSD.org>
>Created: 2007-05-24
>Modified: 2007-07-13
>Version: 1.0Я так не делал.
Такие танцы с бубном наверное нужны были раньше, а сегодня обовил 6.3 на 7.0 по стандартной схеме. Полёт нормальный.
Добавлю по этому совету:
1. Не рекомендую так делать, есть старые и описанные в документации методы.
2. Не забывайте после установки ядра перезагружаться. Некоторые не делают этого и сразу же обновляют мир. Есть очень большой подводный камень, от которого не уйти если пропустить перезагрузку. К примеру, обнаружены проблемы с nForce'овскими ATA контроллерами, в частности на MSI материнках. Соответсвенно после обновлённого ядра и мира вы получаете полностью нерабочую систему без возможности отката.
> обнаружены проблемы с nForce'овскими ATA контроллерами, в частности на MSI материнках.у меня такое - CRC файлов при чтении данных с SATA-драйва не сходится (вне зависимости от ФС), средствами BIOS'а (IRQ, etc) решить не смог. Что посоветуете? В 6.2-i386 всё нормально.
>> обнаружены проблемы с nForce'овскими ATA контроллерами, в частности на MSI материнках.
>
>у меня такое - CRC файлов при чтении данных с SATA-драйва не
>сходится (вне зависимости от ФС), средствами BIOS'а (IRQ, etc) решить не
>смог. Что посоветуете? В 6.2-i386 всё нормально.Хз.. Нет на руках такой матири, чтобы посмотреть, другие ATA контроллеры есть, чтобы проверить? Проблема только с nForce? По сути в драйвере ATA ничего не менялось, что бы могло вызвать такие проблемы. Да и на материнках от других вендоров работает всё нормально (у меня на ASUS'е)
>ничего не менялось, что бы могло вызвать такие проблемы. Да и
>на материнках от других вендоров работает всё нормально (у меня на
>ASUS'е)Нашёл один баг, фикс скоро будет в CURRENT, не знаю решит ли это проблему.
Начитался тут вас всех и уже боюсь, однако до сих пор всегда обновлялся УДАЛЁННО по схеме:
cd /usr/src/
mergemaster -p
make -j4 buildworld (-j8 на dual cpu)
make -j4 buildkernel KERNCONF=KMD
make installkernel KERNCONF=KMD (здесь без -jX потому что на некоторых машинах происходил сбой -- не успевал контроллер hdd?!?! -- не знаю)
make installworld
mergemaster -iU
rebootЕдиножды испытал грабли, когда обновлял систему с RELENG_6_2 на RELENG_6. С какого перепугу я собирал на той машине RELENG_6_2 я уже не помню. Там была проблема с libc.so.6, который оказался несовместим. Пришлось копировать его с уже обновлённой машины. И, кстати, пришлось очищать /usr/obj/. И здесь конечно удалённо решить проблему не получилось.
Как иначе обновлять пару десятков серверов УДАЛЁННО?! Я не знаю.
Бубнов с ядром предпочитаю избегать, поэтому мой конфиг ядра выглядит так (сам файл лежит в ~home, а в нужном месте сделан симлинк):
====
include GENERICoptions IPFIREWALL
options IPFIREWALL_FORWARD
options IPFIREWALL_VERBOSE
options DUMMYNET
options IPFILTER
options DEVICE_POLLING
options HZ=1000
====
Это позволяет избегать контроля изменившихся параметров. Система всегда собирается с наисвежайшим конфигом ядра.
Систему всегда обновляю до последнего состояния сырцов, а не до _0/RELEASE и т.д.
вот так это было для 6.X:
====
*default host=cvsup.yasnet.ru
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_6
*default delete use-rel-suffix*default compress
src-all
====Теперь конечно сначала на кошечках испытаю удалённое обновление с 6.2/6.3 до 7.0.
и после ребута, если всё получится, то запущу ещё
portupgrade -faPЗЫ Обновляться планирую до RELENG_7.
О результате возможно напишу сюда. ;)
Могу сообщить, что успешно обновился удалённо.
Сейчас пересобираю порты.
Единственно были какие-то варнинги при installkernel
куча строк, начинающихся на kldxref: unknown metdata record 0 in file
Отличная Статья, обновился аж до 7.1
Автору спасибо
Про обновление до 7.2 коротко и по пунктам здесь: http://mediaunix.com/bg/2009/10/31/perexodim-s-freebsd-7-1-n.../
статью написал http://www.lissyara.su/?id=1957