Ubuntu telepítése hálózatról
Mire jelent megoldást?
Ritka de kerülhetünk olyan helyzetbe mikor nincs kéznél sem CD-rom sem floppy maghajtó csak egy UTP kábelt fogadni képes hely figyel a számítógépben. Az én esetemben is hasonló probléma ütötte fel a fejét, volt itthon egy laptop aminek a CD-romját akárhogy is erőlködtünk nem tudtuk működésre bírni. Floppy nincs, külső usb interfésszel rendelkező CD meghajtó sok pénzt emésztene fel, így egy lehetőség maradt hálózatról telepíteni a rendszert. Abban az esetben is jó szolgálatot tehet ez a módszer ha több gépre kell föltelepítenünk ugyanazt az operációs rendszert. Semmi más nem kell hozzá mint egy Ubuntu operációs rendszert futtató számítógép szélessávú internetkapcsolattal. Mindemellett a művelethez segítségül fogjuk hívni a PXE (http://en.wikipedia.org/wiki/Preboot_Execution_Environment) erejét és a DNSmasq egy egyszerű dns és dhcp kiszolgáló képességeit.
Nagy vonalakban
PXE (Preboot eXecution Environment (PXE, aka Pre-Execution Environment, vagy ’pixie’)) egy olyan környezet amely lehetővé teszi, hogy az adott számítógép hálózatról bootoljon függetlenül bármilyen adattártól (pl.:hdd) vagy operációs rendszertől. Az Intel egy projektjének(Wired for Management) részeként lett bemutatva. A következő protokollokat használja IP, UDP, DHCP és TFTP.
DNSmasq egy dhcp és dns szerver kisebb hálózatok számára, a célnak tökéletesen megfelel.
A szükséges programok telepítése
sudo aptitude install install dnsmasq atftp atftpd
Készítsünk egy könyvtárat a az atftpd-nek(alapértelmezett beállítások mellett /tftpboot de ez megváltoztatható, bővebben a manualban lehet tájékozódni):
sudo mkdir /tftpboot
Belépünk:
cd /tftboot
Letöltjük a telepítéshez használt netboot installert:
wget http://href.hu/x/4y7h
Aztán kicsomagoljuk:
tar zxf netboot.tar.gz
Megváltoztatjuk a tulajdonost:
sudo chown -R nobody: .
Az első résszel már készen is vagyunk.
A hálózat beállítása
(a példában eth0-on keresztül fog kommunikálni a kliens és a szerver, értelemszerűen be kell helyettesíteni (eth2, 1 stb.) a saját konfiguráció alapján):
Parancssoros megoldás:
Nyissuk meg a konfigurációs állományt:
sudo gedit /etc/network/interfaces
Adjuk hozzá ezen sorokat:
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
auto eth0
Mentsük el és zárjuk be az ablakot.
Grafikus megoldás:
Rendszer -> Adminisztráció -> Hálózat
A használni kívánt hálózati csatolót (itt:eth0) aktiváljuk (pipa), aztán a tulajdonságoknál a következőket állítjuk be:
Ip : 192.168.0.1
Netmask : 255.255.255.0
Bezárjuk az ablakokat és újraindítjuk a hálózatot:
sudo /etc/init.d/networking restart
Mindkét megoldásnál szükséges!
A DNSmasq és a tftpd beállítása
DNSmasq:
Ha futna állítsuk le:
sudo /etc/init.d/dnsmasq stop
Nyissuk meg a konfigurációs fájlt:
sudo gedit /etc/dnsmasq.conf
És Keressük meg a következő részeket(minden rész előtt találunk egy #-t ezt töröljük ki a megadott sorok elől, azaz kommentezzük ki őket, majd írjuk be a következő értékeket):
dhcp-range=192.168.0.2,192.168.0.6,24h (ezzel szabályozhatjuk az ip kiosztás tartományát)
dhcp-boot=pxelinux.0,”server_ip” (pl.:192.168.0.1)
Mentsük el a változásokat a Ctrl+s billentyűkombinációval ezután zárjuk be az ablakot. A dhcp-range beállítása más értékekkel is működik, én most ezt a tartományt választottam a példában.
Tftpd:
Állítsuk le ha futna:
sudo /etc/init.d/atftpd stop
Nyissuk meg a konfigurációs fájlt:
sudo gedit /etc/default/atftpd
Győződjünk meg róla, hogy ezek az értékek szerepelnek a konfigurációs állományban.(a két # jel közötti részt kell figyelembe venni)
#USE_INETD=false
OPTIONS=”–daemon –port 69 –tftpd-timeout 300 –retry-timeout 5 –mcast-port 1758 –mcast-addr 239.239.239.0-255 –mcast-ttl 1 –maxthread 100 –verbose=5 /tftpboot”#
Mentsük a változásokat és zárjuk be az ablakot.
Akik semmilyen formában nem használják (firestarter, shorewall stb…) a csomagszűrőt azok ezt a részt átugorhatják.
Iptables csomagszűrő beállítása. A következő portokra lesz szükségünk: (1758, 67:68, 53. 69)
Akik használtak már iptablest azoknak nem okoz problémát a művelet, akik nem biztosak magukban azok az alább található megoldást válasszák.
Ki is kapcsolhatjuk a csomagszűrőt(mindenképpen egyszerűbb de egyáltalán nem biztonságos, azok akik router mögül interneteznek nyugodtan használhatják ezt az opciót a telepítés erejéig. Firestarter felhasználók a szokásos módon kikapcsolhatják a tűzfalat.):
sudo iptables -F sudo iptables -X sudo iptables -P INPUT ACCEPT sudo iptables -P FORWARD ACCEPT sudo iptables -P OUTPUT ACCEPT sudo iptables -t mangle -F >/dev/null sudo iptables -t mangle -X>/dev/null sudo iptables -t nat -F >/dev/null sudo iptables -t nat -X >/dev/null
Indítsuk el a szolgáltatásokat:
sudo /etc/init.d/atftpd
sudo /etc/init.d/dnsmasq
Ellenőrzés
Iptables teszt: ha kikapcsoltuk a csomagszűrőt akkor kilistázás alkalmával nem szabad, hogy egyetlen szabály is megjelenjék. Az alap Policy -nál pedig mindenhol ACCEPT -nek kell szerepelnie.
sudo iptables -L
sudo iptables -t nat -L
sudo iptables -t mangle -L
DNSmasq teszt:
sudo netstat -nulp | grep '67.*dnsmasq' # should display udp 0 0 0.0.0.0:67 0.0.0.0:* /dnsmasq
Atftpd teszt:
sudo netstat -nulp | grep atftpd # should display udp 0 0 0.0.0.0:69 0.0.0.0:* /atftpd
Ellenőrizzük, hogy megkapjuk e a PXE boot kernelt:
cd /tmp (jelen esetben 192.168.0.1)
echo 'get pxelinux.0' | atftp SERVER_IP
ls -l pxelinux.0 # -rw-r–r– 1 hm hm 13552 2008-03-05 13:05 pxelinux.0 (ehhez hasonló sornak kell szerepelnie a terminálban)
A rendszer már csak arra vár, hogy összekössük gépeinket és indtsuk a kliens gépet.A biosban ne felejtsük el átállítani a boot sorrendet, a hálózati bootolás opciót állítsuk be elsőnek! A kliensgép elindítása után már a szokásos Ubuntu telepítő képernyő villan fel szemünk előtt.
Forrás : http://en.wikipedia.org/wiki/Preboot_Execution_Environment, https://help.ubuntu.com/community/Installation/QuickNetboot
7 hozzászólás

1. Büki Tamás @ 2008. április 12., 18:25 (Permalink)
Követve a leírást, megcsináltam mindent a server gépen. Frissen telepített Ubuntu + dnsmasq+atftp+atftpd. De a másik gép valamiért nem akar bootolni róla. Közvetlenül össze van kötve a két gép, és a kábel is jó. Nem tudja lekérni a pxelinux.0-t.
Tudna valaki segíteni nekem?
Előre is köszönöm!
[Válasz erre a hozzászólásra]
2. charlie @ 2008. április 12., 18:51 (Permalink)
PXE képes a másik hálókártya? Ha integrált, akkor előfordul, hogy kulon aktiválni kell ezen funkcióját! (pl. a dell nem csak PXE-t tud, meg jopar ilyen gép)
[Válasz erre a hozzászólásra]
3. Büki Tamás @ 2008. április 12., 18:54 (Permalink)
Igen tudja a PXE boot-ot, sőt arról bootol először, és keresi is a DHCP-t … és pörög a per jel, aztán kiír valami hibaüzenetet asszem hogy nem talál valami fájlt, de nem tudtam elolvasni mert itt pillanatok alatt eltűnik és nem tudom elolvasni.
[Válasz erre a hozzászólásra]
4. charlie @ 2008. április 12., 18:57 (Permalink)
Állítsd be, hogy a gép semmi másról ne tudjon bootolni, akkor valószínűleg megmarad a hibaüzenet.
Más géppel is ezt csinalja (ami a szerver hibájára enged következtetni), vagy sem?
[Válasz erre a hozzászólásra]
5. Büki Tamás @ 2008. április 12., 19:02 (Permalink)
Biztos, hogy a server hibája, mert a végén mikor belépek a /tmp mappába és beírom echo ’get pxelinux.0′ | atftp IP CÍMEM, akkor nem történeik semmi csak egy sorral lejjebb villog a kurzor, és úgy marad… Nem tudom mi lehet a gondja…
[Válasz erre a hozzászólásra]
6. Büki Tamás @ 2008. április 12., 19:13 (Permalink)
Megnéztem. most a serveren jónak tűnik minden, ami itt al eírásban van, hogy hogyan lehet leellenőrizni a beállításokat, úgy a serveren megy elvileg minden….
Amit a kliens gép ír ki: DHCP… No DHCP or proxyDHCP
[Válasz erre a hozzászólásra]
7. Ginko @ 2008. április 14., 19:35 (Permalink)
Ezt állítsd be a dnsmasq-nál.
dhcp-range=192.168.0.2,192.168.0.6,24h (ezzel szabályozhatjuk az ip kiosztás tartományát)
[Válasz erre a hozzászólásra]
Szólj hozzá