Как установить виртуальную машину Ubuntu с помощью загрузочного сервера PXE?
Мне нужны все детали конфигурации и что нужно изменить в файлах конфигурации.
Как установить виртуальную машину Ubuntu с помощью загрузочного сервера PXE?
Мне нужны все детали конфигурации и что нужно изменить в файлах конфигурации.
Ответы:
Смотрите Википедию: PXE
Это моё понимание!
PXE (клиентская сторона) передает запрос на IP. Ответ DHCP-сервера с необходимой информацией: IP, IP-адрес следующего сервера (IP-адрес TFTP-сервера), pxelinux.0
(имя файла загрузчика PXE), ... и т. Д.
PXE (на стороне клиента) запрашивает pxelinux.0
файл с TFTP-сервера, загружает его в оперативную память и передает управление pxelinux.0
.
pxelinux.0
получает файл конфигурации загрузки с TFTP-сервера с именем как:
(если он не существует, он пытается со следующим)
default
файлВыбор пользователя или запись по умолчанию. pxelinux.0
запрашивает соответствующее ядро и RAMDisk с TFTP-сервера и загружает их в RAM.
Затем передает параметры загрузки и управление загруженному ядру.
Ядро загружает оставшиеся части с TFTP-сервера или любого другого протокольного сервера в зависимости от его функций / свойств.
Существует много способов настройки PXE-сервера, это один из них.
Эти инструкции были протестированы на Ubuntu 9.10 и Ubuntu 10.04 на реальной машине. Они должны быть действительны только с некоторыми изменениями. (Обновлен и протестирован для Ubuntu 14.04 на VirtualBox, проверьте редактирование версий для старых выпусков)
Моей целью был PartedMagic 4.5 , он должен быть похож на Ubuntu или любой дистрибутив Linux.
Установите пакеты DHCP и TFTP
sudo apt-get install isc-dhcp-server openbsd-inetd lftp tftpd-hpa syslinux
Настройка DHCP
Edit /etc/default/isc-dhcp-server
, интерфейс Ethernet для службы DHCP
INTERFACES="eth0"
Редактировать /etc/dhcp/dhcpd.conf
или /etc/ltsp/dhcpd.conf
он существует, настройка службы DHCP
Конфигурации PXE: filename
&next-server
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.50 192.168.10.100;
option subnet-mask 255.255.255.0;
option routers 192.168.10.123;
option broadcast-address 192.168.10.255;
filename "pxelinux.0";
next-server 192.168.10.123;
}
Установите статический IP-адрес для eth0
, 192.168.10.123
в моем случае, сетевого менеджера для версии для настольных компьютеров или /etc/network/interfaces
для версии для серверов.
auto eth0
iface eth0 inet static
address 192.168.10.123
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
Повторно инициализируйте сетевой интерфейс:
sudo ifdown eth0
sudo ifup eth0
Перезапустить сервис
sudo service isc-dhcp-server restart
Проверь состояние
netstat -lu
Выход
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:bootpc *:*
Настройка TFTP
Отредактируйте /etc/inetd.conf
, удалите #<off>#
из начала tftp
строки или добавьте, если это не указано в #:BOOT:
комментарии. (Пропустите это с systemd, 15.10 и позже)
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
Включить службу загрузки для inetd
sudo update-inetd --enable BOOT
Запустить сервис
sudo service openbsd-inetd restart
sudo service tftpd-hpa restart
Проверь состояние
netstat -lu
Выход
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:tftp *:*
Настройка загрузочных файлов PXE
Разархивируйте pmagic-pxe-4.5.zip
. Если pxelinux.0
нет, получить его из sysliux-common
пакета , установленного на /usr/lib/syslinux/pxelinux.0
, Syslinux Project или Ubuntu образ сетевой .
Поместите их в аналогичную структуру.
/var/lib/tftpboot/
|-- pxelinux.0
|-- pxelinux.cfg/
| `-- default
`-- pmagic/
|-- bzimage
`-- initramfs
Отредактируйте /var/lib/tftpboot/pxelinux.cfg/default
, если необходимо, пример пути: pmagic/bzimage
&pmagic/initramfs
DEFAULT partmagic
LABEL partmagic
MENU LABEL PartMagic 4.5
KERNEL pmagic/bzimage
APPEND initrd=pmagic/initramfs edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=us livemedia
Настройте правильные разрешения
sudo find /var/lib/tftpboot -type f -exec chmod 644 {} \;
sudo find /var/lib/tftpboot -type d -exec chmod 755 {} \;
Измените порядок загрузки BIOS за один раз, используя F9или F12, для постоянной настройки из конфигурации BIOS DEL, F2или F12. (В зависимости от марки машины)
Перейти к началу страницы: [PXE | NIC | LAN | Ethernet | Network]
.
inetutils-inetd
или xinetd
могут быть использованы вместо openbsd-inetd
, некоторые inetd
шаги отличаются.
Корневой каталог TFTP может быть изменен с /etc/default/tftpd-hpa
. Не забудьте обновить /etc/inetd.conf
тоже.
Многие дистрибутивы поддерживают загрузку RAMDisk через множество протоколов: SSH (SFTP), SMB, NFS ... Пример Ubuntu с поддержкой NFS.
Некоторые старые сетевые карты не поддерживают PXE, можно использовать iPXE ( например, gPXE или Etherboot ) на дискете, USB-накопителе, жестком диске (в /boot
разделе) или даже в виде флэш-памяти на ПЗУ (поддерживается только несколько сетевых карт ). GRUB2 имеет модуль для поддержки загрузки с использованием PXE.
Смотрите также Википедия: gPXE и ROM-O-matic .
Ubuntu Netboot Image с сайта cdimage.ubuntu.com/netboot/ обеспечивает установку Ubuntu из сети и будет запрашивать загрузку всех необходимых пакетов с официального или локального зеркала, если оно у вас есть.
Большинство пользователей ищут загрузку живого изображения через PXE. Этот вопрос был только для настройки PXE-сервера. Смотрите Ubuntu Wiki: Установка - LocalNet
Меню PXE можно настроить, лучший шаблон для изучения - Ubuntu NetBoot . Смотрите Pxeboot Несколько изображений
memdisk
может использоваться для прямой загрузки образов ISO или гибких дисков через PXE. syslinux-common
Пакет имеет копию. Клиент должен иметь достаточно ОЗУ для хранения образа плюс часть для запуска загруженной ОС.
Пример конфигурации:
/var/lib/tftpboot/
|-- FDSTD.144
|-- memdisk
|-- pxelinux.0
|-- slitaz-cooking.iso
|-- pxelinux.cfg
| `-- default
`-- pmagic/
|-- bzimage
`-- initramfs
/pxelinux.cfg/default
DEFAULT partmagic
LABEL partmagic
MENU LABEL PartMagic 4.5
KERNEL pmagic/bzimage
APPEND initrd=pmagic/initramfs edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=us livemedia
LABEL slitaz
MENU LABEL ^Slitaz.iso
TEXT HELP
Testing boot from iso.
ENDTEXT
KERNEL memdisk
APPEND initrd=slitaz-cooking.iso
LABEL freedos_std
MENU LABEL ^FreeDOS STD
TEXT HELP
Testing boot from Floppy IMG.
ENDTEXT
KERNEL memdisk
APPEND initrd=FDSTD.144
Пакеты PartedMagic были удалены с официального сайта после того, как оригинальный разработчик решил сделать его коммерческим, некоторые выпуски можно было найти через торрент-сеть. Мой ответ здесь - резюме первой установки PXE, которая работала для меня. Ubuntu Netboot Image должен работать с теми же инструкциями.
netstat -lu | grep tftp
показывает это в режиме прослушивания. Папка / tftpboot - 777, однако, если я пытаюсь сделать tftp> get pxelinux.0
это с клиента, я всегда получаю tftp: pxelinux.0: Ошибка отказа в разрешении . У вас есть идея отладить это? Заранее спасибо.
/var/lib/tftpboot/
с 755 (по умолчанию) должно быть в порядке. Проверьте, pxelinux.0
есть ли у 644 или запустить, sudo chmod -R +r /var/lib/tftpboot/
чтобы сделать все его содержимое для чтения.
filename "pxelinux.0";
... без комментариев; P ... спасибо за ваш ответ и за этот отличный (и полный) ответ. Приветствия