2.11. Hibakeresés

A most következő szakaszban azokra a telepítés során felmerülő problémákra próbálunk meg megoldásokat adni, amelyeket eddig már sokan jeleztek nekünk. Ezek mellett szerepel néhány kérdés és válasz is a FreeBSD és az MS-DOS(R) vagy Windows(R) közös használatáról.

2.11.1. Mit tegyünk ha valami nem működik

A PC architektúra különféle korlátozásai miatt szinte lehetetlen 100%-ban megbízhatóvá tenni az eszközök felderítését, azonban ennek hibája kapcsán néhány dolgot még tenni tudunk.

Ellenőrizzük a Hardware Notes (Hardverjegyzék) című dokumentumban, hogy az adott hardvert a FreeBSD valóban ismeri.

Amennyiben a hardvereszközünket a rendszer ismeri, azonban még mindig jelentkeznek fagyások vagy egyéb gondok, készítenünk kell egy saját rendszermagot. Ezzel olyan eszközök támogatását is beépíthetjük a rendszermagba, amelyek eredetileg nem szerepelnek a GENERIC rendszermagban. A telepítéshez készített rendszerindító lemezeken található rendszermag a legtöbb eszközt a gyári IRQ, IO-cím és DMA csatorna beállításaik mentén próbálja felkutatni. Ha viszont a hardverünket átállítottuk, ennek megfelelően módosítanunk kell a rendszermag beállításait és újra kell fordítanunk, hogy a FreeBSD tudja, hol is keresse az eszközt.

Olyan is adódhat, hogy egy nem létező eszköz keresése egy utána keresendő másik, jelenlevő eszköz felkutatását akadályozza meg. Ilyenkor az ütköző meghajtókat le kell tiltani.

Megjegyzés:

Egyes problémák elkerülhetőek vagy csillapíthatóak a különböző hardverösszetevők, különösen az alaplapi firmware frissítésével. Az alaplap firmware-jére sokszor csak BIOS-ként hivatkoznak, és a legtöbb alaplap- vagy számítógépgyártó honlapján találhatjuk meg ezeket, valamint a rájuk vonatkozó utasításokat.

A legtöbb gyártó azonban erősen tiltakozik az alaplapi BIOS-frissítések ellen, és csak indokolt esetekben, például kritikus javításoknál javasolják. A frissítés kimenetele lehet rossz is, aminek következménye a BIOS tartós károsodása.

2.11.2. Az MS-DOS(R) és Windows(R) állományrendszereinek használata

A FreeBSD jelenleg nem támogatja a Double SpaceTM alkalmazással tömörített állományrendszereket, ezért a FreeBSD csak úgy tud az adataihoz hozzáférni, ha előtte kitömörítjük ezeket. Ezt a Start menü Programs (Programok) > System Tools (Rendszereszközök) menüjében található Compression Agent (Lemeztömörítés) elindításával tehetjük meg.

A FreeBSD támogatja az MS-DOS(R) alapú (gyakran csak FAT típusúnak nevezett) állományrendszereket. A mount_msdosfs(8) parancs segítségével az ilyen rendszerek könnyedén becsatlakoztathatók a már létező könyvtárszerkezetbe, amivel így el tudjuk érni a tartalmát. A mount_msdosfs(8) programot általában nem közvetlenül hívjuk meg, hanem az /etc/fstab vagy a mount(8) segédprogram megfelelő paraméterezésével.

Az /etc/fstab állományban általában így néz ki egy ilyen sor:

/dev/ad0sN  /dos	msdosfs rw 0 0

Megjegyzés:

A művelet végrehajtásához a /dos könyvtárnak már léteznie kell. Az /etc/fstab pontos formátumával kapcsolatban a fstab(5) man oldalt olvassuk el.

Az MS-DOS(R) állományrendszerek esetében a mount(8) parancsot többnyire így adjuk ki:

# mount -t msdosfs /dev/ad0s1 /mnt

Ebben a példában a MS-DOS(R) állományrendszer az elsődleges merevlemez első partícióján helyezkedik el. A mi helyzetünk ettől eltérő lehet, ezért ehhez vizsgáljuk meg a dmesg és mount parancsok kimeneteit. Segítségükkel elegendő információt tudunk összeszedni a gépünkön található partíciók kiosztásáról.

Megjegyzés:

Előfordulhat, hogy a FreeBSD a többi operációs rendszertől eltérő módon számozza a slice-okat (vagyis az MS-DOS(R) partíciókat). Konkrétan: a kiterjesztett MS-DOS(R) partíciók általában nagyobb sorszámot kapnak, mint az elsődleges MS-DOS(R) partíciók. Az fdisk(8) segédprogram segíthet megállapítani, hogy mely slice-ok tartoznak a FreeBSD-hez és melyek más operációs rendszerekhez.

