Gentoo Logo

[ << ] [ < ] [ Powrót ] [ > ] [ >> ]


10. Konfiguracja bootloadera

Spis treści:

10.a. Wybór bootloadera

Wstęp

Gdy jądro zostało już skonfigurowane i skompilowane, do uruchomienia nowego systemu potrzebny jest bootloader. To, jakiego rodzaju bootloader należy wykorzystać, zależy od typu posiadanego komputera PPC.

Jeśli korzystamy z komputera NewWorld Apple lub IBM, jedyną możliwością jaką mamy jest bootloader yaboot. Dla OldWorld Apple istnieją dwie opcje: BootX (zalecany) i quik. Pegasos nie wymaga bootloadera, jednak w jego przypadku konieczne jest zainstalowanie programu bootcreator, aby możliwe było stworzenie bootmenu SmartFirmware.

10.b. Domyślnie: Używanie yaboot

Wprowadzenie

Ważne: yaboot może być używany tylko na komputerach NewWorld Apple lub IBM!

W celu prawidłowego zlokalizowania urządzenia bootowalnego, yaboot potrzebuje dostępu do plików urządzeń utworzonych przez udev przy starcie systemu oraz do systemu plików sysfs. Systemy te znajdują się w katalogach /dev i /sys. Aby były dostępne w instalowanym systemie, trzeba je podmontować również tam. Jeśli są już tam zamontowane, można pominąć ten krok.

Listing 2.1: Dowiązywanie systemu plików /dev i /sys

# exit  (opuszczenie chroot)
# mount -o bind /dev /mnt/gentoo/dev
# mount -o bind /sys /mnt/gentoo/sys
# chroot /mnt/gentoo /bin/bash
# /usr/sbin/env-update && source /etc/profile 

Aby skonfigurować yaboota można wykorzystać program yabootconfig w celu automatycznego wygenerowania pliku konfiguracyjnego. Jeśli jednak instalujemy Gentoo na G5 (na którym yabootconfig nie zawsze działa) lub planujemy bootować system z urządzeń podłączanych poprzez firewire lub USB, musimy własnoręcznie przeprowadzić konfigurację yaboota.

Uwaga: W przypadku gdy do wygenerowania jądra użyto programu genkernel, konieczna będzie ręczna edycja pliku yaboot.conf, nawet jeśli wykorzystano yabootconfig. Sekcja obrazu jądra powinna zostać zmodyfikowana w następujący sposób:

Listing 2.2: Dodawanie argumentów właściwych dla jąder wygenerowanych programem genkernel do yaboot.conf

####################################################################
## Ta sekcja może zostać powielona w przypadku posiadania więcej niż
## jednego jądra lub zestawu parametrów startowych. Należy zastąpić
## nazwę jądra i nazwę initrd ich odpowiednimi wartościami.
####################################################################
image=/boot/kernel-genkernel-ppc2.6.24-gentoo-r5
  label=Linux
  root=/dev/ram0
  partition=3
  initrd=/boot/initramfs-genkernel-ppc-2.6.24-gentoo-r5
  # Można dodać inne argumenty dla jądra, jak na przykład rootdelay=10
  # dla bootowania z urządzeń USB/Firewire.
  append="real_root=/dev/sda3 init=/linuxrc"
  read-only
###################################################################

Domyślnie: Użycie yabootconfig

yabootconfig automatycznie wykryje podział na partycje i umożliwi uruchamianie wybranego z dwóch lub nawet trzech systemów, którymi mogą być Linux, Mac OS i Mac OS X.

Korzystanie z yabootconfig jest możliwe tylko wtedy, gdy na dysku znajduje się partycja Apple_Bootstrap, a plik /etc/fstab zawiera wszystkie partycje linuksowe (partycja Bootstrap nie powinna znajdować się w pliku fstab). Możliwe, że to już kolejny raz gdy wykonuje się te czynności podczas instalacji, ale mimo wszystko zalecamy sprawdzenie /etc/fstab raz jeszcze.

Listing 2.3: Instalowanie yaboota

# emerge yaboot

