Grub: Allgemeiner Tip

Post Reply
Message
Author
egar
Posts: 8
Joined: Tue 29 Apr 2008, 20:31

Grub: Allgemeiner Tip

#1 Post by egar »

Hallo

Thema Grub Bootloader.

Eine selten dargestellte Möglichkeit mit Grub umzugehen, praktiziere ich seit mehreren Jahren problemlos. Nach meinem Dafürhalten durchaus auch oder gerade Anfängern zu empfehlen. Und zwar nicht nur im Bezug auf Puppy, sondern immer dann einzusetzen, wenn mehrere BeOS eingesetzt werden sollen.
Voraussetzung (und Nachteil): Eine primäre Partition muss abgezweigt werden. Auf die Partionierung im Weiteren will ich hier nicht eingehen, muss aber dabei beachtet werden.

1. Mit einem geeigneten Partitionierer (zu empfehlen wäre Gparted, der kann auch bestehende Partitionen verschieben und Grössen ändern) am Anfang der Platte eine primäre Partition von ca. 15 MB anlegen. Ob dieser Wert variabel ist, weiss ich nicht; es ist mein Erfahrungswert. Die entstehende Partition ist dann hda1 (hd0,0).

2.Formatieren mit ext2.

3.Mit dem Grub-install- Befehlen aus einer beliebigen Live-Distro heraus den Grub installieren.
Einfacher: Eine beliebige Puppy-CD einlegen, hochfahren und aus dem Menü "System/Grub Bootmanager einrichten" den grubconfig-Dialog aufrufen. Schaltfläche "simple" führt zu einer einfachen Grub-Installation
(Auflösung wählen, Ort der Dateien ist dann /dev/hda1, in den MBR der 1. FP / hda installieren, der Assistet erzeugt eine menu.lst).
Jetzt liegt in hda1 ein Ordner "boot", in diesem ein weiterer "grub", in welchem die Bootdateien liegen, welche der Loader für seine Arbeit braucht.

4.Okay, den grubconfig-Dialog verlassen. Fertig.

Fertig? Naja, für den Grub schon. Jetzt liegt zur ständigen Verfügung ein installierter Bootmanager auf der Festplatte und im MBR. Wer jetzt seine bestehenden Systeme auf der Platte einbinden will, muss hda1 mounten und die menu.lst entsprechend anpassen. Infos darüber gibts im Netz zur Genüge (oder hier auf Anfrage). Nach einem Reboot erwartet dich der Grub-Dialog und fragt dich, welches System du booten willst.
Der grubconfig-Dialog im Puppy erlaubt aber auch im "expert"- Modus das Hinzufügen von Booteinträgen.
Bei einer nachfolgenden Installation oder Neuinstallation eines Systems kann die hda1 immer erhalten bleiben; der Loader der Systeme muss immer ins root-Verzeichnis erfolgen. In der Regel muss lediglich die menu.lst der Neuinstallation geöffnet und die entsprechenden Einträge in die menu.lst der bestehenden hda1 kopiert werden. Achtung!, manche Distros, z. B. Mandriva, erzeugen einen 2. Eintrag zum Booten eines recovery-Systems. Dieser Eintrag muss mit eingebunden werden.
Das hier genannte Szenario ist aber nur dann locker und leicht zu handeln, wenn gleichzeitig auch eine sofortige (einfache) Kopie des Grub-Ordners in hda1 an einen anderen Ort erfolgt, z. B. ein Stick (eigentlich nur die menu.lst, bequemlichkeitshalber nehme ich immer den ganzen Ordner).
Auch die ganze hda1-Partition mit einem Backup-Programm unter Windows, z. B. ACRONIS, sichern ist gut. Bei Crash einfach rücksichern und MBR neu einspielen.
Wie eine menu.lst aussehen kann, hänge ich als Beispiel an diesen Text. Diese Datei sorgt gleichzeitig für ein deutsches Tastaturlayout. Sie beinhaltet zusätzlich Sicherungs und Rücksicherungsbefehl für den MBR, welcher über die Linux-Konsole an einen beliebig wählbaren Ort -Diskette ? - ausgeführt werden kann.

...a lof of fun!

