PXE boot
Ver 0.8 (Tegemisel)
Sissejuhatus
Selles juhendis seadistame (paneme ülesse) PXE serveri koos vajalike komponentidega mis võimaldab meil kiiresti ilma bootivat füüsilist meediat omamata, linuxit üle võrgu paigaldada. Eesmärk on luua menüüga PXE kus oleks võimalik bootida erinevaid linuxi ditributsioonide 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) 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) faili asukoht, mis laetakse arvuti muut mällu (RAM) kasutatdes TFTP-d, ning lõpuks käivitatakse. (WIKI)
Vajalikud komponendid.
Toimimise alt on näha, et asja toimimiseks 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 selle hetkel juhendi osa): NFS, FTP, HTTP
Tähelepanek: Selleks et oleks võimalik kasutada copy\paste näidetest tuleb Serveri installi käigus anda masinale staatiline IP aadressi võrgus 192.168.100.0/24, väljavalituks osutus aadress 192.168.100.2
Põhikomponentide paigaldamine ja nende seadistamine.
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: 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: 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 saab lugeda manualist. [root@bigboy tmp]# man dhcp-options
Et asjad toimiksid, on vaja lubada tulemüüril teatud võrguliiklus.
Ehk on vaja iptablesisse teha vajalikud augud või lihtsam kuid samas ebaturvalisem variant on iptables valja lülitada.
Fedoral on vaikimisi ip tables seadistatud
Liikluse lubamine:
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 Fedoras: yum install tftp-server Paigaldamine 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 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
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/
Laeme syslinuxi tmp kausta. cd tmp wget http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.03.tar.bz2 Kui wget peaks systeemist puuduma, siis saab paigaldada järgmiselt. Ubuntu: apt-get install wget Fedora: yum install wget
Pakime allalaetud faili lahti: tar -jxvf syslinux-4.03.tar.bz2 Ning kopeerimie pxelinux.0 faili /var/lib/tftpboot kausta: cp ./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 /syslinux-4.03/com32/menu/menu.c32 ./
Seadistamine Ubuntu serveri ja Fedora 14 core installikad menüüs. Selleks loome endajaoks arusaadav kataloogistruktuuri tftp kausta alla. /tftpboot/menu/ <-- eelkõige menyy komponentide hoidmise jaoks /tftpboot/ubuntu/ /tftpboot/ubuntu/server/10_10/64 /tftpboot/ubuntu/server/10_10/x86 /tftpboot/fedora/ /tftpboot/fedora/14/64 /tftpboot/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.
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 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/defaut failis. nano ./pxelinux.cf/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 nano ./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 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 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/ubuntu_server.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 vesrioonide osa 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.
Autor
Karel Niine AK22