|
1.
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.
1.
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
węzłów sprzętowych utworzonych przez udev oraz systemu plików sysfs. Systemy te
znajdziemy odpowiednio w /dev i /sys. Aby tego
dokonać będziemy musieli dowiązać te systemy plików z płyty instalacyjnej do
odpowiednich systemów wewnątrz środowiska chroot. Jeżeli już to zrobiliśmy, nie
ma potrzeby, aby czynność tę powtarzać.
Listing 1.1: Dowiązywanie systemu plików /dev i /sys |
# exit
# 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 (jako nazwę jądra i pliku initrd używamy pliku vmlinux i
initrd):
|
Listing 1.1: Dodawanie argumentów właściwych dla jąder wygenerowanych programem genkernel do yaboot.conf |
image=/boot/kernel-genkernel-ppc-${kernel-gentoo}
label=Linux
root=/dev/ram0
partition=3
initrd=/boot/initramfs-genkernel-ppc-${kernel-gentoo}
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.
Aby móc używać yabootconfig konieczne jest posiadanie na dysku partycji
Apple_Bootstrap oraz odpowiednich wpisów dotyczących istniejących partycji
Linuksa w pliku /etc/fstab (należy mieć na uwadze, że partycja
Bootstrap nie powinna znajdować się w naszym fstab). Obydwa warunki
powinny być już spełnione - wszystkie operacje zostały opisane w poprzednich
rozdziałach. Należy jednak upewnić się sprawdzając plik
/etc/fstab.
Listing 1.1: Instalowanie yaboota z GRP |
# emerge --usepkg yaboot
|
Następnie opuszczamy chroot i wykonujemy polecenie yabootconfig --chroot
/mnt/gentoo. Po uruchomieniu programu zostaniemy poproszeni o
potwierdzenie lokalizacji partycji bootstrap. W przypadku gdy używamy schematu
podanego w tym podręczniku powinno to być partycja /dev/sda2.
Należy wpisać Y, jeżeli zgadzamy się z wynikiem polecenia. Jeżeli tak
nie jest, należy sprawdzić ponownie plik /etc/fstab.
yabootconfig przeskanuje ustawienia naszego systemu, stworzy plik
/dev/yaboot.conf i uruchomi polecenie mkofboot.
Polecenie to używane jest do sformatowania partycji bootstrap oraz instalacji
pliku konfiguracyjnego na tej partycji. Ponownie wracamy do środowiska chroot.
Listing 1.1: 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. Za każdy razem gdy zmieniamy zawartość yaboot.conf, musimy
pamiętać o wykonaniu polecenia ybin -v, aby zaktualizować partycję
bootstrap.
Po wykonaniu tych operacji, kontynuujemy instalację zgodnie z instrukcjami w
podrozdziale Ponowne uruchomienie systemu.
Alternatywnie: Ręczna konfiguracja yaboot
Najpierw, należy zainstalować yaboot w systemie:
Listing 1.1: Instalowanie yaboota |
# emerge --usepkg yaboot
|
Poniżej znajduje się przykładowy plik yaboot.conf. Konieczna jest
jego modyfikacja w celu dopasowania do wymagań systemu i użytkownika.
Listing 1.1: /etc/yaboot.conf |
boot=/dev/sda2
device=hd:
delay=5
defaultos=macosx
timeout=30
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot
image=/boot/${kernel-name}
label=Linux
root=/dev/sda3
partition=3
read-only
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 1.1: Ustawianie partycji bootstrap |
# mkofboot -v
|
Więcej informacji o yabootcie uzyskać można na stronie projektu yaboot. Po
skonfigurowaniu bootloadera kontynuujemy instalację zgodnie z instrukcjami w
podrozdziale Ponowne uruchomienie systemu.
1.
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 1.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-name}"
|
Jeśli użyto programu genkernel, to zarówno jądro, jak i initrd muszą zostać
skopiowane na partycję MacOS-a.
Listing 1.1: 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-${kernel-gentoo} "/mnt/mac/System Folder/Linux Kernels"
cdimage ~# cp /mnt/gentoo/boot/initramfs-genkernel-ppc-${kernel-gentoo} "/mnt/mac/System Folder"
|
Gdy jądro zostało skopiowane, musimy ponownie uruchomić komputer i
skonfigurować BootX.
Listing 1.1: 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ąć wszystkie bootowalne nośniki, 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 posiadamy w jądrze wkompilowane wsparcie dla systemu
plików HFS oraz HFS+, w przeciwnym razie nie będziemy mogli zaktualizować lub
zmienić jądra na naszej partycji.
|
Następnie jeszcze raz restartujemy komputer, uruchamiamy Linuksa i
kontynujemy instalację zgodnie z instrukcjami w rozdziale (Finalizowanie instalacji Gentoo).
1.
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 1.1: Emergowanie quik z GRP |
# emerge --usepkg 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 1.1: Konfigurowanie quik.conf |
# Przykładowy plik quik.conf
init-message = "Gentoo 2008.0\n"
partition = 2
root = /dev/sda4
timeout = 30
default = gentoo
image = /${kernel-name}
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 1.1: 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 1.1: Ustawianie zmiennych związanych z bootowaniem |
# nvsetenv auto-boot true
# nvsetenv output-device video
# nvsetenv input-device kbd
# nvsetenv boot-device scsi/sd@1:0
# nvsetenv boot-device ata/ata-disk@0:0
# nvsetenv boot-file /boot/${kernel-name} root=/dev/sda4
#
# nvsetenv boot-command boot
|
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.
1.
Alternatywnie: BootCreator
Ważne:
BootCreator stworzy menu bootowania SmartFirmware napisane dla komputerów
Pegasos.
|
Po pierwsze, upewnijmy się, że mamy zainstalowaną najnowszą wersję programu
bootcreator:
Listing 1.1: Instalowanie programu bootcreator z GRP |
# emerge --usepkg bootcreator
|
Teraz przekopiujmy plik /etc/bootmenu.example do
/etc/bootmenu i zmodyfikujmy go, aby odpowiadał naszym potrzebom:
Listing 1.1: Edycja pliku configuracyjnego programu bootcreator |
# cp /etc/bootmenu.example /etc/bootmenu
# nano -w /etc/bootmenu
|
Poniżej znajduje się przykładowy plik /etc/bootmenu. Zmienne
vmlinux oraz initrd powinny zostać zamieniony na nazwy obrazów z naszym jądrem
i plikiem initrd.
Listing 1.1: Plik konfiguracyjny programu bootcreator |
[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)
ide:0 ${kernel-name} video=radeonfb:1024x768@70 root=/dev/sda3
[SECTION]
Local HD -> Genkernel (Normal)
ide:0 kernel-genkernel-ppc-${kernel-gentoo} root=/dev/ram0 real_root=/dev/sdaa3 init=/linuxrc initrd=initramfs-genkernel-ppc-${kernel-gentoo}
|
Następnie musimy skopiować plik bootmenu na partycję
boot, aby SmartFirmware mógł go odczytać. Użyjemy do tego programu
bootcreator:
Listing 1.1: 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.
1.
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 1.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).
|