MfG egar

Beispiel menu.lst:

# Startdatei /boot/grub/menu.lst
# Per default bootet kein System automatisch
# Sicherungsbefehl:
# dd if=/dev/hda(bzw.wohin MBR geschrieben) of=/mnt/hda1(bzw. sicherungspfad)/mbr count=1 bs=512
# Ruecksicherung aus einem installiertem Linux oder ueber ein Linux-Live-CD-System.
# Ruecksicherungsbefehl:
# dd if=/hda1/boot/grub/mbr of=/dev/hda count=1 bs=512 (Beispiel anpassen)

# Deutsche Tastaturbelegung
setkey y z
setkey z y
setkey Y Z
setkey Z Y
setkey equal parenright
setkey parenright parenleft
setkey parenleft asterisk
setkey doublequote at
setkey plus bracketright
setkey minus slash
setkey slash ampersand
setkey ampersand percent
setkey percent caret
setkey underscore question
setkey question underscore
setkey semicolon less
setkey less numbersign
setkey numbersign backslash
setkey colon greater
setkey greater bar
setkey asterisk braceright
# Ende Tastaturbelegung

default 0
timeout 0
## Use prettier colors
color green/black blink-light-green/green

##Start-Eintrag | editiert von von E.
title ... quo vadis?
root (hd0,0)

# Linux bootable partition config begins
title mandriva-linux
kernel (hd1,0) /vmlinuz BOOT_IMAGE=linux root=/dev/hdb1 resume=/dev/ hdb1 acpi=ht
initrd (hd1,0) /initrd.img

title failsafe ... mandriva
kernel (hd1,0) /vmlinuz BOOT_IMAGE=failsafe root=/dev/hdb1 failsafe acpi=ht
initrd (hd1,0) /initrd.img

title Puppy........(on /dev/hda4)
root (hd0,3)
kernel /boot/vmlinuz root=/dev/hda4 ro vga=normal

#frugal
title Puppy Linux 083 frugal.......(on /dev/hda6)
rootnoverify (hd0,5)
kernel /puppy083/vmlinuz pmedia=idehd psubdir=puppy083
initrd /puppy083/initrd.gz
# Linux bootable partition config ends

# Other bootable partition config begins
title Windows 98....................(on /dev/hda2)
rootnoverify (hd0,1)
makeactive
chainloader +1
# Other bootable partition config ends

sailorbrand
Posts: 346
Joined: Sat 31 May 2008, 19:39
Location: Germany

#2 Post by sailorbrand »

Das hier habe ich vor längerem schon gelesen, bin aber jetzt erst dabei das mal zu versuchen.

Aber eine Frage zuvor: Bei der neuen/zusätzlichen Installation eines OS (z.B. buntu) wird doch der MBR überschrieben? Wird dann noch der Grub von hda1 benutzt? Nicht der "Neue" vom buntu?

Das ist ja besondes dann wichtig wenn ich das OS wieder lösche. Dann ist ja der neue Grub mit weg.

Oder muss dann der MBR jedesmal neu geschrieben werden? Reicht es wirklich die menu.lst zu ersetzen?

Bzw. gibts nen trick zu verhindern das eine weitere Installation überhaubt den Grub neu schreibt?
Gruß Michael

Acer Aspire 5730ZG, 4GB Ram, 320 GiG HD, 2,0 Ghz Intel DualCore
nvidia Geforce 9300M GS TurboCache, Puppys & Ubuntu. Vista gelöscht!

User avatar
MU
Posts: 13649
Joined: Wed 24 Aug 2005, 16:52
Location: Karlsruhe, Germany
Contact:

#3 Post by MU »

Hallo,

Viele Systeme erlauben es, die Bootloader-Installation zu überspringen, jedenfalls vor einigen Jahren.
Bin da nicht mehr so auf dem laufenden.
Evtl. muß man dazu den Expertenmodus wählen.
Das Problem ist dann aber, rauszubekommen, was für einen Eintrag das neue System braucht.

Im Zweifelsfall erstelle ein Backup Deiner menu.lst (Grundsätzlich sowieso zu empfehlen).