A mount_ntfs(8) parancs használatával az NTFS partíciók hasonló módon csatlakoztathatóak.

2.11.3. Kérdések és válaszok

2.11.3.1. A rendszerem teljesen leáll amikor az indítás során eszközöket próbál megtalálni, vagy furcsán viselkedik a telepítés során, esetleg a floppy meghajtót nem is keresi.
2.11.3.2. A FreeBSD telepítése után először indítom el a merevlemezről a rendszert, a rendszermag betöltődik és nekilát felkutatni a hardvereszközöket, azonban megáll a következő üzenettel:
2.11.3.3. A telepítés után először próbálom meg elindítani a merevlemezről a FreeBSD-t, azonban a rendszerválasztó mindig csak F? opciókat kínál fel, és a rendszer indítása sem halad tovább.
2.11.3.4. A rendszer megtalálja a ed(4) hálózati kártyámat, azonban folyamatosan hibát ad időtúllépésre hivatkozva.
2.11.3.5. Amikor a sysinstall programot egy X11 terminálban futtatom, a sárga színű betűket viszonylag nehéz olvasni a világosszürke háttérrel. Esetleg lehet valahogy növelni a kontrasztot az alkalmazás használatakor?

2.11.3.1.

A rendszerem teljesen leáll amikor az indítás során eszközöket próbál megtalálni, vagy furcsán viselkedik a telepítés során, esetleg a floppy meghajtót nem is keresi.

A FreeBSD az i386, amd64 és ia64 platformokon az indítás közben az eszközök felderítésében erősen építkeznek a rendszeren elérhető ACPI szolgáltatásra. Sajnos még mindig vannak hibák az ACPI meghajtóban, az alaplapokban és a BIOS-okban. A rendszerbetöltő harmadik fokozatában viszont az hint.acpi.0.disabled megadásával kikapcsolható az ACPI használata:

set hint.acpi.0.disabled="1"

Ez a beállítás a rendszer minden egyes indításakor törlődik, ezért a hint.acpi.0.disabled="1" bejegyzést fel kell vennünk a /boot/loader.conf állományba. A rendszerbetöltő működéséről részletesebben a 12.1. szakasz - Áttekintésban olvashatunk.

2.11.3.2.

A FreeBSD telepítése után először indítom el a merevlemezről a rendszert, a rendszermag betöltődik és nekilát felkutatni a hardvereszközöket, azonban megáll a következő üzenettel:

changing root device to ad1s1a panic: cannot mount root

Mi lehet a gond? Mit tegyek?

Mit jelent a bios_drive:interface(unit,partition)kernel_name a rendszerindítás során megjelenő súgóban?

Ez egy régóta fennálló probléma olyan rendszerek esetén, ahol a rendszerindításhoz használt lemez nem az első. A BIOS a FreeBSD-től eltérő sorszámozást használ, és az általa alkalmazott megfeleltetések megfejtése nehézkes.

Amikor a rendszer indítására használt lemez nem az első lemez a rendszerünkben, segítenünk kell a FreeBSD-nek a megtalálásában. Két gyakori helyzet alakulhat ki, és mind a kettőben el kell árulnunk a FreeBSD-nek, hogy hol található a rendszer indításához használható gyökér állományrendszer. Ezt a lemez BIOS-ban nyilvántartott sorszámának, típusának és a neki megfelelő FreeBSD szerinti lemezszám megadásával tehetjük meg.

Az első szituációban két IDE-lemezünk van, mind a kettőt masterként állítottuk be a hozzájuk tartozó IDE-buszokon, és a közülük a másodikról akarjuk indítani a FreeBSD-t. A BIOS ezeket 0. és 1. lemezként látja, miközben a FreeBSD pedig ad0 és ad2 eszközként.

A FreeBSD 1. BIOS-számozású lemezen van, amelynek a típusa ad és a FreeBSD szerinti a 2 sorszámot viseli. Ezért ezt kell használnunk:

1:ad(2,a)kernel

Ha az elsődleges buszon van egy slave meghajtónk, akkor mindez nem szükséges (és valószínűleg rossz is).

