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.