Разработчик Dimitry Andric в списке рассылки src-head сообщил (https://lists.freebsd.org/pipermail/svn-src-head/2016-March/...) о том, что при обновлении систем CURRENT требуется обновление загрузчика. Необходимость обновления загрузчика связана с добавлением секции SHT_AMD64_UNWIND в модули ядра в ревизии 296428.Суть заключается в том, что при рекомендуемой схеме обновления системы
- make buildworld
- make buildkernel
- make installkernel
- reboot
- make installworld
- ...
В случае если у вас есть модули ядра, требующие загрузки при старте системы, и вы провели обновление по указанному сценарию, то после стадии "make installkernel && reboot" во всех установленных модулях ядра будет иметься вышеуказанная секция SHT_AMD64_UNWIND, но так как загрузчик пока не обновлён на этапе "make installworld", при перезагрузке он не обработает данные секции в модулях, что может привести к панике ядра при загрузке.
В /usr/src/UPDATING уже добавлено напоминание о данном нововведении. В нём рекомендуется проводить обновление с шагами:
- make buildworld
- make kernel KERNCONF=YOUR_KERNEL_HERE
- make -C sys/boot install
- ... далее как обычно...
Включение новой секции в модулях ядра стало необходимым после перехода на clang-3.8.URL: https://svnweb.freebsd.org/changeset/base/296428
Новость: http://www.opennet.me/opennews/art.shtml?num=43998
я при каждом обновлении лезу в документацию, было бы неплохо указать там в нотес.
Зачем делать что-то управдяемым опцией, если оно нужно безусловно?
Это current , когда дойдёт до stable само будет делаться.
Ни разу не обновлял мир после перезагрузки с обновлённым ядром - всегда обновляю одной командой всё:
% cd /usr/src/ && make installkernel installworld && mergemaster -iU
Убираю лишние библиотеки:
% cd /usr/src/ && make BATCH_DELETE_OLD_FILES=true delete-old delete-old-libs
И только потом отправляю на перезагрузку:
% shutdown -r now
Что за надуманная проблема бояться обновить мир вместе с ядром?!
Причём тут боязнь?
Как в мануале написано так и делают.
В стрекозе, емнип, вообще одной командой все пересобирается и обновляется.
> Что за надуманная проблема бояться обновить мир вместе с ядром?!Когда при попытке выполнить `shutdown -r now` после обновления сразу всего и вся обнаружится, что shutdown не может запуститься на старом ядре (да и kill заодно), только жёсткая перезагрузка спасёт.
Такое может быть в current или при смене stable веток.
В пределах одной stable ветки api/abi ядра не меняют.
> Такое может быть в current или при смене stable веток.
> В пределах одной stable ветки api/abi ядра не меняют.Внимательно прочитайте сообщение iZEN'а:
>>> Ни разу не обновлял мир после перезагрузки с обновлённым ядром - всегда обновляю одной командой всё:
>>> % cd /usr/src/ && make installkernel installworld && mergemaster -iU
>>> Убираю лишние библиотеки:
>>> % cd /usr/src/ && make BATCH_DELETE_OLD_FILES=true delete-old delete-old-libs
>>> И только потом отправляю на перезагрузку:
>>> % shutdown -r now
>>> Что за надуманная проблема бояться обновить мир вместе с ядром?!Может, все эти действия выполнялись в пределах одной ветки, но часть действий явно избыточна. Удалять старые файлы и библиотеки (библиотеки лучше сразу не удалять, ИМХО) и обновлять конфиги имеет смысл при апгрейде.
Спасибо, я умею читать.
Я отвечал на ваше, а не его сообщение:
>Когда при попытке выполнить 'shutdown -r now' после обновления сразу всего и вся обнаружится, что shutdown не может запуститься на старом ядре (да и kill заодно), только жёсткая перезагрузка спасёт.Вот если бы вы написали:
"Когда при попытке выполнить 'shutdown -r now' после обновления сразу всего и вся [может] обнаружится, что shutdown не может запуститься на старом ядре (да и kill заодно), только жёсткая перезагрузка спасёт. "
Не пришлось бы уточнять при каких обстоятельствах это может произойти.
> Спасибо, я умею читать.
> Я отвечал на ваше, а не его сообщение:
>>Когда при попытке выполнить 'shutdown -r now' после обновления сразу всего и вся обнаружится, что shutdown не может запуститься на старом ядре (да и kill заодно), только жёсткая перезагрузка спасёт.
> Вот если бы вы написали:
> "Когда при попытке выполнить 'shutdown -r now' после обновления сразу всего и
> вся [может] обнаружится, что shutdown не может запуститься на старом ядре
> (да и kill заодно), только жёсткая перезагрузка спасёт. "
> Не пришлось бы уточнять при каких обстоятельствах это может произойти.У меня написано корректное сложноподчинённое предложение, где «когда» является союзным словом в придаточном предложении условия (можно без потери смысла заменить союзом «если»).
В вашем же случае, если добавить в предложение слово «может», надо изменить форму глагола с определённой на неопределённую: «может обнаружитЬся». Так что ваше замечание неуместно.
> mergemaster ...mergemaster — это смело! :)
Так делать чревато!
Перед ребутом тебе нужно ещё порты все пересобрать, иначе старые либы тебе похерит, и после ребута у тебя всё что из портов не будет работать.
Так обычно бывает когда с 9 на 10 и пр глобальные апдейты.
Особенно "смешно" может получиться, если шеллом на рута стоит что-то из портов - bash, например.
> Особенно "смешно" может получиться, если шеллом на рута стоит что-то из портов
> - bash, например.Не надо так делать: для этого есть пользователь toor.
> Что за надуманная проблема бояться обновить мир вместе с ядром?!Традиция-с!
Ну и, видимо, неохота все возможные варианты тестировать и поддерживать?
Да и как вы себе это представляете – написать в доке "а можно сделать и вот так вот, но есть вероятность, что произойдет неприятность – тогда с ней разбирайтесь сами! (или <вариант действий в 100500 страниц на случай проблем>)" ? )А так да – та же пересборка с "NO_CLEAN" работает в большинстве случаев без проблем, да еще и значительно быстрее, но упоминается только в мане, т.к. иногда все же проблемы бывают.
Кстати, насчет "фрагильности" (это, скорее, для не-фряшников, а то некоторые анонимы взяли в моду откровеннейшую чушь в новостях о "бздях" вбрасывать) :
# uname -rms #ядро
FreeBSD 11.0-CURRENT-HBSD amd64
# freebsd-version -u # userland
10.3--HBSD
Поставил пару дней назад, потыкать – все вполне нормально работает.
>Кстати, насчет "фрагильности"а вы попробуйте sockstat/netstat подёргать, да всякие ipfw.
экстремалы могут проделать это же с юзерлендом от 9.x и ядром от 10.x/current.
когда фрибсдя от сони начнёт продаваться?
Чисто для протокола - а ты готов купить?!? И для почему?
>а ты готов купить?!?Всегда готов.
>И для почему?Для игорей. Железо у меня и своё есть, а вот игры от PS4 ванильная фрибзд не умеет.
Реализацию API для работы с графикой и звуком они все равно продавать не собираются. Это будет такая же PS4, как Darwin - OS X...
Интересно, а как это коснется тех кто будет переходить на 10.3 через freebsd-update? А именно, в какой момент обновится загрузчик, там ведь есть и перезагрузка и freebsd-update install после нее...
А в чем там может быть проблема?
Загрузчик это бинарник в /boot, обновится обычным способом.
Ээээ, простите, а какое дело начальному загрузчику до секций в модулях ядра?