r02-09.doc

(480 KB) Pobierz
Wstęp

              Rozdział 2. u Aktualizowanie i automatyczne instalowanie systemu              55

 

Rozdział 2.
Aktualizowanie
i automatyczne
instalowanie systemu

W rozdziale 1. „Instalowanie i konfigurowanie Windows 2000” omówione zostało zagadnienie przygotowania komputera do instalacji. Szczegółowo przedstawiono tam również cały proces instalowania systemu. Ten rozdział jest niejako kontynuacją problematyki pierwszego rozdziału, przy czym większa uwaga została skupiona na aktualizowaniu systemu.

Generalnie istnieje możliwość dostosowania prawie wszystkich systemów Windows do Windows 2000. Ponieważ większość użytkowników korzysta z 32-bitowych systemów operacyjnych, aktualizacje systemu będą zazwyczaj przeprowadzane na Windows 9x albo NT. W tym rozdziale znajdziesz szczegółowe omówienie następujących zagadnień:

n        Przegląd funkcji aktualizowania NT4.

n        Szczegółowy opis procesu aktualizowania systemu NT4.

n        Przegląd funkcji aktualizowania Windows 9x.

n        Szczegółowy opis procesu aktualizowania systemu Windows 9x.

n        Automatyczne rozprzestrzenianie Windows 2000 za pomocą klonowania, usługi zdalnej instalacji oraz skryptów instalacyjnych.

Omówienie zagadnienia instalowania i aktualizowania Windows 2000 byłoby niepełne, bez przypomnienia o jednym z najbardziej użytecznych narzędzi administratora Terminal Services (Usługi terminalowe).

Przed skoncentrowaniem się na problemie aktualizacji systemu, należy zwrócić uwagę na sposób ładowania i inicjowania Windows 2000. Jest to uwarunkowane tym, że oprócz problemów sprzętowych dokładnie omówionych w poprzednim rozdziale książki, do powszechnych problemów instalacyjnych należy niewłaściwy sposób ładowania systemu.

Opis funkcyjny procesu ładowania
systemu Windows 2000

Komputery są podobne do samolotów, które są najbardziej podatne na awarie podczas startowania i lądowania. W tej części rozdziału znajdziesz szczegółową analizę procesu ładowania Windows 2000, ze szczególnym uwzględnieniem rozwiązywania problemów procesów aktualizacji i instalacji.

Wewnętrzny test systemu (POST — Power On Self Test)

Pierwszą czynnością dowolnego komputera bazującego na sprzęcie Intel, jest wykonanie wewnętrznego testu systemu (POST — Power On Self Test). W zależności od systemu, wykonywane są różne czyn­ności, które kończą się krótkim sygnałem akustycznym.

Ostatnią czynnością testową jest sprawdzenie urządzeń, w których może znajdować się oprogramowanie wprowadzające system. Zazwyczaj program sprawdzania rozpoczyna pracę od dysku A: (stacja dysków), a następnie przechodzi do dysku C:, który jest albo głównym dyskiem IDE na podstawowym kontrolerze IDE, albo dyskiem SCSI identyfikowanym w BIOS-ie SCSI jako dysk startowy. Niektóre systemy udostępniają również możliwość inicjowania z napędu CD-ROM.

Inicjalizowanie ładowania początkowego

Jeżeli system znajdzie główny rekord wprowadzający (MBR — Master Boot Record) na dysku C:, ładuje kod wykonawczy i używa go do skanowania tablicy partycji na końcu rekordu, w celu znalezienia segmentu/offsetu aktywnej partycji ładowania początkowego.

Jeżeli rekord nie może znaleźć odpowiedniego wpisu na tablicy partycji, wyświetlany jest komunikat błędu Invalid Partition Table (Nieprawidłowa tablica partycji). Jeżeli jednak tablica partycji zostanie znaleziona, lecz nie uda się odnaleźć początku aktywnej partycji, wyświetlony zostanie komunikat błędu Error Loading Operating System (Błąd ładowania systemu operacyjnego).

Gdy kod wykonawczy w rekordzie głównym (MBR — Master Boot Record) znajdzie aktywną partycję, pierwszy sektor (512 bajtów) ładowanych jest pamięci pod adres 0x007h. Ten sektor pamięci jest nazywany sektorem rozruchowym (boot sector). Sektor rozruchowy zawiera kod wykonawczy, którego zadaniem jest znalezienie i załadowanie drugiego programu ładowania wprowadzającego, jakim w systemie DOS jest IO.SYS, natomiast w Windows 2000/NT — NTLDR. Kod wykonawczy w sektorze rozruchowym nie jest w stanie czytać systemu plików, dlatego też NTLDR musi być na początku dysku startowego.

