Felhasználói eszközök

Eszközök a webhelyen


oktatas:linux:hogyanok:netboot

< Hogyanok

Netboot

Bevezetés

Mi az a netboot? Olyan operációs rendszer, amely a hálózaton keresztül töltődik be, a helyi merevlemezen vagy egyéb tárolón nem is létezik.

A netboot kialakításához szüksége van egy TFTP és egy DHCP szerverre. A kettő lehet külön gépen is. Opcionális egy NFS szerver használata, ha távoli adattárolót szeretnénk használni.

Szükségünk van egy syslinux nevű csomagra, amelyben rendelkezésre áll néhány szükséges eszköz.

A hálózatról való rendszerindítást a számítógép BIOS rendszerének is támogatni kell. Ma már minden BIOS támogatja. Régebbi alaplapoknál előfordulhat ennek hiánya.

Egyik felhasználási terület lehet, ha a hálózatról induló rendszerről particionáljuk a számítógép tárolóit. Linuxon például a partimage program áll rendelkezésre, amelyet a lentebb említett RIPLinux alapból tartalmaz.

Telepítés

TFTP szerver telepítése

# apt install tftpd-hpa

Ellenőrizzük fut-e a démon:

# ps ax

Nézzük meg a megfelelő socketen figyel-e a démon:

# ss -apu | grep tftp

Lehetséges kimenet:

UNCONN  0  0  *:tftp  *:*
users:(("in.tftpd",pid=811,fd=4))

Telepítés után a /etc/default/tftpd-hpa fájlban szabályozhatók a beállítások.

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

Például hol legyenek a bootolandó rendszerek:

TFTP_DIRECTORY="/srv/tftp"

A Debian9 létrehozza a /srv/tftp könyvtárat, ha még sem létezne, hozzuk létre:

mkdir /srv/tftp

DHCP szerver telepítése

# apt install isc-dhcp-server 

Szerkesszük a DHCP szerver beállításait:

# mcedit /etc/dhcp/dhcpd.conf

Vegyük fel a hálózatunknak megfelelően, például a következőket:

subnet 192.168.1.0 netmask 255.255.255.0 {
     range 192.168.1.100 192.168.1.200;
     filename "pxelinux.0";
     next-server 192.168.1.1;
     option subnet-mask 255.255.255.0;
     option broadcast-address 192.168.1.255;
     option routers 192.168.1.1;
}

A fenti konfiguráció részletben két új sor van, ami előtt valószínűleg nem szerepelt:

filename "pxelinux.0";
next-server 192.168.1.1;

A „filename” egy a /srv/tftp könyvtárban rendszerindításhoz szükséges fájl neve. Ezt a fájlt majd később a helyére másoljuk.

A második sor a szerverünk IP címe.

# systemctl start isc-dhcp-server

A SYSLINUX telepítése

apt install syslinux pxelinux

Telepítés után kapunk néhány hasznos állományt. Ezeket másoljuk a tftp könyvtárunkba:

cp /usr/lib/PXELINUX/pxelinux.0 /srv/tftp/

Hogy vesamenüt kapjunk szükség van a következőre is:

cp /usr/lib/syslinux/modules/bios/vesamenu.c32 /srv/tftp/
cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /srv/tftp/

Beállítások

Telepítés után létre kell hoznunk egy /srv/tftp könyvtárban egy pxelinux.cfg könyvtárat. A TFTP szerver ezen könyvtár állományait beállítófájloknak tekinti. Hozzunk létre egy „default” nevű állományt, amelyben elhelyezzük az alapértelmezett beállításainkat.

mkdir /srv/tftp/pxelinux.cfg
nano /etc/tftp/pxelinux.cfg/default

Az állomány tartalma lentebb.

Parancssoros vezérlés

default
PROMPT 1
DISPLAY menu.txt
TIMEOUT 300
 
LABEL debinstall
    kernel debian/squeeze/i386/linux
    append vga=normal initrd=debian/squeeze/i386/initrd.gz --
 
LABEL deb
    kernel deb/vmlinuz
    append vga=normal initrd=deb/initrd.img

