Következő Előző Tartalom

2. Háttérinformáció és szabványos telepítés

Amikor a Lilo betölti a rendszert, BIOS hívásokat használ a Linux rendszermag betöltéséhez a merevlemezről (IDE lemez, hajlékonylemez vagy bármi más). Emiatt a rendszermagnak olyan helyen kell elhelyezkednie, melyhez a BIOS hozzá tud férni.

A betöltés során a Lilo nem képes a fájlrendszer adatainak olvasására, az /etc/lilo.conf fájlban beállított bármilyen útvonal a telepítés során kerül feloldásra (mikor kiadjuk az /sbin/lilo parancsot). A program a telepítés során építi fel azokat a táblázatokat, melyek felsorolják, hogy mely szektorokat használják az operációs rendszer betöltéséhez szükséges fájlok. Ennek következményeként, ezen fájlok mindegyikének olyan lemezrészen kell elhelyezkednie, melyhez a BIOS is hozzáfér (a fájlok általában a /boot könyvtárban helyezkednek el, ez azt jelenti, hogy a Linux rendszernek csak a root lemezrészét kell elérnie a BIOS-on keresztül).

A Bios-alapúságnak a másik következménye, hogy a betöltőt újra kell telepíteni (azaz ki kell adni újra az /sbin/lilo parancsot) a Lilo setup bármilyen módosításakor. Ha újrafordítod a rendszermagot és felülírod a régi lemezképet újra kell telepíteni a Lilo-t.

2.1 Hova kell a Lilo-t telepítenem?

Az /etc/lilo.conf -ban található boot= utasítás jelzi a Lilo-nak hova kell tennie az elsődleges betöltőt. Ez általában a a master boot record (/dev/hda), Linux telepítésednek a root partíciója (általában /dev/hda1, vagy /dev/hda2).

Ha merevlemezen egy másik operációs rendszer is telepítve van, jobban teszed ha a Lilo-t a root partícióra telepíted az MBR helyett. Ebben az esetben a parítciót "bootolhatóként" kell megjelölni az fdisk "a" parancsával vagy az fdisk "b" parancsával. Ha nem írod felül a master boot szektort, szükség esetén könnyebb lesz a Linux vagy a Lilo eltávolítása.

Természetesen van lehetőség a fentihez hasonló "szabályok" megkerülésére. Nos, a Lilo-t akkor is telepítheted az MBR-be, ha oda már telepítettél egy másik operációs rendszert. Például, ha gépedre először egy Windows NT 4.0-t telepítettél az NT betöltője került az MBR-be, így probléma nélkül indíthatod az NT-t. Miután telepítetted a Linuxot és azt választottad, hogy a Lilo az MBR -be kerüljön, a Lilo átírta az NT betöltőjét. Mikor következő alkalommal indítod a gépedet, nem tudod betölteni az NT-t. Ez azonban nem gond. Szerkeszteni kell az /etc/lilo.conf fájlt és az NT-nek új bejegyzést kell készíteni. Következő újraindításkor, a Lilo menüben ott lesz az új NT bejegyzés. Ugyanez történik, ha a Windows NT helyett Windows 2000-t telepítesz.

2.2 IDE merevlemez beállítása

Személy szerint én nem használom sem az LBA sem a LARGE beállításokat a BIOS-ban (bár én kizárólag Linuxot futtatok); ezek a PC-s világ tervezésbeli hiányosságaiból adódó szörnyű tákolmányok. Ennek következményeként a rendszermagnak az első 1024 cilinderben kell elhelyezkednie. Ez mindaddig nem gond, amíg a merevlemez particionálásakor a root partíció kis méretű (amit ettől függetlenül is így kell csinálni).

Ha merevlemezen már van egy másik operációs rendszer nem módosíthatod a BIOS beállításokat, különben a régi rendszered nem fog többé működni. Az összes újabb Lilo terjesztés képes kezelni az LBA és LARGE lemezbeállításokat.

Ne feledd, hogy az /etc/lilo.conf fájlban található "linear" kulcsszó segíthet a geometriai problémák megoldásában. Ez a kulcsszó arra utasítja a Lilo-t, hogy lineáris szektorcímzést használjon a szektor/fej/cilinder hármas helyett. A 3D címzésre való átalakítás a futási időre lesz halasztva, ezáltal téve a beállításokat sokkal inkább immunissá a geometriából adódó problémák irányába.

