Yanıtlar:
Bu benim anlayışım!

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 (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)
defaultDosyaya düşer
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.

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

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.
DHCP ve TFTP paketlerini yükleme
sudo apt-get install isc-dhcp-server openbsd-inetd lftp tftpd-hpa syslinux
DHCP Kurulumu
/etc/default/isc-dhcp-serverDHCP hizmeti için Edit , Ethernet arayüzü
INTERFACES="eth0"
Düzenle /etc/dhcp/dhcpd.confveya /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 *:*
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 *:*
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 {} \;
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].
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

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

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.
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.
/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/.
filename "pxelinux.0";... yorum yok; P ... Cevabınız ve bu harika (ve tam) cevap için teşekkürler. Şerefe