У моей установки есть один головной узел, на котором размещается загрузочный образ, который многие вычислительные узлы загружают PXE с использованием grub. Проблема в том, что из-за разного оборудования разных узлов мне нужны разные конфигурации grub (для загрузки разных образов) для разных клиентов.
Сначала я попробовал это . В моей сети есть все узлы с, скажем, конфигурацией «A» в диапазоне IP 10.0.1.1-10.0.15.255 и конфигурацией «B» в диапазоне 10.0.16.1-10.0.31-255. Я попытался создать файлы grub.cfg-0A000
и grub.cfg-0A001
соответственно, но, похоже, он все равно загружал файл grub.cfg по умолчанию.
Затем я попытался использовать переменную $ net_default_ip и команду regexp
, чтобы определить, в каком диапазоне ip находится узел, и установить элемент меню по умолчанию на основе этого. Проблема в том, что нет никаких документов об этой команде, которые я мог бы найти. Я попытался использовать стандартный синтаксис регулярных выражений POSIX: if regexp /10\.0\.1\.1/gx;
, но это условие, кажется, возвращает true каждый раз, и пункт меню по умолчанию - просто мой последний оператор if. Создание отдельных операторов if для каждого узла работает: if [ "$net_default_ip" = "10.0.1.1" ];
, однако, я бы предпочел не идти по этому пути из-за количества узлов, для которых это нужно было бы сделать, не говоря уже о новых узлах, которые будут добавлены в будущем. .
Любая помощь будет принята с благодарностью, на данный момент я в растерянности.