Страница 1 из 1
FreeBSD: Удаленная пересборка мира
Добавлено: 2007-12-12 15:03:49
Pangolin
Доброе время суток.
Однажды случайно наткнулся на информацию о том, что используя не хитрые манипуляции, можно удаленно перебрать и установить мир. Тогда посчитал это за ересь и ссылку не сохранил, однако сегодня столкнулся с необходимостью проделать подобную процедуру. Почти 3 часовое путешествие по просторам сети не принесло результатов, а посему отписываюсь здесь. Возможно ли проведение этой операции и если да то каким образом?
Спасибо.
Re: FreeBSD: Удаленная пересборка мира
Добавлено: 2007-12-12 15:47:44
zorg
всё завист о версии системы 4.11 пересобирал удалённо,
6.2 прихоилось запускать локально.
Re: FreeBSD: Удаленная пересборка мира
Добавлено: 2007-12-12 16:01:04
terminus
Если речь не идет о апгрейде скажем 6.0 на 6.2, а только о накате секюрного обновления, то делайте все как обычно да и все. Только, может, стоит тормознуть лишних демонов перед этим.
Код: Выделить всё
# make buildworld
# make buildkernel KERNCONF=CUSTOM
# make installkernel KERNCONF=CUSTOM
# make installworld
# reboot
Присутсвие перед консолью необходимо, когда после ребута в сингл моде надо сделать mergemaster.
К стати, если система только что поставлена и ядро/мир еще ни разу не пересобирались то удобно пользовать freebsd-update для бинарных апдейтов.
Re: FreeBSD: Удаленная пересборка мира
Добавлено: 2007-12-12 16:13:56
Pangolin
Чтож спасибо за информацию, постараюсь проверить если не сегодня то завтра и доложу о результатах.
Re: FreeBSD: Удаленная пересборка мира
Добавлено: 2007-12-12 22:19:31
Alex Keda
да... 6-ку стрёмно между версиями обновлять.
я вот до стабле удалённо обновлял - пришлось в саппорт датацентра писать инструкцию как из бут лоадера выгрузить одно ядро и загрузить старое

Re: FreeBSD: Удаленная пересборка мира
Добавлено: 2007-12-12 22:58:44
serge
Удаленно обновлял и ядро и мир в пределах одной версии 6.2. Нормально все прошло. ИМХО, просто нужно быть более внимательным чем если сидишь за компом локально. Тут ошибка может стоить потери сервера на неопределенный срок

