HOME
DO_STR_GLOWNEJ_WYSZUKIWARKI
 
 
BOOT LOADER

 

Pobierz spakowaną witrynę gorzow-wlkp.pl/linux

Jeżeli pragniesz poznać Linuksa Mandrake (obecnie Mandriva), to... dobrze trafiłeś. Witryna została zauważona przez twórców magazynu KOMPUTER ŚWIAT 5/2004(141) str. 46 poprzez umieszczenie linku oraz magazynu CHIP 4/2004 (str.114) poprzez umieszczenie artykułu opisującego ten serwis internetowy. Jak na hobbystyczną stronę o Linuksie to miłe ;) Acha... na stronie mandrakelinux.pl/informacje podano też link z opisem cytuję "duży zbiór praktycznych informacji o Mandrake" (mam ją w swoim archiwum - klub.chip.pl/twarogal).

Zapraszam do zadawania pytań na FORUM oraz mailem. Chętnie udzielę (bezpłatnie) odpowiedzi. Oficjalne ceny za jedną poradę na stronie MandrakeSoftPL (mam ją w moim archiwum z dnia 2.05.2004) wahają się od 20 do 350 zł.

 

 

Tematy związane z zarządzaniem:

 

Spis treści:
 
Inne strony związane z tą tematyką:


 

 
Wstęp

 
Bootloader to program uruchamiany przez BIOS. Jego zadaniem jest zainicjować ładowanie jądra systemu operacyjnego z dysku twardego (lub CD, dyskietki itp.) do pamięci podręcznej RAM.

Bootloader składa się z:
  • kodu wykonywalnego bootstrap umieszczonego w pierwszych 466 bajtach MBR dysku twardego (ewentualnie płytki CD, dyskietki 1,44 a nawet pamięci FLASH podłączonej do portu USB)
  • pliku konfiguracyjnego w formacie tekstowym, umieszczonego najczęściej na pierwszej partycji systemowej
    - Windows - na dysku C:\
    - Linux - w katalogu /etc położonym na partycji montowanej jako /
Uwaga: kod wykonywalny bootloadera jest malutki (maksymalnie 446 bajtów). Należy edytować przypisany mu plik konfiguracyjny, nie zaś sam program. Aby zrozumieć jak wygląda bootloader, proponuję pod Windows typu NT (nie działa na Win9x) zainstalować program HDHacker i wybrać: Physical Drive (MBR) oraz Read sector from Disc. Pojawi się binarna postać MBR dysku z różnymi szlaczkami i dziwnymi znaczkami (patrz poniższy obrazek).
 
mbr

 
Konfigurację bootloadera wykonujemy więc nie zmieniając samego programu, a edytując odpowiedni plik konfiguracyjny.

W przypadku uszkodzenia bootloadera nic nie da edycja jego pliku konfiguracyjnego. Trzeba bootloader utworzyć na nowo specjalnym programem (najczęściej za pośrednictwem instalatora systemu operacyjnego) lub odtworzyć z ręcznie utworzonego archiwum.

Linuksowe bootloadery:
- LILO (tradycyjnie używany)
- GRUB (nowocześniejszy, ale i trudniejszy w konfiguracji)
 

 
Opcje konfiguracyjne LILO umieszczone w pliku /etc/lilo.conf

 
 
Opcje można umieścić w pliku /etc/lilo.conf oraz ewentualnie wpisać podczas startu komputera.