Następnie opuszczamy chroot i wykonujemy polecenie yabootconfig --chroot /mnt/gentoo. Zostaniemy poproszeni o potwierdzenie lokalizacji partycji Apple_Bootstrap. Jeśli korzysta się z domyślnego układu partycji, to będzie to /dev/sda2. Należy wcisnąć klawisz Y jeśli jest ona poprawna. Jeśli nie, musimy sprawdzić plik /etc/fstab i upewnić się, że ścieżki do urządzeń są prawidłowe. Gdy partycja bootstrap zostanie wybrana, yabootconfig przeskanuje ustawienia systemowe, utworzy plik /etc/yaboot.conf i uruchomi mkofboot. mkofboot jest programem, który formatuje partycję Apple_Bootstrap i umieszcza na niej plik konfiguracyjny yaboota. Gdy operacje te zostaną wykonane powracamy do środowiska chrootowanego.

Listing 2.4: Powrót do chroot

# chroot /mnt/gentoo /bin/bash
# /usr/sbin/env-update && source /etc/profile

Być może wystąpi potrzeba modyfikacji zawartości pliku /etc/yaboot.conf. Jeśli zostaną wprowadzone do niego jakieś zmiany (jak na przykład zmiana domyślnie uruchamianego systemy), konieczne będzie uruchomienie ybin -v, aby zmiany odniosły skutek na partycji Apple_Bootstrap. Teraz po każdej modyfikacji pliku haboot.conf należy uruchomić ybin -v.

Po wykonaniu tych operacji, kontynuujemy instalację zgodnie z instrukcjami w podrozdziale Ponowne uruchomienie systemu.

Alternatywnie: Ręczna konfiguracja yaboot

Po pierwsze należy zainstalować yaboot:

Listing 2.5: Instalowanie yaboot

# emerge yaboot

Poniżej znajduje się przykładowy plik yaboot.conf. Konieczna jest jego modyfikacja w celu dopasowania do wymagań systemu i użytkownika.

Listing 2.6: /etc/yaboot.conf

## /etc/yaboot.conf
##
## Więcej szczegółów: "man yaboot.conf". Nie należy wprowadzać zmian przed
## zapoznaniem się ze stronami man yaboot.conf!!
## Przykładowe konfiguracje znajdują się w : /usr/share/doc/yaboot/examples
##
## Aby możliwe było uruchamianie innych systemów, należy dodać jedną lub więcej
## z przykładowych pozycji:
## bsd=/dev/sdaX, macos=/dev/sdaY, macosx=/dev/sdaZ

## Partycja bootstrap:

boot=/dev/sda2


## ofboot w Open Firmware służy do wyboru partycji startowej.
## Bez tego parametru, yaboot nie zadziała na G5 (dopóki nie zostaną przekazane
## odpowiednie opcje do programu mkofboot/ybin).
## hd:X oznacza /dev/sdaX (lub /dev/sdaX).
##
## Posiadacze G5 powinni odkomentować tą linię!

#ofboot=hd:2

## Bootujący z urządzeń firewire powinni użyć linii podobnej do poniższej:
# ofboot=fw/node/sbp-2/disk@0:

## Bootujący z urządzeń USB powinni użyć linii podobnej do poniższej:
# ofboot=usb/disk@0:

## hd: w terminologii Open Firmware oznacza sda
device=hd:

## Bootujący z urządzeń Firewire/USB muszą określić nazwę aparatu OF
## Można ją uzyskać przy użyciu programu ofpath, który jest dołączony do
## yaboota.

# device=fw/node@0001d200e00d0207/sbp-2@c000/disk@0:


delay=5
defaultos=macosx
timeout=30
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot

############################################################
## Ta sekcja może zostać powielona w przypadku posiadania więcej niż
## jednego jądra lub zestawu parametrów startowych. Należy zastąpić
## wartość obrazu nazwą posiadanego jądra.
###########################################################
image=/boot/kernel-2.6.24-gentoo-r5
  label=Linux
  root=/dev/sda3
  partition=3
#  append="rootdelay=10"  # Wymagane dla bootowania z urządzeń USB/Firewire
  read-only
##################

## Użytkownicy G5 i niektórzy użytkownicy G4 powinni wykorzystać ustawienia:
##   macos=hd:13/
##   macosx=hd:12
## zamiast przykładowych wartości.
macos=/dev/sda13
macosx=/dev/sda12
enablecdboot
enableofboot

