Komunikaty błędów BIOS-u Podstawowe tekstowe komunikaty o
Transkrypt
Komunikaty błędów BIOS-u Podstawowe tekstowe komunikaty o
Komunikaty błędów BIOS-u Przy tak zwanym „zimnym" uruchomieniu komputera PC wykonywana jest procedura testująca POST. Jeśli w jej trakcie zostaną wykryte błędy, to zazwyczaj na ekranie pojawi się komunikat. Błędy, które pojawią się na samym początku procedury POST, mogą nawet uprzedzić moment inicjalizacji karty graficznej. Tego typu błędy nie mogą zostać wyświetlone, dlatego teŜ w celu przekazania komunikatów błędów są w systemie wykorzystywane dwie alternatywne metody. Pierwsza polega na generowaniu przy uŜyciu głośnika sygnałów dźwiękowych, które ułoŜone w określoną sekwencję sygnalizują typ błędu. ► ► Listę sygnałów dźwiękowych znajdziesz w rozdziale 24. — „Diagnostyka, testowanie i konserwacja komputera PC" — znajdującym się na stronie 1331. Druga metoda polega na wysyłaniu szesnastkowego kodu błędu do portu I/O o adresie 80h, którego odczyt jest moŜliwy dzięki zastosowaniu specjalnej karty instalowanej w jednym z gniazd magistrali. W momencie, gdy układ ROM BIOS przeprowadza procedurę testującą POST, w większości systemów jej wyniki są na bieŜąco przekazywane do portu I/O o adresie 80h. Dzięki temu przekazane dane mogą być monitorowane przez specjalne karty diagnostyczne nazywane kartami POST (rysunek 5.11). Tego typu testy często są określane mianem testów fabrycznych (ang. manufacturing tests), poniewaŜ zostały opracowane z myślą o systemach testujących stosowanych na liniach montaŜowych pozbawionych monitora. Rysunek 5.11. Typowa karta POST wyposaŜona w dwucyfrowy wyświetlacz szesnastkowy (po lewej) oraz karta POST po zainstalowaniu (po prawej) I Karty POST dysponują dwucyfrowym wyświetlaczem szesnastkowym słuŜącym do informowania o kodzie aktualnie wykonywanej procedury. Przed rozpoczęciem kaŜdego testu szesnastkowy kod liczbowy jest wysyłany do portu i dopiero wtedy test jest uruchamiany. W przypadku, gdy test nie zostanie zakończony lub komputer „zawiesi się", szesnastkowy kod ostatniej wykonanej procedury testującej jest pokazany na wyświetlaczu karty. Wiele testów komputerów, zwłaszcza wyposaŜonych w kartę graficzną EGA lub VGA, jest przeprowadzanych jeszcze przed jej uaktywnieniem. Z tego teŜ powodu moŜe pojawić się wiele problemów, które mogą doprowadzić do zawieszenia komputera, zanim zaistnieje moŜliwość wyświetlenia przy uŜyciu karty graficznej i monitora wygenerowanych kodów błędów. Ze względu na to, Ŝe nie wszystkie tego typu błędy w trakcie większości standardowych procedur diagnostycznych generują sygnały dźwiękowe, komputer z takim problemem jak uszkodzona pamięć w banku 0 będzie sprawiał wraŜenie zupełnie „martwego". Dzięki zastosowaniu jednej z ogólnie dostępnych kart POST zidentyfikowanie problemu często staje się moŜliwe. Zestaw kodów błędów jest całkowicie zaleŜny od wersji BIOS-u. Wynika to stąd, Ŝe karta POST wyświetla tylko to, co jest do niej przesyłane. Niektóre wersje BIOS-u dysponują dokładniejszymi procedurami testującymi POST, dlatego teŜ są w stanie generować więcej mówiące kody. Karty POST moŜna nabyć w firmie JDR Microdevices lub u innych producentów. Dostępne są karty zarówno w wersji ISA, jak i PCI. W przypadku prostych błędów, ale jednocześnie mających krytyczne znaczenie, o których komunikatu nie moŜna jeszcze wyświetlić na ekranie monitora, większość BIOS-ów generuje kody dźwiękowe pomocne przy diagnozowaniu tego typu problemów. Kody dźwiękowe podobne są do kodów POST, z tym Ŝe zamiast uŜycia specjalnej karty ich odczyt polega na nasłuchiwaniu sygnałów z głośnika. W dalszej części rozdziału zostaną szczegółowo omówione tekstowe komunikaty o błędach występujące we wszystkich najpopularniejszych wersji BIOS-u. Szczegółową listę sygnałów dźwiękowych moŜna znaleźć w rozdziale 24. — „Diagnostyka, testowanie i konserwacja komputera PC". Podstawowe tekstowe komunikaty o błędach generowane przez BIOS w trakcie inicjalizacji Podczas uruchamiania komputera procedura inicjalizująca zapisana w układzie ROM BIOS płyty głównej odczytuje pierwszy fizyczny sektor kaŜdego urządzenia startowego określony w trybie CHS przez cylinder 0, głowicę 0 i sektor 1, a w trybie LBA jako blok o adresie 0. Kod zapisany w tym sektorze jest ładowany do pamięci RAM, po czym następuje kontrola sygnatury umieszczonej w ostatnich dwóch jego bajtach, która powinna mieć wartość 55AAh. JeŜeli tak jest, kod układu ROM BIOS przyjmuje, Ŝe pierwszy sektor zawiera prawidłowy główny rekord ładujący (MBR) i przekazuje sterowanie załadowanemu kodowi. JeŜeli w dwóch ostatnich bajtach znajduje się wartość róŜna od 55AAh, kod zapisany w układzie ROM BIOS próbuje odczytać pierwszy sektor fizyczny następnego urządzenia startowego. Procedura ta powtarzać się będzie dopóty, dopóki nie zostanie odnaleziony prawidłowy rekord MBR lub nie zostaną sprawdzone wszystkie urządzenia startowe. JeŜeli po sprawdzeniu wszystkich urządzeń zapisanych w sekwencji uruchamiania systemu operacyjnego ROM BIOS nie znajdzie prawidłowego rekordu MBR, wywoła przerwanie programowe 18h powodujące wyświetlenie na ekranie komunikatu o błędzie. Zawartość komunikatu zaleŜy od producenta oraz wersji układu ROM BIOS. Komunikaty te zostaną szczegółowo opisane w kolejnych punktach. Komunikaty ROM BIOS informujące o niepowodzeniu inicjalizacji systemu operacyjnego (nieodnalezieniu poprawnego rekordu MBR) W przypadku, gdy nie zostanie znaleziony prawidłowy rekord MBR lub urządzenie startowe, komputer z bardzo starym BlOS-em firmy IBM uruchomi niesławny interpreter języka BASIC: The IBM Personal Computer Basic Version Cl.10 Copyright IBM Corp 1981 62940 Bytes free Ok Interpreter BASIC w układach ROM firmy IBM Zawartość układów ROM w większości komputerów PC jest podobna do zastosowanej w oryginalnych komputerach firmy IBM z jednym wyjątkiem, którym jest interpreter ROM BASIC (znany teŜ jako Cassette BASIC). Dla niektórych uŜytkowników komputerów PC moŜe okazać się to zaskakujące, ale oryginalny komputer IBM PC byt wyposaŜony w gniazdo umieszczone w jego tylnej części, które słuŜyło do podłączenia magnetofonu kasetowego. Jego zadanie polegało na odczytywaniu i zapisywaniu programów i danych znajdujących się na kasetach magnetofonowych. IBM zdecydował się na takie rozwiązanie, gdyŜ w magnetofony wyposaŜona było większość modeli ówczesnych komputerów biurkowych (w tym komputery firmy Apple), a ceny stacji dyskietek były jeszcze bardzo wysokie (dyski twarde nie były wtedy nawet brane pod uwagę). Jednak wkrótce ceny stacji dyskietek spadły, dlatego teŜ w kolejnych komputerach firmy IBM nigdy juŜ nie zastosowano portu magnetofonowego. Nie znalazł się teŜ w komputerach zgodnych z IBM PC, które właśnie zaczęły się pojawiać. Oryginalny komputer IBM PC w podstawowej konfiguracji dysponował pamięcią RAM o pojemności tylko 16 KB i nie posiadał stacji dyskietek. W tamtym czasie większość uŜytkowników komputerów tworzyła swoje programy w języku BASIC lub uruchamiała programy stworzone w tym języku przez innych. Interpreter języka BASIC wbudowany do układu BIOS ROM. w który były wyposaŜone pierwsze komputery IBM mógł odczytywać programy z magnetofonu podłączonego do komputera i wykonywać je w 16 KB pamięci RAM. Mimo Ŝe firma IBM zrezygnowała z portu magnetofonu kasetowego, stosowała układ ROM BIOS wyposaŜony w interpreter języka BASIC aŜ do początku lat 90. ubiegłego wieku! Porównuję to czasami z wyrostkiem robaczkowym człowieka — układ ROM BIOS spotykany w komputerach firmy IBM z tego okresu jest czymś w rodzaju organu szczątkowego — pozostałością mającą zastosowanie w odległej przeszłości, ale obecnie bezuŜyteczną. ROM BASIC moŜna uruchomić w starszych komputerach firmy IBM, po wyłączeniu wszystkich zainstalowanych dysków. W przypadku, gdy w komputerze nie zostanie znalezione Ŝadne urządzenie inicjalizujące, większość systemów IBM wyświetli na monitorze dziwny komunikat (rocznik 1981) wygenerowany przez układ ROM BASIC. Wiele osób na widok tego komunikatu wpadało w panikę, poniewaŜ zazwyczaj oznaczał on, Ŝe dysk twardy nie został rozpoznany. PoniewaŜ Ŝaden z komputerów zgodnych z IBM PC nie był wyposaŜony w układ ROM zawierający interpreter języka BASIC, to w sytuacji, w której komputery firmy IBM uruchamiały BASIC, inne komputery wyświetlały przeróŜne informacje. Najbardziej mylącym jest komunikat wyświetlany przez AMI BIOS: NO ROM BASIC - SYSTEM HALTED (Brak układu ROM BASIC — system zawieszony), który tak naprawdę oznaczał, Ŝe komputer nie moŜe uruchomić systemu operacyjnego. Nowsze komputery firmy IBM wyświetlają w takim przypadku na ekranie scenkę pokazaną na rysunku 5.12. Rysunek 5.12. Gdy nowszy komputer firmy IBM nie moŜe odnaleźć rekordu MBR wyświetla na ekranie rysunek Rysunek ten oznacza: „WłóŜ dyskietkę z systemem operacyjnym do stacji A: i naciśnij klawisz Fl". W przypadku nieodnalezienia prawidłowego rekordu MBR lub urządzenia startowego komputery wyposaŜone w układ BIOS firmy AMI wyświetlają taki oto komunikat: NO ROM BASIC - SYSTEM HALTED (Brak układu ROM BASIC — system zawieszony). Komunikat ten jest mylący, gdyŜ wskazuje na problem z uruchomieniem interpretera języka BASIC, co oczywiście nie jest prawdą! W BlOS-ie firmy AMI i innych producentów nie ma bowiem takiego interpretera. Zamiast powyŜszego powinien być raczej wyświetlony komunikat informujący o nieodnalezieniu urządzenia, z którego moŜna by uruchomić system operacyjny, a dokładniej komunikat o nieodnalezieniu na Ŝadnym z urządzeń startowych w pierwszym fizycznym sektorze bajtów zawierających poprawną sygnaturę wskazującą na prawidłowy rekord MBR. W takich samych okolicznościach BIOS firmy Compaą generuje następujący komunikat: Non-System di sk or di sk error replace and strike any key when ready (Brak dysku systemowego lub wystąpił błąd dysku. Po jego wymianie naciśnij dowolny klawisz). W pewnym sensie firma Compaq takim komunikatem równieŜ wprowadziła zamieszanie, poniewaŜ identyczna lub podobna informacja o błędzie jest umieszczona w rekordzie VBR i zazwyczaj jest wyświetlana w systemach DOS/Windows 9x/Me w momencie, gdy brakuje określonych plików systemowych lub są one uszkodzone. Dlatego widząc taki komunikat w komputerze firmy Compaą, nie moŜna być pewnym, czy problem dotyczy rekordu MBR, rekordu VBR czy plików systemowych, co utrudnia wykrycie jego przyczyny i rozwiązanie go. W przypadku komputera wyposaŜonego w BIOS firmy Award w sytuacji nieodnalezienia prawidłowego rekordu MBR lub urządzenia startowego wygenerowany zostanie następujący komunikat: DISK BOOT FAILURE, INSERT SYSTEM DISK AND PRESS ENTER (Błąd dysku systemowego, włóŜ dyskietkę startową i naciśnij klawisz Enter). Wydaje się, Ŝe jest to komunikat najlepiej oddający przyczynę problemu. Natomiast w przypadku BIOS-u firmy Phoenix zostanie wyświetlony komunikat: No boot device available strike Fl to retry boot, F2 for setup utility (Brak urządzenia startowego. Aby ponowić inicjalizację, naciśnij klawisz Fl, natomiast w celu uruchomienia programu Setup naciśnij klawisz F2). lub No boot sector on fixed disk strike Fl to retry boot. F2 for setup utility (Na dysku twardym nie znaleziono sektora ładowania. Aby ponowić inicjalizację, naciśnij klawisz Fl, natomiast w celu uruchomienia programu Setup naciśnij klawisz F2). To, który z powyŜszych dwóch komunikatów zostanie wyświetlony, zaleŜy od tego, czy nie odnaleziono urządzenia startowego (lub nie moŜna było z niego odczytać danych), czy teŜ odczytany rekord MBR nie zawierał prawidłowej sygnatury. ChociaŜ generowany komunikat jest róŜny dla róŜnych wersji BIOS-u, to jednak przyczyna jest jednakowa dla wszystkich. Pojawienie się jednego z wymienionych komunikatów zazwyczaj jest spowodowane kilkoma czynnikami, z których wiele ma związek z rekordem MBR. Z moich doświadczeń wynika, Ŝe podstawową przyczyną tego rodzaju problemów są dyski nowe (nie podzielone jeszcze na partycje) lub dyski z uszkodzonym rekordem MBR. Rekord MBR (zawierający bajty sygnatury) jest zapisywany na dysku twardym przez programy FDISK, D1SKPART lub Zarządzanie dyskami. Kiedy dysk jest nowy lub zostanie sformatowany niskopoziomowo, wszystkie jego sektory są wypełniane określoną kombinacją bajtów. Pierwszy fizyczny sektor takiego dysku wypełniony jest samymi zerami, a jego ostatnie dwa bajty nie zawierają sygnatury 55AAh. Innymi słowy, komunikaty o błędach zawarte w pamięci ROM wyświetlone zostaną w momencie, gdy podejmie się próbę uruchomienia systemu z dysku, który został poddany formatowaniu niskopoziomowemu, ale na którym nie załoŜono Ŝadnej partycji. Rozpatrzmy teraz kolejną sytuację, która moŜe być powodem pojawienia się wymienionych wyŜej komunikatów. Jeśli bajty sygnatury mają prawidłową wartość, wtedy BIOS wykona kod rekordu MBR, który z kolei sprawdzi zawartość bajtów BIB (ang. Boot Indicator Bytes), znajdujących się w kaŜdej z czterech pozycji tablicy partycji. Bajty BIB znajdują się pod adresami 446 (IBEh), 462 (lCEh), 478 (IDEh) i 494 (lEEh). Ich zadaniem jest określenie, która pozycja tablicy partycji zawiera informacje o partycji startowej. Wartość 80h, znajdująca się w polu BIB danej pozycji, wskazuje, Ŝe pozycja ta zawiera dane partycji aktywnej. W pozostałychbajtach BIB muszą znajdować się wartości OOh. JeŜeli wartość 80h znajduje się w polu BIB więcej niŜ jednej pozycji tablicy partycji (co oznacza istnienie wielu partycji aktywnych) lub wartość dowolnego z tych bajtów nie jest równa 80h lub OOh, wtedy pojawi się następujący komunikat: Irwalid partition table (Nieprawidłowa tablica partycji). Jeśli natomiast wartość wszystkich czterech bajtów BIB wynosi OOh, co oznacza brak partycji aktywnej (systemowej), kod MBR zwraca sterowanie do ROM BIOS i gdy w komputerze nie ma zainstalowanych Ŝadnych innych urządzeń rozruchowych, wywoływane jest przerwanie programowe 18h, powodujące wyświetlenie jednego z wymienionych wcześniej komunikatów o błędzie. ►► Zobacz „Główny rekord ładujący (MBR)" — strona 1402. Dokładnie taki przypadek ma miejsce, gdy z dysku zostaną usunięte partycje, ale nie zostaną utworzone nowe lub gdy po utworzeniu partycji nie zdefiniuje się partycji aktywnej (startowej). Niestety, nie istnieje prosta metoda czyszczenia uszkodzonej tablicy partycji. W celu usunięcia uszkodzonych partycji moŜna posłuŜyć się programem FDISK, ale nie zawsze jest to moŜliwe. W takim przypadku naleŜy zastosować narzędzia o większych moŜliwościach, takie jak program DISKEDIT dostępny w pakiecie Norton Utilities firmy Symantec. ► ► Więcej informacji na temat naprawiania i odzyskiwana rekordu MBR znajdziesz w rozdziale 25. — „Systemy plików i odzyskiwanie danych" — na stronie 1401. Tego rodzaju błędy mogą pojawić się równieŜ w komputerach wyposaŜonych w dyski o pojemności nie przekraczającej 8,4 GB, które moŜna obsługiwać w trybie CHS. Błędy te wynikają z nieprawidłowego wyboru rodzaju translacji wykonywanej przez BIOS. Translacja stosowana jest dla dysków o pojemnościach z zakresu od 528 MB do 8,4 GB, a polega na zamianie wartości CHS dysków na wartości umoŜliwiające dostęp do całej pojemności dysku (do 8,4 GB) systemom DOS i Windows. PrzewaŜnie dostępne są trzy ustawienia translacji — moŜe ona być wyłączona (opcja Normal) lub włączona w trybie CHS albo LBA. Translacja wykorzystująca wartości CHS uaktywniana jest przez wybór opcji Large, a wykorzystująca wartości LBA — poprzez wybór opcji LBA. JeŜeli dysk został podzielony na partycje i sformatowany w trybie translacji LBA, ale następnie zmieniono rodzaj translacji na CHS, program ładujący umieszczony w BlOS-ie uŜyje nieprawidłowych sektorów, co moŜe spowodować nieodnalezienie prawidłowego rekordu MBR lub nieodnalezienie prawidłowego rekordu VBR wolumenu systemowego. Spowoduje to pojawienie się jednego z wymienionych wcześniej komunikatów lub wyświetlenie przez MBR komunikatu: Missing operating system (Brak systemu operacyjnego). A zatem, jeśli w komputerze wyposaŜonym w dysk twardy o pojemności od 540 MB do 8,4 GB (7,9 GiB) wystąpią tego typu błędy, wtedy naleŜy sprawdzić ustawienia translacji. W przypadku niektórych starszych wersji BIOS-u Hi-Flex i WinBIOS (interfejs graficzny) firmy AMI ustawienie translacji nie znajduje się w oknie konfiguracji dysku twardego, ale jest umieszczone w oknie menu Achanced lub Built-in Peripherals, gdzie moŜna go dokonać, prawidłowo wybierając automatyczną konfigurację dysku.