boot=/dev/hda (urządzenie startowe hda czyli dysk twardy Primary Master - wyjaśnienia znajdziesz na sąsiedniej stronie.

map=/boot/map

vga=normal
(jeżeli wartość wynosi normal, to ekran będzie miał 25 wierszy po 80 znaków w linii (tryb 80x25), zaś jeżeli wartość wynosi ext, to ekran edzie w trybie 80x50.)

ask (parametr sprawi, że podczas ładowania Kernela będzie można wybrać rozdzielczość po wciśnięciu klawisza ENTER.)

default="linux-nonfb" (w przypadku możliwości uruchomienia kilku Kerneli opcja default wskazuje, który Kernel zostanie załadowany domyślnie po upływie czasu timeout)

timeout=100 (czas oczekiwania, ilość 1/10 sekundy)

keytable=/boot/pl.klt (ustawienie klawiatury pl)

nowarn (wyłącza komunikaty ostrzegawcze)

message=/boot/message.txt (w pliku /boot/message.txt napisz komunikat powitalny)

menu-scheme=wb:bw:wb:bw

prompt (włącza możliwość wprowadzenia z klawiatury dodatkowych parametrów przy starcie systemu)

password=jakieshaslo (niestety hasło nie jest zaszyfrowane)
restricted

image=/boot/vmlinuz (Kernel czyli jądro systemu - nazwa pliku i miejsce położenia)

label="linux-nonfb" (etykieta Kernela, którą zobaczysz w menu startowym LILO)

appendmem=265MB (ręczne wskazanie ilości pamięci RAM w komputerze, gdy automatyczny pomiar jest błędny)

root=/dev/hda1 (hda1, czyli partycja podstawowa dysku Primary Master - wyjaśnienia tutaj)

initrd=/boot/initrd.img

append="devfs=mount acpi=ht resume=/dev/hda5" read-only

lba32


 

Dodatkowe wyjaśnienia:

Jeżeli LILO jest instalowane na drugiej partycji (co ma miejsce gdy na jednym dysku są Windows i Linux), to pierwsza partycja (pod Windows) nie powinna przekroczyć 1024 cylindra. Uwaga: ograniczenie to dotyczy wyłącznie bardzo starych Linuksów! Dokładne informacje o ilości cylindrów można uzyskać w instalatorze Linuksa (na załączonym obrazku pierwsza partycja mieści się w zakresie 0-44 cylindra). Skąd się bierze ograniczenie 1024 cylindra? Winny jest bootloader LILO (program startowy Linuksa), który w starych wersjach bez specjalnych zabiegów mógł odmówić wczytania jądra systemu, gdy znajdowało się poza 1024 cylindrem dysku. Współczesne Linuksy mają LILO radzące sobie z problemem 1024 cylindra. Na wszelki wypadek, po instalacji należy sprawdzić, czy w pliku /etc/lilo.conf jest wpis lba32.



Opcja restricted spowoduje, że podanie hasła będzie konieczne jedynie w przypadku, gdy podczas ładowania do systemu przekazywane będą jakieś dodatkowe parametry. Jeżeli password (i restricted) zostaną usunięte, to system zacznie się ładować bez potrzeby podawania hasła.


Można zmienić pewne drobne ustawienia graficznego menu wyboru LILO po wpisaniu wiersza:
menu-scheme=[tekst]:[pasek wyboru]:[obramowanie]:[tytul]
co praktycznie wygląda tak:
menu-scheme=wr:bw:wr:Yr domyślne ustawienia
menu-scheme=Wg intensywny biały na zielonym
menu-scheme=Yb:rb:Yb:Mb zółte litery na niebieskim
Oznaczenia symboli.
Wielkość liter narzuca intensywność (duża litera) / wyblaknięcie koloru (mała litera). Kolory mają symbolikę: k-czarny ; b-niebieski ; g-zielony ; c-cyan ; r-czerwony ; y-zolty ; m-magenta
 
*

 
Pamiętaj, by po każdej edycji pliku /etc/lilo.conf wydać komendę lilo, która zaktualizuje ustawienia bootloadera.

Linuksowe zlecenie lilo -u /dev/hda usuwa z MBR linuksowe LILO.
 

 
Problemy związane z obecnością dwóch systemów na jednym dysku

 
 
Przyjmuję, że mamy dwa systemy na jednym dysku. Na pierwszej partycji zainstalowano WindowsXP (partycja C:\), a na kolejnej Linuksa. Uwaga: Linux zagospodarował drugą partycję, którą dodatkowo trzeba było (w trakcie instalacji) pokroić.
  • Od wersji Mandriva 2008 nie występują problemy z instalacją dwóch systemów (WinXP i Linux) na jednym dysku. Nie dochodzi do kasowania bootloadera WinXP podczas instalacji Linuksa. Niestety, w wielu innych dystrybucjach Linuksa ten problem istnieje i opisują go poniższe punkty.

  • Po instalacji Windows9x na tym samym dysku, na którym jest już zainstalowany Linux dochodzi do skasowania bootloadera LILO Linuksa. Gdy pierw instalujemy na jednym dysku Windows9x, a potem Linuksa, to nie mamy problemów.

  • Po instalacji WindowsXP na tym samym dysku, na którym jest już zainstalowany Linux dochodzi do skasowania bootloadera LILO Linuksa. Gdy pierw instalujemy na jednym dysku WindowsXP, a potem Linuksa, to trzeba zainstalować linuksowe LILO w szczególny sposób. Uwaga: w nowych Linuksach np. Mandriva 2008 nie dochodzi w tym przypadku do skasowania bootloadera WinXP. Notatka więc dotyczy starszych wersji Linuksów.

    Jeżeli nie zrozumiełeś powyższego, to możesz zapisać LILO na dyskietkę 1,44MB i w BIOSie ustawić na kolejność bootowania: FLOPEK, DYSK TWARDY. Będziesz wówczas uruchamiał swojego Linuksa startując komputer z flopka (trzeba będzie pierw włożyć startową dyskiekę ;), a Windows jak dotychczas (czyli bez dyskietki). Istnieją także zewnętrzne narzędzia np. GAG.

  • Planując instalację dwóch systemów na jednym dysku napotkamy na problem przesyłu plików pomiędzy systemami. Dlatego proponuję utworzyć (np. na końcu dysku) jedną partycję do 8GB z systemem plików ext2. Jest to stary system plików i chyba dlatego istnieje dużo windowsowych narzędzi umiejących odczytywać z nich dane.

  • Gdy na jednym dysku chcemy zainstalować dwa systemy: Linux i Windows, to należy podzielić dysk na kilka partycji z różnymi systemami plików. Najprościej jest to zrobić linuksowymi narzędziami np. fdisk, diskdrake. Niestety, formatując partycję FAT16, FAT32, NTFS linuksowymi narzędziami, możemy spotkać się z ciekawym problemem: pod Linuksem partycje będą widziane prawidłowo, natomiast pod Windows nie. Problem rozwiązuję za pomocą DOSowych lub windowsowych narzędzi do formatowania partycji. Mam tutaj na myśli DOSową dyskietkę startową z Windows98 (zlecenie format c: narzuci format plików FAT na pierwszej partycji widzianej jako c:\) lub płytkę CD z instalatorem WindowsXP (format plików narzucam, po uzyskaniu konsoli, zleceniem format e: /fs:fat32 lub format e: /fs:ntfs , wcześniej ustalam nazewnictwo partycji). Uwaga: standardowo, dyskietka startowa Win98 może być użyta wyłącznie na dyskach do 64GB. Tak więc pod Linuksem dzielę dysk na ostateczne partycje, formatuję je (także FAT, NTFS) i dopiero gdy Windows robi jakieś problemy, to formatuję narzędziami Microsoftu (np. CD z instalką WinXP) partycje, których Windows nie widzi. Oczywiście zostawiam nietknięte te działające prawidłowo (w tym np. linuksowe ext2, ext3 itp.).
    Przypominam, że minusem FAT32 jest blokada (w Windows) odczytu plików wiekszych niż 2GB; Win2000, Win2003 umie jedynie współpracować z partycją (FAT32) o maksymalnej wielkosci 32GB

 

 
Odtwarzanie bootloadera Windows oraz Linuksa

 
  • Aby odtworzyć MBR umożliwiający start Windows9x, Milenium trzeba z DOSowej dyskietki startowej uruchomić zlecenie:
    fdisk /mbr
    Uwaga: powyższe zlecenie wyczyści całe MBR dysku, kasując nie tylko poprzednio zainstalowanego bootloadera Windows, ale także inne bootloadery np. linuksowe. W razie potrzeby w następnej kolejności trzeba będzie odtworzyć bootloadera Linuksa (patrz poniższe notatki).
     
  • Aby odtworzyć MBR umożliwiający start WindowsXP należy odpalić konsolę odzyskiwania uruchamiając płytkę instalacyjną WinXP: wkładamy CD z instalką WinXP, czekamy ze dwie minuty aż pojawi się w końcu opcja wyboru: Instalacja Systemu lub Konsola Odzyskiwania. Po wybraniu Konsoli należy wpisać cyfrę 1 (jeden), podać hasło administratora XP (zatwierdzamy klawiszem ENTER). Mając konsolę odzyskiwania trzeba wpisać jedno z poniższych zleceń (jest ich kilka podobnie działających):
    • fixmbr - naprawia MBR określonego dysku (nazwę dysku uzyskamy windowsowym zleceniem map). Zlecenie fixmbr bez dodatkowych parametrów naprawia MBR pierwszego dysku, pierwszej partycji. Inny przykład zlecenia:
      fixmbr \Device\HardDisk0
    • fixboot - naprawia MBR określonej partycji. Zlecenie fixboot bez dodatkowych parametrów wgrywa bootloadera do MBR pierwszej partycji (oczywiście pierwszego dysku). Inny przykład zlecenia wgrywającego bootloadera do sektora rozruchowego partycji D:
      fixboot d:
      Ponieważ Windows musi być instalowany na pierwszej partycji (czyli windowsowym C:\ ), więc w praktyce powyższe dwa zlecenia bez dodatkowych opcji działają podobnie.
    • bootcfg /rebuild - odzyskuje konfigurację rozruchową. Inna forma zlecenia dodaje system Windows do listy rozruchu:
      bootcfg /add

      na koniec exit i restart komputera. Należy pamiętać, że bootloader współpracuje z plikiem C:\boot.ini. Uwaga: powyższe zlecenia kasują ewentualnie zainstalowane bootloadery linuksowe, więc w razie potrzeby trzeba je będzie w następnej kolejności odtworzyć.

    Istnieje wiele darmowych windowsowych programików jak np. HDHacker, przy pomocy których można ręcznie zarchiwizować MBR dysku i w razie potrzeby odtworzyć.
    Opis jak uchronić się przed skasowaniem windowsowego (WinXP) NT Boot Record podczas instalacji Linuksa oraz jak odtworzyć bootloadera Linuksa umieściłem w artykule pt. WINXP I LINUX NA JEDNYM DYSKU.
     
  • Standardowo bootloader LILO jest wgrywany do MBR podczas instalacji systemu Linux. Problemy zaczynają się, gdy nie zarchiwizowaliśmy MBR, a doszło do jego uszkodzenia. Dla uproszczenia opisu przyjąłem, że na dysku jest jeden system operacyjny Linux. W przypadku obecności Windows oraz Linuksa należy przeczytać uważnie całą niniejszą stronę wraz z linkami.

    Problem daje się łatwo rozwiązać gdy podczas instalacji utworzyliśmy sobie na wszelki wypadek dyskietkę startową. Wówczas bootujemy z flopka komputer i po kłopocie.

    Jeżeli nie posiadamy dyskietki startowej, to należy uruchomić płytkę CD_1 z instalatorem tego Linuksa. Następnie wybrać pkt. AKTUALIZACJA (nie należy wybierać INSTALACJI, gdyż możemy skasować wiele ważnych ustawień!). W Mandrake/Mandriva dojdziemy na końcu do zbiorczego panelu. Tam wyszukujemy punkt instalowania bootloadera startującego system. Mając na tym samym dysku Windows98 (i Linuksa) można śmiało instalować bootloadera w MBR dysku. Mając WinXP (i Linuksa) trzeba pokombinować. Najbezpieczniej jest zainstalować linuksowego bootloadera na dyskietce (/dev/fd0) i mając taką dyskietkę startową bootować z flopka.

  • Przywrócenie LILO zewnętrznym Linuksem ratunkowym.
     
    Polecam lekturę stron o Linuksach ratunkowych. Jedną z ich możliwości jest odtworzenie LILO, które zostało uszkodzone w MBR dysku twardego. Przyjmuję, że plik /etc/lilo.conf na dysku z linuksem stacjonarnym jest nieskasowany.

    Odpalamy jakiegoś Linuksa typu LiveCD np. Knoppix, Slax, Gentoo, CDLinux, MdkMove itp. Zamontowujemy pod nim (jako root) pierwszą linuksową partycję dysku twardego i wykonujemy naprawę:

    mkdir   /mnt/dysk1 (utwórz katalog dysk1 w /mnt)
    mount   /dev/hdXY   /mnt/dysk1 (zamontuj partycję linuksową montowaną jako /)
    chroot   /mnt/dysk1
    lilo -v -C /etc/lilo.conf
    exit
    reboot

    Wpis dev/hdXY odpowiada pierwszej partycji linuksowej montowanej jako / , czyli prawdopodobnie hda1 (przyjmuję, że nie ma małej, osobnej partycji montowanej jako /boot)
    Podczas restartu komputera wyjmij płytkę CD z Linuksem ratunkowym.

    Jeżeli powyższe nie wypali, to spróbuj inaczej:

    mkdir   /mnt/dysk1
    mount   /dev/hdXY   /mnt/dysk1
    chroot /mnt/dysk1 /bin/bash
    lilo -v -C /etc/lilo.conf
    exit
    reboot

    Do prac ratunkowych można także użyć CD nr 1 z instalką Linuksa Mandrake/Mandriva. Krótką notatkę na ten temat umieściłem na stronie głównej o Linuksach ratunkowych.

 

 
Archiwizowanie bootloadera
 
 
Jak powyżej wspomniałem istnieje prosty windowsowy programik HDHacker, który umie zarchiwizować (i odtworzyć) MBR dysku. Oczywiście archiwizacja powinna być przeprowadzona, gdy wszystko ładnie działa :) . Natomiast pod Linuksem korzystamy ze standardowych poleceń.

