• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

GRUB kennt Platte(Partition) nicht

rpa

Newbie
Bin am Verzweifeln, da der GRUB nicht alle Platten erkennt.
Habe folgende Hardware:
Mainboard GIGABYTE GA-X58A-UD3R , Intel Core i7 , 24 GB Ram
AMCC 3ware 9650SE Serial ATA RAID Controlle , 4 HD a 2TB
Raid 5 , 4 Volumes(virtuelle Platten) erzeugt

/dev/sda1 Win7-C , /dev/sdb1 Win7-D
/dev/sda2 /boot (openSUSE 11.3 )
/dev/sda3 /LVM-system (mehrere Filesysteme für openSUSE 11.3)
GRUB: mbr auf /dev/sda : hat bis dahin problemlos funktioniert

Habe dann openSUSE 12.1 installiert:
(alle Platten sda ... sdd´wurden beim Partitionieren sauber angezeigt)
/dev/sdc1 /boot
/dev/sdc2 LVM (mehrere Filesysteme für openSUSE 12.1)
Habe Grub von der 12.1-Version den mbr auf /dev/sda (hd0) schreiben lassen
Boot blieb hängen mit GRUB error 21.

Habe von CD gebootet und /dev/sdc1 gemountet:
In menu.lst sind Windows, openSUSE 11.3 und 12.1 eingetragen.
device.map sah auch sauber aus.
Habe dann den mbr von der 11.3 wiederhergestellt und von Hand 12.1 in menu.lst eingetragen.
Windows und 11.3 waren wieder bootbar, bei Auswahk OpenSUSE 12.1 gleicher Fehler:
Selected disk does not exist.

Habe natürlich schon in diversen Foren gesucht ...
grub> geometry (hd0) ... grub>geometry(hd3)
zeigen die Partitionen

Habe in den device.map probiert mit /dev/disk/by-id oder /dev/sda..d .
Booten der Version 11.3 funktioniert, bei 12.1 laufe ich immer wieder auf GRUB error 21.
Was mache ich falsch, wie kann ich den Fehler finden.
Im Voraus DANKE.
rpa
 

josef-wien

Ultimate Guru
rpa schrieb:
Windows und 11.3 waren wieder bootbar, bei Auswahk OpenSUSE 12.1 gleicher Fehler:
Selected disk does not exist.
21 : Selected disk does not exist
This error is returned if the device part of a device- or full file name refers to a disk or BIOS device that is not present or not recognized by the BIOS in the system.
Das heißt, Du hast ein Boot-Menü, und somit funktioniert GRUB. Starte 11.3, und zeige die zu dieser Konstellation passende Datei menu.lst sowie als root das Ergebnis von:
Code:
hwinfo --disk | egrep "Device Files:|BIOS id:"
Du wärst nicht der Erste, dessen BIOS nicht für jede Festplatte eine BIOS-ID vergibt.

P. S. Die Datei device.map spielt beim Boot-Vorgang nicht mit.
 
OP
R

rpa

Newbie
Danke für die ersten Hinweise!
Hier die menu.lst von 11.3 (Alles vom System generiert bis auf die Zeilen zu 12.1, die habe ich von Hand eingetragen.)
---BEGIN menu.lst
# Modified by YaST2. Last modification on Wed Dec 28 11:18:09 CET 2011
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# Configure custom boot parameters for updated kernels in /etc/sysconfig/bootloader

default 2
#timeout 8
timeout 60
gfxmenu (hd0,1)/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE 11.3 - 2.6.34.10-0.4
root (hd0,1)
kernel /vmlinuz-2.6.34.10-0.4-desktop root=/dev/system/root resume=/dev/system/swap splash=silent quiet showopts vga=0x31a
initrd /initrd-2.6.34.10-0.4-desktop

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.3 - 2.6.34.10-0.4 (desktop)
root (hd0,1)
kernel /vmlinuz-2.6.34.10-0.4-desktop root=/dev/system/root showopts apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x31a
initrd /initrd-2.6.34.10-0.4-desktop

###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 11.3 - 2.6.34.10-0.4
root (hd0,1)
kernel /vmlinuz-2.6.34.10-0.4-default root=/dev/system/root resume=/dev/system/swap splash=silent quiet showopts vga=0x31a
initrd /initrd-2.6.34.10-0.4-default

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.3 - 2.6.34.10-0.4 (default)
root (hd0,1)
kernel /vmlinuz-2.6.34.10-0.4-default root=/dev/system/root showopts apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x31a
initrd /initrd-2.6.34.10-0.4-default

###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE 12.1 - 3.1.0-1.2
root (hd2,0)
kernel /vmlinuz-3.1.0-1.2-desktop root=/dev/system2/root resume=/dev/system2/swap splash=silent quiet showopts vga=0x314
initrd /initrd-3.1.0-1.2-desktop
chainloader +1

