Комментарии 25
В пятницу утром знакомый обратился с вопросом «Как пересобрать мир в single-mode на удалённом сервере без KVM?»Я бы задал сначала встречный вопрос: зачем делать это в single-моде?
Сам я лично уже давно забил на переход в sinlge-user при пересборке (точнее, установке) ядра+мира, ибо всё и так работает.
+2
Я бы задал более важный вопрос: какого, простите, черта на удаленном сервере делают пересборку мира? Сборочный сервер хотя-бы в виде чрута отменили?
0
Получив новый сервер в ДЦ, где есть только предустановленные образы и смонтировать свой нельзя первым делом качаю исходники и пересобираю ядро и мир, ибо кто их знает чего они там наконфигурили, так что не вижу в этом ничего необычного.
0
Я бы задал сначала встречный вопрос: зачем делать это в single-моде?
Ну рекомендации хэндбука вероятнее всего связаны с тем, что проблемно заменить висящие в памяти файлы. Но тот же init по
install -s -o root -g wheel -m 555 -b -B.bak -fschg -S init /sbin/init
меняется без проблем, т.е. скорее всего установка в мультимоде пройдёт корректно.Но если есть возможность сделать это в сингле, то я ей пользуюсь
0
Я уже и не вспомню сейчас, откуда эта рекомендация изначально там взялась. Возможно, это имеет смысл для того, чтобы изменения в сервисах (rc) вступили в силу без перезагрузки (при выходе из сингла по
^D
). Но так как обычно вместе с миром пересобирают заодно и ядро, ребут в любом случае понадобится. Так что имхо в 99% случаев можно смело говорить make installworld в обычном (многопользовательском) режиме. +1
Так что имхо в 99% случаев можно смело говорить make installworld в обычном (многопользовательском) режиме.
Полностью поддерживаю и если не академический интерес, то врядли я бы стал задумываться об этом одном проценте. Но сам факт отсутствия изначально некоего "/etc/rc.singleuser" из коробки несколько удручает.
0
Нет, эта рекомендация для securelevel инсталляций (иначе просто не даст перезаписать файлы с schg)
+1
Для пересборки мира и ядра не обязательно загружаться в single-mode, правда понадобятся две перезагрузки.
-1
Простите, а зачем две перезагрузки? На старой системе (multi-user mode):
make -jX buildworld buildkernel ; su ; make installkernel ;
(возможно, понадобится mergemaster -p
, но обычно нет) ; make installworld ; mergemaster -Fi ; reboot
. И мы в новой системе (в single-user нигде не переходим, ребутимся один раз в самом конце). 0
Я не использую margemaster, у меня свой скрипт. Вторая перезагрузка нужна для подстраховки, что с новым ядром все хорошо.
0
Я не использую mergemaster, у меня свой скрипт.Страшный человек! :-)
Вторая перезагрузка нужна для подстраховки, что с новым ядром все хорошо.А можете привести пример ситуации/проблемы, которую бы не отловила первая перезагрузка?
+2
Вы меня просите вспомнить, с какими приключениями было связано одновременное обновление мира и ядра?
За 10 лет использования своей методики помню о нескольких случаях.
1) После make installworld; mergemaster не всегда корректно отрабатывает /etc/rc.shutdown — в паре случаев система зависает и требуется нажимать кнопку reset на сервере.
Поэтому аналог margemaster я запускаю после первого ребута, предварительно почитав логи.
2) Были проблемы с новым zfsloader. После обновления приходилось грузится в рискрежим и возвращать старую копию.
3) Был конфликт при переходе маркировки дисков с ad в ada. device ahci конфликтовал с RAID контролером device siis. В итоге пришлось выгружать модуль ahci. Потом, через какое-то время, конфликт исчез.
4) В мае-июне 2014 после обновления мира-ядра перестал грузится системный пул ZFS. После длительного шаманства пришлось пересоздать пул и перенести файлы со старого пула.
За 10 лет использования своей методики помню о нескольких случаях.
1) После make installworld; mergemaster не всегда корректно отрабатывает /etc/rc.shutdown — в паре случаев система зависает и требуется нажимать кнопку reset на сервере.
Поэтому аналог margemaster я запускаю после первого ребута, предварительно почитав логи.
2) Были проблемы с новым zfsloader. После обновления приходилось грузится в рискрежим и возвращать старую копию.
3) Был конфликт при переходе маркировки дисков с ad в ada. device ahci конфликтовал с RAID контролером device siis. В итоге пришлось выгружать модуль ahci. Потом, через какое-то время, конфликт исчез.
4) В мае-июне 2014 после обновления мира-ядра перестал грузится системный пул ZFS. После длительного шаманства пришлось пересоздать пул и перенести файлы со старого пула.
0
Вы меня просите вспомнить, с какими приключениями было связано одновременное обновление мира и ядра?Нет, я спрашивал, для чего нужна вторая перезагрузка, т.к. вы выше говорили, «что не обязательно загружаться в single-mode, правда понадобятся две перезагрузки.»
За 10 лет использования своей методики помню о нескольких случаях. [...]Я понимаю, да, случается, к сожалению, что система с новыми ядром и/или миром не встает. Но это ведь отлавливается сразу же (после первой перезагрузки), нет?
Понятное дело, что если что-то пошло не так, дополнительного шаманства и перезагрузок может понадобиться даже больше одной, однако речь изначально шла про штатную (обычную) ситуацию.
0
<не холивара ради>
Никогда не понимал ради чего люди идут на использование source-based ОСей на продакшен системе.
Особенно имеющих такие специфические проблемы. Да и вообще, наличие компилятора на сервере это +еще немного шансов врагу собрать эксплоит.
Когда уже Фря перейдёт на бинарные пакеты…
</не холивара ради>
Никогда не понимал ради чего люди идут на использование source-based ОСей на продакшен системе.
Особенно имеющих такие специфические проблемы. Да и вообще, наличие компилятора на сервере это +еще немного шансов врагу собрать эксплоит.
Когда уже Фря перейдёт на бинарные пакеты…
</не холивара ради>
-5
man freebsd-update
man pkg
От компилятора в системе не избавит, он входит в базовую поставку, но в целом бинарные обновления как базовой системы, так и дополнительного софта — пожалуйста. Всё зависит от вкусов. <irony>И от количества раз, которое freebsd-update убил систему при обновлении со сменой версии ОС.</irony>
man pkg
От компилятора в системе не избавит, он входит в базовую поставку, но в целом бинарные обновления как базовой системы, так и дополнительного софта — пожалуйста. Всё зависит от вкусов. <irony>И от количества раз, которое freebsd-update убил систему при обновлении со сменой версии ОС.</irony>
+1
Про базовую систему то всё понятно, я имел в виду именно дерево портов.
Вот почему так? У меня есть дебианы обновляемые еще с 5 версии, а то и раньше (сейчас 7) — всё обновлялось достаточно гладко.
Другие дистрибутивы линуксов аналогично.
И от количества раз, которое freebsd-update убил систему при обновлении со сменой версии ОС
Вот почему так? У меня есть дебианы обновляемые еще с 5 версии, а то и раньше (сейчас 7) — всё обновлялось достаточно гладко.
Другие дистрибутивы линуксов аналогично.
0
я имел в виду именно дерево портов
pkg умеет в том числе и устанавливать/удалять бинарные сборки пакетов: www.freebsd.org/doc/ru/books/handbook/pkgng-intro.html
Ну, например после перехода на 14.10, если не ошибаюсь, при использовании проприенатрых драйверов nvidia мой тачпад стал время от времени фризить иксы, для восстановления работоспособности приходится переключаться в консоль и потом возвращаться назад в иксы. Так что странные эффекты при обновлении и у линуксов случаются, хоть тут речь и не о десктопной системе.
0
На лине у меня synclient зависал последнее время превращая тачпад в монстра.
0
pkgng это интересно, спасибо, буду знать. Но, как видно, его еще мало юзают, все заняты пересборкой мира :)
Да, я тут именно про серверные системы, с десктнопами всё бывает иначе.
Да, я тут именно про серверные системы, с десктнопами всё бывает иначе.
0
Еще как юзают; многие от портов уже практически совсем отказались, даже те, кому нужны кастомные пакеты (для этого есть poudriere). Благо,
Все поддерживаемые системы, включая восьмёрку, на него перевели. И оно действительно работает и вполне пригодно для продакшна. Обо всех проблемах и пожеланиях сообщайте, пожалуйста, в трекер на гитхабе.
pkg
уже давно не «ng». ;-)Все поддерживаемые системы, включая восьмёрку, на него перевели. И оно действительно работает и вполне пригодно для продакшна. Обо всех проблемах и пожеланиях сообщайте, пожалуйста, в трекер на гитхабе.
0
rm -rf /usr/ports
Проблема решается в одну комманду. И при установке их можно не ставить.
Вообще их не ставят в базу, внутри системы для работы запускают jails и туда вешают необходимые сервисы, в jail нет ни компиляторов ни большинства либ, а что есть залимитировано по максимуму, в джеилах стоит высокий securelevel.
Соответственно poudriere для сборки пакетов. Остальное как хотите. Свобода (можно вообще все через nullfs зарутить).
Проблема решается в одну комманду. И при установке их можно не ставить.
Вообще их не ставят в базу, внутри системы для работы запускают jails и туда вешают необходимые сервисы, в jail нет ни компиляторов ни большинства либ, а что есть залимитировано по максимуму, в джеилах стоит высокий securelevel.
Соответственно poudriere для сборки пакетов. Остальное как хотите. Свобода (можно вообще все через nullfs зарутить).
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
single-mode во FreeBSD с поддержкой сети