URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 107042
[ Назад ]

Исходное сообщение
"Пользователям FreeBSD-HEAD требуется обновить загрузчик пере..."

Отправлено opennews , 07-Мрт-16 11:48 
Разработчик 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.ru/opennews/art.shtml?num=43998


Содержание

Сообщения в этом обсуждении
"Пользователям FreeBSD-HEAD требуется обновить загрузчик пере..."
Отправлено фцв , 07-Мрт-16 11:48 
я при каждом обновлении лезу в документацию, было бы неплохо указать там в нотес.

"Пользователям FreeBSD-HEAD требуется обновить загрузчик пере..."
Отправлено Аноним , 07-Мрт-16 12:07 
Зачем делать что-то управдяемым опцией, если оно нужно безусловно?

"Пользователям FreeBSD-HEAD требуется обновить загрузчик пере..."
Отправлено ПолковникВасечкин , 07-Мрт-16 12:37 
Это current , когда дойдёт до stable само будет делаться.

"Пользователям FreeBSD-HEAD требуется обновить загрузчик пере..."
Отправлено iZEN , 07-Мрт-16 13:47 
Ни разу не обновлял мир после перезагрузки с обновлённым ядром - всегда обновляю одной командой всё:
% 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
Что за надуманная проблема бояться обновить мир вместе с ядром?!

"Пользователям FreeBSD-HEAD требуется обновить загрузчик пере..."
Отправлено ПолковникВасечкин , 07-Мрт-16 16:07 
Причём тут боязнь?
Как в мануале написано так и делают.
В стрекозе, емнип, вообще одной командой все пересобирается и обновляется.

"Пользователям FreeBSD-HEAD требуется обновить загрузчик пере..."
Отправлено Wladmis , 07-Мрт-16 17:01 
> Что за надуманная проблема бояться обновить мир вместе с ядром?!

Когда при попытке выполнить `shutdown -r now` после обновления сразу всего и вся обнаружится, что shutdown не может запуститься на старом ядре (да и kill заодно), только жёсткая перезагрузка спасёт.


"Пользователям FreeBSD-HEAD требуется обновить загрузчик пере..."
Отправлено ПолковникВасечкин , 07-Мрт-16 17:19 
Такое может быть в current или при смене stable веток.
В пределах одной stable ветки api/abi ядра не меняют.

"Пользователям FreeBSD-HEAD требуется обновить загрузчик пере..."
Отправлено Wladmis , 07-Мрт-16 17:31 
> Такое может быть в 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
>>> Что за надуманная проблема бояться обновить мир вместе с ядром?!

Может, все эти действия выполнялись в пределах одной ветки, но часть действий явно избыточна. Удалять старые файлы и библиотеки (библиотеки лучше сразу не удалять, ИМХО) и обновлять конфиги имеет смысл при апгрейде.


"Пользователям FreeBSD-HEAD требуется обновить загрузчик пере..."
Отправлено ПолковникВасечкин , 07-Мрт-16 21:45 
Спасибо, я умею читать.
Я отвечал на ваше, а не его сообщение:
>Когда при попытке выполнить 'shutdown -r now' после обновления сразу всего и вся обнаружится, что shutdown не может запуститься на старом ядре (да и kill заодно), только жёсткая перезагрузка спасёт.

Вот если бы вы написали:
"Когда при попытке выполнить 'shutdown -r now' после обновления сразу всего и вся [может] обнаружится, что shutdown не может запуститься на старом ядре (да и kill заодно), только жёсткая перезагрузка спасёт. "
Не пришлось бы уточнять при каких обстоятельствах это может произойти.


"Пользователям FreeBSD-HEAD требуется обновить загрузчик пере..."
Отправлено Wladmis , 07-Мрт-16 22:35 
> Спасибо, я умею читать.
> Я отвечал на ваше, а не его сообщение:
>>Когда при попытке выполнить 'shutdown -r now' после обновления сразу всего и вся обнаружится, что shutdown не может запуститься на старом ядре (да и kill заодно), только жёсткая перезагрузка спасёт.
> Вот если бы вы написали:
> "Когда при попытке выполнить 'shutdown -r now' после обновления сразу всего и
> вся [может] обнаружится, что shutdown не может запуститься на старом ядре
> (да и kill заодно), только жёсткая перезагрузка спасёт. "
> Не пришлось бы уточнять при каких обстоятельствах это может произойти.

У меня написано корректное сложноподчинённое предложение, где «когда» является союзным словом в придаточном предложении условия (можно без потери смысла заменить союзом «если»).

