Ubuntu Sunucu VM'sindeki PXE Önyükleme Sunucusu Kurulum Adımları


Yanıtlar:


31

PXE (Preboot eXecution Environment, belirgin pixie)

Bkz Wikipedia: PXE'yi

Nasıl çalışır?

Bu benim anlayışım!

PXE_Diagram_en.png

  1. İstemci makine açık. BIOS cihazları tarar. Ardından, Boot Order / Sequence ( Önyükleme Sırası / Sekansı) ' nda listelendiği gibi önyükleyiciyi gerekli aygıttan yüklemeye çalışarak bunu takip eder . Ağ kartı ROM'undan PXE yükler.
  2. PXE (istemci tarafı) bir IP isteği yayınlar. Gerekli bilgilerle DHCP sunucusu yanıtı: IP, Sonraki Sunucu IP (TFTP sunucusu IP), pxelinux.0(PXE önyükleme yükleyici dosya adı), ... vb.

    PXE_Boot_1.png

  3. PXE (istemci tarafı) pxelinux.0TFTP sunucusundan dosya ister, RAM'e yükler ve ardından kontrolü geçer pxelinux.0.

    pxelinux.0TFTP sunucusundan
    şu şekilde bir önyükleme yapılandırma dosyası alır: (yoksa, bir sonraki ile çalışır)

    • UUID
    • MAC
    • Sermaye Hex Hex
    • IP'nin bir kısmı
    • defaultDosyaya düşer

    PXE_Boot_2.png

  4. Kullanıcı seçimi veya varsayılan menü girişi. pxelinux.0TFTP sunucusundan ilgili çekirdeği ve RAMDisk'i ister ve bunları RAM'e yükler.

    Ardından önyükleme parametrelerini ve denetimi yüklü çekirdeğe aktarır.

    PXE_Linux.png

  5. Çekirdek, özelliklerine / özelliklerine bağlı olarak kalan parçaları TFTP sunucusundan veya başka bir protokol sunucusundan yükler.

    Parted_Magic_1.png Parted_Magic_2.png

Sunucu Kurulumu

PXE sunucusunu kurmanın birçok yolu vardır, bu onlardan biridir.

Bu talimatlar gerçek bir makinede Ubuntu 9.10 ve Ubuntu 10.04 üzerinde test edildi . Sadece birkaç değişiklik olabileceğinden hala geçerli olmalıdırlar. (VirtualBox üzerinde Ubuntu 14.04 için güncellendi ve test edildi, eski sürümler için düzenleme revizyonlarını kontrol edin)

