LinuxForum.Fans
Тема

Изменения в работе с grub.cfg в связи с использованием Bootloader Spec

Автор: caspar 1 сообщений 958 просмотров
26.04.2020 11:57 · отредактировано #434546

Начиная с Fedora 30 произошел переход к использованию по умолчанию Bootloader Spec. В связи с этим изменился формат файла /boot/grub2.cfg
Он теперь не содержит отдельных секций для каждого установленного ядра и, поэтому, нет возможности редактированием строки этого файла изменить аргументы командной строки определенного ядра (что иногда требуется). Нужны какие-то другие способы. В fedora MAGAZINE появилась заметка на эту тему. Мне она показалась полезной и ниже я привожу ее перевод.

Задание параметров ядра в Fedora 30
(How to set kernel command line arguments in Fedora 30)

Добавление опций к командной строке ядра – обычное дело при отладке или экспериментах с ядром. В релизе Fedora 30 произошел переход к BLS (Bootloader Spec https://fedoraproject.org/wiki/Changes/BootLoaderSpecByDefault). Если вам приходится менять параметры ядра, ваш образ действий может теперь измениться. Подробности ниже.
Чтобы определить, использует ли ваша система BLS, посмотрите файл:
/etc/default/grub

Если вы найдете в нем строку:

text
GRUB_ENABLE_BLSCFG=true

ваша система использует BLS и вам придется изменить способ задания аргументов командной строки ядра.
Если требуется изменить только одну строку меню (например, для обхода проблемы с дисплеем), можно воспользоваться командой grubby:
[console]$ grubby --update-kernel /boot/vmlinuz-5.0.1-300.fc30.x86_64 --args="amdgpu.dc=0"[/console]
Для удаления аргументов можно воспользоваться аргументом grubby

text
--remove-args

[console]$ grubby --update-kernel /boot/vmlinuz-5.0.1-300.fc30.x86_64 --remove-args="amdgpu.dc=0"[/console]
Если некоторую опцию надо применить ко всем ядрам (например, вы хотите отменить использование инструкции rdrand в генераторе случайных чисел), можно использовать команду grubby:
[console]$ grubby --update-kernel=ALL --args="nordrand"[/console]
При этом будут внесены командные строки для всех ядер и они будут сохранены для использования в дальнейшем.
Если в дальнейшем вы решите удалить эту опцию из командных строк для всех ядер, снова воспользуйтесь grubby с аргументами

text
--remove-args

и

text
--update-kernel=ALL

[console]$ grubby --update-kernel=ALL --remove-args="nordrand"[/console]

Войдите или зарегистрируйтесь, чтобы ответить.