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
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!
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)
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.
Á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?
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…
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
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)
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.
ez nem jó => wget http://href.hu/x/4y7h
The requested URL /ubuntu/dists/gutsy/main/installer-i386/current/images/netboot/netboot.tar.gz was not found on this server.
köszi, javítva.
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)
Nem gondolom, ki is írja nekem, hogy nem tudja megnyitni…
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?
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! 🙂
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 :)))
na ígérem ez az utolsó hozzászólásom a válaszig.
itt a kép, ameddig sikerült eljutnom
http://marcika.weboldala.net/segitseg.jpg
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.