The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Пользователям FreeBSD требуется обновить загрузчик перед установкой обновлённого ядра

07.03.2016 10:14

Разработчик Dimitry Andric в списке рассылки src-head сообщил о том, что при обновлении систем FreeBSD-CURRENT, -9.x и -10.x требуется обновление загрузчика. Необходимость обновления загрузчика связана с добавлением секции 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.

Дополнение: Данные изменения внесены также в стабильные ветки 9-STABLE и 10-STABLE.

  1. Главная ссылка к новости (https://svnweb.freebsd.org/cha...)
Автор новости: G.Nerc=Y.uR
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/43998-freebsd
Ключевые слова: freebsd, boot
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (23) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, фцв (?), 11:48, 07/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    я при каждом обновлении лезу в документацию, было бы неплохо указать там в нотес.
     
  • 1.2, Аноним (-), 12:07, 07/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Зачем делать что-то управдяемым опцией, если оно нужно безусловно?
     
     
  • 2.4, ПолковникВасечкин (?), 12:37, 07/03/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Это current , когда дойдёт до stable само будет делаться.
     

  • 1.7, iZEN (ok), 13:47, 07/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Ни разу не обновлял мир после перезагрузки с обновлённым ядром - всегда обновляю одной командой всё:
    % 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
    Что за надуманная проблема бояться обновить мир вместе с ядром?!
     
     
  • 2.22, ПолковникВасечкин (?), 16:07, 07/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Причём тут боязнь?
    Как в мануале написано так и делают.
    В стрекозе, емнип, вообще одной командой все пересобирается и обновляется.
     
  • 2.25, Wladmis (ok), 17:01, 07/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Что за надуманная проблема бояться обновить мир вместе с ядром?!

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

     
     
  • 3.26, ПолковникВасечкин (?), 17:19, 07/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Такое может быть в current или при смене stable веток.
    В пределах одной stable ветки api/abi ядра не меняют.
     
     
  • 4.27, Wladmis (ok), 17:31, 07/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Такое может быть в 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
    >>> Что за надуманная проблема бояться обновить мир вместе с ядром?!

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

     
     
  • 5.37, ПолковникВасечкин (?), 21:45, 07/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Спасибо, я умею читать.
    Я отвечал на ваше, а не его сообщение:
    >Когда при попытке выполнить 'shutdown -r now' после обновления сразу всего и вся обнаружится, что shutdown не может запуститься на старом ядре (да и kill заодно), только жёсткая перезагрузка спасёт.

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

     
     
  • 6.38, Wladmis (ok), 22:35, 07/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Спасибо, я умею читать.
    > Я отвечал на ваше, а не его сообщение:
    >>Когда при попытке выполнить 'shutdown -r now' после обновления сразу всего и вся обнаружится, что shutdown не может запуститься на старом ядре (да и kill заодно), только жёсткая перезагрузка спасёт.
    > Вот если бы вы написали:
    > "Когда при попытке выполнить 'shutdown -r now' после обновления сразу всего и
    > вся [может] обнаружится, что shutdown не может запуститься на старом ядре
    > (да и kill заодно), только жёсткая перезагрузка спасёт. "
    > Не пришлось бы уточнять при каких обстоятельствах это может произойти.

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

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

     
  • 2.29, Sabakwaka (ok), 19:47, 07/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > mergemaster ...

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

     
  • 2.35, Ivan_83 (ok), 21:37, 07/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Так делать чревато!
    Перед ребутом тебе нужно ещё порты все пересобрать, иначе старые либы тебе похерит, и после ребута у тебя всё что из портов не будет работать.
    Так обычно бывает когда с 9 на 10 и пр глобальные апдейты.
     
     
  • 3.47, Аноним (-), 20:46, 08/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Особенно "смешно" может получиться, если шеллом на рута стоит что-то из портов - bash, например.
     
     
  • 4.48, Wladmis (ok), 21:11, 08/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Особенно "смешно" может получиться, если шеллом на рута стоит что-то из портов
    > - bash, например.

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

     
  • 2.36, Аноним (-), 21:39, 07/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Что за надуманная проблема бояться обновить мир вместе с ядром?!

    Традиция-с!

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

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

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



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



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

     
     
  • 3.49, Добрый Дохтур (?), 23:55, 08/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >Кстати, насчет "фрагильности"

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

     

  • 1.33, Язь (?), 21:04, 07/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    когда фрибсдя от сони начнёт продаваться?
     
     
  • 2.39, _ (??), 23:28, 07/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чисто для протокола - а ты готов купить?!? И для почему?
     
     
  • 3.43, Аноним (-), 02:04, 08/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >а ты готов купить?!?

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

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

     
     
  • 4.46, Stax (ok), 15:06, 08/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Реализацию API для работы с графикой и звуком они все равно продавать не собираются. Это будет такая же PS4, как Darwin - OS X...
     

  • 1.40, Сергей (??), 00:22, 08/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно, а как это коснется тех кто будет переходить на 10.3 через freebsd-update? А именно, в какой момент обновится загрузчик, там ведь есть и перезагрузка и freebsd-update install после нее...
     
     
  • 2.42, ПолковникВасечкин (?), 01:10, 08/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А в чем там может быть проблема?
    Загрузчик это бинарник в /boot, обновится обычным способом.
     

  • 1.41, Аноним (-), 00:37, 08/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ээээ, простите, а какое дело начальному загрузчику до секций в модулях ядра?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру