PXE boot

From ICO wiki
Revision as of 22:21, 14 March 2011 by Kniine (talk | contribs) (→‎Autor)
Jump to navigationJump to search

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:

  1. yum install dhcp

Ubuntu: https://wiki.itcollege.ee/index.php/Apt

  1. 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

      1. 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";

}

  1. 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