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.0
TFTP sunucusundan dosya ister, RAM'e yükler ve ardından kontrolü geçer pxelinux.0
.
pxelinux.0
TFTP sunucusundan
şu şekilde bir önyükleme yapılandırma dosyası alır: (yoksa, bir sonraki ile çalışır)
default
Dosyaya düşerKullanıcı seçimi veya varsayılan menü girişi. pxelinux.0
TFTP 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-server
DHCP hizmeti için Edit , Ethernet arayüzü
INTERFACES="eth0"
Düzenle /etc/dhcp/dhcpd.conf
veya /etc/ltsp/dhcpd.conf
var, 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.123
Masaüstü sürümü için veya ağ yöneticisi kullanarak benim durumumda /etc/network/interfaces
Sunucu 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 tftp
veya #: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.0
orada değil, aldığım sysliux-common
monte 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-inetd
veya xinetd
bunun yerine kullanılabilir openbsd-inetd
, bazı inetd
adımlar farklıdır.
TFTP kök dizini olarak değiştirilebilir /etc/default/tftpd-hpa
. Güncellemeyi /etc/inetd.conf
de 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 ( /boot
bö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
memdisk
PXE üzerinden doğrudan ISO veya disket görüntüleri yüklemek için kullanılabilir. syslinux-common
paketinin 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 tftp
dinleme modunda gösterir. / Tftpboot klasörü 777, ancak tftp> get pxelinux.0
istemciden 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.0
644'ü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