A „kernel” kulcsszóval kezdődő sorok után kell megadnunk a melyik kernelt szeretnénk indítani. A példában a kernel útvonalát relatívan adtuk meg, az /srv/tftp/ könyvtárhoz képest. Az „append” kulcsszó után írjuk a kernel paramétereit. Az initrd.img állomány útvonalát szintén relatívan adtuk meg. A „DISPLAY” kezdetű sor mutatja melyik állomány tartalmazza a megjelenítendő sorokat.

Ami meg fog jelenni az a menu.txt fájlban van:

menu.txt
debinstall
deb

A menu.txt fájlban lévő soroknak persze meg kell felelniük a default nevű állományban az egyes LABEL után írt címkékkel.

Ekkor a boot folyamat során megjelenik a menu.txt tartalma, a várakozási jelhez beírjuk a debinstall vagy a deb szót attól függően melyik rendszert szeretnénk indítani.

Indítható rendszerek beszerzése

Az /srv/tftp könyvtáron belül létre kell hozni a deb és a debian könyvtárat, amit fentebb megadtunk a menüben.

mkdir /srv/tftp/deb
mkdir /srv/tftp/debian

A deb könyvtárba másoljuk be az indítható Debian vmlinuz és initrd.img állományát. Ezt például egy Debian 9 esetén a boot menüben található. Igaz ezeket át kell nevezni, mert a nevükben van verzió szám is. Így kapunk egy Debian 9 kernel, ami elindul.

A telepítőhöz, amit a „debian” könyvtárba teszünk, szükség van a Debian netboot csomagra:

apt install debian-installer-9-netboot-amd64

Telepíthető a debian-installer-9-netboot-i386 csomag is:

apt install debian-installer-9-netboot-i386

Ezek után másoljuk a helyére a telepítő két állommányát:

mdkir -p /srv/tftp/debian/stretch/amd64
cd /usr/lib/debian-installer/images/9/amd64/text/debian-installer/amd64/
cp initrd.gz /srv/tfpt/debian/amd64/initrd.gz
cp linux /srv/tfpt/debian/amd64/linux

A menüvezérelt felülethez ki kell kapcsolnunk a várakozási jelet:

PROMPT 0

Szükségünk lesz még két állományra:

cp /usr/lib/syslinux/modules/bios/menu.c32 /srv/tftp/
cp /usr/lib/syslinux/modules/bios/libutil.c32 /srv/tftp/

Ezt meg kell adni a „DEFAULT” kulcsszó után:

DEFAULT menu.c32

Ki kell alakítanunk menüt:

MENU TITLE Udv a rendszerben
MENU AUTOBOOT Automatikus indulas # masodperc mulva...
MENU ROWS 2
MENU TIMEOUTROW 20

Az egyes menüpontok, csak ez után jönnek:

LABEL debinstall
  MENU LABEL Telepites
  KERNEL debian/squeeze/i386/linux
  APPEND vga=normal initrd=debian/squeeze/i386/initrd.gz --

LABEL deb
  MENU LABEL Rendszer
  KERNEL deb/vmlinuz
  APPEND vga=normal initrd=deb/initrd.img

Mindez, természetesen a „/srv/tfpt/pxelinux.cfg/default állományba kerül.

A beállítások komplett listája:

/srv/tfpt/pxelinux.cfg/default
PROMPT 0
DEFAULT menu.c32
 
MENU TITLE Udv a rendszerben
MENU AUTOBOOT Automatikus indulas # masodperc mulva...
MENU ROWS 2
MENU TIMEOUTROW 20
 
LABEL debinstall
  MENU LABEL Telepites
  KERNEL debian/squeeze/i386/linux
  APPEND vga=normal initrd=debian/squeeze/i386/initrd.gz --
 
LABEL deb
  MENU LABEL Rendszer
  KERNEL deb/vmlinuz
  APPEND vga=normal initrd=deb/initrd.img

A grafikus felületű menüvezérlés csak annyiban különbözik az előző menüvezérléstől, hogy a menu.c32 állomány helyett a vesamenu.c32 szükséges. Ehhez kell még egy állomány, a libcom32.c32:

cp /usr/lib/syslinux/modules/bios/vesamenu.c32 /srv/tftp/
cp /usr/lib/syslinux/modules/bios/libcom32.c32 /srv/tftp/

Ekkor a „DEFAULT” kulcsszó után:

DEFAULT vesamenu.c32

Lássunk egy komplett „default” nevű állományt:

