Gentoo Logo

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

# Która pozycja ma być uruchamiana domyślnie. 0 oznacza pierwszą, 1 drugą itd.
default 0
# Ile sekund oczekiwać przed uruchomieniem pozycji domyślnej.

timeout 30
# Ładny obrazek na zaostrzenie apetytu
# Dla użytkowników, którzy skonfigurowali bufor ramki
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title Gentoo Linux ${kernel-version}
# Partycja, na której znajduje się obraz jądra (lub system operacyjny)

root (hd0,0)
kernel /boot/${kernel-name} root=/dev/sda3

title Gentoo Linux ${kernel-version} (rescue)
# Partycja, na której znajduje się obraz jądra (lub system operacyjny)
kernel /boot/${kernel-name} root=/dev/sda3 init=/bin/bb

# Następne cztery linie są potrzebne tylko gdy będzie uruchamiany również system Windows.
# W tym przypadku Windows znajduje się na /dev/sda6.
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}

# Tylko, gdy będą uruchamiane dwa systemy
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)          (Odpowiednia partycja /boot)
grub> setup (hd0)           (Instalacja GRUB-a w MBR)
grub> quit                  (Opuszczenie powłoki GRUB)

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             # Instalacja LILO w MBR
prompt                    # Dajemy użytkownikowi możliwość wyboru innej pozycji
timeout=50                # Czekamy 5 sekund przed uruchomieniem domyślnej pozycji
default=gentoo            # Kiedy oczekiwanie się zakończy, uruchamiana jest pozycja "gentoo"

# Dla osób nie korzystających z genkernela
image=/boot/${kernel-name}
  label=gentoo            # Nazwa tej części
  read-only               # Tryb tylko do odczytu na starcie, nie zmieniać!
  root=/dev/sda3          # Miejsce, w którym znajduje się partycja główna

image=/boot/${kernel-name}
  label=gentoo.rescue     # Nazwa tej części
  read-only               # Tryb tylko do odczytu na starcie, nie zmieniać!
  root=/dev/sda3          # Miejsce, w którym znajduje się partycja główna
  append="init=/bin/bb"   # Uruchamia statyczną powłokę ratunkową shell

# Dla użytkowników genkernela
image=/boot/${genkernel-name}
  label=gentoo
  read-only
  root=/dev/ram0
  append="init=/linuxrc ramdisk=8192 real_root=/dev/sda3"
  initrd=/boot/${genkernel-initrd}

# Następne dwie linie są podane na wypadek, gdybyśmy chcieli uruchamiać także system Windows
# W tym przypadku Windows znajduje się na /dev/sda6
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).

Zaktualizowano 1 stycznia 2010

Oryginalna wersja tego dokumentu została po raz ostatni zaktualizowana 22 kwietnia 2012. Jeśli chcesz pomóc w aktualizacji tego dokumentu do najnowszej wersji, skontaktuj się z Łukaszem Damentko, koordynatorem polskiego projektu tłumaczeń dokumentacji Gentoo.

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.