Wykonanie archiwum MBR pod Linuksem:

  • logujemy się jako root
  • cd /root
  • mkdir katalogarchiwum
  • cd katalogarchiwum
  • dd if=/dev/hda of=kopiadysku_hda.mbr count=1 bs=512

Krótkie wyjaśnienia: będąc w katalogu /root utworzyliśmy katalog katalogarchiwum. Następnie po wejściu do tego katalogu daliśmy zlecenie tworzące kopię MBR dysku twardego hda pod nazwą kopiadysku_hda.mbr

Uwaga: jeżeli zlecenie dd uruchomiliśmy z Linuksa stacjonarnego, to katalog /root jest umieszczony na dysku twardym i po restarcie archiwum nie zniknie. Natomiast jeżeli zlecenie dd wydaliśmy z pozycji Linuksa ratunkowego np. SystemRescureCD, to należy pamiętać, że jego katalog /root jest umieszczony w kościach pamięci RAM i koniecznym jest przenieść katalog (z zawartością) /root/katalogarchiwum na dysk twardy lub flopka. Z tego wynika, że najlepiej jest od razu wrzucić MBR na flopka. Wówczas zlecenie będzie miało postać:
dd if=/dev/hda of=/dev/fd0 bs=512
Z takiej dyskietki można w przyszłości awaryjnie bootować komputer.



