osdev.labedz.org

Tworzenie dyskietki startowej z programem ładującym GRUB

W celu stworzenia dyskietki startowej z systemem plików i programem ładującym GRUB potrzebujemy dwóch dyskietek.

  • Na dyskietkę pierwszą nagrywamy binarne pliki dostarczone wraz z programem ładującym:
  • $ cd /usr/share/grub/i386-pc $ dd if=stage1 of=/dev/fd0 bs=512 count=1 1+0 records in 1+0 records out $ dd if=stage2 of=/dev/fd0 bs=512 seek=1 153+1 records in 153+1 records out $
    UWAGA!!! Operacja ta niszczy wszystkie informację zawarte na dyskietce!!!
  • Następnie przegrywamy pliki stage1 i stage2 na drugą dyskietkę, zawierającą system plików rozpoznawalny przez program GRUB, do katalogu /boot/grub.
  • mkdir /mnt/boot mkdir /mnt/boot/grub cp stage1 /mnt/floppy/boot/grub cp stage2 /mnt/floppy/boot/grub
    Po operacji kopiowania plik stage2 nie może być modyfikowany, kasowany, defragmentowany lub przenoszony - w przypadku jego zmiany dyskietka nie uruchomi się.
  • Bootujemy komputer z dyskietki pierwszej. Po pokazaniu się znaku zachęty programu GRUB, zmieniamy dyskietki i wydajemy komende:
  • grub> setup (fd0)
    Po tej operacji dyskietka druga jest bootowalna i zawiera program ładujący. Aby załadować implementowany system operacyjny należy przeprowadzić bootowanie komputera z przygotowanej dyskietki.
  • Informujemy program ładujący, że katalogiem głównym (ang. root) będzie katalog główny dyskietki
  • grub> root (fd0) Filesystem type is fat, using whole disk
  • Informujemy GRUB który plik jest plikiem obiektowym systemu operacyjnego (w tym wypadku plik kernel w głównym katalogu dyskietki)
  • grub> kernel /kernel [Multiboot-elf, <0x101000:0x581a:0x0>, <0x107000:0x1000:0x2000>, shtab=0x10a140, entry=0x101b10]
  • Wydajemy komendę ładowania systemu
  • grub> boot

Jeżeli chcemy uniknąć wpisywania powyższych komend przed każdorazowym ładowaniem systemu możemy skorzystać z pliku konfiguracyjnego programu GRUB. W pliku tym umieszcza się standardowe instrukcję według których program ładujących ma zainicjować system operacyjny. Plik konfiguracyjny powinien mieć nazwę menu.lst i znajdować się w katalogu /boot/grub. Zawartość pliku konfiguracyjnego dla zadań odpowiadających powyżej przedstawionemu schematowi powinna wyglądać następująco:

default 0 timeout 10 title Moj Os root (fd0) kernel /kernel