Я пытаюсь настроить сетевую загрузку Ubuntu mini.iso
через iPXE и NFS. В настоящее время я прохожу все через командную строку iPXE вместо скрипта. Я убедился, что собрал iPXE с включенным NFS, и это, кажется, работает просто отлично, потому что я могу добраться до initrd.gz
просто отличного. Но я не могу понять, как сообщить iPXE, что такое ядро; я предполагал, что файл linux
будет ядром, но когда я пытаюсь сказать iPXE использовать этот файл, он выдает Exec format error (http://ipxe.org/2e008081)
.
Если говорить более подробно, то вот как устроена система:
- mini.iso смонтирован на QNAP TurboNAS как общая папка с гостевым доступом через NFS
- Загрузка нового сервера PXE, цепочка загрузок iPXE через TFTP
- Я
<Ctrl-B>
вхожу в командную строку iPXE initrd nfs://guest@<nfs ip address>/Ubuntu1604Mini/initrd.gz
работает просто отличноkernel nfs://guest@<nfs ip address>/Ubuntu1604Mini/linux
сходит с ума от вышеуказанной ошибки
Мне трудно гуглить этот вопрос, потому что все остальное, похоже, предполагает, что образ не является загрузочным по сети, поэтому все эти инструкции предполагают наличие каталога, casper
но casper/vmlinuz
mini.iso, похоже, имеет совсем другую структуру.
Любая помощь в этом вопросе будет высоко оценена! Спасибо!
Редактировать
Если это важно, весь гостевой доступ NFS доступен только для чтения.
Редактировать 2:
Похоже, что это на самом деле проблема UEFI. Я нашел в документации, что mini.iso не настроен для загрузки в средах UEFI. Поэтому я переключился на попытки заставить это работать через Ubuntu 16.04 Server .ISO, и у меня все еще возникают проблемы; из некоторых поверхностных поисков в Интернете выяснилось, что vmlinuz в Ubuntu 16.04 не скомпилирован с EFI Stubs. Я нашел файл EFI/BOOT/BOOTx64.EFI, но когда я загружаю его по цепочке с помощью iPXE, он начинает пытаться найти образ нетбука через TFTP, поэтому я не уверен на 100%, что он делает или какие аргументы я могу ему передать.
решение1
У меня была та же проблема в Debian Live Booting на NFS. В документации по ipxe упоминается случай загрузки с BIOS, но не с EFI, решение, как вы упомянули, связано с EFI.
Добавьте параметр initrd=initrd_file_name в строку imgargs.
Источник этой информации:http://forum.ipxe.org/showthread.php?tid=7522
Хотя я не нашел этого в официальной документации, но у меня это работает на efi.