Страница 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

Код: Выделить всё

whereis touch

Re: FreeBSD: Удаленная пересборка мира

Добавлено: 2007-12-27 12:13:22
Pangolin
manefesto писал(а):

Код: Выделить всё

whereis touch

Код: Выделить всё

# 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 лет. :crazy:
Самый простой способ решения этой проблемы - устанавливаем мир командой: # 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