###Don't change this comment - YaST2 identifier: Original name: windows 1###
title windows 1
rootnoverify (hd0,0)
chainloader +1

###Don't change this comment - YaST2 identifier: Original name: windows 2###
title windows 2
map (hd1) (hd0)
map (hd0) (hd1)
rootnoverify (hd1,1)
makeactive
chainloader +1
---ENDE menu.lst

naish:/boot/grub # hwinfo --disk | egrep "Device Files:|BIOS id"
Device Files: /dev/sda, /dev/block/8:0, /dev/disk/by-id/scsi-3600050e0fe37800035c5000026b50000, /dev/disk/by-path/pci-0000:04:00.0-scsi-0:0:0:0, /dev/disk/by-id/wwn-0x600050e0fe37800035c5000026b50000
BIOS id: 0x80
Device Files: /dev/sdb, /dev/block/8:16, /dev/disk/by-id/scsi-3600050e0fe37800035c50001535f0000, /dev/disk/by-path/pci-0000:04:00.0-scsi-0:0:0:1, /dev/disk/by-id/wwn-0x600050e0fe37800035c50001535f0000
Device Files: /dev/sdc, /dev/block/8:32, /dev/disk/by-id/scsi-3600050e0fe37800035c500027ebc0000, /dev/disk/by-path/pci-0000:04:00.0-scsi-0:0:0:2, /dev/disk/by-id/wwn-0x600050e0fe37800035c500027ebc0000
Device Files: /dev/sdd, /dev/block/8:48, /dev/disk/by-id/scsi-3600050e0fe37800035c5000309670000, /dev/disk/by-path/pci-0000:04:00.0-scsi-0:0:0:3, /dev/disk/by-id/wwn-0x600050e0fe37800035c5000309670000
naish:/boot/grub #

Eine BIOS id wird danach nur für die erste Platte angezeigt.
Wie komme ich da weiter ???
Würde es helfen, wenn ich die boot-Partition für OpenSUSE 12.1 auf die erste Platte lege ?
Könnte das auch eine erweiterte Partition sein ?
Das würde ich aber gerne umgehen, da /dev/sda voll belegt ist und ich dazu andere Partitionen verkleinern oder verschieben müßte !!!
Besser: Wie kann ich dem BIOS die anderen Platten beibringen ?
Danke rpa
 

josef-wien

Ultimate Guru
rpa schrieb:
Wie kann ich dem BIOS die anderen Platten beibringen ?
Das mußt Du vermutlich den Hersteller Deines RAID-Controllers, vielleicht auch den Deines mainboard fragen.

Bei Dir muß die Boot-Partition auf der Boot-Platte liegen, da GRUB nur diese Platte ansprechen kann. Die Art der Partition ist gleichgültig. Du kannst auch die vorhandene Boot-Partition /dev/sda2 verwenden, in dem Du alle Dateien von /boot (aber nicht von /boot/grub) dort hinkopierst, /etc/fstab anpaßt und /dev/sdc1 für andere Zwecke verwendest. In diesem Fall solltest Du bei beiden Systemen die Zeile
Code:
multiversion = provides:multiversion(kernel)
in etc/zypp/zypp.conf aktivieren, bei einem Kernel-Update mußt Du dann das Löschen des alten Kernel gezielt auswählen (und menu.lst im Auge behalten).

Prinzipiell (wenn auch etwas abenteuerlich) müßte auch funktionieren, auf /dev/sda2 ein Verzeichnis /boot-12.1 anzulegen (mit einem link boot auf sich selbst) und das Verzeichnis /boot von 12.1 als link zu diesem Verzeichnis anzulegen. In menu.lst auf /dev/sda2/boot/grub solltest Du dann die Verknüpfungen /boot-12.1/kernel und /boot-12.1/initrd verwenden, um das manuelle Aktualisieren nach einem Kernel-Update von 12.1 zu vermeiden.
 
OP
R

rpa

Newbie
Vielen Dank für die Hilfe.
Werde versuchen bei meinem Händler oder Hersteller des PC (Tarox) Informationen/HIlfe zum Problem 'BIOS kennt nicht alle Platten' zu beschaffen.
Die boot-Partition /dev/sda2 für mehrere Installationen zu benutzen- da habe ich Bedenken, mir irgendwann etwas zu zerschiessen.
Da werde ich eher in den sauren Apfel beißen und /dev/sda3(LVM) nach Sicherung aller Filesysteme verkleinern, um auf /dev/sda Platz für weitere boot-Partitionen zu beschaffen.
Da ich in der Woche auswärts arbeite, muß diese Geschichte jetzt leider eine Woche ruhen.
 
Oben