Некоторые изменения недавно произошли с этими драйверами. Попытайтесь поместить встроенное микропрограммное обеспечение bcm43xx-0.fw
в/lib/firmware/brcm
, если они уже не присутствуют там (возможно, использующий символьные ссылки). Попробуйте затем modprobe brcmsmac
.
Или можно ожидать следующего системного обновления, которое, надо надеяться, зафиксирует путаницу отдельно.
Конкретные действия, которые необходимо предпринять при установке или удалении пакета RPM, включены в сам пакет RPM в секциях перед установкой, после установки, перед деинсталляцией и после деинсталляции.
Для каждого установленного RPM-пакета можно запросить в базе данных RPM точные сценарии, которые включены в команду rpm
:
rpm -q --scripts <package-name>
Выполнение этой команды на пакете ядра для CentOS 6 возвращает, среди прочего:
postinstall scriptlet (using /bin/sh):
<snip>
/sbin/new-kernel-pkg --package kernel --install 2.6.32-431.17.1.el6.x86_64 || exit $?
Из руководства:
new-kernel-package
- инструмент для написания сценария установки ядра
После анализа скриптов на Fedora я понял, что путь к конфигурационному файлу читается из symlink /etc/grub2.conf
. Таким образом, правильная строка grub2-mkconfig
:
grub2-mkconfig -o "$(readlink -e /etc/grub2.conf)"
Как отмечено в комментариях, это может быть /etc/grub2.cfg
, или /etc/grub2-efi.cfg
на системе UEFI. На самом деле, оба звена могут присутствовать одновременно и указывают на различные местоположения. Флаг -e
на readlink
выдаст ошибку, если целевого файла не существует, но в моей системе оба существовали.... Проверьте ваши команды.
отредактируйте файл grub с помощью vi
или vim
, сохраните изменения и закройте редактор с помощью: wq!
Это то, что вам нужно запустить для обновления grub в RedHat или CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
На Fedora я использую:
grub2-mkconfig -o "$(readlink -e /etc/grub2.cfg)"
потому что выполнение без опции readlink
возвращает относительный путь, а grub2-mkconfig
дает ошибку:
$ ls -l /etc/grub2.cfg
lrwxrwxrwx. 1 root root 22 Dec 10 2015 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
$ readlink /etc/grub2.cfg
../boot/grub2/grub.cfg
$ sudo grub2-mkconfig -o "$(readlink /etc/grub2.cfg)"
/usr/sbin/grub2-mkconfig: line 244: ../boot/grub2/grub.cfg.new: No such file or directory
Я использую опцию -e
, чтобы если симлинк не разрешается в существующий файл, вывод отображался на stdout, чтобы я знал, что что-то пошло не так.
Из man-страницы для readlink:
-e, --canonicalize-existing
canonicalize by following every symlink in every component of
the given name recursively, all components must exist
Скрипт update-grub
в Ubuntu на самом деле просто заглушка для grub-mkconfig
, и его можно адаптировать на другие дистрибутивы без особых проблем. Вот он полностью:
#!/bin/sh
set -e
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"
Это эффективно делает то, что рекомендуется в вики CentOS, и в других ответах здесь — единственная разница в том, что вам нужно изменить grub
на grub2
в команде и пути вывода.
Worked on CentOS Linux 8 -
sudo grub2-mkconfig --output=/boot/grub2/grub.cfg
В Руководстве Fedora 33 после изменения Grub выдается следующее
$ sudo grub2-mkconfig --output=/boot/grub2/grub.cfg
И да, я знаю, что этому посту 6 лет
If not, how do the system knows where is the grub configuration file to update when a new kernel version is installed?
Еще несколько часов назад я понимал, как все работает с Grub. Система Oracle Linux 8.4 только что научила меня чему-то новому. Я был немного раздражен, глядя на «пустой» раздел, где я ожидал найти конфигурацию, формирующую список загрузочных записей. Я наткнулся на blscfg и нашел эту статью:https://fedoraproject.org/wiki/Changes/BootLoaderSpecByDefault
Ответ HBruijn имеет гораздо больше смысла в этом контексте, даже если раньше он был верным.
Теперь у вас есть grub.cfg, который может читать файлы BLS, и вам не нужно прикасаться к grub.cfg для каждого обновления ядра. Что здорово, с моей точки зрения.
Поскольку здесь было опубликовано много ответов из разных систем и конфигураций, давайте в последний раз попробуем это с регулярным выражением.
# Search for exsting grub configuration file symbolic link in /etc.
# This should only yield one path.
grub_cfg="$(find "/etc" -maxdepth=1 -regextype posix-egrep \
-regex "/etc/grub2((|-efi).cfg|.conf)")"
# Resolve symbolic link and generate new grub configuration
sudo grub2-mkconfig -o "$(sudo readlink -e $grub_cfg)"