Ha több mint egy merevlemezed van, és néhányukat csak a Linux használja, valamint ha nincsenek benne a betöltési folyamatban, azt beállíthatod a BIOS számára, hogy nincsenek is telepítve. Rendszered sokkal gyorsabban fog betöltődni a Linux pedig pillanatok alatt automatikusan felismeri a meghajtókat. Én gyakran cserélgetem a meghajtókat a számítógépemben, de soha nem bántom a BIOS beállításait.

2.3 Hogyan avatkozhatok be a betöltési folyamat közben?

A Lilo készenléti jelénél a <Tab> billentyű lenyomása megmutatja a választási lehetőségeket. Ha a Lilo-t nem interaktív módba állították be tartsd lenyomva az <Alt> vagy <Shift> billentyűket mielőtt megjelenik a "LILO" üzenet.

Ha Linux rendszermagot töltesz be, a kiválasztott rendszer neve után parancssori kapcsolót is megadhatsz. A rendszermag nagyon sok parancssori kapcsolót fogad el. Az összes parancssori kapcsoló Paul Gortmaker által írt "BootPrompt-HOWTO"-ban található meg. Ezeket nem kívánom itt megismételni. Néhány parancssori kapcsoló azonban különösen fontos, és érdemes őket itt megemlíteni:

2.4 A Lilo eltávolítása

Mikor a Lilo felülírja a betöltő szektort, lement egy biztonsági másolatot a /boot/boot.xxyy alá, ahol az xxyy az eszköz felső és alsó számai hexadecimálisan kifejezve. A merevlemez, vagy lemezrész felső és alsó számait a "ls -l /dev//device" parancs futtatásával veheted szemügyre. Például a /dev/hda első szektora (felső 3, alsó 0) a /boot/boot.0300 könyvtárba lesz lementve, ha a Lilo-t a /dev/fd0 eszközre telepítjük az egy /boot/boot.0200 könyvtárat fog létrehozni, ha pedig /dev/sdb3 (felső 8, alsó 19) akkor /boot/boot.0813-ba lesz lementve. Figyeld meg, hogy a Lilo nem fog még egy fájlt létrehozni, ha már létezik egy, így nem kell törődnöd a a biztonsági másolattal, ha újratelepíted a Lilo-t (például a rendszermagod újrafordítása után). A /boot/ alatt található biztonsági másolatok mindig pillanatfelvételei annak a helyzetnek, mielőtt bármilyen Lilo-t telepítettél volna.

Ha valaha is el kell távolítanod a Lilo-t (például, abban a szerencsétlen esetben, hogy eltávolítsd a Linuxot), egyszerűen csak vissza kell állítanod az eredeti betöltő szektort. Ha a Lilo a /dev/hda-ra települt, egyszerűen írd be a "dd if=/boot/boot.0300 of=/dev/hda bs=446 count=1" parancsot (Személy szerint én a "cat /boot/boot.0300 > /dev/hda" parancsot használom, de ez nem biztonságos, mivel ez helyre fogja állítani az eredeti partíciós táblát is, melyet közben módosíthattál is). Ezt a parancsot sokkal egyszerűbb futtatni, mint megpróbálkozni DOS parancssorból a "fdisk /mbr" paranccsal, ez lehetővé teszi, hogy tisztán eltávolítsd a lemezről a Linuxot, még akkor is, ha eddig csak mindig Linuxot töltöttél is be. A Lilo eltávolítása után ne feledd el futtani a Linux "fdisk" parancsát a Linux lemezrészek eltávolítsa céljából (A DOS "fdisk" nem képes nem-DOS lemezrészek eltávolítására).

Ha a Lilo-t a root partícióra telepítetted(pl.: /dev/hda2), semmi különöset nem kell tenned a Lilo eltávolításához. Egyszerűen csak futtasd a Linux "fdisk" parancsát a Linux lemezrészek partíciós táblából való eltüntetéséhez. Ne feledd el megjelölni a DOS lemezrészt betölthetőként.

