On 03.08.2011 22:25, Tao te Puh wrote:
Am 03.08.2011 20:26, schrieb Michael:
mein Problem habe ich lösen können, aber aus Neugier (und fürs bessere Reparieren beim nächsten mal) noch Fragen zur Wirkungsweise von grub. Diverse Seiten im Netz sagen, dass im MBR der Bootcode liegt, um die stage1_5 Datei laden und ausführen zu können. Nun nehme ich an, dass der Code im MBR sicher nicht mit dem/jedem file-system umgehen kann, wo das System drauf ist, das es zu booten gilt.
Korrekt, der Platz reicht nicht aus. Und dann stehen dem grub nicht mal die kompletten 512 Byte zur Verfügung, sondern er muss sich den Platz u.a. auch noch mit der Partitionstabelle teilen. Ihm, genau stage1 von grub, gehören somit nur 440 Byte vom MBR. Mit diesem "Stummel" wird entweder direkt stage2, oder zunächst mal stage1_5 (das ist mittlerweile die Regel) geladen.
Frage 1: Wie findet der Bootloader die Datei "/boot/grub/<fs>_stage1_5" ? Ist im MBR die physikalische Adresse auf der Platte hinterlegt, wo die Datei zu finden ist?
Zunächst mal ist es ja so, dass stage1_5 nicht immer gebraucht wird. Ob es gebraucht wird, entscheidet Grub bei der Installation. Wenn es zum Booten gebraucht wird, dann kopiert grub die benötigte Variante von stage1_5 (entscheidend ist das Dateisystem auf dem /boot residiert) zwischen MBR und den Beginn der ersten Partition. Das ist übrigens auch ein Grund, warum Deine erste Partition nicht bei Sektor 1 beginnt (fdisk -l).
Ist es dann so, dass diese Datei nie physikalisch auf einen anderen Platz "verschoben" werden darf ?
Doch, darfst Du verschieben.
Frage 2: Welche grub Befehle werden bei einer Neu-Installation defaultmäßig von openSuse ausgeführt? Ist es das gleiche wie
grub> root (hd0,x) setup (hd0)
Welche Optionen Yast verwendet, kannst Du in /etc/grub.conf nachlesen. Dabei wird Dir auffallen, dass Yast das alles in einer "setup"-Zeile ab handelt. Das verstehst Du wenn du die man page von grub liest. Das was Du da mit root angibst, kann bei dem von Yast verwendeten Syntax weggelassen werden. Inhaltlich ist das aber das selbe.
Ansonsten verwendet Yast noch standardmäßig die Option --force-lba. Die hilft, wenn das BIOS buggy ist und falsche Informationen zu LBA liefert.
BTW: Das was da in der grub.conf steht, kannst Du übrigens auch direkt in der Kommandozeile verwenden:
grub < /etc/grub.conf
Oder wird noch mehr gemacht, wie z. B. "grub-install /dev/hda"
Was Yast sonst noch macht, weiß ich nichtgenau, aber das Script ruft es bestimmt nicht auf. Wenn Du nämlich mal in das Script "grub-install" rein guckst, findet sich u.a. ein Hinweis, dass man diese Script nicht verwenden soll und stattdessen "yast2 bootloader" aufrufen soll.
Und ansonsten endet das Script mit "grub --batch < /etc/grub.conf", also der Möglichkeit, die ich oben aufführte.
Wie auch immer, ich habe bisher keine Unterschiede zwischen der manuellen und der yast-Installation festgestellt. Wobei neulich hatten wir hier auf der Liste einen Fall ... aber das war wirklich schräg und lies sich eigentlich gar nicht richtig erklären, weder das Verhalten nach manueller, noch nach Installation via yast.
Danke euch allen für die Antworten! VG, Michael -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org