Gdy plik yaboot.conf jest prawidłowo skonfigurowany, należy uruchomić mkofboot -v, czego efektem będzie sformatowanie partycji Apple_bootstrap i zainstalowanie na niej aktualnej konfiguracji. Jeśli yaboot.conf zostanie zmodyfikowany po utworzeniu partycji Apple_bootstrap, konieczne będzie zaktualizowanie ustawień przy użyciu polecenia ybin -v.

Listing 2.7: Ustawianie partycji bootstrap

# mkofboot -v

Więcej informacji o yaboot uzyskać można na stronie projektu yaboot. Po skonfigurowaniu bootloadera kontynuujemy instalację zgodnie z instrukcjami w podrozdziale Ponowne uruchomienie systemu.

10.c. Alternatywnie: BootX

Ważne: BootX może być używany tylko na systemach OldWorld Apple z zainstalowanym systemem MacOS 9 lub wcześniejszym!

Aby BootX mógł zbootować Linuksa z wnętrza MacOS-a, jądro systemu musi zostać przekopiowane z partycji Linuksa na partycję MacOS-a. Dokonamy tego montując najpierw partycję MacOS-a spoza środowiska chrootowanego, a następnie kopiując kernel do folderu systemowego, aby BootX mógł go odnaleźć. W celu określenia, na której partycji znajduje się MacOS użyjemy polecenia mac-fdisk -l (sda6 zostało poniżej użyte jako przykład).

Listing 3.1: Kopiowanie jądra na partycję MacOS-a

# exit
cdimage ~# mkdir /mnt/mac
cdimage ~# mount /dev/sda6 /mnt/mac -t hfs
cdimage ~# cp /mnt/gentoo/usr/src/linux/vmlinux "/mnt/mac/System Folder/Linux Kernels/kernel-2.6.24-gentoo-r5"

Jeśli użyto programu genkernel, to zarówno jądro, jak i initrd muszą zostać skopiowane na partycję MacOS-a.

Listing 3.2: Kopiowanie jądra i initrd wygenerowanych genkernelem na partycję MacOS-a

# exit
cdimage ~# mkdir /mnt/mac
cdimage ~# mount /dev/sda6 /mnt/mac -t hfs
cdimage ~# cp /mnt/gentoo/boot/kernel-genkernel-ppc-2.6.24-gentoo-r5 "/mnt/mac/System Folder/Linux Kernels"
cdimage ~# cp /mnt/gentoo/boot/initramfs-genkernel-ppc-2.6.24-gentoo-r5 "/mnt/mac/System Folder"

Gdy jądro zostało skopiowane, musimy ponownie uruchomić komputer i skonfigurować BootX.

Listing 3.3: Odmontowywanie wszystkich partycji i rebootowanie

cdimage ~# cd /
cdimage ~# umount /mnt/gentoo/proc /mnt/gentoo/dev /mnt/gentoo/sys /mnt/gentoo /mnt/mac
cdimage ~# reboot

Oczywiście należy usunąć bootowalną płytę CD, ponieważ teraz powinien uruchomić się MacOS.

Gdy uruchomiony zostanie MacOS, otwieramy panel sterowania BootX. Jeśli nie korzystaliśmy z genkernela, wybieramy Options i odznaczamy Use specified RAM disk. Natomiast jeśli użyliśmy genkernela, musimy upewnić się, że initrd genkernela jest wybrany zamiast initrd płyty instalacyjnej. Użytkownicy niekorzystający z genkernela mogą określić teraz partycję root - podajemy tutaj wartość odpowiadającą naszemu podziałowi dysku. W zależności od konfiguracji jądra można dodać inne argumenty.

Program BootX można skonfigurować tak, aby automatycznie startował Linuksa. Jeśli się na to zdecydujemy, najpierw zobaczymy ekran ładowania MacOS, a następnie, już w trakcie wczytywania systemu, BootX załaduje i wystartuje Linuksa. Więcej informacji można uzyskać na Stronie domowej BootX.

Ważne: Należy upewnić się, że w jądro wkompilowaliśmy wsparcie dla systemów HFS i HFS+. W przeciwnym wypadku nie będziemy mogli zaktualizować lub zmienić jądra znajdującego się na partycji MacOS.

Następnie jeszcze raz restartujemy komputer, uruchamiamy Linuksa i kontynuujemy instalację zgodnie z instrukcjami w rozdziale Finalizowanie instalacji Gentoo.

10.d. Alternatywnie: quik

