Rendszerindítás a hálózatról a GRUB segítségével

Terméktámogatási adatbázis (fhassel_grub_net)
Következőkre vonatkozik

SuSE Linux: Verziók a következő dátum óta: 8.1

Szituáció

Szeretnénk a GRUB rendszertöltőt használni a rendszerindításhoz szükséges fájlok betöltésére a hálózatról.

Eljárás

A következő leírást gyakorlott felhasználóknak ajánljuk. Ismernünk kell az rpm és tar parancsok használatát, a forráskód lefordításának menetét és a hálózati eszközök beállítását, valamint természetesen a GRUB rendszertöltőt (lásd "" (http://sdb.suse.de/hu/sdb/html/fhassel_grub_overview.html)).

A következő példában a Linux telepítő vagy hibaelhárító rendszerét töltjük be a hálózatról. Ehhez egy GRUB rendszerlemezt fogunk használni a kliens indításához. A Linux indulásához szükséges fájlok (rendszermag, initrd) a GRUB által letöltésre kerülnek a tftp protokollon keresztül a hálózatról. Az összes többi fájl a szerverről ftp vagy nfs formájában érhető el.

Nem szükséges mondani, hogy lehetséges a Linux operációs rendszer használata lemez nélküli klienssel is. Ez a beállítás túllépi e cikk kereteit.

1. lépés: A GRUB csomag újrafordítása

Mivel a GRUB alapértelmezésben úgy lett lefordítva, hogy nem tartalmazza a hálózati kártya támogatását, először újra kell fordítanunk. Ehhez telepítsük a GRUB forráskódját tartalmazó csomagot a CD vagy DVD /suse/src könyvtárából CD, az alábbi rpm paranccsal:

rpm -Uhv /media/cdrom/suse/src/grub-0.92-69.src.rpm
Ezután találunk egy tar fájl a /usr/src/packages/SOURCES/ könyvtárban. A netboot/README.netboot fájl ebben a csomagban minden egyes hálózati kártyához tartalmazza a fordításhoz szükséges paramétereket. Csomagoljuk ki ezt a fájlt a /tmp könyvtárba a következő parancshoz hasonlóan (a GRUB csoamgverzió számára figyeljünk):
tar -xOjf /usr/src/packages/SOURCES/grub-0.92.tar.bz2 grub-*/netboot/README.netboot >/tmp/README.netboot
Például egy Intel Ethernet Pro 100 kártyához a "--enable-eepro100" paraméter szükséges. Lehetőleg csak a feltétlenül szükséges meghajtókat fordítsuk le, mivel a túl sok lefordított hálózati kártya meghajtó a GRUB hibás működéséhez vezethet.

Szerkesszük a /usr/src/packages/SPECS/grub.spec fájlt egy ASCII szerkesztővel és adjuk meg a paramétert a hálózati kártya támogatásához. Például:

%build
%ifarch x86_64
  export CC='cc -m32'
  CFLAGS="$CFLAGS $RPM_OPT_FLAGS -DNDEBUG -W -Wall -Wpointer-arith -fno-asynchronous-unwind-tables"  ./configure \
  --prefix=/usr --infodir=%{_infodir} --mandir=%{_mandir} --datadir=/usr/lib/grub \
  --disable-auto-linux-mem-opt --enable-diskless --enable-eepro100
%else
  CFLAGS="$CFLAGS $RPM_OPT_FLAGS -DNDEBUG -W -Wall -Wpointer-arith" ./configure \
  --prefix=/usr --infodir=%{_infodir} --mandir=%{_mandir} --datadir=/usr/lib/grub \
  --disable-auto-linux-mem-opt --enable-diskless --enable-eepro100
%endif
make
Növeljük a kiadási számot a spec fájl elején, pl:
Release:      70
Ezután mentsük a spec fájlt és fordítsuk újra:
rpm -bb /usr/src/packages/SPECS/grub.spec
és telepítsük a csomagot :
rpm -Uhv /usr/src/packages/RPMS/i386/grub-0.92-70.i386.rpm
Most készítsünk egy GRUB rendszertöltő lemezt a következőképpen:
cd /usr/lib/grub/
dd if=stage1 of=/dev/fd0
dd if=stage2 of=/dev/fd0 seek=1
A parancsok kiadásával a GRUB első és második szintje egyenesen a hajlékonylemezen található blokkokba lesz írva.

2. lépés: Hálózati szolgáltatások beállítása

A GRUB a tftp protokollon keresztül támogatja fájlok letöltését a hálózatról. Ehhez telepítsük az atftp csomagot a Linux szerverre. Hozzuk létre a /tftpboot könyvtárat ahol a tftp szerver megtalálja a fájlokat, és másoljuk át ide a rendszermagot (boot/loader/linux fájl) és az initrd fájlt (boot/loader/initrd) az első telepítő CD-ről vagy DVD-ről. A tftp szerver használatához szerkesszük az /etc/inetd.conf fájlt a következő sor beszúrásával:
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/atftpd /tftpboot
A hibaelhárító rendszer telepíthető vagy betölthető ftp vagy nfs protokollon keresztül. A következő sorok ismertetik egy ftp szerver beállítását. Telepítsük a vsftpd és ftpdir csomagokat. Az ftp szerver beállításához szerkesszük az /etc/inetd.conf fájlt: Távolítsuk el a megjegyzés jelet az alábbi sor elől:
ftp stream tcp nowait root /usr/sbin/tcpd vsftpd
Indítsuk el az inetd szolgáltatást:
rcinetd start
Használhatjuk az insserv inetd parancsot vagy a futási szint szerkesztőt az inetd automatikus indításának beállításához a rendszertöltési folyamat során. További információkat a szerver szolgáltatások beállításával kapcsolatban a rendszerkézikönyvben olvashatunk.

A SuSE telepítési fájlok megosztásához másoljuk a CD vagy DVD tartalmát a /srv/ftp/pub könyvtárba vagy egy alkönyvtárba. Alternatívaként akár a DVD-t vagy az első CD-t is csatolhatjuk ehhez a könyvtárhoz. (/srv/ftp/pub):

mount -t iso9660 -o ro /dev/cdrom /srv/ftp/pub/

3. lépés: A GRUB rendszertöltő lemez tesztelése a kliensen

Indítsuk el a klienst a GRUB rendszerindító lemezről. Egy rövid beviteli mező jelenik meg:
grub >
Adjuk meg a GRUB-nak a kliens IP címét és a hálózati maszkot, valamint a szerver címét:
grub > ifconfig --address=192.168.0.2 --mask=255.255.255.0 --server=192.168.0.1
Figyeljünk arra, hogy mindent helyesen adtunk meg!
Ha DHCP, BOOTP, vagy RARP szolgáltatás fut a szerveren, automatikusan megkaphatjuk a gép IP címét, például a következő paranccsal DHCP esetén:
grub > dhcp
A következő lépésben adjuk meg a GRUB számára, hogy a rendszertöltő fájlokat a hálózatról töltse le. Az nd a hálózati meghajtót jelöli ("network drive"):
grub > root (nd)
Most a rendszermag betölthető. A telepítési forrás megadható a linuxrc-nek egy további paraméteren keresztül:
grub > kernel /linux install=ftp://192.168.0.1/pub/
A linux rendszermag betöltődik a tftp szerver gyökérkönyvtárából és a telepítő fájlok letöltésre kerülnek az ftp /pub könyvtárából a szerverről (IP címe: 192.168.0.1).

Ha egy SuSE hibaelhárító rendszert akarunk betölteni a telepítő helyett, fűzzük a rescue=1 paramétert a sorhoz. Ha a fájlokat nfs-en keresztül akarjuk letölteni, a paramétert install=nfs://szerver/könyvtár/ formában adjuk meg. Tipp a telepítés elindításához: egyes hálózati kártyák esetében külön kell betöltenünk a hálózati kártya meghajtóprogramját a linuxrc indításához. Ebben az esetben adjuk meg az insmod=modul_név paramétert a modul_név helyére a megfelelő rendszermag modul nevét írva. Például egy Intel EtherExpress PRO/100 kártyánál:

grub > kernel /linux insmod=e100 install=ftp://192.168.0.1/pub/
Ha a linuxrc csomag telepítésre került, további paramétereket a telepítéssel kapcsolatban az usr/share/doc/packages/linuxrc/linuxrc.html fájlban találhatunk.

Az initrd a rendszermag után töltődik be:

grub > initrd /initrd
Végezetül a rendszert az alábbi paranccsal indíthatjuk:
grub > boot
Ha mindent megfelelően beállítottunk, a telepítő vagy a hibaelhárító rendszer elindul.

4. lépés: A kliens rendszerindító folyamatának egyszerűsítése menü létrehozásán keresztül

Hogy ne kelljen minden egyes parancsot külön megadnunk, egy menüt kell létrehoznunk, amelyet a későbbiekben a hálózatról le fogunk tölteni. Ehhez másoljuk a /boot/message és /boot/grub/menu.lst fájlokat a /tftpboot könyvtárba a szerveren, ahonnét a GRUB majd letölti a tftp protokollon keresztül. Igazítsuk a /tftpboot/menu.lst fájlt rendszerünkhöz az alábbi példa alapján:
gfxmenu (nd)/message
color white/blue black/light-gray
default 1
timeout 8

title SuSE Linux telepítés
   kernel (nd)/linux insmod=e100 install=ftp://192.168.0.1/pub/
   initrd (nd)/initrd
title SuSE Linux hibelhárító rendszer
   kernel (nd)/linux insmod=e100 install=ftp://192.168.0.1/pub/ rescue=1
   initrd (nd)/initrd
title Indítás merevlemezről
   root (hd0)
   chainloader +1
Indítsuk el a klienst a GRUB rendszerlemezről és állítsuk be a hálózatot a megfelelő ifconfig paranccsal:
grub > ifconfig --address=192.168.0.2 --mask=255.255.255.0 --server=192.168.0.1
vagy így:
grub > dhcp
A menü betöltéséhez adjuk ki az alábbiakat:
grub > configfile (nd)/menu.lst
Most már a hagyományos SuSE rendszerindító menüt láthatjuk, ahol kiválaszthatjuk a kívánt menüpontot.

5. lépés: A rendszertöltő folyamat további egyszerűsítése

Ezt a folyamatot még jobban leegyszerűsíthetjük, ha a menüt a hajlékonylemezen tároljuk, ezáltal a menü automatikusan betöltésre kerül és nem kell a felhasználónak semmit begépelnie. A rendszerindító lemez elkészítése egy kicsit összetettebb. Elöször is egy fájlrendszert kell létrehoznunk a hajlékonylemezen:
earth:~ # mke2fs -m 0 /dev/fd0
A hajlékonylemezt csatolnunk kell ahhoz, hogy a rendszerindításhoz szükséges fájlokat átmásolhassuk rá:
earth:~ # mount /media/floppy/
earth:~ # cp /usr/lib/grub/stage1 /usr/lib/grub/stage2 /media/floppy/
Másoljuk át az előzőleg létrehozott /tftboot/menu.lst fájlt a hajlékonylemezre. Az újonnan létrehozott /media/floppy/menu.lst fájlt igazítsuk rendszerünkhöz a hálózati beállítások beszúrásával a fájl elejére (a már ismert dhcp vagy ifconfig parancsot):
dhcp
gfxmenu (nd)/message
color white/blue black/light-gray
default 1
timeout 8

title SuSE Linux telepítése
   kernel (nd)/linux insmod=e100 install=ftp://192.168.0.1/pub/
   initrd (nd)/initrd
title SuSE Linux hibaelhárító rendszer
   kernel (nd)/linux insmod=e100 install=ftp://192.168.0.1/pub/ rescue=1
   initrd (nd)/initrd
title Rendszerindítás merevlemezről
   root (hd0)
   chainloader +1
A rendszerlemez indíthatóvá tételéhez adjuk ki a grub parancsot:
earth:~ # grub
Most már a grub parancsértelmezőben vagyunk. A következő parancs kiadásával a stage1 fájl, amely a hajlékonylemezen van, beíródik a lemez rendszerindító szektorába. A stage2 és a menu.lst beállítási fájlok helyét, amelyek szintén a hajlékonylemezen találhatók, paraméterek formájában adtuk meg:
grub > install (fd0)/stage1 (fd0) (fd0)/stage2 p (fd0)/menu.lst
Lépjünk ki a grub rendszertöltőből:
grub > quit
Ezután csatoljuk le a hajlékonylemezt:
earth:~ # umount /media/floppy
Ha minden működött, beállítások teljességgel betöltésre kerültek a hajlékonylemezről a rendszerindítás során.

További információkért a GRUB rendszertöltővel kapcsolatban, olvassuk el az alábbi weboldalakat: http://www.gnu.org/manual/grub/html_mono/grub.html. Ugyanezen információkat olvashatjuk a telepített rendszeren az info grub parancs konzolban történő kiadásával. Ha a rendszermag források telepítve lettek, (a kernel-source csomag), olvassuk el a /usr/src/linux/Documentation/nfsroot.txt fájl tartalmát további információkért a lemeznélküli Linux indítással kapcsolatban.

Megjegyzés: vegyük figyelembe, hogy a téma túllépi a telepítési terméktámogatás kereteit.


Kulcsszavak: GRUB, NETWORK, BOOT, TFTP, RENDSZERINDíTáS, HáLóZAT

Kategóriák:

Visszajelzés: Send Mail to comp@suselinux.hu (Adja meg a levél tárgyát:: SDB-fhassel_grub_net)
SDB-fhassel_grub_net, Copyright SuSE Linux AG, Nürnberg, Germany - Verzió: 03. Mar 2003
SuSE Linux AG - Utoljára frissítve: 26. Apr 2003 feladó: comp (sdb_gen 1.40.0)