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.
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.6.
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 wypisze 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-arm/current/base2_2.tgz
dbootstrap
, Część 7.
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. Czasem wystarczy wsunąć płytę do napędu i zrestartować komputer.
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 rozdziale ``Instalacja systemu podstawowego'', Rozdział 7.14.
Musisz skonfigurować serwer RARP, serwer BOOTP i serwer TFTP.
Protokół RARP (Reverse Address Resolution Protocol) to jedna z metod na wskazanie klientowi jakiego adresu IP ma użyć. Innym sposobem jest użycie protokołu BOOTP. BOOTP to protokół IP, który informuje komputer o jego własnym adresie IP oraz gdzie w sieci może znaleźć obraz startowy.
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.
Aby skonfigurować serwer RARP, musisz znać adres Ethernet klienta (in. adres MAC). Jeśli go nie znasz, możesz załadować system używając trybu ``ratunkowego'' (np. z dyskietki Rescue Floppy) i użyć komendy /sbin/ifconfig eth0.
W systemie GNU/Linux trzeba wypełnić tablicę RARP jądra. Aby to zrobić, wykonaj
/sbin/rarp -s nazwa-klienta adres-ethernet-klienta /usr/sbin/arp -s adres-ip-klienta adres-ethernet-klienta
Jeśli zobaczysz komunikat SIOCSRARP: Invalid argument, prawdopodobnie konieczne będzie załadowanie modułu RARP jądra, lub skompilowanie jądra z obsługą RARP. Spróbuj użyć komendy modprobe rarp, a następnie ponownie komendy rarp.
W SunOS musisz umieścić sprzętowy adres Ethernet klienta w bazie danych
``ethers'' (albo w pliku /etc/ethers
, albo w NIS/NIS+) i bazie
``hosts''. Następnie należy uruchomić daemona RARP. W SunOS 4, należy w tym
celu wykonać (jako root) komendę: /usr/etc/rarpd -a; w SunOS 5 --
/usr/sbin/rarpd -a.
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.
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.
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?
Jeśli pojawią się problemy i jądro zatrzymuje 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 rozdziale Argumenty ładowania, Rozdział 6.1.
Problemy można często 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: arm 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, czy posiadasz inne urządzenia zewnętrzne takie jak karta dźwiękowa, oraz podać 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