Program quik pozwala na bootowanie z pominięciem MacOS-a na komputerach OldWorld. Nie jest to jednak dobrze wspierane i zalecane rozwiązanie, gdyż może spowodować występowanie licznych dziwactw. Jeśli tylko istnieje taka możliwość, zalecane jest korzystanie z programu BootX zamiast quik, ze względu na znacznie większą stabilność i łatwiejszą konfigurację tego pierwszego.

Jeśli mimo wszystko zdecydujemy się na to rozwiązanie, postępujemy zgodnie z poniższymi instrukcjami. Po pierwsze musimy zainstalować quik:

Listing 4.1: Emergowanie quik

# emerge quik

Następnie musimy dokonać jego konfiguracji. Edytujemy plik /etc/quik.conf ustawiając w nim obraz naszego jądra, które skopiowaliśmy na partycję boot.

Listing 4.2: Konfigurowanie quik.conf

# Przykładowy plik quik.conf
init-message = "Gentoo 2008.0\n"
# Partycja boot
partition = 2
root = /dev/sda4
timeout = 30
default = gentoo
# Nazwa naszego jądra
image = /vmlinux
        label = gentoo

Plik quik.conf musi znajdować się na tym samym dysku co bootowalny obraz, ale niekoniecznie na tej samej partycji. Jest jednak wskazane, aby przenieść go do partycji boot.

Listing 4.3: Przenoszenie quik.conf do /boot

# mv /etc/quik.conf /boot/quik.conf

Teraz musimy ustawić zmienne związane z bootowaniem, aby quik był uruchamiany. Użyjemy do tego programu nvsetenv. To, jakie zmienne musimy ustawić, zależy od komputera jaki posiadamy. Zaleca się odszukanie prawidłowych wartości quirks przed rozpoczęciem konfiguracji.

Listing 4.4: Ustawianie zmiennych związanych z bootowaniem

# nvsetenv auto-boot true # Ustawiamy "false", aby uruchamiać
# OF; nie wszystkie komputery mogą korzystać z trybu OF
# nvsetenv output-device video # Wartość wybieramy na podstawie
# powyższej strony quirks
# nvsetenv input-device kbd
# nvsetenv boot-device scsi/sd@1:0 # Dla SCSI
# nvsetenv boot-device ata/ata-disk@0:0 # Dla ATA
# nvsetenv boot-file /boot/kernel-2.6.24-gentoo-r5  root=/dev/sda4
# Pierwszy element wskazuje ścieżkę do jądra, drugi do partycji root.
# Dodać tu można wszelkie inne opcje jakie chcemy przekazać do jądra.
# nvsetenv boot-command boot # Ustawiamy "bye" dla MacOS i
# "boot" dla Linuksa

Uwaga: Możliwa jest także modyfikacja zmiennych związanych z bootowaniem z poziomu MacOS-a. W zależności od posiadanego modelu należy użyć bootvars lub . Apple System Disk. Warto odwiedzić powyższą stronę quirks w celu uzyskania szerszych informacji na ten temat.

Gdy ustawiliśmy już opcje uruchamiania, musimy upewnić się, że bootowalne obrazy są poprawnie zainstalowane. Uruchamiamy quik -v -C /boot/quik.conf. Powinniśmy uzyskać informację, że posiadamy boot block QUIK.

Uwaga: Jeśli coś poszło nie tak, możemy zresetować PRAM do ustawień domyślnych poprzez kombinację command + option + p + r, przed uruchomieniem naszego komputera. Wyczyści to wartości jakie ustawiliśmy przy pomocy programu nvsetenv i powinno umożliwić uruchomienie zarówno z bootowalnej płyty MacOS-a jak i z płyty instalacyjnej Linuksa.

Kolejnym krokiem jest Ponowne uruchomienie systemu.

10.e. Alternatywnie: BootCreator

Ważne: BootCreator stworzy menu bootowania SmartFirmware napisane dla komputerów Pegasos.

Po pierwsze, upewnijmy się, że mamy zainstalowany program bootcreator:

Listing 5.1: Instalowanie programu bootcreator

# emerge bootcreator

Teraz przekopiujmy plik /etc/bootmenu.example do /etc/bootmenu i zmodyfikujmy go, aby odpowiadał naszym potrzebom:

Listing 5.2: Edycja pliku configuracyjnego programu bootcreator

# cp /etc/bootmenu.example /etc/bootmenu
# nano -w /etc/bootmenu

