Шаги по установке PXE Boot Server в виртуальной машине Ubuntu Server

Как установить виртуальную машину Ubuntu с помощью загрузочного сервера PXE?

Мне нужны все детали конфигурации и что нужно изменить в файлах конфигурации.

1 ответ

PXE (Preboot eXecution Environment, ярко выраженный пикси)

Смотрите Википедию: PXE

Как это устроено?

Это мое понимание!

PXE_Diagram_en.png

  1. Клиентский компьютер включен. BIOS сканирует устройства. Затем следует попытаться загрузить загрузчик с требуемого устройства, как указано в разделе "Порядок / последовательность загрузки". Он загружает PXE из ПЗУ сетевой карты.
  2. PXE (клиентская сторона) передает запрос на IP. Ответ DHCP-сервера с необходимой информацией: IP, IP-адрес следующего сервера (IP-адрес TFTP-сервера), pxelinux.0 (Имя файла загрузчика PXE) и т. Д.

    PXE_Boot_1.png

  3. PXE (на стороне клиента) запросы pxelinux.0 файл с сервера TFTP, загружает его в оперативную память и передает управление pxelinux.0,

    pxelinux.0 получает файл конфигурации загрузки с сервера TFTP с именем как:
    (если он не существует, он пытается со следующим)

    • UUID
    • MAC
    • IP в Capital Hex
    • Часть IP
    • Падает в default файл

    PXE_Boot_2.png

  4. Выбор пользователя или запись по умолчанию. pxelinux.0 запрашивает соответствующее ядро ​​и RAMDisk с сервера TFTP и загружает их в RAM.

    Затем передает параметры загрузки и управление загруженному ядру.

    PXE_Linux.png

  5. Ядро загружает оставшиеся части с TFTP-сервера или любого другого протокольного сервера в зависимости от его функций / свойств.

    Parted_Magic_1.pngParted_Magic_2.png

Настройка сервера

Существует много способов настройки PXE-сервера, это один из них.

Эти инструкции были протестированы на Ubuntu 9.10 и Ubuntu 10.04 на реальной машине. Они должны быть действительны только с некоторыми изменениями. (Обновлен и протестирован для Ubuntu 14.04 на VirtualBox, проверьте изменения редакции для старых выпусков)

Моей целью был PartedMagic 4.5, он должен быть похож на Ubuntu или любой дистрибутив Linux.

  1. Установите пакеты DHCP и TFTP

        sudo apt-get install isc-dhcp-server openbsd-inetd lftp tftpd-hpa syslinux
    
  2. Настройка DHCP

    • редактировать /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                *:*                                
      
  3. Настройка 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                  *:*                          
      
  4. Настройка загрузочных файлов PXE

    • расстегнуть молнию pmagic-pxe-4.5.zip, Если pxelinux.0 нет там, получить его от sysliux-common пакет установлен на /usr/lib/syslinux/pxelinux.0, Syslinux Project или Ubuntu Netboot Image.

      Поместите их в аналогичную структуру.

      /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 с http://cdimage.ubuntu.com/netboot/ обеспечивает установку Ubuntu из сети и запрашивает загрузку всех необходимых пакетов с официального или локального зеркала, если оно у вас есть.

    Большинство пользователей ищут возможность загрузки живого изображения через PXE. Этот вопрос был только для настройки PXE-сервера. Смотрите Ubuntu Wiki: Установка - LocalNet

    Ubuntu NetBoot - Официальное архивное зеркалоUbuntu NetBoot - Пользовательское / Локальное архивное зеркало

  • Меню PXE можно настроить, лучший шаблон для изучения - Ubuntu NetBoot. Смотрите Pxeboot Несколько изображений

    PXE_Linux_Menu.png

  • 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 должен работать с теми же инструкциями.

Другие вопросы по тегам