Jeżeli plik NTLDR nie zostanie znaleziony albo załadowany, kod bootsektora wyświetli komunikat błędu, jak np. A disk read error had occurred (Pojawił się błąd odczytu dysku), albo NTLDR is missing (Brakuje pliku NTLDR), albo NTLDR is compressed (Plik NTLDR jest skompresowany). Bez względu na komunikat, wyświetlona zostanie również instrukcja Press Ctrl+Alt+Del to restart (Naciśnij Ctrl+Alt+Del, aby ponownie uruchomić komputer).

Wersje programu NTLDR

Program NTLDR systemu Windows 2000 może ładować pliki ładowania wprowadzającego systemu NT4, lecz odwrotna sytuacja jest niemożliwa. Pamiętaj o tym podczas wgrywania nowszego pakietu Service Pack NT4 albo wykonywania awaryjnej naprawy na komputerze posiadającym dwa systemy operacyjne. Jeżeli wykonasz te czynności w systemie NT4, NTLDR zostanie nadpisany, co uniemożliwi załadowanie Windows 2000.

Jeżeli omyłkowo nadpiszesz nowszą wersję NTLDR, zawsze możesz ponownie ją zamienić na kopię pliku z innego komputera Windows 2000. Ten sam plik NTLDR jest używany w Windows 2000 Server i Professional.

NTLDR

Działanie programu NTLDR rozpoczyna się od inicjalizacji wideo — uruchamiany jest czarno-biały ekran w trybie 80´25. Następnie procesor przełączany jest w tryb chroniony, w celu obsłużenia 32-bitowego adresowania pamięci. Uruchamiane są także zminia­turyzowane wersje sterowników systemów plików NTFS i FAT. Sterowniki te pozwalają, aby NTLDR mógł widzieć wystarczający obszar dysku, by załadować pozostałe pliki systemowe Windows 2000.

Następnie NTLDR ładuje plik BOOT.INI, który zawiera menu początkowe (boot menu) Windows 2000. Więcej informacji na temat piku BOOT.INI znajdziesz w dalszej części rozdziału, zatytułowanej „Praca z plikiem BOOT.INI”. Jeżeli NTLDR nie może znaleźć BOOT.INI, wyświetlany jest komunikat błędu Windows 2000 could not start because the following file is missing or corrupt: BOOT.INI (Windows 2000 nie może zostać uruchomiony, ponieważ następujący plik jest brakujący lub uszkodzony: BOOT.INI). Jeżeli BOOT.INI znajduje się we właściwym miejscu, lecz nie zawiera prawidłowego kodu, może zostać wyświetlona dowolna ilość błędów. Generalnie błędy te dotyczą problemów ze ścieżkami ARC albo oprogramowania ARC.

Jeżeli Windows 2000 jest instalowany jako dodatek do istniejącego systemu operacyjnego, jak np. Windows 9x albo DOS, sektor startowy poprzedniego systemu zostanie zapisany w pliku BOOTSECT.DOS. Wybór alternatywnego systemu operacyjnego będzie możliwy dzięki menu zapisanemu w BOOT.INI. Jeżeli użytkownik zechce załadować alternatywny system, NTLDR załaduje do pamięci zawartość pliku BOOTSECT.DOS pod adres 700h, wróci do trybu rzeczywistego i przekaże kontrolę do kodu wykonaw­czego w sektorze startowym.

Jeżeli partycja Windows 2000 zostanie wybrana z menu początkowego, program NTLDR wyszuka kopię jądra systemu operacyjnego Windows 2000 (NTOSKRNL.EXE), po­wiązany z nim sterownik abstrakcyjnej warstwy sprzętowej (HAL.DLL) oraz sterownik wideo (BOOTVID.DLL). Jeżeli NTLDR znajdzie wszystkie trzy pliki, załaduje je, lecz ich nie wykona. Jeżeli plik NTOSKRNL.EXE nie zostanie znaleziony, wyświetlony zostanie komunikat błędu Windows 2000 could not start because the following file is missing or corrupt: \<winnt root>\system32\NTOSKRNL.EXE (Windows 2000 nie może zostać uruchomiony, ponieważ następujący plik jest brakujący lub uszkodzony: \<winnt root>\system32\NTOSKRNL.EXE). Najbardziej prawdopodobną przyczyną błędu jest nieprawidłowy wpis w pliku BOOT.INI, jakkolwiek możliwe jest również zniekształcenie systemu plików.

Zanim NTLDR wykona pracę jądra, najpierw będzie musiał zdobyć informacje dotyczące sprzętu. Właśnie do tego celu służy NTDETECT.COM.

Alternatywny sterownik SCSI

