PXE boot
Sissejuhatus
Selles juhendis seadistame PXE boot serveri koos vajalike komponentidega, mis võimaldab meil kiiresti ilma bootivat füüsilist meediat omamata, linux operatsioonisüsteemi üle võrgu paigaldada või käivitada. Eesmärk on luua menüüga PXE kus oleks võimalik bootida erinevaid linuxi ditributsiooni installatsioone. Loomulikult siit edasi minna võib panna bootima veel, thinmanageri (terminali softi) kõvakettata lauaarvutis, memtest või VmWare “Hyperviisori”
Toon näiteid teenuse ülesseseadmiseks paraleelselt nii Fedora Core 14-s kui ka Ubuntu Server 10.10-s.
PXE-st
PXE ehk Pre-Execution Environment, on keskkond arvutite ülesslaadmiseks (bootimiseks) kasutades võrgukaarti. PXE on välja töötatud Inteli poolt ning tema spetsifikatsioon veriooniga 2.1 on avaldatud Inteli ja Systemsoft poolt 20 septembril 1999 (andmed 2011 märts) ning asub aaderssil: http://www.intel.com/design/archives/wfm/downloads/pxespec.htm
Kuidas toimib?
Arvuti käivitamise algfaasis küsib võrgukaart DHCP ga omale Ip aadressi ning informatsiooni sellekohta (DHCP parameeter) millisel IP-l PXE käivitusserver asub. Peale vastuse saamist küsitakse serverilt network bootstrap program (NBP[1]) faili asukoht, mis laetakse arvuti muut mällu (RAM) kasutatdes TFTP-d, ning lõpuks käivitatakse.
Vajalikud komponendid.
Toimimise alt on näha, et asja käitamiseks on kindlasti vaja järgmiseit kahte põhiteenust: DHCP ja TFTP - Trivial File Transfer Protocol Network bootstrap programmi: PXELINUX - Linuxi algkäivitamiseks võrguserverist kasutades võrgukaatri mis vastab Intel PXE standardile Hilisemaks installimiseks (ei ole hetkel selle juhendi osa): NFS, FTP, HTTP
Tähelepanek:
Selleks et oleks võimalik kasutada kopeerimist ja asetamist näidetest, tuleb Serveri installi käigus anda masinale staatiline IP aadress 192.168.100.2 võrgust 192.168.100.0/24,
Põhikomponentide paigaldamine ja nende seadistamine.
>> Kõik järgmised tegevused tuleb juur (root) kasutajaõigustes teha. <<
DHCP
Kõige aluseks on meil automaatne IP-aadressite ja vajalike parameetrite andmine PXE seadmele, mida annb meil DHCP server. Täpsem juhis wikis DHCP kohta asub aadressil (https://wiki.itcollege.ee/index.php/DHCP)
Install
Fedora:
yum install dhcp
Ubuntu server: https://wiki.itcollege.ee/index.php/Apt
apt-get install dhcp3-server
Seadistamine
Seadistame DHCP serveri võrgus 192.168.100.0/24 (255.255.255.0) jagama IP aadresse 192.168.100.100 kuni 192.168.100.110.
Fedora:
nano /etc/dhcp/dhcpd.conf
Ubuntu server:
nano /etc/dhcp3/dhcpd.conf
dhcpd.conf
allow booting; allow bootp; subnet 192.168.100.0 netmask 255.255.255.0 { # IP aadressite piirkond mida server jagab The range of IP addresses the server # DHCP klientidele k2ivitusel range 192.168.100.100 192.168.100.110; # M22rame aja kui kaua klient oma IP aadressi v6ib hoida default-lease-time 86400; max-lease-time 86400; # Vaikelyys (gateway) option routers 192.168.100.1; # Don't forward DHCP requests from this # NIC interface to any other NIC interfaces option ip-forwarding off; # broadcast address ja subnet mask option broadcast-address 192.168.100.255; option subnet-mask 255.255.255.0; # Set the NTP ajaserver DHCP klientidele # option ntp-servers 192.168.100.1; # Set the DNS server to be used by the DHCP clients option domain-name-servers 192.168.100.1; # PXE-seadistuse osa # serveri ip kus jookseb TFTP ehk on meie PXE server next-server 192.168.100.2; filename "pxelinux.0"; # see on parameeter kus nimetame et millist NBP-d kasutatakse option bootfile-name "pxelinux.0"; } # subneti l6pp
Lisa DHCP options-ite kohta saab lugeda manualist.
man dhcp-options
Taaskäivitame DHCP serveri, et tuleks uus seadistus peale.
Ubuntu
service dhcp3-server restart
Fedora
service dhcpd restart
Et asjad toimiksid, on vaja lubada tulemüüril teatud TFTP ja DHCP võrguliiklus. (dhcp - UDP port 67 ja 68, tftp - UDP port 69) Ehk on vaja iptablesisse teha vajalikud augud või lihtsam kuid samas ebaturvalisem variant on iptables valja lülitada.
Täpsem juhis IPtabelsi muutmiseks Iptables
TFTP
Selleks, et võrgukaart saaks kätte pxelinux.0 (NBP programmi) ja seadistuse on meil vaja paigaldada ja seadistada TFTP teenus. Selleks kasutame H. Peter Anvin tftp (tftpd-hpa) tarkvara.
Paigaldamine
Fedora:
yum install tftp-server
Ubuntu server:
apt-get install tftpd-hpa
Seadistamine
Kõigepealt tuleks alustada kausta tegemisega kus hakatakse pxe jaoks vajalike boot faile ja NBP-d hoidma. (fedora installis tehakse vastav kaust juba tftpd installil ajal asukohaga /var/lib/tftpboot ära) näiteks: (asukoha võib vabalt valida samas tuleb seda tähele panna kui hakkate tftpd seadistama)
Fedora:
Et tftpd server käima läheks, on vaja xinetd teenuses lubada omakorda tftp teenus. Selleks aga tuleb xinet.d confi failis asendada disabled=yes, disabled=no.
nano /etc/xinetd.d/tftpd
tftpd
service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = yes <---- muuda no per_source = 11 cps = 100 2 flags = IPv4 }
Restardime xinetd teenuse.
service xinetd restart
Ubuntu
Vaatame korra vaikekonfiguratsiooni, sealt näeme millisest kaustast annab tftp boot failid (vaikeseadistuse peask olema auskoht /var/lib/tftpboot)
cat /etc/default/tftpd-hpa
Kontrollime kas teenus juba ei käi.
status tftpd-hpa
Kui teenus ei käi käivitame tftp-hpa teenuse.
service tftpd-hpa start
PXE “paigaldamine”
Eelnevalt oleks mõistlik tutvuda probleemse riistavaraga, millega võib tekkida pxelinuxil probleeme. http://syslinux.zytor.com/wiki/index.php/Hardware_Compatibility
pxelinux.0
1. Esmalt tuleb paigaldada tftpd confis määratud kausta pxelinux.0 ehk NBP programmi fail, mille saame laadida kernel.org-ist: http://www.kernel.org/pub/linux/utils/boot/syslinux/ Selle juurkaustas on syslinuxi viimane versioon ning vanemaid versioone võib leida vastavalt alamkaustadest mis on nimedega 1.xx või 2.xx jne.
Antud juhend on tehtud syslinux versioon 4.03-ga, vajadusel võib laadida ka uuema versiooni kui see on olemas.
Laeme syslinuxi verioon 4.03 tmp kausta.
cd /tmp wget http://www.kernel.org/pub/linux/utils/boot/syslinux/4.xx/syslinux-4.03.tar.bz2
Kui wget peaks systeemist puuduma, saab selle paigaldada järgmiselt.
Fedora:
yum install wget
Ubuntu server:
apt-get install wget
Pakime allalaetud faili lahti:
tar -jxvf syslinux-4.03.tar.bz2
Ning kopeerimie pxelinux.0 faili /var/lib/tftpboot kausta:
cp /tmp/syslinux-4.03/core/pxelinux.0 /var/lib/tftpboot/
Nüüdseks oleme saanud suure põhitüki paika. Järgmisena loome vajaliku seade failide kausta, ja teeme menüüd, ning paneme erinevate linux-i pakkide bootimiseks vajalikud komponendid paika.
Tekitame kausta /var/lib/tftpboot omakorda alamkausta pxelinux.cfg, mis hakab hoidma meil konfiguratsooni faile.
mkdir /var/lib/tftpboot/pxelinux.cfg
PXELINUX (pxelinux.0) otsib pxelinux.cfg kaustast järgmiselt conf faile.
- ARP tüübi ja oma mac aadressijärgi n2it. (ARP type 1) aadressiga 88:99:AA:BB:CC:DD otsib faili nimega 01-88-99-aa-bb-cc-dd.
- oma IP hex koodi järgi näit. 192.0.2.91 -> C000025B
- Ja lõpuks otsib default faili. (mis kehtib siis k2igile)
Meie kasutame selles juhendis default faili mida otsitakse kõige viimasena. Selline otsimine võimaldab erinevale riistvarale erinevaid seadistusi jagada.
Kopeerime eelnevalt allalaetud ja lahtipakitud syslinuxi kaustast menüü käivituseks vajaliku faili ning seadistame esmase menüü.
cp /tmp/syslinux-4.03/com32/menu/menu.c32 /var/lib/tftpboot/
Seadistamine Ubuntu serveri ja Fedora 14 core installikad menüüs. Selleks loome endajaoks arusaadav kataloogistruktuuri tftpboot kausta.
./menu/ <-- eelkõige menyy komponentide hoidmise jaoks ./ubuntu/ ./ubuntu/server/10_10/64 ./ubuntu/server/10_10/x86 ./fedora/ ./fedora/14/64 ./fedora/14/x86
cd /var/lib/tftpboot mkdir -p ./menu/ ./ubuntu/server/10_10/64 ./ubuntu/server/10_10/x86 ./fedora/14/64 ./fedora/14/x86
Kopeerime ISOdest PXE jaoks vmlinuz ja initrd.img failid vastavatesse kaustadesse.
T2HELEPANEK: Peab kasutama nende distro (paketide) versiooni vmlinuz ja initrd.img faile mida on plaanis juurutama hakata.
Alustame Ubuntu Serveri failide kopeerimisega. Kõigepealt ühendame (moundime) allalaetud iso järgmise käsuga:
ISO mountimine
mount -o loop disk1.iso /mnt/ISO
disk1.iso on allalaetud faili nimi. kopeerime vajalikud failid eelnevalt valmistatud kaustadesse.
cp install/netboot/ubuntu-installer/amd64/* /var/lib/tftpboot/ubuntu/server/10_10/64/
Nyyd kopeerime Feodra Image ja vmlinuzi failid sarnaselt Ubuntu omadega.
Menüü
Järgmisena seadistame menüü sarnase struktuuriga nagu seda on kaustade struktuur.
Loome conf faili ilusa menyy milles on lihtne navigeerida struktuur mille loome menüüdega on järgmine:
Ubuntu -- Server ---- 10.10 Fedora --Fedora Core 14
Menüüle on võimalik määrata ka välimus. Seadistame välimuse
nano menu/graphics.conf
graphics.conf
menu color tabmsg 37;40 #80ffffff #00000000 menu color hotsel 30;47 #40000000 #20ffffff menu color sel 30;47 #40000000 #20ffffff menu color scrollbar 30;47 #40000000 #20ffffff MENU MASTER PASSWD jalgratas MENU PASSWORDMARGIN 26 MENU ROWS 6 MENU TABMSGROW 15 MENU CMDLINEROW 15 MENU ENDROW 24 MENU PASSWORDROW 12 MENU TIMEOUTROW 13 MENU VSHIFT 6 MENU PASSPROMPT Sisesta parool: NOESCAPE 1 ALLOWOPTIONS 0
1. Kõigepealt seadistame ära peamenyy, mis asub pxelinux.cfg/default failis.
nano ./pxelinux.cfg/default
default
default menu.c32 prompt 0 menu title PXE menyy menu INCLUDE menu/graphics.conf MENU AUTOBOOT K2ivitame systeemi lokaalselt kettalt # sekundi p2rast label bootlocal menu label ^K2ivita Kettalt menu default localboot 0 timeout 80 TOTALTIMEOUT 9000 LABEL Ubuntu MENU LABEL ^Ubuntu KERNEL menu.c32 APPEND menu/graphics.conf menu/ubuntu.menu LABEL Fedora MENU LABEL ^Fedora KERNEL menu.c32 APPEND menu/graphics.conf menu/fedora.menu
2. Loome alamenüüd Fedorale ja Ubuntule failidesse fedora.menu ja ubuntu.menu
Ubuntule
nano ./menu/ubuntu.menu
ubuntu.menu
MENU TITLE Ubuntu LABEL Tagasi MENU LABEL <-- ^Tagasi KERNEL menu.c32 APPEND pxelinux.cfg/default LABEL Ubuntu Server MENU LABEL ^Ubuntu Server KERNEL menu.c32 APPEND menu/graphics.conf menu/ubuntu_server.menu
Fedorale
nano menu/fedora.menu
fedora.menu
MENU TITLE Fedora LABEL Tagasi MENU LABEL <-- ^Tagasi KERNEL menu.c32 APPEND pxelinux.cfg/default LABEL Ubuntu Core 14 MENU LABEL ^Fedora Core 14 KERNEL menu.c32 APPEND menu/graphics.conf menu/fedora_14.menu
3. Nendele omakorda veel alammenüüd (kuna Ubuntul on olemas nii Server kui Desktop siis ubuntul saab olema omakorda veel versiooni alammenüü erinevalt fedorast)
nano menu/ubuntu_server.menu
ubuntu_server.menu
MENU TITLE Ubuntu Server LABEL Tagasi MENU LABEL <-- ^Tagasi KERNEL menu.c32 APPEND menu/ubuntu.menu LABEL Ubuntu Server 10.10 MENU LABEL ^Ubuntu Server 10.10 KERNEL menu.c32 APPEND menu/graphics.conf menu/ubuntu_server_10_10.menu
nano menu/fedora_14.menu
fedora_14.menu
MENU TITLE Fedora 14 LABEL Tagasi MENU LABEL <-- ^Tagasi KERNEL menu.c32 APPEND menu/fedora.menu LABEL Fedora Core 14 64bit MENU LABEL ^Fedora Core 14 64bit KERNEL fedora/14/64/vmlinuz APPEND initrd=fedora/14/64/initrd.img
4. Viimaseks Ubuntu erinevate versioonide osa
nano ubuntu_server_10_10.menu
ubuntu_server_10_10.menu
MENU TITLE Ubuntu Server 10.10 Install LABEL Tagasi MENU LABEL <-- ^Tagasi KERNEL menu.c32 APPEND menu/ubuntu_server.menu LABEL Ubuntu Server 10.10 64bit MENU label ^Ubuntu Server 10.10 64bit KERNEL ubuntu/server/10_10/64/linux APPEND vga=788 initrd=ubuntu/server/10_10/64/initrd.gz -- LABEL Ubuntu Server 10.10 64bit cli MENU label ^Ubuntu Server 10.10 64bit cli KERNEL ubuntu/server/10_10/64/linux APPEND tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=788 initrd=ubuntu/server/10_10/64/initrd.gz LABEL Ubuntu Server 10.10 64 EXPERT MENU LABEL ^Ubuntu Server 10.10 64bit EXPERT KERNEL ubuntu/server/10_10/64/linux APPEND priority=low vga=788 initrd=ubuntu/server/10_10/64/initrd.gz -- LABEL Ubuntu Server 10.10 64 cli EXPERT MENU LABEL ^Ubuntu Server 10.10 64bit cli EXPERT KERNEL ubuntu/server/10_10/64/linux APPEND tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false priority=low vga=788 initrd=ubuntu/server/10_10/64/initrd.gz -- LABEL Ubuntu Server 10.10 x86 MENU LABEL ^Ubuntu Server 10.10 32bit (suunab tagasi) KERNEL menu.c32 APPEND menu/graphics.conf menu/ubuntu_server.menu
Valmis! käivitamisel (bootimisel) peaks tulema ilus ja arusaadavate valikutega menüü kuskohast on siis võimalik lihtsalt sobiv valik teha.
Varundamine
Varundamisek on vaja teha kõigist olulistest seadistusfailidest ja kaustadest tagavarakoopiad.
Koopia tuleb teha tervest /var/lib/tftpboot kaustast. Mis sisaldab menyy elemente ja pxelinuxi osi Samuti tuleb teha koopia /etc/xinetd.d/tftpd ja siis vastavlt Fedoras /etc/dhcp/dhcpd.conf ja Ubuntus /etc/dhcp3/dhcpd.conf failidest.
Taastamine
Taastamine toimub vastupidi varundamisele.
Kõigepealt tuleb paigaldada vajalikud komponendid (vaata juhendi algustest peatükki "Põhikomponentide paigaldamine ja nende seadistamine"), ning kopeerida varundamisel tehtud failid ja kaustada järgmiselt:
/var/lib/ kausta tftpboot kaust
/etc/xinetd.d/ kausta tftpd fail
Ja viimaseks dhcpd.conf fail astavalt Fedoras /etc/dhcp/ ja Ubuntus /etc/dhcp3/ kausta
Viited
- http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch08_:_Configuring_the_DHCP_Server#Download_and_Install_the_DHCP_Package
- http://wiki.r1soft.com/display/R1D/Configuring+DHCP+Server+on+Linux+or+Unix+%28ISC+DHCPD%29
- http://tldp.org/HOWTO/DHCP/x369.html
- http://pxe.dev.aboveaverageurl.com/index.php/PXE_Booting/Fedora_Core
- https://help.ubuntu.com/community/PXEInstallServer
Autor
Karel Niine
AK22
Ver 0.9