Odtworzenie archiwum MBR utworzonego wg powyższej notatki:

Generalnie odtwarzamy MBR, gdy mamy awarię i wystąpiły problemy z uruchomieniem stacjonarnego systemu operacyjnego. Jeżeli wykonaliśmy archiwum MBR na dyskietce (opis powyżej), to awaryjnie bootujemy z flopka i po odpaleniu stacjonarnego Linuksa wykonujemy naprawę. Gorzej, gdy archiwum MBR jest w postaci pliku i nie możemy z niego bootować. Wówczas trzeba w pierwszej kolejności odpalić z innego napędu (CD-ROM, flopka itp.) rezerwowy system operacyjny Linux np. SystemRescureCD, podmontować urządzenie zawierające na swoim nośniku plik z archiwum MBR i wykonać zlecenie:
dd if=kopiadysku_hda.mbr of=/dev/hda
Zlecenie wydajemy będąc w katalogu z plikiem kopiadysku_hda.mbr. Odtwarzamy MBR dysku pierwszego, pierwszej partycji podstawowej hda)

Szerszy opis odtwarzania archiwum MBR umieściłem na na stronie: SystemRescureCD.php

Oczywiście istnieją Linuksy, które bez znajomości komend linuksowych (za pomocą myszki w menu okienkowym) pozwalają łatwo tworzyć i odtworzyć obrazy partycji lub dysku (np. MBR). Polecam Paragon Exact Image7.

 

 
Istnieją narzędzia ułatwiające zarządzanie startem różnych systemów z poziomu MBR. Przykładem tego jest darmowy i prosty w obsłudze GAG do pobrania ze strony domowej lub mojego archiwum. Po rozpakowaniu paczki wkładamy czystą dyskietkę 1,44MB do flopka i...
pod Windows uruchamiamy plik install.bat
pod Linuksem pakiet RAR rozpakowujemy zgodnie z tymi notatkami, a następnie pod rootem wydajemy polecenie:
mount /mnt/floppy (aby zamontować dyskietkę)
oraz
dd if=disk.dsk of=/dev/fd0 bs=512 count=2880