Poniżej znajduje się przykładowy plik /etc/bootmenu. Nazwy vmlinux oraz initrd powinny zostać zastąpione nazwami naszego jądra oraz pliku initrd.

Listing 5.3: Plik konfiguracyjny programu bootcreator

#
# Przykładowy plik dla programu bootcreator 1.1
#

[VERSION]
1

[TITLE]
Boot Menu

[SETTINGS]
AbortOnKey = false
Timeout    = 9
Default    = 1

[SECTION]
Local HD -> Morphos      (Normal)
ide:0 boot2.img ramdebug edebugflags="logkprintf"

[SECTION]
Local HD -> Linux (Normal)
de:0 kernel-2.6.24-gentoo-r5 video=radeonfb:1024x768@70 root=/dev/sda3
[SECTION]
Local HD -> Genkernel (Normal)
ide:0 kernel-genkernel-ppc-2.6.24-gentoo-r5 root=/dev/ram0 real_root=/dev/sda3 init=/linuxrc
initrd=initramfs-genkernel-ppc2.6.24-gentoo-r5

Następnie musimy skopiować plik bootmenu na partycję boot, aby SmartFirmware mógł go odczytać. Użyjemy do tego programu bootcreator:

Listing 5.4: Instalowanie bootmenu

# bootcreator /etc/bootmenu /boot/menu

Uwaga: W czasie rebootowania musimy upewnić się, że menu jest plikiem, który zostanie załadowany jako domyślny.

Następnym etapem instalacji jest Ponowne uruchomienie systemu.

10.f. Ponowne uruchomienie systemu

Opuszczamy środowisko chrootowane i odmontowujemy wszystkie partycje, aby możliwe było czyste ponowne uruchomienie. Następnie używamy komendy reboot.

Listing 6.1: Opuszczanie chroot, odmontowywanie partycji i rebootowanie

# exit
livecd ~# umount /mnt/gentoo/proc /mnt/gentoo/dev /mnt/gentoo/sys /mnt/gentoo
livecd ~# reboot

Gdy nasze nowe Gentoo uruchomi się, kończymy instalację zgodnie z instrukcjami w rozdziale Finalizowanie instalacji Gentoo.


[ << ] [ < ] [ Powrót ] [ > ] [ >> ]


Drukuj

Pokaż całość

Zaktualizowano 6 lipca 2008

Podsumowanie: Na platformie PPC dostępnych jest kilka programów ładujących (boot loader). W tym rozdziale przeprowadzamy użytkownika przez proces instalacji i konfiguracji niektórych z nich.

Sven Vermeulen
Autor

Grant Goodyear
Autor

Roy Marples
Autor

Daniel Robbins
Główny Architekt

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Gentoo x86 Developer

Tavis Ormandy
Gentoo Alpha Developer

Jason Huebel
Gentoo AMD64 Developer

Guy Martin
Gentoo HPPA developer

Pieter Van den Abeele
Gentoo PPC developer

Joe Kallar
Gentoo SPARC developer

John P. Davis
Redaktor

Pierre-Henri Jondot
Redaktor

Eric Stockbridge
Redaktor

Rajiv Manglani
Redaktor

Jungmin Seo
Redaktor

Stoyan Zhekov
Redaktor

Jared Hudson
Redaktor

Colin Morey
Redaktor

Jorge Paulo
Redaktor

Carl Anderson
Redaktor

Jon Portnoy
Redaktor

Zack Gilburd
Redaktor

Jack Morgan
Redaktor

Benny Chuang
Redaktor

Erwin
Redaktor

Joshua Kinard
Redaktor

Tobias Scherbaum
Redaktor

Xavier Neys
Redaktor

Joseph Jezak
Redaktor

Joshua Saddler
Redaktor

Lars Weiler
Redaktor

Jochen Maes
Redaktor

Gerald J. Normandin Jr.
Korekta

Donnie Berkholz
Korekta

Ken Nowack
Korekta

Karol Wojtaszek
Tłumacz

Łukasz Damentko
Tłumacz

Donate to support our development efforts.

Support OSL
Gentoo Centric Hosting: vr.org
Tek Alchemy
SevenL.net
Global Netoptex Inc.
Bytemark
Online Kredit Index
Copyright 2001-2009 Gentoo Foundation, Inc. Questions, Comments? Contact us.