Re: FreeBSD: Удаленная пересборка мира
Добавлено: 2007-12-26 12:26:38
Pangolin
о результатах доладываю только сейчас, ибо сервак до вчерашнего дня был выключен, удаленно не получилось.
Код: Выделить всё
# make installworld
mkdir -p /tmp/install.huLewOpM
for prog in [ awk cap_mkdb cat chflags chmod chown date echo egrep find grep install-info ln lockf make mkdir mtree mv pwd_mkdb rm sed sh sysctl test true uname wc zic; do cp `which $prog` /tmp/install.huLewOpM; done
cd /usr/src; MAKEOBJDIRPREFIX=/usr/obj MACHINE_ARCH=i386 MACHINE=i386 CPUTYPE=pentium4 GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/tmp/install.huLewOpM make -f Makefile.inc1 reinstall
make: Permission denied
*** Error code 126
Stop in /usr/src.
*** Error code 1
Stop in /usr/src.
Помнится у меня такой результат выдавался в том случае если корень смонтирован в режиме ro а /tmp c опцией noexec. Каким образом удаленно размонтировать диски и перемонтировать их с новыми параметрами не представляю, т.к. насколько мне известно нужно убить почти все службы в т.ч. и sshd. По позже попробую поправить /etc/fstab перезагрузиться и проверить еще раз.
Re: FreeBSD: Удаленная пересборка мира
Добавлено: 2007-12-26 21:32:51
Andy
Свежезаинсталенную 6.2 никто не пробовал обновлять до последнего патча?
У меня на lib/ncurses ошибку выдает, говорит не знаю параметр -lc. Странно...
Re: FreeBSD: Удаленная пересборка мира
Добавлено: 2007-12-27 10:39:15
Pangolin
Смонтировал все диски в rw режиме без дополнительных опций. Установка мира вывалилась с ошибкой:
Код: Выделить всё
# make installworld
mkdir -p /tmp/install.CS8q5KFn
for prog in [ awk cap_mkdb cat chflags chmod chown date echo egrep find grep install-info ln lockf make mkdir mtree mv pwd_mkdb rm sed sh sysctl test true uname wc zic; do cp `which $prog` /tmp/install.CS8q5KFn; done
cd /usr/src; MAKEOBJDIRPREFIX=/usr/obj MACHINE_ARCH=i386 MACHINE=i386 CPUTYPE=prescott GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/tmp/install.CS8q5KFn /usr/obj/usr/src/make.i386/make -f Makefile.inc1 reinstall
--------------------------------------------------------------
>>> Making hierarchy
--------------------------------------------------------------
cd /usr/src; /usr/obj/usr/src/make.i386/make -f Makefile.inc1 hierarchy
cd /usr/src/etc; /usr/obj/usr/src/make.i386/make distrib-dirs
mtree -eU -f /usr/src/etc/mtree/BSD.root.dist -p /
mtree -eU -f /usr/src/etc/mtree/BSD.var.dist -p /var
mtree -eU -f /usr/src/etc/mtree/BSD.usr.dist -p /usr
mtree -eU -f /usr/src/etc/mtree/BSD.include.dist -p /usr/include
mtree -deU -f /usr/src/etc/mtree/BIND.chroot.dist -p /var/named
mtree -deU -f /usr/src/etc/mtree/BSD.sendmail.dist -p /
cd /; rm -f /sys; ln -s usr/src/sys sys
cd /usr/share/man/en.ISO8859-1; ln -sf ../man* .
cd /usr/share/man; set - `grep "^[a-zA-Z]" /usr/src/etc/man.alias`; while [ $# -gt 0 ] ; do rm -rf "$1"; ln -s "$2" "$1"; shift; shift; done
cd /usr/share/openssl/man; set - `grep "^[a-zA-Z]" /usr/src/etc/man.alias`; while [ $# -gt 0 ] ; do rm -rf "$1"; ln -s "$2" "$1"; shift; shift; done
cd /usr/share/openssl/man/en.ISO8859-1; ln -sf ../man* .
cd /usr/share/nls; set - `grep "^[a-zA-Z]" /usr/src/etc/nls.alias`; while [ $# -gt 0 ] ; do rm -rf "$1"; ln -s "$2" "$1"; shift; shift; done
--------------------------------------------------------------
>>> Installing everything
--------------------------------------------------------------
cd /usr/src; /usr/obj/usr/src/make.i386/make -f Makefile.inc1 install
===> share/info (install)
===> include (install)
creating osreldate.h from newvers.sh
touch: not found
*** Error code 127
Stop in /usr/src/include.
*** Error code 1
Stop in /usr/src.
*** Error code 1
Stop in /usr/src.
*** Error code 1
Stop in /usr/src.
*** Error code 1
Stop in /usr/src.
Re: FreeBSD: Удаленная пересборка мира
Добавлено: 2007-12-27 11:11:53
Alex Keda
Re: FreeBSD: Удаленная пересборка мира
Добавлено: 2007-12-27 11:29:02
Pangolin
Код: Выделить всё
# env | grep PATH
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/root/bin
Да вроде все путем
Re: FreeBSD: Удаленная пересборка мира
Добавлено: 2007-12-27 11:48:08
manefesto
Re: FreeBSD: Удаленная пересборка мира
Добавлено: 2007-12-27 12:13:22
Pangolin
Код: Выделить всё
# whereis touch
touch: /usr/bin/touch /usr/share/man/man1/touch.1.gz /usr/src/usr.bin/touch
Re: FreeBSD: Удаленная пересборка мира
Добавлено: 2013-09-12 8:15:37
Dmitriy_K
Pangolin писал(а):Установка мира вывалилась с ошибкой:
Код: Выделить всё
===> include (install)
creating osreldate.h from newvers.sh
touch: not found
*** Error code 127
Недавно тоже напоролся на эту проблему при обновлении FreeBSD 7.4 на 8.4. Судя по результатам поиска, проблема сохраняет свою актуальность на протяжении около 10 лет.
Самый простой способ решения этой проблемы - устанавливаем мир командой: # make installworld PATH=$PATH
(
http://freebsd.so14k.com/make_installwo ... ound.shtml)
Re: FreeBSD: Удаленная пересборка мира
Добавлено: 2013-09-12 11:41:03
skeletor
Alex Keda писал(а):да... 6-ку стрёмно между версиями обновлять.
я вот до стабле удалённо обновлял - пришлось в саппорт датацентра писать инструкцию как из бут лоадера выгрузить одно ядро и загрузить старое

Я для таких целей использую netboot