Mając taką dyskietkę restartujemy komputer i bootujemy z flopka. Teraz wybieramy po kolei: 4, 1, N, K i reszta jest prosta. Można zainstalować GAG w MBR dysku twardego lub zostawić na dyskietce.

Aby skasować GAG wystarczy odtworzyć MBR lub podczas powtórnej instalacji programu GAG wybrać opcję Uninstal GAG.

GAG jest dołączany do pakietów programów w tzw. Linuksach ratunkowych. Zapraszam na sąsiednią stronę opisującą Linuksa SystemRescureCD.
 

 
Aby wyłapać przyczynę problemów podczas startu Linuksa (lub podczas jego instalacji), należy uruchomić system z wpisanymi ręcznie opcjami failsafe LILO:

Linux noapic nolapic apm=off acpi=off ide=nodma

Przypominam, że w pliku /etc/lilo.conf wpis prompt zezwala na start systemu z opcjami wpisanymi podczas startu LILO.
Jeżeli system się załaduje, to po restarcie usuń jedną opcję i znowu uruchom. Aż do momentu, gdy będziesz wiedział co sprawia problemy.

Opcje startowe Linux-failsafe :
noapic - system nie będzie korzystał z Zaawansowanych Programowalnych Kontrolerów Przerwań
nolapic - Lokalny Zaawansowany Programowalny Kontroler Przerwań
apm=off - Zaawansowane Zarządzanie Energią (przydatne w laptopach), off czyli wyłącza
acpi=off - Zaawansowana Konfiguracja i Interfejs Zasilania
ide=nodma - wyłącza DMA (dyski twarde, CD-ROM)