2.5 Ram lemez készítése

Figyelem: Ha ezt a bekezdést nehéznek találod, nézz körül a How to make a ram disk honlapon, itt megtalálhatod ennek a kiegészítésnek az "eredetijét"...

Írta: Tony Harris

2000. október 16.

ram lemez ici-pici HOGYAN

Ha a root partíció olyan eszközön van, melynek nincs a rendszermagba befordított eszközmeghajtója a lilo -t kell használnod ennek az eszközmeghajtónak modulként való betöltéséhez a betöltési folyamat korai szakaszában. Két egyszerű lépésből áll:

Először is, a cd-vel átváltok a /boot könyvtárba:

System.map                  chain.b                module-info-2.2.16-3ext3
System.map-2.2.16-3         initrd-2.2.16-3.img    vmlinux-2.2.16-3
System.map-2.2.16-3ext3     vmlinux-2.2.16-3ext3
vmlinuz                     kernel.h
boot.b                      map                    vmlinuz-2.2.16-3
bz.2.2.15.juke.Image        module-info            vmlinuz-2.2.16-3ext3
bzImage-2.2.14              module-info-2.2.16-3
        

Itt láthatod, hogy van egy 2.2.16-3 rendszermagom és hozzáadtam egy második rendszermagot, mely támogatja az ext3-at (vmlinuz-2.2.16-3ext3). Az első rendszermagom számára már létezik egy lemezkép (initrd-2.2.16-3.img).

A második rendszermag számára létrehozandó lemezképhez, a következőket kell beírnom (a begépelendő kiemelve van szedve):

boot# mkinitrd initrd-2.2-16-3ext3.img 2.2.16-3ext3

Az mkinitrd egy shell szkript, mely megvizsgálja a rendszermagom számára szükséges modulokat, majd létrehoz egy ext2 fájlrendszert, mely tartalmazza azokat a modulokat. Ha belepillantunk a lemezképbe látjuk, hogy ez igaz:

boot# cat initrd-2.2.16-3ext3.img | gunzip > /tmp/myimage

boot# file /tmp/myimage

/tmp/myimage: Linux/i386 ext2 filesystem/

Nem szükséges belenézned a lemezképbe. A lemezkép létrehozása és a lilo.conf módosítása a két kötelező lépés. A ram lemezkép leírása kizárólag pedagógiai célokat szolgál.

A lemezkép megtekintéséhez azt fájlrendszerként kell felcsatolni:

boot# mount /tmp/myimage /mnt/tmp -t ext2 -o loop=/dev/loop3

boot# ls /mnt/tmp

bin dev etc lib linuxrc

boot# find /mnt/tmp

mnt/tmp/

mnt/tmp/lib/

mnt/tmp/lib/aic7xxx.o/

mnt/tmp/bin/

mnt/tmp/bin/sh/

mnt/tmp/bin/insmod/

mnt/tmp/etc/

mnt/tmp/dev/

mnt/tmp/dev/console/

mnt/tmp/dev/null/

mnt/tmp/dev/ram/

mnt/tmp/dev/systty/

mnt/tmp/dev/tty1/

mnt/tmp/dev/tty2/

mnt/tmp/dev/tty3/

mnt/tmp/dev/tty4/

mnt/tmp/linuxrc/

Ennek a ram lemezképnek a legfontosabb része az aic7xxx.o, mely az én scsi modulom.

Végül elérkeztünk az utolsó lépéshez, az /etc/lilo.conf módosításához:

Itt láthatod az én bejegyzésemet a lilo.conf fájlban, mely összhangban van az imént létrehozott rendszermaggal és a lemezképpel:

image=boot/vmlinuz-2.2.16-3ext3/

label=linux.ext3

initrd=boot/initrd-2.2.16-3ext3.img/

read-only

root=dev/hdb3/

Ennyi az egész. Root felhasználóként futtasd a /lilo-t, majd indítsd újra a géped.

Ha gondjaid vannak, nézd meg Linux kernel HOWTO ( Linux rendszermag HOGYAN) dokumentumot. Van néhány dolog benne amikkel találkoznod kellett: az /etc/conf.modules fájlban található rendszermag-modulokat le kell fordítani.


Következő Előző Tartalom