bootdisk howto pl 7 6L3DDIPGWHK6H5UG7EVRVRM2XQK4IZSEVE37U6Q


The Linux Bootdisk HOWTO: Rozwiązywanie problemów. Następna strona Poprzednia strona Spis treści 7. Rozwiązywanie problemów. Po stworzeniu dyskietek kilka pierwszych prób wystartowania systemu często kończy się niepowodzeniem. Najlepszym podejściem podczas budowania głównego systemu plików jest łączenie elementów istniejącego systemu tak, aby system dyskietkowy przynajmiej wyświetlał komunikaty na konsoli. Gdy zacznie on komunikować się z tobą, jesteś już w połowie drogi do sukcesu, ponieważ możesz zobaczyć, co sprawia problemy i naprawić je pojedynczo aż system będzie działał poprawnie. Jeśli system po prostu wiesza się bez żadnego komunikatu, to odnalezienie przyczyny staje się trudne. Stworzenie systemu, który zostanie poprawnie wystartowany do momentu, w którym będzie mógł komunikować się z użytkownikiem, wymaga zainstalowania i skonfigurowania kilku komponentów. Zalecaną metoda badania problemu gdy system nie chce się komunikować z użytkownikiem jest następująca: Możesz ujrzeć komunikat taki jak ten: Kernel panic: VFS: Unable to mount root fs on XX:YY Jest to powszechny problem i ma jedynie kilka przyczyn. Po pierwsze, sprawdz nazwę urządzenia XX:YY z listą. Czy to poprawne urządzenie główne? Jeśli nie, prawdopodobnie nie uruchomiłeś rdev -R, lub zrobiłeś to na złym obrazie. Jeśli kod urządzenia jest poprawny, sprawdź uważnie sterowniki włączone do jądra. Upewnij się że stacja dysków, ramdysk i system plików ext2 zostały wbudowane. Sprawdź, czy główna dyskietka faktycznie zawiera odpowiednie katalogi. Może się zdarzyć, że skopiujesz nieodpowiedni katalog, w rezultacie otrzymując na głównej dyskietce przykładowo katalog /rootdisk/bin zamiast /bin. Sprawdź, czy plik /lib/libc.so jest dowiązaniem do tego samego pliku, co /lib/libc.so na twardym dysku. Sprawdź, czy symboliczne dowiązania z katalogu /dev na dysku twardym istnieją także dla odpowiednich urządzeń na głównej dyskietce. W wielu sytuacjach szczególnie istotne jest /dev/console. Sprawdź, czy dołączyłeś pliki /dev/tty1, /dev/null, /dev/zero, /dev/mem, /dev/ram i /dev/kmem. Sprawdź konfigurację jądra, obsługa wszystkich zasobów wymaganych do zalogowania się musi być wbudowana w jądro, a nie w postaci modułów. Tak więc obsługa ramdysku i systemu plików ext2 musi być wbudowana. Sprawdź, czy w jądrze główne urządzenie oraz parametry ramdysku są ustawione poprawnie. Gdy przeanalizujesz już wszystkie powyższe przypadki, możesz sprawdzić następujące pliki: Upewnij się, że istnieje plik /sbin/init lub /bin/init. Upewnij się, że ma on uprawnienia do wykonywania. Uruchom ldd init aby sprawdzić biblioteki wymagane przez init. Na ogół jest to jedynie libc.so, ale zawsze warto sprawdzić. Upewnij się, że istnieją wymagane biblioteki i program ładujący. Upewnij się, że posiadasz odpowiedni program ładujący biblioteki -- ld.so dla bibliotek a.out lub ld-linux.so dla bibliotek ELF. Sprawdź odwołania do getty (lub podobnego programu, jak agetty, mgetty czy getty_ps) w pliku inittab. Porównaj je z plikiem inittab na dysku twardym. Przejrzyj strony man używanych programów. Właśnie w pliku inittab może wystąpić najwięcej problemów, ponieważ jego składnia zależy od konkretnego systemu i wersji programu init. Jedynym rozwiązaniem jest przeczytanie stron man o init oraz inittab, prześledzenie, co dokładnie system robi po wystartowaniu. Sprawdź, czy w pliku /etc/inittab znajduje się pozycja inicjalizacji systemu. Zawiera ona ścieżkę do skryptu inicjalizacji systemu, który musi istnieć. Tak samo jak w przypadku init, uruchom ldd podając jako parametr twój program getty i sprawdź, czy istnieją wszystkie potrzebne biblioteki oraz program ładujący. Upewnij się, że dołączyłeś powłokę (np. bash czy ash), która potrafi wykonać wszystkie skrypty rc. Jeśli na dyskietce istnieje plik /etc/ld.so.cache, to odśwież go. Jeśli init startuje, ale otrzymujesz komunikat: Id xxx respawning too fast: disabled for 5 minutes pochodzi on z programu init i oznacza, że getty lub login kończą pracę zaraz po uruchomieniu. Sprawdz pliki getty i login i wszystkie potrzebne im biblioteki. Upewnij się, że ich wywołania w pliku /etc/inittab są prawidłowe. Jeśli otrzymujesz dziwne komunikaty od getty, może to oznaczać, że jego wywołanie z /etc/inittab jest nieprawidłowe. Opcje dla programów getty są zróżnicowane, nawet poszczególne wersje agetty posiadają niekompatybilne ze sobą opcje przy wywołaniu. Jeśli podajesz poprawną nazwę użytkownika, ale system pyta natychmiast o inną nazwę, to problemem może być PAM bądź NSS. Zajrzyj do działu PAM i NSS. Problem może być także spowodowany tym, że korzystasz z haseł shadow, ale nie skopiowałeś pliku /etc/shadow na dyskietkę. Jeśli próbujesz uruchomić jakiś program, przykładowo df, który znajduje się na dyskietce, ale otrzymujesz komunikat: df: not found, to sprawdź dwie rzeczy. Po pierwsze, upewnij się, że katalog w którym znajduje się program jest w zmiennej PATH. Po drugie, sprawdź, czy istnieją wszystkie potrzebne biblioteki oraz program ładujący. Następna strona Poprzednia strona Spis treści

Wyszukiwarka

Podobne podstrony:
bootdisk howto pl 8
bootdisk howto pl 13
bootdisk howto pl 3
bootdisk howto pl 4
bootdisk howto pl 10
bootdisk howto pl 5
bootdisk howto pl 6
bootdisk howto pl 9
bootdisk howto pl 2
bootdisk howto pl 11
bootdisk howto pl
bootdisk howto pl
bootdisk howto pl 12
bootdisk howto pl 14
bootdisk howto pl 1
PPP HOWTO pl 6 (2)
NIS HOWTO pl 1 (2)
cdrom howto pl 1
jtz howto pl 5

więcej podobnych podstron