Következő
Előző
Tartalom
Amikor indítólemezeket készítesz, az első néhány próba esetén valószínűleg
nem fog indulni. A gyökér lemezt egy általános megközelítés szerint
a már létező rendszered komponenseiből célszerű összeállítanod, és
próbálj meg addig eljutni, hogy a lemez-alapú rendszered üzeneteket jelenít
meg a konzolon. Ha már elkezd veled beszélgetni, a csatát félig megnyerted,
mert már láthatod, hogy miről van szó, és kijavíthatod a felmerülő különálló
problémákat, amíg a rendszer zökkenőmentesen nem működik. Ha a rendszer
minden magyarázat nélkül áll meg, a hiba okát megtalálni elég nehéz. Ahhoz,
hogy a rendszer addig eljusson, amikor már kommunikál veled, több fontos
komponens jelenlétére, és helyes konfigurálásra van szükség. Amikor a rendszer
nem beszél hozzád, a probléma kivizsgálásának ajánlott eljárása a következő:
Ha ezeket az általános dolgokat megvizsgáltad, íme néhány konkrétabb
állomány, amit ellenőrizhetsz.
- Győződj meg róla, hogy az
init -et /sbin/init vagy
/bin/init néven mellékelted. Ellenőrizd, hogy futtatható-e.
- Futtasd a
ldd init -et, hogy ellenőrizd az init eljáráskönyvtárait.
Általában ez csak a libc.so , de azért csak ellenőrizd. Bizonyosodj meg róla,
hogy mellékelted az összes eljáráskönyvtárat és a betöltőket.
- Bizonyosodj meg róla, hogy a megfelelő betöltőket használod az
eljáráskönyvtárakhoz --
ld.so -t az a.out-hoz, vagy ld-linux.so -t
az ELF-hez.
- Nézd meg az indítólemezed állományrendszerén az /etc/inittab
állományban a
getty (vagy valami getty -szerű program, mint a
agetty , mgetty vagy getty_ps ) programhívásokat.
Kétszer is hasonlítsd össze ezeket a merevlemezeden lévő inittab -bal.
Nézd meg az általad használt program manuálját, hogy egyáltalán értelmes
dolgok vannak-e benne. Az inittab valószínűleg a legtrükkösebb rész,
mert a szintakszis, és a tartalom az általad használt init programtól és
a rendszer természetétől függ. Az egyetlen lehetőség, hogy megbirkózz vele,
ha elolvasod az init és inittab programokra vonatkozó manuál
oldalakat, valamint pontosan megvizsgálod, hogy mit is csinál a rendszered
induláskor. Ellenőrizd, hogy az /etc/inittab-nak van-e
inicializáló bejegyzése. Ennek a rendszer inicializáló szkript végrehajtására
kell utasítást tartalmaznia, és a szkriptnek is léteznie kell.
- Mint az
init -nél, futtasd az ldd -t a getty -dre is,
hogy lássad, mi szükséges hozzá, és hogy meggyőződhess róla, hogy a szükséges
eljáráskönyvtár-állományokat és betöltőket elhelyezted a gyökér állományrendszereden.
- Győződj meg róla, hogy csatoltál-e parancsértelmezőt (pl.
bash vagy
ash ), mely képes futtatni az rc szkriptjeidet.
- Ha van /etc/ld.so.cache állomány a mentő lemezeden,
generáld újra.
Ha az init elindul, de a következő üzenetet kapod:
Id xxx respawning too fast: disabled for 5 minutes
az az init -ből jön, általában azt jelzi, hogy a getty vagy
login az elindulása után közvetlenül meg is hal.
Ellenőrizd a getty és a login futtatható állományokat és az
eljáráskönyvtárakat, amiktől függenek. Nézd meg, hogy a /etc/inittab
állománybeli meghívásuk helyes-e. Ha szokatlan üzeneteket kapsz a getty -től,
az jelentheti azt, hogy hibásan hívod a /etc/inittab-ból.
A getty paraméterei változnak, még az agetty különböző verziói
között is számos inkompatibilis hívásformát jeleztek.
Ha megkapod a bejelentkező promptot és érvényes felhasználói nevet adsz meg,
de a rendszer azonnal egy újabb felhasználói név megadását kéri, a probléma
valószínűleg a PAM-mal vagy az NSS-el lesz. Nézd meg a
PAM and NSS fejezetet. A probléma származhat még abból is, hogy
shadow jelszavakat használsz, de nem másoltad át az indítólemezedre a
/etc/shadow állományt.
Ha megpróbálsz néhány futtatható állományt lefuttatni, mint például a df
parancsot, ami megtalálható a mentő lemezeden, és ilyen üzenetet kapsz:
df: not found (a df nem található), két dolgot nézz meg:
(1) Győződj meg róla, hogy a binárist tartalmazó alkönyvtár szerepel a PATH
elérési útvonalban, és
(2) Győződj meg róla, hogy a program számára szükséges eljáráskönyvtárak
(és betöltők) rendelkezésedre állnak-e.
Következő
Előző
Tartalom
|