В вашем же случае, если добавить в предложение слово «может», надо изменить форму глагола с определённой на неопределённую: «может обнаружитЬся». Так что ваше замечание неуместно.


"Пользователям FreeBSD-HEAD требуется обновить загрузчик пере..."
Отправлено Sabakwaka , 07-Мрт-16 19:47 
> mergemaster ...

mergemaster — это смело! :)


"Пользователям FreeBSD-HEAD требуется обновить загрузчик пере..."
Отправлено Ivan_83 , 07-Мрт-16 21:37 
Так делать чревато!
Перед ребутом тебе нужно ещё порты все пересобрать, иначе старые либы тебе похерит, и после ребута у тебя всё что из портов не будет работать.
Так обычно бывает когда с 9 на 10 и пр глобальные апдейты.

"Пользователям FreeBSD-HEAD требуется обновить загрузчик пере..."
Отправлено Аноним , 08-Мрт-16 20:46 
Особенно "смешно" может получиться, если шеллом на рута стоит что-то из портов - bash, например.

"Пользователям FreeBSD-HEAD требуется обновить загрузчик пере..."
Отправлено Wladmis , 08-Мрт-16 21:11 
> Особенно "смешно" может получиться, если шеллом на рута стоит что-то из портов
> - bash, например.

Не надо так делать: для этого есть пользователь toor.


"Пользователям FreeBSD-HEAD требуется обновить загрузчик пере..."
Отправлено Аноним , 07-Мрт-16 21:39 
> Что за надуманная проблема бояться обновить мир вместе с ядром?!

Традиция-с!

Ну и, видимо, неохота все возможные варианты тестировать и поддерживать?
Да и как вы себе это представляете – написать в доке "а можно сделать и вот так вот, но есть вероятность, что произойдет неприятность – тогда с ней разбирайтесь сами! (или <вариант действий в 100500 страниц на случай проблем>)"  ?  )

А так да – та же пересборка с "NO_CLEAN" работает в большинстве случаев без проблем, да еще и значительно быстрее, но упоминается только в мане, т.к. иногда все же проблемы бывают.

Кстати, насчет "фрагильности" (это, скорее, для не-фряшников, а то некоторые анонимы взяли в моду откровеннейшую чушь в новостях о "бздях" вбрасывать) :


# uname -rms  #ядро
FreeBSD 11.0-CURRENT-HBSD amd64
# freebsd-version -u   # userland
10.3--HBSD

Поставил пару дней назад, потыкать – все вполне нормально работает.

"Пользователям FreeBSD-HEAD требуется обновить загрузчик пере..."
Отправлено Добрый Дохтур , 08-Мрт-16 23:55 
>Кстати, насчет "фрагильности"

а вы попробуйте sockstat/netstat подёргать, да всякие ipfw.
экстремалы могут проделать это же с юзерлендом от 9.x и ядром от 10.x/current.


"Пользователям FreeBSD требуется обновить загрузчик перед уст..."
Отправлено Язь , 07-Мрт-16 21:04 
когда фрибсдя от сони начнёт продаваться?

"Пользователям FreeBSD требуется обновить загрузчик перед уст..."
Отправлено _ , 07-Мрт-16 23:28 
Чисто для протокола - а ты готов купить?!? И для почему?

"Пользователям FreeBSD требуется обновить загрузчик перед уст..."
Отправлено Аноним , 08-Мрт-16 02:04 
>а ты готов купить?!?

Всегда готов.
>И для почему?

Для игорей. Железо у меня и своё есть, а вот игры от PS4 ванильная фрибзд не умеет.


"Пользователям FreeBSD требуется обновить загрузчик перед уст..."
Отправлено Stax , 08-Мрт-16 15:06 
Реализацию API для работы с графикой и звуком они все равно продавать не собираются. Это будет такая же PS4, как Darwin - OS X...

"Пользователям FreeBSD требуется обновить загрузчик перед уст..."
Отправлено Сергей , 08-Мрт-16 00:22 
Интересно, а как это коснется тех кто будет переходить на 10.3 через freebsd-update? А именно, в какой момент обновится загрузчик, там ведь есть и перезагрузка и freebsd-update install после нее...

"Пользователям FreeBSD требуется обновить загрузчик перед уст..."
Отправлено ПолковникВасечкин , 08-Мрт-16 01:10 
А в чем там может быть проблема?
Загрузчик это бинарник в /boot, обновится обычным способом.

"Пользователям FreeBSD требуется обновить загрузчик перед уст..."
Отправлено Аноним , 08-Мрт-16 00:37 
Ээээ, простите, а какое дело начальному загрузчику до секций в модулях ядра?