LILO
Przy instalacji dowolnej dystrybucji Linuksa, w załączeniu praktycznie zawsze dostajemy, jeden z programów rozruchowych (bootloader), dzięki któremu będzie możliwy wybór systemu jaki pragniemy uruchomić. Ponieważ bootloader naprawdę się przydaje dopiero gdy mamy wiele systemów, więc w tym podręczniku nie bierzemy innego przypadku pod uwagę.
Konfiguracja LILO
edytuj- logujemy się jako root (albo administrator, który ma uprawnienia do zapisywania plików w katalogu /etc)
- otwieramy do edycji plik /etc/lilo.conf (za pomocą dowolnego edytora tekstu, np. vi, emacs czy mcedit); w pliku tym są zapisane informacje jakie systemy operacyjne są na naszym komputerze zainstalowane, na jakich partycjach, oraz dodatkowe opcje bootloadera.
UWAGA! Po dokonaniu zmian w lilo.conf, należy uruchomić LILO. Jako root, wydajemy komendę "lilo". Dopiero po tym sprawdzane są zmiany w lilo.conf, jego składnia i bootloader jest wgrywany do MBR (Master Boot Record).
składnia lilo.conf
edytujopcje globalne
edytujboot = /dev/dysk
opcja służy do wskazania LILO gdzie ma szukać lilo.conf. Najczęściej jest to dysk z MBR (Master Boot Record)
prompt
Dzięki tej opcji LILO poczeka na nasz wybór. Nie przydatna gdy mamy zdefiniowany jeden kernel, niezbędna gdy wgraliśmy więcej niż jeden. Opcja nie przyjmuje argumentów
timeout = 100
Czas oczekiwania na wybór użytkownika. Liczony w milisekundach. W przykładzie 10sekund.
lba32
Pozwala na wgranie LILO poza pierwsze 1024cylindry dysku. Przydatne przy nowych BIOSach. Opcja nie przyjmuje dodatkowych argumentów.
vga = 791
Pozwala na wybór rozdzielczości i palety kolorów dla konsoli. Lista rozdzielczości jest domyślnie dodawana, przy tworzeniu lilo.conf. Poniżej pełna lista w formacie: vga = numer - rozdzielczość x ilość kolorów
vga=791 - 1024x768x64k vga=790 - 1024x768x32k vga=773 - 1024x768x256 vga=788 - 800x600x64k vga=787 - 800x600x32k vga=771 - 800x600x256 vga=785 - 640x480x64k vga=784 - 640x480x32k vga=769 - 640x480x256
message = /boot/boot_message.txt
Wskazuje plik tekstowy który zostanie wyświetlony pod menu wyboru partycji. Drobna uwaga: Jeśli już używamy tej opcji, plik na który wskazuje "message" musi istnieć i musi coś w sobie zawierać ( nie może mieć 0-rowego rozmiaru), gdyż zaowocuje to błędem "Fatal: Empty map Section"
change-rules
Używane z poniższym ze względów bezpieczeństwa. Gdy ktoś ma fizyczny dostęp do komputera, i chcemy zresetować opcje przekazane do kernela
reset
Resetuje dodatkowe opcje przekazywane do kernela, podczas wyboru systemu. Używane by uniemożliwić zalogowanie się na root-a, bez podawania hasła.
password=haslo123
Wymusza podanie hasła "haslo123"
restricted
Zapobiega podaniu do Kernela dodatkowych opcji (np. init 1) - przejścia w tryb jednego użytkownika - roota
opcje wyboru systemu
edytujimage = /boot/vmlinuz
Wskazuje obraz kernela (jądra systemu) do wgrania.
root=/dev/sda2
Wskazanie dysku, który ma być naszym / - głównym katalogiem
initrd=/boot/map
Wskazanie dodatkowo mapy systemu, dla niektórych dystrybucji jest niezbędna. Drobna uwaga: Jeśli już używamy tej opcji, plik na który wskazuje "initrd" musi istnieć i musi coś w sobie zawierać ( nie może mieć 0-rowego rozmiaru), gdyż zaowocuje to błędem "Fatal: Empty map Section"
label=nazwa
Nazwa pod jaką będzie figurował system w menu wyboru. Nie musi być podawana. (Może być pusta)
read-only
Wymusza montowanie partycji w trybie tylko do odczytu. Opcja bezpieczeństwa. Dzięki temu nikt nie zmieni obrazu kernel-a, czy nie zniszczy partycji.
other = /dev/hda
Używane zamiast "image" dla systemów innych niż *NIX-owe. Np. dla Windows-a czy DOSa. Dzięki tej opcji udajemy iż dysk jest primary master
boot-as = 0x80
Zmienia domyślny sposób bootowania. Dzięki temu możliwe jest bootwanie np. Windows-a czy DOSa.
map-drive 0x80 to 0x81 map-drive 0x81 to 0x80
Mapuje, czyli rzutuje dysk linuxa, na dysk windows-a, potem odwrotnie. Używane do bootowania Windows-a czy DOSa.
przykład lilo.conf
edytujPrzykładowy lilo.conf z użyciem ww. opcji. Ponieważ najlepiej się uczy na przykładzie, załączam plik konfiguracyjny LILO, taki jaki otrzymałem po zainstalowaniu Slackware 12.0. Komentarze zaczynają się od znaku hasha, innymi słowy wszystkie znaki do końca linii, po # będą ignorowane. Obiektem jest komputer z trzema systemami zainstalowanymi na dwóch dyskach SATA (nazwy dysków sda i sdb). Dwa linuxy, na sda2 i sda3. sda1 zawiera /boot, który jest wspólny dla obu systemów. Windows jest sdb2.
# LILO configuration file # generated by 'liloconfig' # # Start LILO global section lba32 # Allow booting past 1024th cylinder with a recent BIOS boot="/dev/sda" message = /boot/boot_message.txt prompt timeout="100" password=L1n3&ux9 # Override dangerous defaults that rewrite the partition table: change-rules reset # Normal VGA console vga="791" # VESA framebuffer console @ 1024x768x64k # vga=791 # VESA framebuffer console @ 1024x768x32k # vga=790 # VESA framebuffer console @ 1024x768x256 # vga=773 # VESA framebuffer console @ 800x600x64k # vga=788 # VESA framebuffer console @ 800x600x32k # vga=787 # VESA framebuffer console @ 800x600x256 # vga=771 # VESA framebuffer console @ 640x480x64k # vga=785 # VESA framebuffer console @ 640x480x32k # vga=784 # VESA framebuffer console @ 640x480x256 # vga=769 # End LILO global section # Linux bootable partition config begins image="/boot/vmlinuz-slack" root="/dev/sda2" label="Slackware_12" read-only # Linux bootable partition config ends # Linux bootable partition config begins image = /boot/vmlinuz password=Cathy restricted root = /dev/sda3 label = KateOS initrd = /boot/initrd read-only # Linux bootable partition config ends # Windows bootable partition config begins other = /dev/sdb2 label = Windows boot-as = 0x80 # Windows bootable partition config ends
przykład lilo.conf niezależnego od kontrolera dysku
edytujPoniższy przykład uniezależnia nas od zmiany kontrolera dysku. Wskazane id w opcjach boot i root zawsze wskazują na właściwą partycje, nie ważne czy system rozpoznaje ją jako: hda, hdb, hdc, hdd... czy sda,sdb,sdc,sdd... W przykładzie są też opcje dla 'splash screen-a' w postaci bitmapy:
boot = /dev/disk/by-id/ata-AA6666666A_6AA6A66A #/dev/hdd bitmap = /boot/slack.bmp bmp-colors = 255,0,255,0,255,0 bmp-table = 60,6,1,16 bmp-timer = 65,27,0,255 append="vt.default_utf8=1" ## przekaż do Kernela dodatkowe opcje. Tu, konsola w utf8 prompt timeout = 50 lba32 vga = 791 image = /boot/vmlinuz root = /dev/disk/by-uuid/a666aaaa-a6a6-6a6a-aa66-66a6aaaa666a #/dev/hdd1 label = Slackware-13.0 read-only # Partitions should be mounted read-only for checking
Bootowanie Windows
edytujLILO potrafi oczywiście wystartować i systemy ze stajni Microsoftu. Konfiguracja jednak lekko się różni. Spójrzmy na parę przykładów. Wpierw Windows na innym dysku:
other = /dev/hdc2 # other, informuje iż system nie jest GNU/Linux. label = windows # analogiczny wpis, jak dla linuxów. Tytuł jaki będzie widoczny w menu LILO. boot-as = 0x80 # informuje by inaczej startować partycje z windowsem.
Metoda pierwsza
edytujKolejny przykład. Tym razem windows i linux na jednym dysku.
# Linux: image = /boot/vmlinuz root = /dev/hdd1 label = Slackware read-only #Windows other = /dev/hdd2 label = Windows boot-as = 0x80
Metoda druga
edytujzamiast boot-as, możemy użyć składni na sposób GRUB-a
other = /dev/hdd2 label = Windows map-drive = 0x80 to 0x81 map-drive = 0x81 to 0x80
Metoda trzecia
edytujW sieci można znaleźć jeszcze trzeci sposób bootowania Windowsa:
other = /dev/hdd2 label = Windows table = /dev/hdd