|
1.
Podejmowanie decyzji
Wprowadzenie
Po skonfigurowaniu jądra i modyfikacji odpowiednich plików konfiguracyjnych
systemu, można przejść do etapu instalacji programu, który uruchomi jądro w
momencie uruchomienia systemu. Taki program nazywa się bootloader.
Dla architektury ${arch}, Gentoo posiada dwa takie programy: GRUB oraz LILO.
Przed instalacją któregokolwiek z nich opiszemy jeszcze jak skonfigurować bufor
ramki, program umożliwiający poprawę wyglądu konsoli. Jeśli użytkownik nie chce
korzystać z bufora ramki, może pominąć rozdział o nim.
Opcjonalnie: Bufor ramki
Jeżeli jądro zostało skompilowane z obsługą bufora ramki (lub użyto
genkernela), należy dodać parametr video w odpowiednim miejscu
pliku konfiguracyjnego bootloadera, aby go aktywować.
Najważniejszą informacją jaką należy poznać przed rozpoczęciem konfiguracji jest
nazwa używanego urządzenia bufora ramki. Jako sterownika VESA powinniśmy
użyć uvesafb.
Parametr video odpowiada za opcje wyświetlania bufora ramki. Wszystkie
jego zmienne znajdują się w pliku
/usr/src/linux/Documentation/fb/uvesafb.txt. Oto najważniejsze z
nich:
| Zmienna |
Opis |
| ywrap |
Włącza zawijanie pamięci karty graficznej
|
| mtrr:n
|
n może być:
0 - disabled
1 - uncachable
2 - write-back
3 - write-combining
4 - write-through
|
Docelowa opcja powinna wyglądać tak
video=uvesafb:mtrr:3,ywrap,1024x768-32@85. Warto ją zapisać, niedługo
będzie potrzebna.
Kolejny punkt instalacji to instalacja GRUB-a lub
LILO
1.
Domyślnie: Użycie programu GRUB
Wyjaśnienie terminologii związanej z GRUB
Najważniejszym czynnikiem prowadzącym do zrozumienia programu GRUB jest pojęcie
jego sposobu odnoszenia się do dysków i partycji. Partycja
/dev/sda1 lub /dev/sda1 jest określana przez GRUB-a
jako (hd0,0). Zauważmy nawiasy po obu stronach
hd0,0 - ich użycie jest wymagane.
Dyski twarde są liczone od zera, a nie od "a". Partycje także zaczynają się od
zera, a nie od jedynki. W grupie urządzeń pamięci masowej tylko twarde dyski są
liczone, nie ma to natomiast miejsca w przypadku napędów ATAPI-IDE takich jak
CD-ROM-y i nagrywarki. Ta sama sytuacja ma miejsce w przypadku dysków SCSI.
Normalnie otrzymują one wyższe numery niż dyski IDE, z wyjątkiem sytuacji, gdy
BIOS jest ustawiony na start systemu z urządzenia SCSI.
Zakładając, że w komputerze jest zainstalowany dysk twardy oznaczony jako
/dev/sda, oraz dwa inne urządzenia /dev/sdb i
/dev/sdc, /dev/sdb7 rozumianie będzie jako translated
to (hd1,6). Całość wygląda dość pokrętnie, jednakże GRUB oferuje
mechanizm uzupełniania wiersza polecenia klawiszem TAB, co z pewnością jest
wybawieniem dla tych, którzy mają dużo dysków twardych i partycji, a gubią się
nieco w sposobie numeracji używanym przez program GRUB.
Nadeszła pora na zainstalowanie GRUB-a.
Instalacja programu GRUB
Po pierwsze należy zainstalować program GRUB:
Listing 1.1: Instalowanie GRUB-a |
# emerge grub
|
GRUB został zainstalowany, teraz należy go jeszcze skonfigurować i umieścić w
MBR, aby automatycznie uruchamiał nowo zainstalowane jądra. Najpierw przy pomocy
nano lub dowolnego innego edytora należy utworzyć plik
/boot/grub/grub.conf:
Listing 1.1: Tworzenie /boot/grub/grub.conf |
# nano -w /boot/grub/grub.conf
|
Następnie należy dokonać edycji pliku grub.conf. Poniżej znajdują
się dwa przykłady plików grub.conf, odpowiadające schematowi
partycjonowania użytemu w tym podręczniku. Tylko pierwszy z nich został
wyczerpująco opatrzony komentarzami.
-
Pierwszy grub.conf jest dla osób, które nie wykorzystały
programu genkernel do budowania jądra
-
Drugi grub.conf jest dla tych, którzy użyli programu
genkernel do zbudowania jądra.
Uwaga:
Grub przydziela oznaczenia dysków pobierając je z BIOS-u naszego komputera.
Jeśli zmienimy te ustawienia w BIOS-ie litery dysków mogą ulec zmianie. Dla
przykłady, gdy zmienimy kolejność uruchamiania systemu z poszczególnych
urządzeń, prawdopodobnie będziemy musieli zmienić konfigurację gruba.
|
Uwaga:
Jeśli system plików głównej partycji to JFS, należy dodać "ro" do linii
kernel, gdyż JFS musi odtworzyć swój log zanim pozwoli na montowanie w
trybie do odczytu i zapisu.
|
Listing 1.1: grub.conf dla osób nie używających genkernel |
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Gentoo Linux ${kernel-version}
root (hd0,0)
kernel /boot/${kernel-name} root=/dev/sda3
title Gentoo Linux ${kernel-version} (rescue)
kernel /boot/${kernel-name} root=/dev/sda3 init=/bin/bb
title Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1
|
Listing 1.1: grub.conf dla użytkowników genkernela |
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Gentoo Linux ${kernel-version}
root (hd0,0)
kernel /boot/${genkernel-name} root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/sda3
initrd /boot/${genkernel-initrd}
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1
|
Jeśli użyto innego schematu partycjonowania lub/i obrazu jądra, należy nanieść
odpowiednie poprawki na konfigurację. Należy się wtedy upewnić, że wszystko co
się dopisuje w konfiguracji, jest dopisywane w formacie nazewnictwa urządzeń
specyficznym dla GRUB-a (w stylu (hd0,0)) i jest względne dla
punktu montowania, a nie katalogu głównego. Innymi słowy,
(hd0,0)/grub/splash.xpm.gz powinien być dopisany jako
/boot/grub/splash.xpm.gz w związku z tym, że (hd0,0)
to /boot.
Jeśli wybrano inny schemat partycjonowania, a /boot nie znajduje
się na osobnej partycji, prefiks /boot użyty w powyższych
przykładach jest wciąż wymagany. Jeśli natomiast wybrany schemat
partycjonowania jest taki jak ten w Podręczniku, prefiks w niczym nie
przeszkadza, należy tylko dodatkowo utworzyć odpowiednie dowiązanie symboliczne
o nazwie boot. W skrócie: powyższe przykładowe konfiguracje będą działać bez
względu na to czy utworzono osobną partycję /boot czy nie.
Jeżeli przy uruchomieniu systemu zachodzi potrzeba przekazania do jądra
dodatkowych opcji, wystarczy dopisać je na końcu polecenia kernel. W tym
przykładzie został już dodany parametr (root=/dev/sda3 lub
real_root=/dev/sda3), a wpis można wzbogacić o kolejne. Na przykład można
dodać opcję video dotyczącą bufora ramki, która została opisana wcześniej.
Jeśli konfiguracja naszego programu ładującego zawiera parametr real_root,
należy użyć parametru real_rootflags do ustawienia opcji montowania głównego
systemu plików.
Użytkownicy jąder 2.6.7 i nowszych, którzy przy pomocy zworki ograniczyli
wielkość dysku, ponieważ ich BIOS nie jest w stanie współpracować z większymi
napędami, mogą dodać opcję hdx=stroke, aby korzystać z całego dostępnego
na urządzeniu miejsca.
Użytkownicy programu genkernel powinni wiedzieć, że jądra, które
zbudowali używają tych samych opcji uruchamiania co LiveCD. Na przykład jeżeli
komputer ma zainstalowane urządzenie SCSI, należy dodać parametr doscsi.
Następnie trzeba zapisać plik grub.conf i opuścić edytor. Kolejnym
krokiem będzie dopisanie GRUB-a do MBR.
Twórcy GRUB-a zalecają użycie grub-install. Czasem jednak program ten z
jakiegoś powodu odmawia współpracy. Mimo to, wciąż pozostaje możliwość ręcznego
zainstalowania GRUB-a.
Teraz można przejść do paragrafu Domyślnie:
Instalowanie GRUB-a przy pomocy grub-install lub Alternatywnie: Ręczne instalowanie GRUB-a.
Domyślnie: Instalacja GRUB-a przy pomocy grub-install
Aby zainstalować GRUB-a, należy wpisać komendę grub-install. Nie zadziała
to jednak bez pewnych zmian, bo wciąż działamy w chrootowanym środowisku. Należy
stworzyć plik /etc/mtab (plik z informacjami dotyczącymi
zamontowanych napędów). Na szczęście jest na to prosta metoda, wystarczy
skopiować plik /proc/mounts do /etc/mtab, pomijając
jedynie linię rootfs - o ile nie stworzono osobnej partycji rozruchowej.
W obu przypadkach zadziała następujące polecenie:
Listing 1.1: Tworzenie /etc/mtab |
# grep -v rootfs /proc/mounts > /etc/mtab
|
Następnie przy pomocy grub-install zainstalowany zostaje GRUB:
Listing 1.1: Uruchamianie grub-install |
# grub-install --no-floppy /dev/sda
|
Więcej informacji o GRUB-ie można znaleźć w dokumentach: GRUB FAQ i GRUB Manual.
Następnie należy przejść do części Ponowne uruchamianie
systemu.
Alternatywnie: Ręczna instalacja GRUB-a
Aby zacząć, należy wpisać polecenie grub. Znak zachęty zmieni się na
grub>. Teraz należy wprowadzić serię odpowiednich komend, aby
GRUB został zapisany na dysku. Komendy te zostaną opisane poniżej.
Listing 1.1: Uruchamianie powłoki GRUB-a |
# grub --no-floppy
|
Uwaga:
Jeżeli komputer nie ma zainstalowanej stacji dyskietek, należy dodać opcję
--no-floppy do powyższego polecenia, aby GRUB nie marnował czasu na
poszukiwanie nieistniejącego napędu.
|
Wyobraźmy sobie, że chcemy zainstalować GRUB, aby odczytywał informacje z
bootowalnej partycji ${/boot} i instalował swój rekord
rozruchowy w MBR twardego dysku oraz by pierwszą rzeczą jaką zobaczymy po
uruchomieniu komputera był znak zachęty GRUB-a. Oczywiście należy odpowiednio
dostosować wszystkie opcje do używanej konfiguracji.
Mechanizm uzupełniania składni jest bardzo pomocny przy konfigurowaniu GRUB-a.
Na przykład wpisując "root (" i wciskając TAB można zobaczyć wszystkie
urządzenia (np. hd0). Jeśli zostanie wpisane "root (hd0," i
potem zostanie naciśnięty TAB, ukaże się lista wszystkich dostępnych partycji na
urządzeniu (np. hd0,0).
Skonfigurowanie GRUB-a przy pomocy tego systemu powinno być proste.
Listing 1.1: Instalacja GRUB-a w głównym sektorze rozruchowym |
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
|
Uwaga:
W przypadku konieczności zainstalowania GRUB poza MBR, należy zmienić komendę
setup, aby wskazywała na odpowiednie urządzenie. Na przykład dla GRUB-a
zainstalowanego w /dev/sda3 będzie to setup (hd0,2).
Niewielu użytkowników decyduje się na skorzystanie z tej możliwości.
|
Więcej informacji można znaleźć na stronach: GRUB FAQ i GRUB Manual.
Następnie można przejść do sekcji Ponowne uruchamianie
systemu.
1.
Alternatywnie: Użycie LILO
Instalowanie LILO
LILO, czyli LInuxLOader, to program naprawdę wypróbowany i używany od bardzo
dawna przez bardzo wielu użytkowników. Brakuje mu jednak niektórych cech
posiadanych przez program GRUB, co jest, między innymi, powodem rosnącej
popularności tego drugiego. Fakt, że na niektórych systemach LILO działa, a GRUB
nie, powoduje, że LILO jest ciągle w użyciu. Oczywiście nie jest to jedyny powód
Niektórzy po prostu lepiej znają LILO i wolą przy nim pozostać, zamiast uczyć
się obsługi całkiem nowego programu. My, jak zawsze, wybór pozostawiamy
użytkownikom, Gentoo wspiera obydwa programy.
Instalacja LILO jest prosta, używamy do tego polecenia emerge.
Listing 1.1: Instalowanie LILO |
# emerge lilo
|
Konfigurowanie LILO
Aby skonfigurować LILO, należy utworzyć plik /etc/lilo.conf. Można
to zrobić poprzez uruchomienie ulubionego edytora (w tym Podręczniku
konsekwentnie używamy nano) i w ten sposób stworzyć ten plik.
Listing 1.1: Tworzenie /etc/lilo.conf |
# nano -w /etc/lilo.conf
|
Kilka rozdziałów temu prosiliśmy o zapamiętanie nazwy utworzonego obrazu jądra.
W naszym przykładowym lilo.conf użyty zostanie uprzednio
zaprezentowany schemat partycjonowania. Przygotowane zostały dwie części:
-
Pierwsza dla tych, którzy nie skorzystali z programu genkernel przy
budowaniu jądra
-
Druga dla używających genkernela
Należy znać nazwy swojego obrazu jądra i swojego obrazu initrd.
Uwaga:
Jeśli system plików głównej partycji to JFS, należy dodać "ro" do linii
kernel, ponieważ JFS musi odtworzyć swój log zanim pozwoli na montowanie
w trybie do odczytu i zapisu.
|
Listing 1.1: Example /etc/lilo.conf |
boot=/dev/sda
prompt
timeout=50
default=gentoo
image=/boot/${kernel-name}
label=gentoo
read-only
root=/dev/sda3
image=/boot/${kernel-name}
label=gentoo.rescue
read-only
root=/dev/sda3
append="init=/bin/bb"
image=/boot/${genkernel-name}
label=gentoo
read-only
root=/dev/ram0
append="init=/linuxrc ramdisk=8192 real_root=/dev/sda3"
initrd=/boot/${genkernel-initrd}
other=/dev/sda6
label=windows
|
Uwaga:
Jeśli używany jest inny schemat partycjonowania i/lub obrazu jądra, należy
dokonać niezbędnych poprawek.
|
Jakiekolwiek dodatkowe parametry startowe jądra dodaje się po słowie kluczowym
append. Jako przykład podajemy opcję video służącą do włączenia
bufora ramki:
Listing 1.1: Dodawanie funkcji jądra poprzez linię append |
image=/boot/${kernel-name}
label=gentoo
read-only
root=/dev/sda3
append="video=uvesafb:mtrr,ywrap,1024x768-32@85"
|
Dla jądra 2.6.7 lub nowszego i ograniczenia przy pomocy przełączników rozmiaru
twardego dysku, gdy BIOS nie obsługuje tak dużych napędów, należy dopisać do
linii append polecenie hdx=stroke.
Użytkownicy programu genkernel powinni wiedzieć, że jądra, które
zbudowali, używają tych samych opcji bootowania co płyty instalacyjne. Na
przykład w przypadku korzystania z urządzenia SCSI należy dodać parametr
doscsi.
Po zakończeniu konfiguracji, należy zapisać plik i opuścić edytor. Teraz
wystarczy uruchomić program /sbin/lilo, LILO zastosuje ustawienia z
/etc/lilo.conf (tzn. zainstaluje się na dysku). Przy każdej zmianie
w /etc/lilo.conf oraz przy zmianie jądra, trzeba ponownie wykonać
polecenie /sbin/lilo.
Listing 1.1: Kończenie instalacji LILO |
# /sbin/lilo
|
Dużo ciekawych informacji o LILO znajduje się w artykule w
Wikipedii na jego temat.
Kolejny rozdział to Ponowne uruchamianie systemu.
1.
Ponowne uruchamianie systemu
Należy opuścić chroot i odmontować wszystkie zamontowane partycje. Następnie
trzeba wpisać komendę reboot.
Listing 1.1: Odmontowywanie partycji i ponowne uruchamianie |
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
cdimage ~# reboot
|
Trzeba pamiętać o usunięciu płyty z napędu, bo zamiast nowiutkiego Gentoo znów
zobaczymy system z płyty instalacyjnej.
Następnie wystarczy zakończyć proces instalacji zgodnie ze wskazówkami opisanymi
w rozdziale (Finalizowanie instalacji
Gentoo).
|