Inne opcje startowe do wpisania podczas startu komputera:
noauto - przydatne przy problemach sprzętowych (ręcznie ustawisz parametry sprzętu)
freeDriver - narzuca darmowy sterownik urządzenia (czasami wersja free sterownika jest stabilniejsza od komercyjnej)
nosmp - wyłącza symetryczną wielozadaniowość (przydatne na wielozadaniowym urządzeniu, które się zawiesza)
mem=256M - narzuca ilość pamięci RAM w MB.

Przykład: na komputerze z nietypową płytą główną Linux Mandriva 2006 instalował się przez wiele godzin (czytnik CD-ROM był czysty, płytki CD prawidłowo wypalone). W momencie formatowania partycji instalacja stawała i pojawiały się komunikaty błędu:
hda: dma_timer_expiry: dma status == 0 x 64
hda: DMA interrupt recovery
hda: lost interrupt

Wystarczyło (po zabootowaniu instalatora z CD) wpisać opcję startową noapic, a instalacja poszła bez problemów.

Polecam przeczytać notakę o logowaniu na roota bez podawania hasła z wykorzystaniem opcji startowych LILO wpisywanych podczas startu LILO.
 

 
Ciekawy artykuł o samodzielnej konfiguracji LILO, tak by wyświetlał się ładny bootscreen znalazłem na stronie: http://www.debianusers.pl/article.php?aid=31 (mam ją w swoim archiwum).
 

 

 
TWAROGAL

Uwaga: z powodu namnożenia się różnych złodziejskich witryn www, które kopiują moje strony i umieszczają je u siebie wraz z komercyjnymi reklamami (na których zarabiają) informuję, że wszelkie prawa są zastrzeżone.

Uwaga. Aby uniknąć zasysania całej witryny gorzow-wlkp.pl/linux za pomocą programów typu TeleportPro, WebCopier itd. informuję, że udostępniłem spakowaną wersję (w formacie RAR).

 
 

 

 

Witryna była dostępna pod adresami: strony.wp.pl/wp/twarogal , strony.wp.pl/wp/linuxtwarka , twarogal.republika.pl , klub.chip.pl/twarogal oraz gorzow-wlkp.net (w latach 2003/04).

 

 

gorzow-wlkp.pl

Informacje o odwiedzających są rejestrowane i publicznie udostępniane na pod adresem: http://gorzow-wlkp.pl/licznik/