[ powrót ] [ Streszczenie ] [ Prawa autorskie ] [ Spis treści ] [ dalej ]

Instalacja Debiana GNU/Linux 2.2 dla architektury Alpha
Część 6 Uruchamianie systemu instalacyjnego


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.


6.1 Argumenty ładowania

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.


6.1.1 Argumenty dbootstrap

System instalacyjny rozpoznaje kilka argumentów, które mogą się okazać pomocne.

quiet
System instalacyjny pominie prośby o potwierdzenie i spróbuje samodzielnie wykonać właściwe czynności. Jeśli znasz system instalacyjny, jest to dobra metoda na uciszenie procesu.

vebose
Zadawaj jeszcze więcej pytań niż zwykle.

debug
Generuj dodatkowe komunikaty do dziennika systemowego (patrz Używanie powłoki i przeglądanie dziennika systemowego, Rozdział 7.1.1), w tym wszystkie uruchamiane komendy.

bootkbd=...
Wybierz wcześniej klawiaturę, której chcesz użyć, na przykład bootkbd=qwerty/pl

mono
Użyj trybu monochromatycznego, zamiast kolorowego


6.2 Interpretacja komunikatów startowych jądra

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).


6.3 Ładowanie z twardego dysku

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.


6.3.1 Instalacja z partycji Linnuksa

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.

  1. Sprowadź następujące pliki i umieść je w katalogu na istniejącej partycji Linuksa:
  2. Możesz użyć dowolnej metody ładowania podczas instalacji z partycji. Poniższe instrukcje zakładają, że korzystasz z dyskietek, ale można użyć dowolnej metody.
  3. Utwórz dyskietkę Rescue Floppy jak to opisano w Tworzenie dyskietek z obrazów, Rozdział 5.6.4. Zwróć uwagę, że nie będzie potrzebna dyskietka Driver Floppies.
  4. Wsuń dyskietkę Rescue Floppy do napędu i zrestartuj komputer.
  5. Przejdź do Uruchamianie systemu instalacyjnego, Część 6.


6.4 Instalacja z CD-ROM-u

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.


6.5 Ładowanie z TFTP

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.


6.5.1 Konfiguracja serwera BOOTP

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.


6.5.2 Włączanie serwera TFTP

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.


6.5.3 Przenoszenie obrazów TFTP na miejsce

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


6.5.4 Installing with TFTP and NFS Root

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?


6.6 Firmware konsoli maszyn Alpha

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.


6.7 Ładowanie z konsoli SRM

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.


6.8 Ładowanie z ARC lub AlphaBIOS

W menu wyboru systemu operacyjnego wybierz linload.exe jako program ładujący i milo jako ścieżkę systemu operacyjnego. Załaduj nowo utworzoną pozycję.


6.9 Ładowanie z MILO

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.


6.10 Co zrobić w przypadku problemu?

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.


[ powrót ] [ Streszczenie ] [ Prawa autorskie ] [ Spis treści ] [ dalej ]
Instalacja Debiana GNU/Linux 2.2 dla architektury Alpha
version 2.2.20, 25 November, 2000
Bruce Perens
Sven Rudolph
Igor Grobman
James Treacy
Adam Di Carlo
tłumaczenie: Marcin Owsiany porridge@pandora.info.bielsko.pl