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

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

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

15
задан 5 August 2015 в 11:14

1 ответ

PXE (Preboot eXecution Environment, произносится как pixie)

См. Википедия: 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.png Parted_Magic_2.png

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

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

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

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

  1. Установить DHCP & amp; Пакеты 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 & amp; 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 & amp; 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

    Ubuntu NetBoot - Official archive mirror Ubuntu NetBoot - Custom/Local archive mirror

  • Меню PXE можно настроить лучше всего. Шаблон для изучения - Ubuntu NetBoot . См. Pxeboot Multiple image

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

0
ответ дан 5 August 2015 в 11:14

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

Похожие вопросы: