Назад | Перейти на главную страницу

Загрузка PXE с grub: не установлена ​​корневая переменная

Я настроил серверы dhcp и tftp, для своих тестов я использовал в первый раз syslinux для успешной загрузки по сети PXE.

Теперь я хочу использовать для загрузки grub вместо syslinux, для этого я выполнил команду grub-mknetdir --net-directory=<my_tftp_root_dir>, и изменил файл для обслуживания в dhcpd.conf.

Загрузка PXE работает, но я всегда получаю сообщение об ошибке root variable unset, и я перехожу в режим восстановления grub.

Если я вручную введу команды:

set root=(tftp,10.50.1.10)
set prefix=(tftp,10.50.1.10)
insmod normal
normal

Тогда я могу правильно видеть записи меню grub.cfg и загружать все, что там есть ..

Но я хочу, чтобы это делалось автоматически и получало меню grub без ручного вмешательства.

Я уже сводил себя с ума, читая без каких-либо положительных отзывов, поэтому я не знаю, как установить как root, так и префикс, чтобы grub мог запускаться правильно.

Спасибо за любые предложения / подсказки, эта PXE-штука для меня пока что новый мир.

РЕДАКТИРОВАТЬ: Играя, лучшее, что я мог сделать, - это снова сгенерировать изображение с помощью: grub-mkimage -O i386-pc-pxe --output /warehouse/TFTProot/boot/grub/i386-pc/core.0 --prefix='(tftp,10.50.1.10)/boot/grub' pxe tftp

И не полагайтесь на автогенерированный, но нет ли лучшего решения, чем регенерировать его вручную? Так как grub-mknetdir уже генерирует его.

Вы должны установить следующий сервер как 10.50.1.10 на вашем сервере bootp или dhcp. Это требуется grub2 для установки переменных «root» и «prefix». Также убедитесь, что вы используете правильный абсолютный путь к команде grub-mknetdir, также для параметра --subdir.

1) Вы можете создать образ ядра, создать файл конфигурации, например

setvars.conf и ссылку с помощью команды mkimage -c setvars.conf

grub-mkimage -O i386-pc-pxe --output /warehouse/TFTProot/boot/grub/i386-pc/core.0 --prefix = '' -c setvars.conf ppxe tftp

2) сохраните файл с именем grub.cfg в корне tftp-сервера со следующим содержимым:

установить root = (tftp) установить net_default_server = 192.168.x.x установить префикс = boot / grub