menu.jpg  ::  Home ::  Computing ::  Downloads ::  Scooter ::  Links ::  Music ::  Nonsense ::  Mail :: 

1. Unterschiede zwischen GRUB und LiLo

Eigentlich ist der Grand Unified Bootloader (GRUB) für das GNU/Hurd-System entwickelt worden, er kann neben dem GNU/Hurd-Kernel (ob der noch jemals fertig wird?) aber auch nativ Linux und über Chainloading auch auf die nativen Bootloader von Free-, NetBSD, OpenBSD, Betriebsystemen (?) der Windoze-Familie, OS/2 und Solaris zugreifen. Er benötigt jedoch im Gegensatz zu LiLo keine funktionierende Betriebsystem-Umgebung, da er über ein "eingebautes" Installationsprogramm verfügt und ausserdem nativ die gängigsten Dateisyteme, wie

unterstützt. Er kann deswegen vollkommen autonom verschiedene Kernel von den lokalen Festplatten laden bzw auf deren native Bootloader zugrifen.

GRUB verfügt über ein Bootmenü, das ein wenig an den NT-Loader aus dem Hause Kleinstweich erinnert.

Im Gegensatz zu LiLo sind bei Änderungen im Bootmechnismus oder Kompilation eines neuen Kernels keine Neuinstallationen des Bootlaoders erforderlich (/sbin/lilo) - Konfigurationsänderungen werden von GRUB einfach beim nächsten Systemstart neu eingelesen. Letzten Endes bedeutet dies einfach, dass man bei der Verwendung von GRUB nur einmal den Installations-Ärger hat, bei der Verwendung von LiLo hat man das häufiger...

Infolge seines eigenen Installationsprogrammes ist GRUB ausserdem ein geniales Tool für Bootdisketten.

2. Installation von GRUB

<disclaimer>

Das Verändern des MBR ist immer eine heikle Angelegenheit, bei der man sich stets darüber im klaren sein sollte, was man gerade macht, und dass man im Falle des Scheiterns möglicherweise mit einem nicht mehr bootenden System dasteht. Ein Backup ist also immer zu empfehlen. Diese Vorgehensweise sollte auf jeder Maschine so funktionieren, aber ich lehne die Übernahme jedweder Verantwortung im Falle des Scheiterns ab yadayadayada...

</disclaimer>

Zum Verständnis der Bennennung von Partitionen und Festplatten durch GRUB ist es wichtig, sich immer wieder daran zu erinnern, dass er mit "0" zu zählen beginnt und keine Unterschiede zwischen SCSI oder IDE kennt. Die erste Partition der ersten Festplatte benennt GRUB also als "hd0,0", die zweite mit "hd0,1" yadayadyada...

Die Sache ist aufgrund der Tatsache, dass GRUB bei einer Installation ohne 'keymap', also bei einer Installation von Diskette, nur eine amerikanische Tastatenbelegung kennt, ein bischen "tricky". Es empfiehlt sich also, bei der Installation eine amerikanische Tastaturtabelle zur Hand zu haben (Hint: Ist in jedem DOS-Handbuch abgedruckt).

Die Installation geht "quick and dirty" folgendermassen als Superuser eingeloggt ab:

Danach kann man GRUB entweder über eine Boot-Diskette oder mittels 'grub-install' direkt von der Festplatte installieren:

2.1 Installation von einer Boot-Diskette

Wir gehen einfach mal von folgenden Voraussetzunge aus:

GRUB soll im MBR der ersten SCSI-Festplatte installiert werden. Der Kernel befindet sich im Verzeichnis "/boot" auf der zweiten Partition der ersten SCSI-Festplatte (/dev/sda2), das wiederum ein Unterverzeichnis namens "grub/" aufweist.

Am risiko-ärmsten lässt sich GRUM IMHO über eine Boot-Diskette installieren. Diese erstellt man folgendermassen:

Man legt eine leere Diskette ein und kopiert im raw-mode aus dem neuen Verzeichnis die Dateien 'stage1' und 'stage2' darauf:

   # cd /boot/grub
   # dd if=stage1 of=/dev/fd0 count=512 count=1
   # dd if=stage2 of=/dev/fd0 count=512 seek=1

Um sich viel Mühe zu ersparen, sollte man schon jetzt eine Konfigurationsdatei für GRUB unter '/boot/grub/menu.lst' anlegen. Näheres zu dieser Datei findet man unter 3. Konfiguration von GRUB.

Nach Booten von der soeben erstellten Diskette wird man von GRUB an seinem Bootprompt empfangen. Der Bootprompt verfügt angenehmerweise - wie die bash - über eine Befehlszeilen-Komplettierung mittels der Tabulatortaste. Nun zeigt man Grub mit folgenden Befehlen, was man booten möchte:

   # root (hd0,1)