Dann lass das neue System einen Bootloader installieren - sofern Grub unterstützt wird.

Dann kannst Du die neue menu.lst ggf. um Deine alten Einträge per Texteditor ergänzen.
Änderungen der menu.lst werden beim nächsten Neustart ohne weitere Änderungen wirksam, man muß nicht erst Grub neuinstallieren oder den MBR neuschreiben.

Mark
[url=http://murga-linux.com/puppy/viewtopic.php?p=173456#173456]my recommended links[/url]

sailorbrand
Posts: 346
Joined: Sat 31 May 2008, 19:39
Location: Germany

#4 Post by sailorbrand »

Soweit ist es klar.

Das Problem habe ich immer wenn ich ein OS nach der Testphase wieder lösche. Dann ist der neue Grub ja auch weg. Und es bootet nicht mehr. klar kann man dann mit Live-Cd wieder rein. Aber ich dachte dass diese methode das vielleicht löst. Also einen Grub für immer (mit jeweils angepasster menu.lst).

Bleiben bei der beschriebenen Methode nach einem Löschen eines OS die anderen OS dann bootfähig auf hda1?
Gruß Michael

Acer Aspire 5730ZG, 4GB Ram, 320 GiG HD, 2,0 Ghz Intel DualCore
nvidia Geforce 9300M GS TurboCache, Puppys & Ubuntu. Vista gelöscht!

User avatar
MU
Posts: 13649
Joined: Wed 24 Aug 2005, 16:52
Location: Karlsruhe, Germany
Contact:

#5 Post by MU »

also ich mach es so:
Ich erstelle eine weitere Partition von 100 MB.
Die enthält grub.
Kann auch kleiner sein, aber ich speicher dort noch weiteres.

Ich de-installiere Distros nie, sondern lösche einfach komplett die Partition, auf der sie liegen.
Da Grub auf einer eigenen Partition liegt, bleibt er unangetastet.

Momentan starte ich so verschiedene Puppyversionen.

Ich habe also:

hda1 mit dem Ordner:
/boot/grub/
Darin liegt das ganze Grub Zeug, wie menu.lst.

Dann z.B. hda2 und hda3, da sind die verschiedenen Systeme installiert.

Die menu.lst würde dann so aussehen:

Code: Select all

  title Puppy 3 auf hda2
  root (hd0,1)
  kernel /vmlinuz pmedia=idehd pdev1=hda2 layerfs=aufs
  initrd /initrd.gz

  title Puppy 4 auf hda3
  root (hd0,2)
  kernel /vmlinuz pmedia=idehd pdev1=hda3 layerfs=aufs
  initrd /initrd.gz
Anstatt Puppy könnte man ähnlich z.B. Ubuntu starten.

Code: Select all

  title Ubuntu auf hda3
  root (hd0,2)
  kernel /vmlinuz kernel /vmlinuz-2.6.20-15-generic root=UUID=fe7bf845-7ce9-4733-b6de-f70f2b62076d ro quiet splash
  initrd /initrd.img-2.6.20-15-generic
Bei Puppy kann man auch Unterordner nutzen, dann können mehrere frugale Puppys auf einer Partition liegen:

Code: Select all

  title Puppy 3 auf hda2
  root (hd0,1)
  kernel /puppy3/vmlinuz pmedia=idehd psubdir=puppy3 pdev1=hda2 layerfs=aufs
  initrd /puppy3/initrd.gz

  title Puppy 4 auch auf hda2
  root (hd0,1)
  kernel /puppy4/vmlinuz pmedia=idehd psubdir=puppy4 pdev1=hda2 layerfs=aufs
  initrd /puppy4/initrd.gz
Ich selbst geh noch weiter, grub liegt mit den Kerneln auf einer CF-Karte im Festplattenadapter.
Grub auf hda1, die Kernel auf hda5.
Der Rest von Puppy wird dann von sda7 geladen, das ist eine externe USB-Platte. So hab ich einen geräuschlosen PC (bis auf den Lüfter), obwohl er so alt ist, daß er nicht von USB booten kann.

Mark
[url=http://murga-linux.com/puppy/viewtopic.php?p=173456#173456]my recommended links[/url]

Post Reply