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

[gelöst]IDE Platte an ext. Controller von grub nicht erkannt

framp

Moderator
Teammitglied
Mein LAN Server bedarf mal wieder etwas mehr Diskspace und deshalb habe ich mir gestern eine IDE Platte nebst externen Controller gekauft da der udma5 unterstützt und der ältliche LAN Server nur maximal udma2 kann :-( .

Code:
RAID bus controller: Silicon Image, Inc. (formerly CMD Technology Inc) PCI0680 Ultra ATA-133 Host Controller (rev 02)

Die Platte bekomme ich auch ohne Probleme unter /dev/hde1 gemounted. Allerdings kann ich nicht von ihr booten. Ich bekommen immer 'Error 21: Disk does not exist'.

In der menu.lst steht
Code:
title SUSE LINUX 9.3 (new)
    kernel (hd4,0)/boot/vmlinuz root=/dev/hde1 vga=0x314 selinux=0  splash=silent showopts
    initrd (hd4,0)/boot/initrd

Wenn ich grub direkt aufrufe und dann 'root (hd4,0)' eingeben bekomme ich auch den Error 21.

Hat jemand einen Tip für mich wie ich die Platte über den externen Controller booten kann?

fdisk -l
Code:
idefix:~ # fdisk -l

Disk /dev/hda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1         782     6281383+  83  Linux
/dev/hda2             783       30401   237914617+   f  W95 Ext'd (LBA)
/dev/hda5             783         878      771088+  82  Linux swap / Solaris
/dev/hda6             879       13124    98365963+  83  Linux
/dev/hda7           13125       30401   138777471   83  Linux

Disk /dev/hdb: 41.1 GB, 41174138880 bytes
255 heads, 63 sectors/track, 5005 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdb1               1        5005    40202631    f  W95 Ext'd (LBA)
/dev/hdb5               1        5005    40202599+  83  Linux

Disk /dev/hde: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hde1               1        1306    10490413+  83  Linux
/dev/hde2            1307       38911   302062162+   f  W95 Ext'd (LBA)
/dev/hde5            1307        1307        8001   82  Linux swap / Solaris
idefix:~ #

devices.map
Code:
(fd0)   /dev/fd0
(hd0)   /dev/hda
(hd4)   /dev/hde


menu.lst
Code:
# Modified by YaST2. Last modification on Thu Nov 24 12:49:20 UTC 2005

color white/blue black/light-gray
default 0
timeout 3

###Don't change this comment - YaST2 identifier: Original name: linux###
title SUSE LINUX 9.3
    kernel (hd0,0)/boot/vmlinuz root=/dev/hda1 vga=0x314 selinux=0  splash=silent resume=/dev/hda5  showopts
    initrd (hd0,0)/boot/initrd

###Don't change this comment - YaST2 identifier: Original name: floppy###
title Floppy
    root (fd0)
    chainloader +1

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- SUSE LINUX 9.3
    kernel (hd0,0)/boot/vmlinuz root=/dev/hda1 showopts ide=nodma apm=off acpi=off vga=normal noresume selinux=0 barrier=off nosmp noapic maxcpus=0  3
    initrd (hd0,0)/boot/initrd

title SUSE LINUX 9.3 (new)
    kernel (hd4,0)/boot/vmlinuz root=/dev/hde1 vga=0x314 selinux=0  splash=silent showopts
    initrd (hd4,0)/boot/initrd
 

towo

Moderator
Teammitglied
Das wird nicht einfach!
1. Kann es sein, das für Grub diese Platte gar nicht hd4 ist.
2. Ältere Kernel kommen mit SIL nicht wirklich gut klar.
 
OP
framp

framp

Moderator
Teammitglied
jengelh schrieb:
Ich würde mal sagen, dir fehlt
Code:
(hd4) /dev/hde
Jup - habe ich gerade auch schon probiert (in dem posting oben aufgenommen) - aber es tut immer noch nicht ...
 
OP
framp

framp

Moderator
Teammitglied
towo schrieb:
Das wird nicht einfach!
1. Kann es sein, das für Grub diese Platte gar nicht hd4 ist.
2. Ältere Kernel kommen mit SIL nicht wirklich gut klar.
Das interessante ist, dass nach Aufnahme von der hd4 in die map im grub 'root (hd4,0)' akzeptiert wird! Aber trotzdem nicht beim boot ...

Was meinst Du mit älteren kernels? Ist ein SuSE 9.3 mit kernel 2.6.11.4-21.15-default älter?

Kennst Du einen Weg wie ich rausfinde was die Platte für grub ist? Wie gesagt, nach Aufnahme von hd4 in die Map sieht es schon besser aus ... aber eben noch nicht zufriedenstellend :roll:
 

towo

Moderator
Teammitglied
Was meinst Du mit älteren kernels? Ist ein SuSE 9.3 mit kernel 2.6.11.4-21.15-default älter?
Ja, Du weisst schon, das wir im Moment bei 2.6.20.x sind?
Und wie gesagt, es kann sein, das zum Bootzeitpunkt, diese Platte hd0 ist.
 

towo

Moderator
Teammitglied
Du mußt doch im Bios einstellen, daß vom externen Controller gebootet werden soll, oder nicht?
Wenn ja, dann ist die Platte in dem Moment hd0.
 
OP
framp

framp

Moderator
Teammitglied
towo schrieb:
Du mußt doch im Bios einstellen, daß vom externen Controller gebootet werden soll, oder nicht?
Im BIOS kann ich einstellen, dass als erstes vom SCSI Device gebootet werden soll. Nur leider ist der zweite Controller kein SCSI Controller :-( .

Etwas merkwürdiges ist mir noch im boot log aufgefallen: Wenn er eine Partition von /dev/hde according fstab mounten will gibt es
Code:
/dev/hde is not a valid block device

Wenn ich nach dem gesamten Startup 'mount /dev/hde6' eingeben geht alles ohne Probleme. D.h. momentan kann ich die Platte nicht automatisch beim Hochfahren mounten. Hilft irgendjemandem diese Info weiter beim Lösen des ursaechlichen Problems vom /dev/hde zu booten?
Ist aber auch merkwürdig, dass die Platte erst viel später erkannt wird ...
 

towo

Moderator
Teammitglied
Also, um mal etwas Klarheit zu bekommen:

1. Wo liegt Grub?
2. Kannst Du die alte Suse booten?
3. /dev/hde kann man auch net mounten.
 
OP
framp

framp

Moderator
Teammitglied
towo schrieb:
Also, um mal etwas Klarheit zu bekommen:

1. Wo liegt Grub?
/dev/hda1
2. Kannst Du die alte Suse booten?
Da. Als ich allerdings grub auf /dev/hde1 gepackt habe war kein booten mehr moeglich
3. /dev/hde kann man auch net mounten.
Jedenfalls nicht beim booten ... nachdem das System oben ist schon. I dmesg steht (weit hinter den messages zu /dev/hda und /dev/hdb
Code:
SiI680: chipset revision 2
SiI680: BASE CLOCK == 133
SiI680: 100% native mode on irq 10
    ide2: MMIO-DMA , BIOS settings: hde:pio, hdf:pio
    ide3: MMIO-DMA , BIOS settings: hdg:pio, hdh:pio
Probing IDE interface ide2...
hde: SAMSUNG HD320LD, ATA DISK drive
ide2 at 0xd887e080-0xd887e087,0xd887e08a on irq 10
hde: max request size: 64KiB
hde: 625142448 sectors (320072 MB) w/8192KiB Cache, CHS=38913/255/63, UDMA(100)
hde: cache flushes supported
 hde: hde1 hde2 < hde5 hde6 >
Probing IDE interface ide3...
Das ist merhwürdig mit pio settings und UDMA(100) denn
Code:
idefix:~ # hdparm -i /dev/hde

/dev/hde:

 Model=SAMSUNG HD320LD, FwRev=WP100-14, SerialNo=S0K1J1LLB06398
 Config={ Fixed }
 RawCHS=16383/16/63, TrkSize=34902, SectSize=554, ECCbytes=4
 BuffType=DualPortCache, BuffSize=8192kB, MaxMultSect=16, MultSect=16
 CurCHS=65535/1/63, CurSects=4128705, LBA=yes, LBAsects=268435455
 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: unknown:

 * signifies the current active mode

idefix:~ #
 

Taesi

Member
Kann es sein, dass hier ein Denkfehler vorliegt?
Unter einem laufenden System die Platte in der Grub-Shell als (hd4,0) oder was auch immer zu sehen, ist keine Kunst, da hast Du den Kernel am Laufen, und alle möglichen Module dazu.
Wenn Du aber davon bootest, hast Du nur die rund 150kB Programmcode von Grub selbst, und das, was Dir Dein BIOS bietet, und wenn an dieser Stelle die Platte (respektive der zus. Controller) von Grub nicht gesehen wird, stehen die Chancen m.E. relativ schlecht.
Während des Bootens mal die Grub-Konsole nehmen, und mit 'find' schauen, was wirklich gesehen wird.
Da würde dann evtl., wie so oft, nur helfen Kernel und INITRD dorthin legen, was zum Bootzeitpunkt schon "da" ist.
 
OP
framp

framp

Moderator
Teammitglied
Taesi schrieb:
Während des Bootens mal die Grub-Konsole nehmen, und mit 'find' schauen, was wirklich gesehen wird.
Guter Tip. Ich habe mal nach /boot/vmlinuz gesucht und da tauchten dann (hd0,0) und (hd2,0) auf :roll: .
Wenn ich dann von hd2 boote kennt grub die Platte und startet - und gibt dann am Ende aus
Code:
Waiting for device /dev/hde1 to appear .... not found. Exiting to /bin/sh
Scheint mir so als hätte er den kernel von /dev/hde1 initial geladen - nur findet er den SIL Driver nicht. Sowas sagte mir auch towo im irc. Vermutlich fehlt der Driver im SuSE 9.3. (Wie kann ich da rausbekommen ob der fehlt? Wie kann ich den nachträglich in den 9.3 kernel bekommen?). Also könnte ich z.B. 10.2 installieren. Aber eigentlich bin ich mit 9.3 als LAN Server zufrieden - schnurrt ohne Probleme rund um die Uhr.

PS: http://www.troubleshooters.com/linux/grub/grub.htm war mir ganz hilfreich um grub und Taesi's Antwort besser zu verstehen
 
OP
framp

framp

Moderator
Teammitglied
Ich habe mal eben ein 10.2 auf /dev/hde installiert. openSuSE hat dann natürlich noch automatisch den grub auf /dev/eth installiert. Und siehe da: Ich kann jetzt sowohl das alte 9.3 auf /dev/hda als auch 10.2 auf /dev/hde per grub starten. Ich bin mir sicher wenn ich grub wieder auf /dev/hda bringe funktioniert auch noch alles ...

Also hatte towo recht: Die Unterstützung für SIL ist noch nicht im 9.3 boot kernel drin :-(.

D.h. ich habe jetzt 2 Möglichkeiten:
1) Upgrade meines treuen 9.3 Systems auf 10.2 :-( ... Da ich da 'ne Menge customized habe kostet mich das bestimmt 2 Tage ...
2) Herausfinden wie ich den SIL driver in den 9.3 boot kernel bekomme :roll:

Das kann doch nicht so schwer sein diesen SIL driver ins boot image zu bekommen :? Deshalb erstelle ich mal einen neuen Thread im Kernel Forum.
 
OP
framp

framp

Moderator
Teammitglied
jengelh hat hier im Kernel Forum darauf hingewiesen, dass man das in der /etc/sysconfig/kernel erledigen kann. Ist wirklich sehr einfach.

Jetzt meldet mir aber mein BIOS 2 *
Code:
No active partiion found HDD
wenn ich auch die /dev/hda mit dem zweiten Ctrl verbinde und keine Platte mehr am 1ten OnBoard Ctrl habe.

Das merkwürdige ist, dass ich - als ich 10.2 auf /dev/hde installiert hatte mit grub-install /dev/hde bzw grub-install /dev/hda leicht den grub wechseln konnte. Ich musste dann immer /boot/grub/menu.lst auf den entsprechenden Platte ändern um das Bootmenu zu verändern.

Nachdem ich das 9.3 von der /dev/hda auf die /dev/hde kopiert habe geht das nicht mehr. grub-install /dev/hde scheint keinen Effekt mehr zu haben. Änderungen in /dev/hde//boot/grub/menu.lst ziehen nicht. Nur Änderungen in /dev/hda/boot/grub/menu.lst - auch wenn ich grub-install /dev/hde ausführe ... Weiss nicht ob das was mit dem 'No active partition found HDD' Problem zu tun hat :?
 
OP
framp

framp

Moderator
Teammitglied
framp schrieb:
Das merkwürdige ist, dass ich - als ich 10.2 auf /dev/hde installiert hatte mit grub-install /dev/hde bzw grub-install /dev/hda leicht den grub wechseln konnte. Ich musste dann immer /boot/grub/menu.lst auf den entsprechenden Platte ändern um das Bootmenu zu verändern.

Wie gesagt - unter 9.3 funktionierte das nicht. Änderungen auf /dev/hde in den menu.lst wurden bei booten nicht erkannt. jetzt habe ich noch einmal 10.2 auf /dev/hde1 installiert - und nun wird jede Änderung in der /dev/hde1 menu. lst wieder sofort beim booten erkannt :shock:

Weiss jemand was da abgeht? ich dachte erst es würde am boot Flag von der Platte liegen - also einmal bei /dev/hda und einmal bei /dev/hde - aber Pustekuchen - nach der 10.2 Reinstallation ist immer noch /dev/hda als bootable gekennzeichnet. :cry:
 
OP
framp

framp

Moderator
Teammitglied
carsten schrieb:
Das Boot-Flag ist irrelevant.

Aber schau mal meinen Artikel nebenan an (Bootreihenfolge). Ich habs gelöst und weiß auch warum :) Vielleicht ist das ein Ansatz für dich.

Grüße

Danke für den Pointer. Dummerweise habe ich bei meinen Versuchen den MBR zerschossen - und der LAN Server wurde dann dringend benötigt. Da haben mir tomcat & tomte im LC IRC feundlicherweise schnell geholfen den Server wieder mit einem MBR zu versehen :D Thx @ tomcat & tomte!

Heute habe ich wieder weiter probiert und merkwürdige Ergebnisse erhalten. Ich habe von /dev/hda1 im grub menu das kopierte 9.3 System auf /dev/hde2 gestartet - und Linux sagt mir dann in mount ich haette von /dev/hda1 gebootet :shock: . Daraufhin habe ich auf alle 3 OS root Platten (/dev/hda1 9.3, /dev/hde1 10.2 und /dev/hda2 9.3) deren /dev/hdxx mit touch zur Orientierung gestellt um zu wissen welche Platte ich denn wirklich als root Platte habe :? Und tatsaechlich - ich boote von /dev/hde2 - und LInux sagte mir ich haette von /dev/hda1 gebootet :shock:
 
Klar, du bootest von hde2, und nach dem Start ist es hda1 :) So wars bei mir auch. Völliges Chaos.
Behoben nur durch den identischen Aufruf der Treiber in der initrd (im sysconfig-Eintrag gleiche Reihenfolge)

Grüße
 
Oben