Ten rozdział rozpoczyna się ogólnym opisem ładowania systemu Debian GNU/Linux, a następnie przedstawia dokładne informacje na temat każdego ze sposobów ładowania i kończy się radami użytecznymi w razie problemów.
Parametry ładowania jądra Linux zazwyczaj używane są do upewnienia się, że urządzenia peryferyjne działają poprawnie. W większości wypadków jądro może samo wykryć informacje dotyczące urządzeń zewnętrznych. Jednak w niektórych wypadkach będziesz musiał/musiała trochę jądru pomóc.
W zależności od firmware konsoli z której będziesz ładować system obowiązują
różne metody przekazywania parametrów do jądra. Metody te opisane są poniżej,
oddzielnie dla każdego sposobu ładowania. Pełne informacje na temat parametrów
ładowania można znaleźć w Linux BootPrompt
HOWTO
; ten rozdział zawiera tylko szkic najistotniejszych
parametrów.
Jeśli uruchamiasz system po raz pierwszy, spróbuj wykorzystać domyślne parametry (tzn. nie próbuj ustawiać żadnych argumentów) i zobacz czy działa poprawnie. Prawdopodobnie nie będzie żadnych problemów. Jeśli jednak jakieś się pojawią, spróbuj uruchomić komputer ponownie i poszukać dodatkowych parametrów, które poinformują system o Twoim sprzęcie.
Kiedy jądro ładuje się, na początku procesu ładowania powinien pojawić się komunikat Memory: dostępnak/całkowitak available. całkowita powinna odpowiadać wyrażonej w kilobajtach całkowitej dostępnej ilości pamięci w systemie. Jeśli tak nie jest, musisz użyć parametru mem=ram, gdzie ram jest ilością dostępnej pamięci z dodaną literą ``k'' oznaczającą kilobajty, lub ``m'' -- megabajty. Na przykład zarówno mem=65536k jak i mem=64m oznaczają 64MB RAM.
Jeśli masz czarno-biały monitor, użyj argumentu mono. W przeciwnym wypadku system instalacyjny domyślnie użyje kolorów.
Jeśli ładujesz system używając konsoli szeregowej jądro zazwyczaj samo to wykryje. Jeśli do komputera jest podłączona karta graficzna (framebuffer) i klawiatura, być może będzie konieczne dodanie parametru console=urządzenie, gdzie urządzenie jest portem szeregowym - zazwyczaj ``ttyS0''.
Jak nadmieniono powyżej, pełne informacje na temat parametrów ładowania można
znaleźć w Linux BootPrompt
HOWTO
, w tym rady dotyczące rzadko spotykanego sprzętu. Częste
problemy opisane są poniżej w rozdziale Co zrobić w przypadku
problemu?, Rozdział 6.10.
System instalacyjny rozpoznaje kilka argumentów, które mogą się okazać pomocne.
Podczas startu możesz zobaczyć wiele komunikatów typu can't find something (nie można znaleźć czegoś), lub something not present (czegoś nie ma), can't initialize something (nie można zainicjalizować czegoś), lub nawet this driver release depends on something (ta wersja sterownika wymaga czegoś). Większość tych komunikatów jest nieszkodliwa. Widzisz je, powieważ jądro do systemu instalacyjnego jest zbudowane tak, aby działało na komputerach z wieloma różnymi urządzeniami peryferyjnymi. Oczywiście żaden komputer nie będzie zawierał wszystkich możliwych urządzeń, więc system operacyjny może wypisać kilka komunikatów ostrzegawczych gdy szuka urządzeń, których nie posiadasz. Możesz także zauważyć, że system zatrzymuje się na chwilę. Dzieje się tak, gdy jądro czeka na odpowiedź urządzenia, którego nie ma w systemie. Jeśli uważasz, że czas startu systemu jest nie do przyjęcia, możesz po instalacji utworzyć własne jądro (patrz Kompilowanie nowego jądra, Rozdział 8.4).
W pewnych przypadkach można chcieć załadować Linuksa z innego systemu operacyjnego. Możesz także załadować system instalacyjny w inny sposób, ale zainstalować system podstawowy z dysku.
Możesz zainstalować Debiana także z partycji ext2 lub Minix. Ten sposób może być odpowiedni na przykład w przypadku zamiany zainstalowanej dystrybucji Linuksa na Debiana.
Należy zwrócić uwagę, że partycja z której instalujesz nie powinna być
jedną z partycji na którą instalujesz Debiana (np. /
,
/usr
, /lib
, itd.).
Aby zainstalować z istniejącej już partycji Linuksa postępuj zgodnie z poniższymi instrukcjami.
http://http.us.debian.org/debian/dists/potato/main/disks-alpha/current/base2_2.tgz
Jeśli posiadasz płytkę, z której można załadować system i jeśli Twoja architektura obsługuje ładowanie systemu z CD-ROM-u nie będą potrzebne żadne dyskietki. Ładowanie systemu z CD-ROM-u na Alphie jest nieco bardziej złożone niż na i386. Jednak zmniejszenie ilości wymaganych dyskietek sprawia, że warto mimo wszystko spróbować tej metody. Więcej informacji na temat uruchamiania systemów Alpha z CD można znaleźć w rozdziale Uruchamianie systemu instalacyjnego, Część 6 .
Nawet jeśli nie możesz załadować systemu z CD-ROM-u, możesz zainstalować z niego podstawowy system Debiana. Po prostu załaduj system instalacyjny z dowolnego innego nośnika, a kiedy nadejdzie moment instalacji systemu podstawowego lub dodatkowych pakietów wskaż CD-ROM jak to opisano w ``Instalacja systemu podstawowego'', Rozdział 7.14.
Musisz skonfigurować serwer BOOTP i serwer TFTP.
BOOTP to protokół IP, który informuje komputer o jego własnym adresie IP oraz gdzie w sieci może znaleźć obraz startowy. W przeciwieństwie do Open Firmware w maszynach Sparc i PowerPC, konsola SRM nie wykorzysta RARP do uzyskania swojego adresu IP i przez to aby uruchomić z sieci Alphę trzeba użyć protokołu BOOTP. Można także wpisać konfigurację IP dla interfejsów sieciowym bezpośrednio z konsoli SRM.[3]
Protokółu TFTP (Trivial File Transfer Protocol) używa się aby przekazać obraz startowy klientowi. Teoretycznie można użyć dowolnego serwera obsługującego ten protokół, na dowolnej platformie. W przykładach w tym rozdziale podamy komendy dla systemów SunOS 4.x, SunOS 5.x (in. Solaris), i GNU/Linux.
W systemie GNU/Linux są dostępne dwa serwery BOOTP: CMU bootpd i ISC dhcpd,
znajdujące sie w pakietach bootp
i dhcp
w systemie
Debian GNU/Linux.
Aby użyć serwera CMU bootpd, należy usunąć komentarz sprzed odpowiedniej linii
(lub dodać ją) w /etc/inetd.conf
. W systemie Debian GNU/Linux
możesz wykonać w tym celu polecenie update-inetd --enable bootps,
a następnie /etc/init.d/inetd reload. W przypadku innego systemu,
odpowiednia linia powinna wyglądać następująco:
bootps dgram udp wait root /usr/sbin/bootpd bootpd -i -t 120
Teraz należy utworzyć plik /etc/bootptab
file. Ma on format
starych dobrych plików BSD printcap(5)
, termcap(5)
, i
disktab(5)
. Więcej informacji zawiera strona podręcznika
systemowego bootptab(5)
. W przypadku CMU bootpd musisz znać adres
sprzętowy (MAC) klienta.
W przeciwieństwie do niego konfiguracja BOOTP w przypadku serwera ISC
dhcpd
jest na prawdę łatwa, ponieważ traktuje klientów BOOTP jako
szczególny przypadek klientów DHCP. Nie musisz znać adresu sprzętowego (MAC)
klienta, chyba, że chcesz podać dodatkowe opcje, jak nazwa pliku obrazu
startowego lub ścieżkę katalogu głównego NFS w zależności od klienta, albo
chcesz nadawać maszynom statyczne adresy IP używając BOOTP i/lub DHCP. Po
prostu dodaj komendę allow bootp do bloku konfiguracyjnego
podsieci zawierającej klienta i zrestartuj dhcpd
przy pomocy
komendy /etc/init.d/dhcpd restart.
Najpierw należy włączyć serwer tftpd
. Umożliwia to następująca
linia w /etc/inetd.conf
:
tftp dgram udp wait root /usr/etc/in.tftpd in.tftpd -l /tftpboot
Zobacz do tego pliku i zapamiętaj katalog, który występuje jako argument
programu in.tftpd
; będzie on potrzebny później. Argument
-l pozwala niektórym wersjom in.tftpd
zapisywać
wszystkie żądania do dziennika systemowego; przydaje się to przy diagnozowaniu
problemów z ładowaniem. Jeśli konieczna była modyfikacja
/etc/inetd.conf
, musisz o tym powiadomić działający proces
inetd
. W przypadku systemów Debian uruchom
/etc/init.d/netbase reload (w przypadku wersji potato/2.2 i
nowszych użyj komendy /etc/init.d/inetd reload. W przypadku
innych systemów znajdź identyfukator procesu inetd
i wykonaj
kill -HUP identyfikator.
Następnie należy umieścić potrzebny obraz startowy (patrz Opis plików systemu
instalacyjnego, Rozdział 5.4 w katalogu startowym tftpd
.
Ogólnie mówiąc będzie to katalog /tftpboot
. Następnie należy
utworzyć dowiązanie od tego pliku do pliku, którego tftpd
użyje do
startu danego klienta. Niestety nazwę tego pliku określa klient TFTP i nie
istnieją powszechne standardy.
Często klient będzie szukał pliku o nazwie
ip-klienta-szestnastkowoarchitektura-klienta. Aby obliczyć
ip-klienta-szestnastkowo należy wziąć każdy z bajtów adresu IP
klienta i zamienić na notację szestnastkową. Jeśli masz pod ręką maszynę z
programem bc
, możesz go użyć do tego celu. Wpisz
obase=16 aby ustawić szestnastkową notację wyniku, a następnie
wprowadź osobno każdą część adresu. Jeśli chodzi o
architektura-klienta, spróbuj kilku różnych wartości.
W przypadku Alphy musisz podać nazwę pliku (jako ścieżkę względem katalogu obrazów startowych używając argumentu -file do komendy boot SRM lub ustawiając zmienną środowiskową BOOT_FILE. Można również podać nazwę pliku przez BOOTP (w przypadku ISC dhcpd użyj dyrektywy filename). W przeciwieństwie do Open Firmware, w SRM nie istnieje domyślna nazwa pliku, więc koniecznie trzeba określić ją korzystając z jednej z tych metod.
Kiedy już określisz nazwę pliku, utwórz dowiązanie w ten sposób: ln /boot/tftpboot.img /boot/nazwa-pliku.
Teraz powinieneś/powinnaś być w stanie uruchomić system. W przypadku SRM, nazwy interfejsów mają przedrostek ewa i można je wypisać przy pomocy komendy show dev w następujący sposób (nieco zmodyfikowane):
>>>show dev ewa0.0.0.9.0 EWA0 08-00-2B-86-98-65 ewb0.0.0.11.0 EWB0 08-00-2B-86-98-54 ewc0.0.0.2002.0 EWC0 00-06-2B-01-32-B0
Tak więc aby załadować system używając pierwszego interfejsu ethernet należy wpisać:
>>>boot ewa0
Jeśli chcesz użyć konsoli szeregowej musisz przekazać do jądra parametr console=. Można to zrobić przy pomocy argumentu -flags do komendy boot SRM. Porty szeregowe są nazywane tak samo jak odpowiadające im pliki w katalogu /dev. Na przykład aby załadować system wykorzystując ewa0 i użyć konsoli na pierwszym porcie szeregowym należy napisać:
>>>boot ewa0 -flags console=ttyS0
NOT YET WRITTEN
It is closer to "tftp install for lowmem..." because you don't want to load the ramdisk anymore but boot from the newly created nfs-root fs. You then need to replace the symlink to the tftpboot image by a symlink to the kernel image (eg. linux-a.out). My experience on booting over the network was based exclusively on RARP/TFTP which requires all daemons running on the same server (the sparc workstation is sending a tftp request back to the server that replied to its previous rarp request). However, Linux supports BOOTP protocol, too, but I don't know how to set it up :-(( Does it have to be documented as well in this manual?
Firmware konsoli jest zapisany we flash ROM-ie i uruchamiany w momencie włączenia lub zresetowania Alphy. Istnieją dwa standardy konsol używanych w systemach Alpha i dlatego dostępne są dwa typy firmware:
Z perspektywy użytkownika najważniejszą różnicą między SRM i ARC jest fakt, że od typu konsoli jest uzależniony możliwy schemat partycjonowania dysku, z którego ma nastąpić start systemu.
ARC wymaga użycia tabeli partycji MS-DOS (takiej, jaką tworzy program
cfdisk
) dla dysku startowego. Dlatego tabele partycji MS-DOS są
``rodzimym'' formatem partycji w przypadku startu z ARC. Co więcej, jako że
AlphaBIOS zawiera narzędzie do partycjonowania dysków, możesz podzielić dysk z
menu firmware przed instalacją Linuksa.
Z drugiej strony SRM jest niezgodny z tabelami partycji MS-DOS. [4] Jako, że Tru64 Unix używa formatu etykiety dyskowej BSD, jest to ``rodzimy'' format partycji dla instalacji SRM.
Ponieważ GNU/Linux jest jedynym systemem operacyjnym na Alphie, którego można użyć z obu typów konsoli, wybór zależy również od tego, jakie inne systemy operacyjne będą znajdować się na tej samej maszynie. Wszystkie inne podobne do UNIX-a systemy operacyjne (Tru64 Unix, FreeBSD, OpenBSD i NetBSD) oraz OpenVMS mogą uruchamiać się tylko z SRM, natomiast Windows NT może uruchamiać się tylko z ARC.
Następująca tabela podsumowuje dostępne i obsługiwane kombinacje typu systemu i konsol (Obsługa procesorów, płyt głównych i kart grafiki, Rozdział 2.1.2 zawiera nazwy typów systemów). Słowo ``ARC'' poniżej oznacza dowolną konsolę zgodną z ARC.
Typ systemu Obsługiwany typ konsoli =========== ======================= alcor ARC lub SRM avanti ARC lub SRM book1 tylko SRM cabriolet ARC lub SRM dp264 tylko SRM eb164 ARC lub SRM eb64p ARC lub SRM eb66 ARC lub SRM eb66p ARC lub SRM jensen tylko SRM lx164 ARC lub SRM miata ARC lub SRM mikasa ARC lub SRM mikasa-p tylko SRM nautilus tylko ARC (patrz instrukcja do płyty głównej) noname ARC lub SRM noritake tylko SRM noritake-p tylko SRM pc164 ARC lub SRM rawhide tylko SRM ruffian tylko ARC sable tylko SRM sable-g tylko SRM sx164 ARC lub SRM takara ARC lub SRM xl tylko ARC xlt ARC lub SRM
W ogólności żadna z tych konsoli nie jest w stanie załadować Linuksa
bezpośrednio, dlatego konieczne jest użycie pośredniczącego programu
ładującego. Istnieją dwa główne takie programy: MILO
i
aboot
.
MILO
samo w sobie jest konsolą zastępującą ARC lub SRM w pamięci.
MILO
można uruchomić zarówno z ARC jak i SRM i jest jedynym
sposobem załadowania Linuksa z konsoli ARC. MILO
zależy od
systemu (w różnych systemach potrzebne są różne wersje MILO
) i
istnieją tylko dla tych systemów, dla których w powyższej tabeli istnieje
obsługa konsoli ARC. Patrz także (niestety przestarzałe) MILO HOWTO
.
aboot
to mały, niezależny od platformy program ładujący, który
działa tylko na konsoli SRM. Więcej informacji na temat programu
aboot
można znaleźć w (także niestety przestarzałym) SRM HOWTO
.
Dlatego w zależności od firmware konsoli systemowej i dostępności
MILO
są możliwe trzy rozwiązania:
SRM -> aboot SRM -> MILO ARC -> MILO
Płyta główna UP1000 (nazwa podarchitektury ``nautilus'') wyprodukowana przez Alpha Processor, Inc. jest inna niż wszystkie inne ponieważ używa programu ładującego zależnego od API, działającego w firmware AlphaBIOS. Nie istnieją (jeszcze) dyski instalacyjne dla UP1000, ale instalacja powinna być możliwa z wykorzystaniem jądra ``generic'' lub ``nautilus'' oraz root.bin z dyskietek instalacyjnych według instrukcji w podręczniku.
Jako, że MILO
nie jest dostępne dla żadnego z obecnie
produkowanych systemów Alpha (stan z lutego 2000 roku) i ponieważ nie jest już
konieczne wykupienie licencji OpenVMS lub Tru64 Unix w celu używania firmware
SRM na starszych Alphach, zaleca się stosowanie SRM i aboot
przy
nowych instalacjach systemu GNU/Linux, chyba że chcesz mieć również możliwość
ładowania Windows NT, lub istniejące dyski są partycjonowane zgodnie z DOS-em.
Większość systemów AlphaServer oraz wszystkie obecne serwery i stacje robocze zawierają zarówno SRM i AlphaBIOS. W przypadku maszyn ``half-flash'' takich jak różne rozwojowe płyty główne możliwe jest przejście między wersjami przez przeprogramowanie firmware. Po zainstalowaniu SRM jest także możliwe uruchomienie ARC/AlphaBIOS z dyskietki (komenda arc).
Jeśli chodzi o inne architektury, to powinieneś/powinnaś zainstalować najnowsze
dostępne wersje firmware [5] przed
zainstalowaniem Debiana. Dla Alphy uaktualnienia firmware dostępne są z
Alpha Firmware
Updates
.
Po zachęcie SRM (>>>
), wydaj następującą komendę:
>>> boot dva0 -flags 0
ewentualnie wstawiając właściwą nazwę urządzenia w miejsce dva0
.
Zazwyczaj dva0
to napęd dyskietek; wpisz:
>>> show dev
aby zobaczyć listę urządzeń (np. jeśli chcesz załadować system z CD-ROM-u).
Zwróć uwagę, że jeśli ładujesz system z MILO, argument -flags
jest
ignorowany, więc możesz napisać tylko boot dva0
.
Jeśli wszystko działa poprawnie, zobaczysz po chwili ładowanie jądra.
Jeśli chcesz podać parametry jądra przy ładowaniu z aboot
, wydaj
następującą komendę:
>>> boot dva0 -file linux.gz -flags "root=/dev/fd0 load_ramdisk=1 argumenty"
(wpisane na jednej linii), ewentualnie wstawiając właściwą nazwę urządzenia w
miejsce dva0
, urządzenie z głównym systemem plików w miejsce
fd0
, i właściwe parametry jądra w miejsce argumenty
.
Jeśli chcesz podać parametry jądra przy ładowaniu z MILO
, będziesz
musiał/musiała zatrzymać ładowanie w momencie uruchomienia MILO. Patrz Ładowanie z MILO, Rozdział
6.9.
W menu wyboru systemu operacyjnego wybierz linload.exe
jako
program ładujący i milo
jako ścieżkę systemu operacyjnego.
Załaduj nowo utworzoną pozycję.
Aby załadować system instalacyjny wpisz następującą komendę po zachęcie MILO:
MILO> boot fd0:linux.gz root=/dev/fd0 load_ramdisk=1
Jeśli ładujesz system z czegoś innego niż dyskietka, zamień fd0
w
powyższym przykładzie na odpowiednią nazwę urządzenia w notacji Linuksa.
Komenda help
podaje krótki opis komend MILO.
Jeśli pojawią się problemy i jądro zatrzyma się w czasie ładowania, nie wykrywa urządzeń, które są w systemie lub napędy nie są poprawnie rozpoznawane, najpierw należy spróbować podać parametry ładowania, jak zostało to opisane w Argumenty ładowania, Rozdział 6.1.
Często problemy można rozwiązać wyjmując z komputera dodatkowe urządzenia i próbując uruchomić komputer jeszcze raz.
Jeśli nadal masz problemy, prosimy o przysłanie zgłoszenia błędu. Wyślij list
elektroniczny na adres submit@bugs.debian.org
.
Musisz załączyć następujące linie na samym początku listu:
Package: boot-floppies Version: wersja
Zamiast wersja wpisz numer wersji systemu instalacyjnego, której używałeś/używałaś. Jeśli nie znasz numeru wersji, wpisz w to miejsce datę sprowadzenia z sieci i dodaj dystrybucję, której dotyczy system instalacyjny (np. ``stable'', ``frozen'').
Powinieneś/powinnaś także zamieścić w zgłoszeniu następujące informacje:
architecture: alpha model: producent sprzętu i model memory: ilość pamięci RAM scsi: kontroler SCSI, jeśli go posiadasz cd-rom: model CD-ROM-u i typ interface'u, np., ATAPI network card: karta sieciowa, jeśli ją posiadasz pcmcia: szczegóły na temat jakichkolwiek urządzeń PCMCIA
W zależności od typu błędu dobrze jest też zgłosić czy instalujesz na dysk IDE czy SCSI, inne urządzenia zewnętrzne takie jak karta dźwiękowa, pojemność dysku i model karty grafiki.
Opisz także na czym polega problem, widoczne komunikaty jądra w przypadku jego zatrzymania się. Opisz kroki, które doprowadziły system do stanu, w którym wystąpił błąd.
porridge@pandora.info.bielsko.pl