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