default
PROMPT 0 
TIMEOUT 300
DEFAULT vesamenu.c32
 
MENU TITLE Udv a teszt rendszerben 
MENU AUTOBOOT Automatikus indulas # masodperc mulva...
MENU ROWS 12
MENU TIMEOUTROW 20
 
LABEL	debinstall
MENU LABEL Telepito
MENU PASSWD titok
KERNEL debian/squeeze/i386/linux
APPEND vga=normal initrd=debian/squeeze/i386/initrd.gz --
 
LABEL	deb
MENU LABEL Rendszer
	kernel deb/vmlinuz-2.6.32-5-686
	append rw root=/srv/tftp/deb nfsroot=/srv/tftp/deb/ vga=normal initrd=deb/initrd.img-2.6.32-5-686 --

Jelszó

Egy-egy címkézett rész jelszóval védhető:

LABEL	debinstall
  MENU LABEL Telepito
  MENU PASSWD titok
  KERNEL debian/squeeze/i386/linux
  APPEND vga=normal initrd=debian/squeeze/i386/initrd.gz --

Egyéb beállítási lehetőségek

MENU WIDTH 80
MENU MARGIN 10
MENU PASSWORDMARGIN 3
MENU TABMSGROW 18
MENU CMDLINEROW 18
MENU ENDROW 24
MENU PASSWORDROW 11

De nézzük meg a következő linket is:

Indítható Linuxos rendszer

Olyan kernel és initrd.gz fájl, amely telepítésre használható általában közé tesznek a Linux terjesztők. Ilyen letölthető például itt:

Komplett linuxos rendszer kevesebb van, de legyen egy itt:

A harmadik lehetőség, hogy magunk készítünk egy indítható rendszert. Ennek leírása egyszer…

Core Linux netboot

Ebben a részben egy Core Linux netboot beállításait vesszük végig.

Core Linux beszerzése

Elsőként be kell szereznünk egy Core Linuxot képfájlt. Ehhez a következő oldalt használhatjuk:

A Core Linuxból háromféle változat szerezhető be:

Core
(11 MB)
Ez egy szimpla parancssoros változat
TinyCore
(16 MB)
Wifi kapcsolattal és GUI felülettel rendelkező változat
CorePlus
(106 MB)
Telepítő képfájl, de nem terjesztés

A letöltésre kattintva a következő oldalra jutunk:

Itt csak 32 bites képfájlok vannak, de ha két könyvtárral feljebb kattintunk 64 bites képfájlokat is találunk:

Töltsük le a választott .iso kiterjesztésű állományunkat. Például:

wget http://distro.ibiblio.org/tinycorelinux/8.x/x86/release/TinyCore-current.iso

A képfájlnak egy tetszőleges helyet választhatunk. Esetleg létrehozhatunk egy /iso nevű könyvtárat és odamásolhatjuk.

Az .iso fájl csatolása

Ezek után fel kell csatolnunk a letöltött képfájlt. Ehhez hozzunk létre a az /srv/tfpt könyvtárban egy újabb könyvtárat például tinycore néven:

mkdir /srv/tfpt/tinycore

Ide fel is csatolhatjuk:

mount -o loop /iso/TinyCore-current.iso /srv/tftp/tinycore

A csatolás után ellenőrizzük a tartalmát:

/srv/tfpt/tinycore

A PXE boot menü konfigurálása

Ezek után csak fel kell vennünk a PXE boot menübe.

Szerkesszük a default állományt:

nano /srv/tftp/pxelinux.cfg/default

Vegyük fel a következő sort:

LABEL tinycore
MENU LABEL Tiny Core 8.2
kernel tinycore/boot/vmlinuz
append initrd=tinycore/boot/core.gz

Helyi rendszer indítása

Az /srv/tftp/pxelinux.cfg/default állományba a következő menüt hozzuk létre:

LABEL hdd
MENU LABEL Rendszerinditas a helyi merevlemezrol
LOCALBOOT 0

Források és egyéb linkek

Leírások:

Menükészítés

initrd készítés:

Kész bootolható Linux:

Bootolható Debian telepítő:

Kapcsolódó linkek:

Bootolható Windows:

Fórum:

oktatas/linux/hogyanok/netboot.txt · Utolsó módosítás: 2019/08/21 14:23 szerkesztette: admin