Boot.ini
Plik standardowo znajduje się na partycji systemowej C:\. Litera partycji może być oczywiście inna.
Budowa pliku Boot.ini
Posłużymy się domyślnym plikiem Boot.ini z systemu operacyjnego Windows XP (w menu nazywa
się on XP):
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="XP" /noexecute=optin /fastdetect
Składniki
Jeśli przyjrzymy się bliżej temu plikowi, to zauważymy, że składa się on z dwóch sekcji: [boot
loader] oraz [operating systems]. Zacznijmy od tej pierwszej.
[boot loader]
• timeout - Jest to czas określony w sekundach, w ciągu którego użytkownik musi
zdecydować, który z zainstalowanych systemów będzie uruchomiony (o ile oczywiście
wybór taki umożliwia posiadanie dwóch lub więcej systemów operacyjnych). Podanie
wartości 0 spowoduje, że menu w ogóle nie będzie wyświetlane (automatycznie
uruchamiany będzie system domyślny). Przypisanie wartości -1 oznaczać będzie brak
jakiegokolwiek limitu czasowego (system będzie oczekiwał bezterminowo na reakcję
użytkownika).
• default - Ta pozycja jest zawsze, bez względu na ilość zainstalowanych systemów
operacyjnych i wynika bezpośrednio z drugiej sekcji [operating systems], wskazując
domyślny system operacyjny.
[operating systems]
• multi - Parametr ten określa kontroler dysku i powinien mieć zawsze wartość 0.
• disk - Podobnie jak wyżej, jego wartość powinna być ustawiona na 0.
• rdisk - Określa numer dysku (w ramach sterownika NTBOOTDD.SYS), na którym znajduje
się partycja rozruchowa. Wartość 0 najczęściej oznacza dysk Primary (pierwszy dysk ma
numer 0).
• partition - Ten parametr określa numer kolejnej partycji na dysku, na której jest
zainstalowany system operacyjny (partycje numerowane są od liczby 1, gdyż cyfra 0 jest
zarezerwowana dla wolenj przestrzeni). Należy także pamiętać, że partycje podstawowe
numerowane są przed partycjami logicznymi.
• \WINDOWS - Parametr ów określa katalog główny partycji (wskazanej w parametrze
partition), na której zainstalowany jest system operacyjny. Po tym parametrze występuje
nazwa zainstalowanego systemu (po znaku równości i objęta jest w cudzysłów) i może być
ona dowolna, np. "Mój własny komputer"
Cała ścieżka: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS nosi nazwę ścieżki ARC (Advanced
RISC Computing). Każdy dodatkowo zainstalowany system (z rodziny systemów Windows)
automatycznie powoduje dopisanie odpowiedniej ścieżki ARC (zgodnej z samym systemem) do
pliku Boot.ini. Na końcu tej ścieżki mogą znajdować się różne przełączniki, których zastosowanie
może ulepszyć i usprawnić pracę naszego systemu, a których opis (tych najbardziej przydatnych)
znajduję się poniżej:
Przełączniki
• \sos - Powoduje wyświetlanie nazwy każdego ładowanego sterownika, liczby procesorów
w systemie, rozmiaru zainstalowanej pamięci RAM, a także numeru pakietu serwisowego
(SP1 lub SP2) oraz wersję build systemu.
• \noguiboot - Zastosowanie tego przełącznika spowoduje wyłączenie wyświetlania
ekranu rozbiegowego.
• \fastdetect - Przy dopisaniu tego przełącznika system zrezygnuje z wykrywania
urządzeń podłączonych do portów równoległych i szeregowych (Windows XP wykonuje to
zadanie bez względu na zastosowanie tego przełącznika w ramach sterowników Plug and
Play, a dopisanie tegoż do Boot.ini przyśpieszy ładowanie systemu).
• \debug - W czasie ładowania systemu, automatycznie ładowany i uruchamiany jest
debugger.
• \basevideo - Podczas uruchamiania systemu zostanie załadowany standardowy
sterownik VGA, co może pomóc wyeliminować błędy z ustawieniami sterownika
ekranowego.
• \bootlog - Cała procedura ładowania systemu zostanie zapisana w pliku ntbtlog.txt w
katalogu systemowym (C:\Windows).
• \crashdebug - Podobnie jak w przypadku \debug, ale debugger nie zostanie
uruchomiony do momentu zawieszenia się systemu (np. BSOD). Opcja przydatna w
przypadku częstych awarii systemu.
• \nodebug - Debugger nie jest ładowany wraz ze startem systemu.
• \maxmem:n - Określa maksymalną ilośc pamięci RAM, jaką może użyć system podczas
pracy, gdzie n, to liczba wyrażona w MB, np.: maxmem:128.
• \safeboot:przełącznik - Uruchamia system w Trybie Awaryjnym z opcjami
uzależnionymi od zastosowanego przełącznika, i tak:
• minimal - ładowane są tylko podstawowe sterowniki, niezbędne do uruchomienia
systemu.
• network - podobnie jak wyżej, ale dodatkowo załadowane zostaną sterowniki
sieciowe.
• minimal (alternate shell) - tak samo jak minimal, ale system zostanie uruchomiony
w trybie Wiersza Poleceń.
• \noexecute=przełącznik - Funkcja, która pojawia się tylko w systemie Windows
XP SP2 (lub po zainstalowaniu samego dodatku Service Pack 2). Umożliwia
konfigurowanie funkcji DEP (Data Execution Prevention - Zapobieganie Wykonywania
Danych) poprzez dobranie odpowiednich parametrów, i tak:
• AlwaysOn - Z tym przełącznikiem, funkcja DEP jest zawsze włączona dla
wszystkich uruchomionych procesów. Nie działa nawet lista wyjątków dla
wybranych procesów.
• AlwaysOff - Funkcja Zapobiegania Wykonywania Danych jest wyłączona dla
wszystkich składników systemu.
• OptOut - DEP zostaje włączona a użytkownik może samodzielnie określić listę
aplikacji (procesów), które będą wyłączone spod ochrony tejże funkcji.
• OptIn - Ustawienie domyślne. W przypadku, kiedy procesor pracuje w trybie
zgodności z funkcją DEP, ochroną zostają objęte wszystkie aplikacje zgodne z DEP.
Przykłady:
Chcemy, aby operacja ładowania systemu (lista aplikowanych sterowników) była zapisana do
pliku, gdyż chcemy się dowiedzieć, który sterownik nie został prawidłowo uruchomiony i przez to
nasz system nie ładuje się prawidłowo, wyświetlając niezrozumiały dla nas komunikat. Dodatkowo
chcemy, aby system uruchomił się w Trybie Awaryjnym z możliwością korzystania z zasobów
sieciowych. Plik Boot.ini powinien w tym przypadku wyglądać tak:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="XP" /noexecute=optin /fastdetect
/bootlog /safeboot:network
Przykładowy plik ntbtlog.txt wygląda następująco (jest to tylko jego fragment, całość jest znacznie
dłuższa):
Dodatek Service Pack 2
Załadowany sterownik. \WINDOWS\system32\ntkrnlpa.exe
Załadowany sterownik. MountMgr.sys
Załadowany sterownik. viamraid.sys
Załadowany sterownik. \WINDOWS\system32\DRIVERS\SCSIPORT.SYS
Załadowany sterownik. disk.sys
Załadowany sterownik. \WINDOWS\system32\DRIVERS\CLASSPNP.SYS
Załadowany sterownik. Klpid.sys
Załadowany sterownik. Klpf.sys
Załadowany sterownik. \WINDOWS\System32\drivers\TDI.SYS
W przypadku nie uruchomienia przez system któregoś ze sterowników, komunikat ten
(przykładowo) będzie wyglądał następująco:
Sterownik nie został załadowany.
\SystemRoot\System32\Drivers\PCIDump.SYS
Jeden system - trzy tryby ładowania chcemy mieć możliwość wyboru pomiędzy trybami
uruchamiania i tak będzie: Tryb normalny, Tryb śledzenia oraz Tryb awaryjny. Systemem
domyślnym będzie XP. Czas na dokonanie wybory spośród poszczególnych trybów będzie wynosił
20s.
* Tryb normalny - standardowe ustawienia i standardowe ładowanie systemu.
* Tryb śledzenia - procedura uruchamiania będzie zapisywana do pliku ntbtlog.txt, na ekranie
rozbiegowym widzieć będziemy całą procedurę ładowania systemu.
* Tryb awaryjny - system uruchomi się w Trybie Awaryjnym z możliwością korzystania z
Internetu, ale z ograniczoną ilością pamięci RAM (128 MB), którą będzie mógł wykorzystać.
Plik Boot.ini w takim przypadku powinien wyglądać następująco:
[boot loader]
timeout=20
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP
Home Edition" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Tryb śledzenia"
/noexecute=optin /fastdetect /bootlog /sos
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Tryb awaryjny"
/noexecute=optin /fastdetect /safeboot:network /maxmem:128
Dwa systemy
Zakładamy, że na dysku twardym zainstalowany jest Windows XP Home Edition oraz Windows
2000 Professional, a każdy z nich na oddzielnej partycji, kolejno 1 i 2. Systemem domyślnym
będzie Windows 2000 Professional. Podczas uruchamiania nie będzie widoczny ekran rozbiegowy
Windows XP Home Edition (w przypadku takiego właśnie wyboru) a czas, w jakim będziemy
musieli dokonać wyboru, wynosić będzie 40s. Plik Boot.ini powinien mieć następującą postać:
[boot loader]
timeout=40
default=multi(0)disk(0)rdisk(0)partition(2)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP
Home Edition" /noexecute=optin /fastdetect /noguiboot
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows 2000
Professional" /fastdetect
Problemy
Uszkodzenie tego pliku, nieprawidłowe ścieżki do katalogów systemowych lub po prostu jego brak,
najczęściej prowadzi do tego, że system w ogóle się nie uruchomi, aczkolwiek może zastartować
bez tego pliku pod warunkiem, że system zainstalowany jest na pierwszej partycji pierwszego
dysku twardego. Nie jest to jednak regułą i nie należy na to zbytnio liczyć! Do naprawy pliku
Boot.ini służy komenda bootcfg. Polecenie to wydajemy z poziomu Konsoli Odzyskiwania i
wygląda ono następująco:
cd C:\
bootcfg /rebuild
Gdzie: C - to lietra partycji systemowej.
Dwa wpisy, dwie partycje, jeden system
Przykład 1
Zainstalowaliśmy dwa systemy operacyjne, każdy na oddzielnej partycji. Po jakimś czasie
stwierdziliśmy, że nie są nam tak właściwie potrzebne dwa systemy i jednego z nich się
pozbywamy. Podczas uruchamiania systemu jednak wciąż mamy możliwość wyboru pomiędzy
dwoma systemami. Który z wpisów w pliku Boot.ini należy skasować?
Załóżmy, że mamy do czynienia z Windows XP Home Edition oraz Windows XP Professional.
Tym, którego się pozbyliśmy (doinstalowany po instalacji Windows XP Home Edition) jest
Windows XP Professional, a instalacja miała miejsce na drugiej partycji. Plik Boot.ini będzie miał
taką postać:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP
Home Edition" /noexecute=OptIn /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP
Professional" /noexecute=OptIn /fastdetect
Kasujemu wpis drugi.
Przykład 2.
Podobna sytuacja jak wyżej, ale oboma systemami są Windows XP Home Edition i nie jesteśmy
pewni, na jakiej partycji był instalowany ten drugi. Plik może wyglądać tak:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP
Home Edition" /noexecute=OptIn /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP
Home Edition" /noexecute=OptIn /fastdetect
Kasujemy pierwszy wpis. Dlaczego? Ponieważ domyślnie systemem ładowanym jest ten
umieszczony na partycji 2, co widać w ścieżce default (wskazującej domyślny system):
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
Dwa wpisy, jedna partycja, jeden system
Mamy jedną partycję, instalowaliśmy drugi system na tej samej partycji, co domyślny system
operacyjny. Przy uruchamianiu wciąż widnieje wybór pomiędzy dwoma systemami, mimo, iż drugi
w kolejności został odinstalowany. Plik Boot.ini może mieć postać:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP
Home Edition" /noexecute=OptIn /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP
Home Edition" /noexecute=OptIn /fastdetect
Który wpis skasować? Drugi. Dlaczego? Instalując system operacyjny automatycznie tworzony jest
plik Boot.ini i ma on tylko jedną scieżkę ARC. Każda następna (innego systemu operacyjnego)
instalacja tworzy kolejną ścieżkę ARC po sobie i pod poprzednią, dlatego też parametr partition jest
numerowany od cyfry 1. W przypadku instalacji na partycji systemowej drugiego systemu parametr
partition nie może przyjąć wartości 2, co jest logiczne, gdyż instalacja miała miejsce na partycji 1,
stąd oba wpisy są identyczne, ale pamiętając o tym, że kolejne ścieżki ARC są dopisywane do
Boot.ini po sobie, należy w 99% przypuszczać, że błędnym wpisem jest właśnie ten drugi.
Oczywiście jeżeli oba wpisy są IDENTYCZNE to możemy skasować dowolny z nich oczywiście
razem z ewentualną pozostałą pusta linijką.
Plik wymiany systemu Windows.
Po zainstalowaniu Windows system ustala domyślnie
położenie pliku wymiany na partycji C: i pozostawia
sobie (systemowi) kontrolę rozmiaru tego pliku. Nie jest
to najlepsze rozwiązanie dla wydajności systemu.
Aby zmienić te ustawienia kliknijmy prawym
przyciskiem na ikonę Mój komputer i z menu wybierzmy
pozycję Właściwości. Przejdźmy na zakładkę
Zaawansowane i w sekcji Wydajność kliknijmy w
przycisk Ustawienia. W nowym oknie ponownie
przejdźmy na zakładkę Zaawansowane. Następnie
kliknijmy w przycisk Zmień znajdujący się w sekcji
Pamięć wirtualna.
Zmieńmy teraz wartości według naszego uznania.
Eksperci twierdzą że optymalna dla systemu wykorzystywanego w domu jest wartość 1.5*RAM.
Dla czego tyle? Im większy plik wymiany tym Windows więcej rzeczy tam będzie trzymał ... a plik
wymiany jest wolniejszy niż pamięć RAM. Natomiast bardzo mały plik wymiany .... lub jego
całkowity brak może spowodować niestabilną pracę systemu. Plik wymiany można ustawić na
dowolnym dysku twardym więc najlepiej by było jak by to była partycja na innym dysku niż
systemowy ... i aby ten dysk był wykorzystywany tylko jako plik wymiany dla Windowsa.
Ćwiczenia:
1. Dodaj do menu startowego 2 kolejne opcje (w sumie powinny być 3 opcje).
Opcji pierwszej nie zmieniamy:
Opcja 2 powinna mieć nazwę Twoje imię i nazwisko opcja 3 powinna mieć nazwę twój numer w
dzienniku.
Opcja 2 ma uruchamiać Windows w trybie awaryjnym z ograniczeniem do 112 MB pamięci ram
Opcja 3 ma uruchamiać Windows normalnie ale dane z uruchomienia zapisywać do pliku
ntbtlog.txt