Hedefim PartedMagic 4.5 , Ubuntu veya herhangi bir Linux dağıtımına benzemeli.

  1. DHCP ve TFTP paketlerini yükleme

        sudo apt-get install isc-dhcp-server openbsd-inetd lftp tftpd-hpa syslinux
    
  2. DHCP Kurulumu

    • /etc/default/isc-dhcp-serverDHCP hizmeti için Edit , Ethernet arayüzü

      INTERFACES="eth0"
      
    • Düzenle /etc/dhcp/dhcpd.conf‬veya /etc/ltsp/dhcpd.confvar, DHCP hizmeti yapılandırması

      PXE'ye özgü yapılandırmalar: 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;
      }
      
    • İçin statik bir IP Kur eth0, 192.168.10.123Masaüstü sürümü için veya ağ yöneticisi kullanarak benim durumumda /etc/network/interfacesSunucu sürümü için.

      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
      

      Ağ arayüzünü yeniden başlatın:

      sudo ifdown eth0
      sudo ifup eth0
      
    • Servisi yeniden başlat

      sudo service isc-dhcp-server restart
      

      Durumu kontrol et

      netstat -lu
      

      Çıktı

      Proto Recv-Q Send-Q Local Address           Foreign Address         State      
      udp        0      0 *:bootpc                *:*                                
      
  3. TFTP Kurulumu

    • Düzenleyin ‪/etc/inetd.conf, satırın #<off>#başından kaldırın tftpveya #:BOOT:yorum altında yoksa ekleyin . (Bunu systemd, 15.10 ve üstü ile atlayın)

      tftp    dgram   udp wait    root    /usr/sbin/in.tftpd  /usr/sbin/in.tftpd -s /var/lib/tftpboot
      
    • İçin önyükleme hizmetini etkinleştir inetd

      sudo update-inetd --enable BOOT
      
    • Hizmeti başlat

      sudo service openbsd-inetd restart
      sudo service tftpd-hpa restart
      

      Durumu kontrol et

      netstat -lu
      

      Çıktı

      Proto Recv-Q Send-Q Local Address           Foreign Address         State 
      udp        0      0 *:tftp                  *:*                          
      
  4. PXE önyükleme dosyaları kurulumu

    • Sıkıştır pmagic-pxe-4.5.zip. Eğer pxelinux.0orada değil, aldığım sysliux-commonmonte pakette /usr/lib/syslinux/pxelinux.0, Syslinux Projesi veya Ubuntu Netboot Image .

      Onları benzer bir yapıya koyun.

      /var/lib/tftpboot/
       |-- pxelinux.0
       |-- pxelinux.cfg/
       |   `-- default
       `-- pmagic/
           |-- bzimage
           `-- initramfs
      
    • Düzenleme /var/lib/tftpboot/pxelinux.cfg/default, gerekli örnek yolları ise: 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
      
    • Doğru izinleri ayarlayın

      sudo find /var/lib/tftpboot -type f -exec chmod 644 {} \;
      sudo find /var/lib/tftpboot -type d -exec chmod 755 {} \;
      

İstemci Kurulumu

Bir kez Değişim BIOS önyükleme sırası kullanılarak F9ya F12, BIOS yapılandırmasından kalıcı kurulum için DEL, F2ya da F12. (Makine markasına bağlı olarak)

Üstüne taşı: [PXE | NIC | LAN | Ethernet | Network].

notlar

  • inetutils-inetdveya xinetdbunun yerine kullanılabilir openbsd-inetd, bazı inetdadımlar farklıdır.

  • TFTP kök dizini olarak değiştirilebilir /etc/default/tftpd-hpa. Güncellemeyi ‪/etc/inetd.confde unutmayın .

  • Birçok dağıtım RAMDisk'i birçok protokol aracılığıyla yüklemeyi destekler: SSH (SFTP), SMB, NFS ... Örnek Ubuntu NFS'yi destekler.

  • Bazı eski ağ kartları PXE'yi desteklemez, iPXE ( Örn. GPXE veya Etherboot ), diskette, USB sürücüsünde, Harddisk'te ( /bootbölüm) veya hatta ROM'a (yalnızca birkaç NIC desteklenir) kullanılabilir. GRUB2, PXE kullanarak önyüklemeyi destekleyen bir modüle sahiptir.

    Ayrıca bakınız Wikipedia: gPXE ve ROM-O-matic .

  • Ubuntu Netboot Görüntü cdimage.ubuntu.com/netboot/ ağdan Ubuntu kurulumu sağlar ve eğer varsa resmi ayna veya yerel birinden gerekli tüm paketleri indirmek için soracaktır.

    Çoğu kullanıcı PXE aracılığıyla canlı görüntü önyükleme arıyor. Bu soru yalnızca bir PXE sunucusu kurmaktı. Bkz. Ubuntu Wiki: Kurulum - LocalNet

    Ubuntu NetBoot - Resmi arşiv aynası Ubuntu NetBoot - Özel / Yerel arşiv aynası

  • PXE Menü özelleştirilebilir, öğrenmek için en iyi şablon Ubuntu NetBoot'tur . Pxeboot Çoklu resme bakın

    PXE_Linux_Menu.png

  • memdiskPXE üzerinden doğrudan ISO veya disket görüntüleri yüklemek için kullanılabilir. syslinux-commonpaketinin bir kopyası var. İstemcide görüntüyü tutmak için yeterli RAM ve yüklü işletim sistemini çalıştırmak için bir bölüm olmalıdır.

    Yapılandırma örneği:

    /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
    
  • Orijinal geliştirici ticari hale getirmeye karar verdikten sonra PartedMagic paketleri resmi siteden çıkarıldı, bazı sürümler torrent ağı üzerinden bulunabilir. Benim cevabım benim için çalışan ilk PXE kurulumunun bir özgeçmişidir. Ubuntu Netboot Resmi aynı talimatlarla çalışmalıdır.


Arkadaşlar, Aslında Pxeboot üzerinde çalışıyorum. Bu paketleri bir sanal makineye (Oracle Virtualbox) yükledim, apt-get install nfs-kernel-server apt-get install tftpd-hpa inetutils-inetd apt-get install syslinux apt-get install isc-dhcp-server Ben dhcpd'yi düzenlerim .conf dosyası ve dhcp sunucusu çalışıyor
Başlangıç

@Sneetsher: Merhaba, varsayılan değerlerle yapılandırılmış tftpd-hda kullanıyorum. A netstat -lu | grep tftpdinleme modunda gösterir. / Tftpboot klasörü 777, ancak tftp> get pxelinux.0istemciden denerseniz, her zaman bir tftp: pxelinux.0: İzin reddedildi hatası alıyorum. Hata ayıklamak için bir fikriniz var mı? Şimdiden teşekkürler.
Danduk82

@ Danduk82, /var/lib/tftpboot/755 (varsayılan) ile tamam olmalıdır. Tüm içeriğinin okunabilir olmasını sağlamak için pxelinux.0644'ün veya çalıştırmanın olup olmadığını kontrol edin sudo chmod -R +r /var/lib/tftpboot/.
user.dz

1
Merhaba, aslında sorunu çözdüm: Aslında ben (aptalca) ekledikten sonra DHCP hizmetini yeniden başlatmayı unuttum filename "pxelinux.0";... yorum yok; P ... Cevabınız ve bu harika (ve tam) cevap için teşekkürler. Şerefe
Danduk82

1
@Matthieu, torrent ağı üzerinden bazı sürümler bulabilirsiniz, orijinal geliştirici ticari hale getirmeye karar verdikten sonra paketler resmi siteden düştü. Ayrıca PXE'yi ilk kez test etmek veya kurmak istiyorsanız cdimage.ubuntu.com/netboot kullanabilirsiniz .
user.dz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.