A második szituációban egy SCSI-lemezről akarjuk indítani a rendszert, miközben egy vagy több IDE-lemez is található a gépünkben. Ebben az esetben a FreeBSD szerinti sorszám kisebb lesz, mint a BIOS szerinti. Ha tehát a két IDE-lemezünk mellett van még egy SCSI-lemez is, akkor annak a BIOS szerinti sorszáma 2, a típusa da és a FreeBSD szerinti sorszáma pedig 0. Ennek megfelelően a

2:da(0,a)kernel

sorral tudjuk elárulni a FreeBSD-nek, hogy a BIOS szerint 2. lemezről akarjuk indítani, amely a rendszerben található első SCSI-lemeznek felel meg. Ha csak egy IDE-lemezünk van, akkor a sort kezdjük az 1: beírásával.

Miután megtaláltuk a megfelelő értékeket, a hozzá tartozó sort egy szövegszerkesztő segítségével tegyük közvetlenül a /boot.config állományba. A FreeBSD ezen állomány tartalmát fogja alapból felhasználni a boot: bekérésénél, hacsak másképpen nem utasítjuk.

2.11.3.3.

A telepítés után először próbálom meg elindítani a merevlemezről a FreeBSD-t, azonban a rendszerválasztó mindig csak F? opciókat kínál fel, és a rendszer indítása sem halad tovább.

A FreeBSD telepítése során rosszul adtunk meg a partíciószerkesztőben a merevlemezhez tartozó geometriát. Menjünk vissza a partíciószerkesztőhöz és adjuk meg újra a merevlemezünk helyes geometriáját. Ennek használatához pedig a FreeBSD-t is újra kell telepítenünk.

Ha egyáltalán képtelenek vagyunk megállapítani a merevlemezhez tartozó geometriát, akkor próbáljuk meg ezt: a lemez elején hozzunk létre egy kis méretű DOS partíciót és rakjuk utána a FreeBSD-t. Amikor a telepítőprogram észreveszi a DOS partíciót, megpróbálja magától kikövetkeztetni belőle a helyes geometriát, ami általában működik is.

Ez a tanács ugyan már nem érvényes, de álljon itt felvilágosításként:

Ha teljesen egy FreeBSD alapú szerver vagy munkaállomás kialakítására szánjuk a számítógépünket, és nem törődünk a DOS-szal, Linuxszal és a többi operációs rendszerrel történő (jövőbeli) kompatibilitással, használhatjuk akár az egész lemezt is (a partíciószerkesztőben ez az A opció). Ezzel egy olyan nem szabványos beállítást engedélyezünk, amivel a FreeBSD elfoglalja a lemezt annak legelső szektorától a legutolsó szektoráig. Ilyenkor ugyan el tudunk tekinteni a geometriával kapcsolatos beállításoktól, azonban így a FreeBSD-n kívül semmilyen más operációs rendszert nem tudunk majd futtatni a gépen.

2.11.3.4.

A rendszer megtalálja a ed(4) hálózati kártyámat, azonban folyamatosan hibát ad időtúllépésre hivatkozva.

Az említett kártya valószínűleg a /boot/device.hints állományban beállítottaktól eltérő IRQ-t használ. A ed(4) meghajtó alapértelmezés szerint nem használ "szoftveres" beállításokat (amiket DOS-ban az EZSETUP használatával adunk meg), viszont engedélyezhetjük, ha a kártyánál megadjuk az -l beállítást.

Hardveresen ezt a kártyán levő jumperek segítségével állíthatjuk be (ehhez változtassuk meg a rendszermag beállításait is, amennyiben szükséges), vagy a -l kapcsolón keresztül a hint.ed.0.irq="-l" megadásával utasíthatjuk a rendszermagot az IRQ szoftveres beállítására.

Másik lehetőség, amikor a kártyánk a 9-es IRQ-t használja, amelyet általában megosztanak a 2-es IRQ-val, ami gyakori problémák forrása (különösen abban az esetben, amikor a VGA kártya a 2-es IRQ-t használja!) lehet. Lehetőleg ne használjuk a 2-es és 9-es IRQ-kat.

2.11.3.5.

Amikor a sysinstall programot egy X11 terminálban futtatom, a sárga színű betűket viszonylag nehéz olvasni a világosszürke háttérrel. Esetleg lehet valahogy növelni a kontrasztot az alkalmazás használatakor?

Ha az X11 telepítése után a sysinstall által választott színekkel nem olvasható a szöveg xterm(1) vagy rxvt(1) terminálokban, akkor vegyük fel a következő sort a felhasználói könyvtárunkban levő .Xdefaults konfigurációs állományunkba: XTerm*color7:#c0c0c0. Ezzel majd egy sötétebb szürke hátteret kapunk.

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <questions@FreeBSD.org>.

Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.