Развертывание Ubuntu 22.04 с PXEBoot с использованием Syslinux
У меня есть работающий сервер DHCP, ftp и tftp с каталогом tftpboot, в котором машины, настроенные в PXEboot, без проблем загружают syslinux из сети.
Я пытаюсь установить Ubuntu 22.04 в PXE через SYSLINUX.
Я следил за этим постом , чтобы добиться этого.
В этом посте говорится, что вам необходимо извлечь файлы ядра vmlinuz и initrd из ISO-образа установщика сервера Ubuntu 22.04 и поместить их в каталог tftpboot. Затем загрузите ISO из файла конфигурации по умолчанию, расположенного в каталоге pxelinux.cfg. Ниже приведено неполное схематическое представление каталога tftpboot, связанного с jammy (без учета остальных файлов, традиционно используемых syslinux).
└── tftpboot
├── pxelinux.0
├── jammy
│ ├── initrd
│ └── vmlinuz
├── pxelinux.cfg
│ └── default
└── syslinux (All the Syslinux boot files)
└── bios
├── ldlinux.c32
├── libutil.c32
└── menu.c32
Вот каталог FTP, который у меня есть
└── ftp
└── Ubuntu-22.04
├── ubuntu-22.04.1-live-server-amd64.iso
└── Kickstart
├── user-data
└── meta-data
Вот файл пользовательских данных, который я взял, чтобы сначала попробовать минимальную установку. Метаданные могут быть пустыми:
#cloud-config
autoinstall:
identity:
hostname: jammy-minimal
password: $6$gnqbMUzHhQzpDEw.$.cCNVVDsDfj5Feebh.5O4VbOmib7tyjmeI2ZsFP7VK2kWwgJFbfjvXo3chpeAqCgXWVIW9oNQ/Ag85PR0IsKD/
username: ubuntu
version: 1
Вот файл конфигурации по умолчанию, который я установил.
default menu.c32
menu title Ubuntu installer
LABEL ubuntu
MENU LABEL Install Ubuntu Jammy Server
MENU DEFAULT
KERNEL jammy/vmlinuz
IPAPPEND 1
APPEND initrd=jammy/initrd ip=dhcp url=ftp://172.16.0.4/Ubuntu-22.04/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net;s=ftp://172.16.0.4/Ubuntu-22.04/Kickstart
Наконец, чтобы добавить файлы пользовательских данных (cloud-config) и метаданных на ftp, который файл по умолчанию сможет использовать для загрузки своей конфигурации и запуска автоматической установки, пользовательские данные содержат все шаги, которые мы раньше выбирали вручную, чтобы произвести установку без ручного вмешательства (язык, форматирование и т. д.)
Ядро и ISO загружаются правильно и запускают процесс установки вплоть до меню установки, но проблема возникает, когда необходимо загрузить файл облачной конфигурации (пользовательские данные) для запуска автоматической установки. Он не может его найти, хотя я указал его в файле по умолчанию. Вот что происходит на изображении ниже.
Загрузка ISO
Вечное ожидание Cloud-Init
Затем запустите меню в конечном итоге
По-видимому, файл пользовательских данных игнорируется, если я загружаю его из файла syslinux по умолчанию. Как это возможно? Нужно ли мне загружать его откуда-то кроме файла по умолчанию? Я уже думал попробовать загрузить его из модифицированного ISO. Будет ли это хорошей альтернативой? Спасибо