Aus dieser Angabe erkennt GRUB, dass man von der zweiten Partition der ersten Platte (er fängt immer bei "0" zu zählen an) booten will.

   # kernel /boot/vmlinuz root=/dev/sda2 mem=256M

Dieser Angabe entnimmt GRUB den zu bootenden Kernel (/boot/vmlinuz) und die ihm zu übergebenden Parameter.

   # boot

Damit wird der Bootvorgang ausgelöst. Am MBR sind keine Veränderungen vorgenommen worden.

Alternativ kann man, ebenfalls ohne Veränderungen am MBR vorzunehmen, mit folgender Syntax einen Testlauf starten:

   # root (hd0,1)
   # install=/boot/grub/stage1 d (hd0) /boot/grub/stage2 0x8000 p /boot/grub/menu.lst

Diese Variante bedarf aber einer funktionierenden 'menu.lst' im Verzeichnis "/boot/grub", die man bei dieser Gelegenheit, wenn Sie denn existiert, gleich einmal testen kann.

Die Installation von GRUB wird mit folgenden Befehlen vorgenommen:

   # root (hd0,1)
   # install=/boot/grub/stage1 d (hd0) /boot/grub/stage2 0x8000 p /boot/grub/menu.lst
   # makeactive

2.2 Installation von der Festplatte

GRUB kann man als Superuser mittels des Programmes '/sbin/grub-install' von der Festplatte installieren. Als Parameter wird das Laufwerk oder die Partition, aus dessen Bootsektor GRUB booten soll, angegeben. Das Device kann dabei entweder Betriebsystem-spezifisch (z.B. '/dev/sda') oder in GRUB's Schreibweise (z.B. (hd0)) angegeben werden. Einige Beispiele:

Wenn man ein Notebook mit einem Wechel-Diskettenlaufwerk hat, sollte man dieses anschliessen, da GRUB den Floppy-Controller findet und auf das Laufwerk zugreifen möchte, um dieses in seine Device-Map einzutragen und anderenfalls äusserst ungnädig mit langen Timeouts reagiert.

3. Konfiguration von GRUB

Grub wird über die Datei '/boot/grub/menu.lst' konfiguriert. Diese könnte im obigen Szenario folgendermassen aussehen:

   # Boot menu configuration file for GRUB
   #
   # $Id$

   #--------- Global options -------------

   # Boot automatically after 30 secs
   #
   timeout 30

   # By default, boot the 1st entry (section 0)
   #
   default 0

   # Fall back on the 4th entry (section 3)
   #
   fallback 3

   #---------- Bootable sections ---------

   # begin section 0 (bootable)
   #
   title  Gentoo/i386 mit Torvalds-Kernel 2.6.13 (Framebuffer)
   root (hd0,1)
   kernel /boot/vmlinuz-2.6.13 root=/dev/sda2 video=matrox:vesa:0x11A

   # begin section 1 (bootable)
   #
   title Gentoo/i386 mit Torvalds-Kernel 2.6.13 (Single-User, Framebuffer)
   root (hd0,1)
   kernel /boot/vmlinuz-2.6.13 root=/dev/sda2 single video=matrox:vesa:0x11A

   # begin section 2 (bootable)
   #
   title Gentoo/i386 mit Torvalds-Kernel 2.6.13 (Single-User)
   root (hd0,1)
   kernel /boot/vmlinuz-2.6.13 root=/dev/sda2 single

   # begin section 3 (bootable)
   #
   title Gentoo/i386 mit Torvalds-Kernel 2.6.13 (Backup)
   root (hd0,1)
   kernel /boot/vmlinuz-2.6.13.old root=/dev/sda2

   # begin section 4 (bootable)
   #
   title NetBSD/i386 2.0.2 (Bootloader)
   root (hd3,0,a)
   chainloader +1
   boot

   # begin section 5 (bootable)
   #
   title Boot-Diskette
   root (fd0)
   chainloader +1

   # begin section 6 (possibly destructive, bootable)
   #
   title Install GRUB in the MBR (HardDisk /dev/sda) and boot ...
   pause Press any key to install GRUB in the MBR of /dev/sda or press [ESC] to quit...
   root (hd0,1)
   setup (hd0)
   root (hd0,1)
   kernel /boot/vmlinuz-2.6.13 root=/dev/sda2 video=matrox:vesa:0x11A
   boot

Weitere Optionen und Möglichkeiten sind der wirklich guten Dokumentation zu GRUB im Texinfo-Format über den Befehl

   # info grub

zu entnehmen.

Mit einem gepatchteten GRUB lässt sich hinter das Bootmenü ein Grafik legen, der Befehlsmodus oder einzelne Bootoptionen lassen sich über Passworte schützen, ...

4. Links


Valid XHTML 1.0

Zurück zur Main-Site
Impressum
Created with GNU-Emacs on Sat Jul 28 14:08:32 CEST 2001

Valid CSS