Dracut не будет создавать образы, содержащие модули, не используемые текущей системой

sh-совместимые сценарии оболочки, которые используют аргументы в командной строке, часто содержат либо $1, $2, $3и т. д., либо $@, либо $*, либо их комбинации. Однако это не является ни необходимым, ни достаточным!

Этот скрипт выполняет поиск и возвращает все строки, содержащие такие строки.:

grep '\$[1-9@*]' script.sh

Вы можете получать ложные срабатывания от сценариев, которые не принимают аргументы командной строки, но содержат функции, принимающие аргументы, или сценариев, которые просто содержат эти символы в неоцененных строках. Если сценарий содержит, например, вызовы awk, то они также могут содержать $1и т. д., которые не относятся к аргументам командной строки самого сценария.

Вы также можете поискать строку getoptв скрипте, чтобы узнать, использует ли скрипт getoptили getoptsдля правильного разбора командной строки.

Выявление случаев, когда аргументы командной строки могут использоваться неявно , немного сложнее. Это происходит, например, с for variablename; do... doneили select variablename; do... done. Но если сценарий использовал setдля явного заполнения позиционных параметров, то это не затрагивает никаких аргументов командной строки. Чтобы разобраться в этом, может потребоваться визуальный осмотр сценария.

В «реальной жизни»можно было бы прочитать сопроводительную документацию. Если по какой-то странной причине это недоступно, прочтите код.

1
02.09.2020, 15:53
1 ответ

Я полагаю, что вам не хватает параметра --no-hostonlyиз справочной страницы:

  -H, --hostonly        Host-Only mode: Install only what is needed for
                        booting the local host instead of a generic host.
  -N, --no-hostonly     Disables Host-Only mode

Еще одна распространенная проблема — пропустить пакет, от которого зависит модуль, например device-mapper-multipathтребуется перед добавлением модуля multipath.

0
18.03.2021, 23:07

Теги

Похожие вопросы