W większości przypadków, jeżeli system używa dysków twardych SCSI, interfejs SCSI posiada BIOS, który określa urządzenia magistrali będące pamięciami masowymi. Kolejność wypunktowania urządzeń zależy od identyfikatora SCSI. Jeżeli karta SCSI nie posiada BIOS-u albo jeżeli BIOS został zablokowany, NTLDR musi znaleźć jakiś sposób pozwalający na określenie lokalizacji dysków według ścieżek ARC w BOOT.INI.

Gdy instalator wykryje, że interfejs SCSI nie udostępnia BIOS-u, pobiera sterownik interfejsu SCSI, kopiuje go na początek partycji wprowadzania systemu i zmienia jego nazwę na NTBOOTDD.SYS. Jeżeli wpis BOOT.INI wskazuje, że urządzenie pamięci masowej jest dyskiem SCSI utrzymywanym bez BIOS-u, program NTLDR może załadować NTBOOTDD.SYS i użyć ministerownika do komunikacji z dyskiem.

NTDETECT.COM

NTLDR rozpoznaje sprzęt używając narzędzia NTDETECT.COM, które udostępnia takie same informacje w komputerze Intel, jakie komputer RISC uzyskuje sprzętowo. Staraj się nie mylić narzędzia NTDETECT z menedżerem Plug and Play. Czynności systemu Plug and Play są wykonywane w znacznie dalszych etapach ładowania systemu operacyjnego.

NTDETECT wyszukuje następujące konfiguracje sprzętowe (typy CPU i FPU są wykrywane później przez NTOSKRNL.EXE i HAL.DLL):

n        identyfikator komputera,

n        typ magistrali/karty,

n        wideo,

n        klawiaturę,

n        port komunikacyjny,

n        port równoległy,

n        stację dysków,

n        mysz.

Informacje te są wykorzystywane do budowania struktury danych, które w późniejszym czasie używane są przez sterowniki jądra do stworzenia grupy rejestru nazywanej Hardware.

W tym miejscu powrócimy do etapu ładowania systemu, kiedy to NTLDR rozpocznie ładowanie sterowników.

Ładowanie sterowników

NTLDR otwiera grupę System w rejestrze systemowym i sprawdza klucz Select w celu znalezienia aktualnych ustawień. Następnie skanuje listę kluczy Services w CurrentControlSet szukając urządzeń z wartością Start równą 0 (Service_Boot_Service) oraz równą 1 (Service_System_Start). Na podstawie porządku określonego poprzez wartość Group w Control|Service Group Order następuje ładowanie sterowników.

W tym miejscu na konsoli widoczny jest komunikat Starting Windows 2000 (Trwa uruchamianie systemu Windows 2000) wraz z paskiem postępu informującym o stanie procesu. Na zakończenie, po załadowaniu wszystkich sterowników, NTLDR zapoczątkowuje NTOSKRNL.EXE.

Inicjalizowanie jądra

Po uruchomieniu NTOSKRNL inicjalizowany jest plik HAL.DLL i BOOTVID.DLL, a na ekranie pojawia się tryb graficzny. Następnie NTOSKRNL inicjalizuje sterowniki przygotowane przez NTLDR. Plik korzysta również z informacji uzyskanych z NTDETECT.COM, w celu utworzenia w rejestrze przejściowej grupy Hardware. Wywoływany jest także menedżer sesji (SMSS.EXE).

Menedżer sesji

Menedżer sesji odczytuje swój własny klucz w grupie System w HKLM|System|Cur­rentControlSet|Control|Session Manager, w celu znalezienia wpisu pod BootExecute. Menedżer sesji przeprowadza konfigurację pliku stronicowania (PAGEFILE.SYS), jak również ładuje plik AUTOCHK, będący wersją CHKDSK, używaną podczas ładowania systemu.

Wskazówka rejestru: Używanie pliku AUTOCHK

AUTOCHK standardowo jest uruchamiany w trybie tylko do odczytu, dlatego też błędy mogą być wykryte, lecz nie naprawione. Istnieje jednak możliwość zmuszenia AUTOCHK do rozwiązywania problemów systemu plików (w analogiczny sposób do działania Chkdsk /f), poprzez umieszczenie /p po jego wpisie w rejestrze.

Klucz:         HKLM|System|CurrentControlSet|Control|Session Manager

Wartość:       BootExecute

Dane:          Autochk * /p

Po zakończeniu działania menedżera sesji, wykonywane są następujące dwie czynności:

n        Ładowana jest usługa logowania (WINLOGON.EXE) w celu rozpoczęcia procesu weryfikacji autentyczności użytkownika. WINLOGON uruchamia lokalny podsystem zabezpieczenia (LSASS.EXE) oraz program buforujący (SPOOLSS.EXE) wraz ze wszystkimi niezbędnymi bibliotekami.

n        Ładowany jest kontroler usług (SCREG.EXE) w celu zakończenia ładowania pozostałych narzędzi i usług.

...

Zgłoś jeśli naruszono regulamin