Podczas startu naszego komputera z naszego dysku uruchamiany
jest bootloader. To właśnie on odpowiada za załadowanie
prawidłowego jądra systemu, czy też przekazywanie do jądra
specjalnych parametrów. Dla architektur x86 mamy do wyboru jeden
z dwóch bootloaderów:
LILO oraz
Grub (brak wersji 64 bit).
Parametry jadra
Oba bootloadery pozwalają na przekazywanie do jądra
specjalnych parametrów, dzięki którym możemy wpływać na start
lub pracę systemu jeszcze przed jego załadowaniem. Parametry
przekazane przed startem systemu będą przesłaniać te użyte
w konfiguracji bootloadera. W poniższej
tabeli przedstawiono najczęściej używane opcje.
Przekazywanie parametrów jądra wygląda podobnie w
obu wypadkach, po włączeniu specjalnego trybu w
bootloaderze otrzymujemy wiersz, na końcu którego
dopisujemy potrzebne nam parametry lub modyfikować
istniejące.
Poniżej przedstawiamy przykładowe dodanie parametru
init w bootloaderze Grub:
grub append> root=/dev/sda2 init=/bin/sh |
Tryb modyfikacji parametrów startowych w Grubie
aktywujemy przez wciśnięcie klawisza e,
w przypadku LILO wpisujemy etykietę obrazu, jeśli to
jest graficzne LILO to użyjemy klawisza
tab.
Parametr |
Znaczenie |
Przykład |
{$nr}/single |
Cyfra (1-5) wskazująca który poziom
uruchomieniowy (run level), opcja
single to tryb jednego użytkownika.
Dzięki nim opcjom można przesłonić
ustawienie opcji
initdefault z pliku
/etc/inittab.
Więcej o poziomach pracy w
tym dokumencie, zaś o pliku
/etc/inittab przeczytamy w
tym dokumencie.
|
single lub
1
|
root={$urządzenie} |
Wskazanie urządzenia (partycji) na
którym znajduje się główny system
plików. Wartością parametru może być
ścieżka do urządzenia w katalogu
/dev (np.
/dev/hda1) lub
wartość liczbowa powstała z połączenia
szesnastkowej
wartości liczb major
i minor urządzenia.
Major podajemy w postaci jednej cyfry,
natomiast minor powinien być już
rozwinięty do dwóch.
Przykładowo urządzenie o wartościach
major 3 i minor 1 będzie przedstawiane
jako 301,
0301 lub
0x301 (wartości 3
i 1 są takie same w systemie dziesiętnym
i szesnastkowym).
Urządzenia oraz liczby major i minor
szerzej opisano w
tym dokumencie
|
root=/dev/hda1 lub
root=0x301
|
init={$program} |
Wskazanie programu, który ma zostać
użyty zamiast domyślnego programu
Init;
opcja używana w krytycznych sytuacjach,
np. gdy system nie może zostać uruchomiony
nawet w trybie single.
|
init=/bin/bash |
vga={$tryb} |
Wskazanie trybu bufora ramki, więcej
o buforze ramki w następnym rozdziale.
|
vga=0x303 |
Opis wybranych parametrów jądra zamieszczono na stronie
http://www.jtz.org.pl/Html/BootPrompt-HOWTO.pl.html,
zaś pełną ich listę odnajdziemy w dokumentacji
jądra, w pliku
/usr/src/linux/Documentation/filesystems/devfs/boot-options
Są również specjalne parametry, które przekazuje się do jądra
w trakcie pracy systemu, opisaliśmy je w
tym dokumencie.
MBR czy bootsector?
Oba bootloadery mają możliwość instalacji zarówno w
obszarze MBR dysku, jak i bootsectorze partycji. Instalacja
w MBR jest dosyć wygodna i o wiele bardziej popularna,
dlatego właśnie tam powinniśmy instalować bootloader.
Instalacja w bootsectorze w wypadku niektórych systemów
plików (np. XFS) jest niemożliwa, gdyż ich superblok
jest umieszczany na samym początku partycji - w
miejscu które powinno być zarezerwowane dla bootloadera.
Frame buffer (bufor ramki)
Frame Buffer (bufor ramki) to m.in. mechanizm pozwalający
na pracę konsoli w wyższych rozdzielczościach. Aby go
włączyć przekazujemy parametr vga przy
uruchomieniu bootloadera
lub dodajemy go do pliku konfiguracji np.:
Sposób dodania tej opcji do pliku konfiguracji bootloadera
opisano w dotyczących ich rozdziałach.
Wartość opcji vga to numer trybu
graficznego dla danej rozdzielczości i głębi koloru,
listę dostępnych trybów przedstawiono w poniższej tabeli.
Kodowe oznaczenia trybów bufora ramki możemy podawać
zarówno szesnastkowo jak i dziesiętnie, dlatego też
w tabeli, obok wartości szesnastkowych umieszczono
wartości w systemie dziesiętnym (w nawiasach).
Głębia koloru |
640x480 |
800x600 |
1024x768 |
1280x1024 |
256 (8 bit) |
0x301 (769) |
0x303 (771) |
0x305 (773) |
0x307 (775) |
32k (15 bit) |
0x310 (784) |
0x313 (787) |
0x316 (790) |
0x319 (793) |
65k (16 bit) |
0x311 (785) |
0x314 (788) |
0x317 (791) |
0x31A (794) |
16M (24 bit) |
0x312 (786) |
0x315 (789) |
0x318 (792) |
0x31B (795) |
Zamiast wskazywać konkretny tryb możemy opcji
vga przypisać wartość
ask, dzięki temu jądro pozwoli wyświetlić
listę trybów i wybrać jeden z nich.
Więcej o buforze ramki dowiemy się z dokumentacji kernela,
jeśli zainstalowaliśmy pakiet z dokumentacją jądra to
znajdziemy ją w katalogu
/usr/src/linux/Documentation/fb.
|