У меня есть несколько систем, в которых мне нужно изменить командную строку ядра, добавив несколько параметров.
На данный момент я делаю это по следующей схеме:
Однако я бы предпочел автоматизировать этот процесс как часть установки пакета и не изменять файл по умолчанию (поскольку он обычно хрупкий).
Я бы хотел сделать что-то вроде:
В /etc/grub.d/* есть куча скриптов, которые используются для создания фактической конфигурации меню, однако очевидного способа взаимодействия с ними нет. Скрипт, который генерирует конфигурацию, кажется, только читает / etc / default / grub :(
Может ли кто-нибудь просветить меня, есть ли способ сбросить файл для изменения командной строки ядра по умолчанию?
Создать файл /etc/default/grub.d/myextraoption.cfg добавление к нужной переменной (добавить только к ней с дополнительным пробелом. Будьте осторожны, чтобы не испортить и не испортить существующие там данные):
GRUB_CMDLINE_LINUX_DEFAULT="${GRUB_CMDLINE_LINUX_DEFAULT} extra-option"
Бегать update-grub
.
Вы должны иметь возможность безопасно включать yourpackage.cfg файл в вашем пакете без риска его перезаписи или чего-то еще. Любой из тех .cfg Файлы включаются после основного файла по умолчанию, поэтому просто помните об этом и планируйте соответственно.
Вы почти наверняка захотите, чтобы сценарий postinst запускал update-grub, когда ваш пакет установлен, и на всякий случай, поскольку он находится в /и т.д вам, вероятно, также следует включить его в Conffiles в вашем пакете. Я думаю, что это оставит это позади, если не будет произведена чистка упаковки, поэтому выбор дилера в этой части.
Для справки, / usr / sbin / grub-mkconfig в строке 157 или около нее - это то, что читает файлы по умолчанию, включая все, что соответствует /etc/default/grub.d/*.cfg. Мне кажется вероятным, что именно эта ситуация и происходит.
Я написал это на основе Trusty. Я не знаю, как далеко в выпусках это все еще применимо. Я только что проверил Lucid, но его там нет. Он есть в Precise.
Согласно документация по grub, может оказаться полезным отредактировать /etc/grub.d/40_custom
файл с grub-mkconfig
;
/etc/grub.d/40_custom особенно полезен для добавления целых пунктов пользовательского меню; просто введите пункты меню, которые вы хотите добавить, в конец этого файла, убедившись, что по крайней мере первые две строки остались нетронутыми.
Возможно, вы могли бы взять одну из первых записей, скопировать ее в конец этой конфигурации и добавить желаемые параметры? Это должно быть ориентировано на будущее, поскольку в основном сохраняется существующая конфигурация и добавляется ваша настраиваемая конфигурация в качестве дополнительной опции меню.
Изменить: я понимаю, что вы запросили, чтобы это была строка по умолчанию, но приведенное выше является компромиссом редактирования с менее потенциально деструктивной методологией (и в любом случае вы можете использовать grub-mkconfig
для выполнения более смелой задачи, например, изменение значения по умолчанию)
grub 2.02 появляется для исходных файлов, соответствующих /etc/default/grub.d/*.cfg, в дополнение к / etc / default / grub.
Возможно, это работает и с любой версией вашей Ubuntu.