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://archive.ubuntu.com/ubuntu/dists/jaunty/main/installer-i386/current/images/netboot/netboot.tar.gz

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
echo 'get pxelinux.0' | atftp SERVER_IP

(jelen esetben 192.168.0.1)

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

17 thoughts on “Ubuntu telepítése hálózatról

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

  2. 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)

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

  4. Á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?

  5. 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…

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

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

  8. Nagyon szép de ha null rendszer van a gépen és se floppy se semmi akkor hogyan telepítesz vagy hogyan hozod létre a mappát és a fájlt? gondolom nem a serveren.
    Komolyan érdekel hogy lehet meg oldani. Vagy van 1 floppyd van de rendszer nincs. mert volt ilyen esetem de nem tudtuk életre kelteni a laptopot. kellet szerválnunk egy Optikai meghajtót.Na persze laptopot szerelni meg nem olyan könnyű mutatvány:-)
    Köszi.

  9. Sziasztok!
    Az dnsmasq ellenőrzésnél probléma lépett fel nálam. Mikor beírom a
    „sudo netstat -nulp | grep ’67.*dnsmasq’ # should display udp 0 0 0.0.0.0:67 0.0.0.0:* /dnsmasq”
    parancsot, akkor ezt dobja nekem vissza:
    „udp 0 0 0.0.0.0:67 0.0.0.0:* 2298/dnsmasq (67-től végig pirossal írja ki)
    mi lehet a probléma?
    (ezáltal – gondolom – a tftp nem tudja megnyitni a pxelinux.0-át)

  10. NA Sziasztok! Én is ilyen problémába ütköztem: a problémám a következő.
    adott egy cd olvasó nélküli mini pc, aminek van hangkártyája ilyen olyan dugasza, meg van hálózati dugasza. most azon a gépen winfos fut, egyenlőre. Mikor bekapcsolom azt a p3mas gépet,”760mhz”:D előjön a logó, majd ki írja hogy boot lehetőségek, persze angolul, meg a biosba való belépés. a boot lehetőségeknél nekem van ott egy olyan hogy networking boot vagy valami ehhez hasonló. Akkor ez a gép alkalmas a hálózati bootolásra nem?
    ubuntu szervert szeretnék rá telepíteni, hálózaton keresztül,
    ezzel a megoldással, ez megoldható lenne?

  11. Szia! Fel szeretném venni veled a kapcsolatot! mert sehogysem sikerül a hálózati telepítés, Nem tudom hogy hol rontom el. ha gondolod adok távoli hozzáférést, hogy megnézhesd! 🙂

  12. na megint én vagyok, félig már sikerült, de, hiba üzenettel abba hagyja és újra indul a gép. ötlet? 😀 megpróbálom le fotózni a képet. de, csak lesz valami :)))

  13. A saját tapasztalataimmal kiegészíteném a fentieket, hátha ezzel segítek valakinek:
    A fenti atftpd konfigot használva az alábbi hibát kaptam teszteléskor:
    error received from server
    Ezt a hibát azért kaptam, mert nem találta az adott helyen a pxelinux.0 fájlt. De hiszen ez jó helyen van, valamiért tehát mégsem a /tftpboot könyvtárban keresi. Átmásoltam a /tftpboot könyvtár tartalmát az eredeti konfig fájlban megadott /srv/tftp könyvtárba, és ezzel megszűnt a hiba.
    Valamint még érdemes azt is leírni, hogy ha már elindult a telepítő, a hálózati konfig rész előtt érdemes visszadugni a hálókábelt, hogy hálón legyen, mert ha gép-gép között marad, akkor nem fogja tudni letölteni a tükörről az adatokat.

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Ez az oldal az Akismet szolgáltatást használja a spam csökkentésére. Ismerje meg a hozzászólás adatainak feldolgozását .