Етапи встановлення сервера завантаження PXE в Ubuntu Server VM


15

Як я можу встановити віртуальну машину Ubuntu за допомогою завантажувального сервера PXE?

Мені потрібні всі деталі конфігурацій та що потрібно змінити у файлах конфігурацій.

Відповіді:


31

PXE (Перезавантаження середовища 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
    • МАК
    • IP в капіталі Hex
    • Частина IP
    • Краплі до defaultфайлу

    PXE_Boot_2.png

  4. Або вибір користувача, або запис меню за замовчуванням. pxelinux.0запитує відповідне ядро ​​та RAMDisk з сервера TFTP і завантажує їх в оперативну пам'ять.

    Потім передає параметри завантаження та управління завантаженому ядру.

    PXE_Linux.png

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

    Parted_Magic_1.png Parted_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в моєму випадку, використовуючи мережевий менеджер для видання Desktop або /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розділі), так і навіть прошивати на ROM (підтримується лише декілька NIC). GRUB2 має модуль для підтримки завантаження за допомогою PXE.

    Дивіться також Вікіпедію: gPXE та ROM-O-matic .

  • Ubuntu Netboot Image від 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 має працювати з тими ж інструкціями.


Друзі, насправді я працюю над Pxeboot. Я встановив ці пакети в одній віртуальній машині (Oracle Virtualbox), apt-get install nfs-kernel-server apt-get install tftpd-hpa inetutils-inetd apt-get install syslinux apt-get install isc-dhcp-server Я редагую dhcpd .conf файл і запустив dhcp-сервер
початківців

@Sneetsher: Привіт, я використовую tftpd-hda, налаштований за значеннями за замовчуванням. A netstat -lu | grep tftpпоказує це в режимі прослуховування. Папка / tftpboot дорівнює 777, однак якщо я спробую tftp> get pxelinux.0її від клієнта, я отримую завжди tftp: pxelinux.0: Помилка відхилена . У вас є ідея налагодити її? Заздалегідь спасибі.
Danduk82

@ Danduk82, /var/lib/tftpboot/755 (за замовчуванням) має бути нормально. Перевірте, чи pxelinux.0є 644 або запустіть, sudo chmod -R +r /var/lib/tftpboot/щоб зробити весь його вміст читабельним.
user.dz

1
Привіт, насправді я вирішив проблему: насправді я (по-дурному) забув перезапустити службу DHCP після додавання filename "pxelinux.0";... без коментарів; P ... дякую за вашу відповідь і за цю чудову (і повну) відповідь. Ура
Дандук82,

1
@Matthieu, Ви можете знайти деякі випуски через торрент-мережу, пакети були скинуті з офіційного сайту після того, як оригінальний розробник вирішив зробити його комерційним. Також ви можете використовувати cdimage.ubuntu.com/netboot, якщо ви хочете вперше протестувати або налаштувати PXE.
user.dz
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.