ForumBoot Problem mit Grub – Alert! dev/hda1 does not exist.
Anonnym Linuxuser – Samstag, 25. Februar 2006 16:16 Uhr

Hi,
Ich habe neulich versucht mir Ubuntu zu installieren. Das hat auch ganz gut geklappt bis, im laufe der installation der PC neu startet. Dann kommt das Ubuntu Logo und wenn der Kernel geladen werden soll kommt: “Alert! /dev/hda1 does not exist. Dropping to a shell”
Ich habe es auf eine 2. Festplatte, die richtig angeschlossen ist installiert. Mein Windows läuft auf meiner anderen Platte, die über S-ATA angeschlossen ist und sda heißt.
Im Ubuntu Forum habe ich auch schon gepostet… da konnte mir bis jetzt leider niemand helfen.

[1] http://forum.ubuntuusers.de/topic/24296/

3 Antworten
Ottfried Meyer – Samstag, 25. Februar 2006 17:01 Uhr

Hi,

wenn ich Dich richtig verstanden habe, ist auf hda1 — einer PATA-Platte —
ein Ubuntu installiert und auf sda1 ein Windows.
Die Bootreihenfolge im Bios ist sicherlich “SATA vor PATA” ???

Dann hast Du Ubuntu von CD gebootet und “den Stoff” auf die PATA-Platte
installiert und den Grub in den Masterbootrecord der ersten Platte.

Damit hast Du aller Wahrscheinlichkeit nach den Masterbootrecord von
Windows abgeschossen….

Mache mal Folgendes, um in das PATA/SATA-Gewirr ein wenig Ordnung zu bringen:
Boote bis grub und sobal Du eine Kernelauswahl treffen sollst, selektiere
mit den Pfeiltasten die Zeile, welche den “Kernelaufruf” enthält. Dann
drückst “e” für “edit”.

Jetzt steht das soetwas Ähnliches wie:
kernel (hd0,0)/vmlinuz-26154 rootfstype=reiserfs root=/dev/hda3

(die Zeile stammt aus meinem menu.lst von grub — sieht also etwas anders
aus)

Nun positionierst Du den Cursor und löscht das Äquivalent zu vmlinuz-26154
aus der Zeile und drückst TAB. Irgendeine Reaktion? Findet er /irgendein/
Device ? Wenn ja, siehst Du Dir die Fileliste an und siehst, wo Du Dich
auf der Platte befindest. Wenn nicht musst Du entweder die erste “0”
hochzählen — das sind die Devices oder die zweite “0” für die Partitions.

Spiel solange mit der Zeile. bis alles beisammen ist, um den Kernel zu booten.
Nun muss noch das Rootdevice im Kernelparameter “root=XXXX” angepasst werden.

Wenn Du fertig bist: Einfach und “b” für “boot”. Wenn Du im Linux
bist: info grub. Dort steht ein Hinweis, wie man mit “makeactive” und
“chainloader” Biester wie Windows starten kann.

Zum Manpages abtippen bin ich gerade ein bischen zu faul, komm’ gerade von
der Arbeit nach Hause…. :O)

Viel Erfolg!
mcc

Anonnym Linuxuser – Sonntag, 26. Februar 2006 13:01 Uhr

Die Bootreihenfolge ist PATA vor SATA. Das habe ich im Bios umgestellt, weil Ubuntu den Bootloader auf die IDE Platte installiert hat. Mit Hilfe von Grub lässt sich Windows auch ganz normal starten. Die Einstellungen für die Partition habe ich so überprüft. Die einstellung die dort gemacht war ist auch die einzige bei der eine Filelist angezeigt wird.

Ottfried Meyer – Sonntag, 26. Februar 2006 14:45 Uhr

Hi,

bitte schildere nocheinmal _genau_ was wann wo passiert:
Der Kernel wird gefunden und er ist es, der die Meldung “/dev/hda1 does not
exist” ausspuckt?
Der Kernel wird nicht gefunden und grub schreibt diese Meldung auf den Schirm
(was mich wundern würde, denn grub zählt devices/partitions unter einem anderen
Syntax durch.
Siehst Du eine Meldung, dass grub den stage 1_5 loader findet und lädt?

Je mehr genau Infos desto größer die Wahrscheinlichkeit, dass ich Dir irgendwie
helfen kann….

Viel Erfolg!
mcc

Anonnym Linuxuser – Sonntag, 26. Februar 2006 16:17 Uhr

Nachdem ich den PC anschalte kommt:
1. Grub, ich wähle Ubuntu Linux 64-bit
2. Soetwas wie ein Bootscreen(das Ubuntu Logo). Darunter steht “loading moldules”.
3. Kurz steht dort “Loading Kernel”
4. Dann kommt ein Schwarzer Bildschirm auf dem steht “Alert! dev/hda1 does not exist. Dropping to a shell”

Dannach bleibt mir nichts anderes übrig als ctlr+alt+del.

Ottfried Meyer – Sonntag, 26. Februar 2006 17:28 Uhr

Hi,

hmmm…da haben die Ubuntu-Leute vielleicht mit einer initrd
erst ein Mini-Linux geladen, welches dann versucht, den eigentlichen
Kernel zu laden…

Es ist /äußerst/ ungewöhnlich, /erst/ die (Kernel-) Module zu laden und
/dann/ zu versuchen den Kernel nachzuladen….

Daraus schließe ich, dass die module zu einem “anderen” Kernel (initrd)
gehören, als der Kernel, der dann vergeblich auf /dev/hda1 zugreift.

Du sagt, Du kannst per grub Windows “zu Fuß” laden.

Versuche doch einmal mit den beschriebenen Methoden, den Ubuntu-Kernel
ausfindig zu machen und vor allem in der Parameter-Zeile des Kernels
die Root-Partition richtig anzugeben. Ich vermute, dass dort der Hund
begraben liegt, denn grub selber benutzt Bezeichungen wie /dev/hda
nicht.

Außerdem wäre es hilfreich, wenn man den Bootvorgang sichtbar machen
könnte. Bei SuSE, die ebenfalls mit Bootlogos herumhantieren (warum
ist dieser duddige Eye Candy eigentlich immer besser als die schlichte
Wartbarkeit eines Systems??? MUSS denn unbedingt JEDES Feature von Windows
clonen??? …verdammt, ich analysiere mir hier einen Wolf und scheitere
möglicherweise an einer plöden Splashscreen!!! DAS GEHT JETZT NICHT GEGEN DICH,
Benjamin!!! Aber das musste mal ‘raus…), reicht es, während die Splashscreen
zu sehen ist, auf zu drücken. Dann sehen wir besser, was wo und zu
welchem Zeitpunkt in die Hose geht…

Viel Erfolg,
mcc

Anonnym Linuxuser – Montag, 27. Februar 2006 11:55 Uhr

Ich habe bereits versuch auf die beschriebene Art und Weise den Kernel zu finden und habe festgestellt, dass die aktuelle einstellung(hd0,0) die einzige ist bei der eine Filelist gefunden wird.

Ubuntu, kernel 2.6.12-9-amd64-generic Default
root (hd0,0)
kernel /boot/vmlinuz root=/dev/hda1 ro quiet splash
initrd /boot/initrd.img
savedefault
boot

verändere ich etwas passiert gar nichts mehr.

Wenn ich währen dem Splashscreen drücke passiert nichts.
Das ist das einzige was ich abschreiben konnte:

Booting ‘Ubuntu, Kernel 2.6.12-9-amd64-generic Default’
kernel direct mapping tables upto ffff810100000000 @ 8000-c000
root (hd0,0)
Filesystem type is ext2fs, partition type 0x83
kernel /boot/vmlinuz root=/dev/hda1 ro quiet splash
[Linux-bzImage, setup=0x1c00, size=0x13e30e]
initrd /boot/initrd.img
[Linux-initrd @ 0x3faf1000, 0x4ee916 bytes]
savedefault
boot
.
Decompressing Linux…done.
Booting the kernel.
Loading, please wait…
ALERT! /dev/hda1 does not exist. Dropping to a shell!

gruß, ben

man-draker – Montag, 27. Februar 2006 13:34 Uhr

Nur, um sicher zu stellen, dass da nicht doch etwas mit PATA und SATA durcheinander läuft: Was passiert, wenn du den SATA-Controller deaktivierst?

man-draker – Montag, 27. Februar 2006 13:44 Uhr

Ergänzung: Dieses Problem ist es defintiv nicht bei dir? [1]

Wenn ich mir die Treffer im Ubuntu-Forum zum Stichwort “Dropping” so ansehe, habe ich den Verdacht, dass es ein Problem mit dem SATA-Treiber ist, der erst als Modul geladen werden muss, bevor auf die SATA-Platte zugegriffen werden kann. Aber genau die wird ohne Treiber nicht gefunden.

[1] http://www.ubuntu-forum.de/thread.php?threadid=6382

Anonnym Linuxuser – Montag, 27. Februar 2006 14:45 Uhr

es kann doch eigentlich nicht sein, dass das daran liegt denn ich habe Ubuntu ja nicht auf die SATA sondern auf die IDE Platte installiert… Außerdem habe ich auch schon einmal probiert es zu installieren nachdem ich die SATA Festplatte auf der ich Windows habe ausgebaut habe. Hat trotzdem nicht funktioniert.

Anonnym Linuxuser – Montag, 27. Februar 2006 15:06 Uhr

Ich habs jetzt trotzdem nochmal mit im Bios deaktivierten SATA Controllern versucht… hat nichts geändert.

Dieter Drewanz – Montag, 27. Februar 2006 17:38 Uhr

Vermute das Problem ist aehnlich meiner externen HD mit USB. Du hast ein Gereat mit “sda” (wenns auch kein SCSI ist, aber ueber Treiber “so drinnen haengt” hier kein USB aber SATA) und vielleicht auch noch ein chip on Board, das bei SCSI und IDE verwendet wird. Irrtuemlich dann SCSI anwirft. Konnte ich bisher auch nicht loesen.

Ugglan – Freitag, 03. März 2006 10:26 Uhr

Hallo,

ich hatte neulich ein ähnliches Problem: Mandriva hatte den Eintrag für Debian “vergessen” (Dos wurde korrekt eingebunden).

Also koperte ich einfach die Zeilen für Debian aus der alten grub/menu.lst in die die neue menu.lst auf der nun als Bootpartition umgestellten hda11, und erhielt eine ähnlich Fehlermeldung wie Du (kernel nicht gefunden oder so, obwohl alle Pfade stimmten).

Was war das Problem? In der alten menu.lst von Debian standen nach den Kernel-Einträgen noch die Zeilen

savedefault
boot

welche in der Mandriva-Version fehlten.

Schau doch mal in die Datei menu.lst (ist auf der Ubuntu-Partition unter /boot/grub zu finden), ob nach dem Ubuntu-Eintrag nach der Art

Ubuntu, kernel 2.6.12-9-amd64-generic Default
root (hd0,0)
kernel /boot/vmlinuz root=/dev/hda1 ro quiet splash
initrd /boot/initrd.img

zusätzlich die besagten Zeilen

savedefault
boot

stehen, und lösche diese einfach mal (oder kommentiere sie aus). Das brachte bei mir den gewünschten Erfolg, keine Ahnung, warum. Vielleicht haben sie bei einem Versionswechsel bei Grub die Syntax geändert.

Bevor Du anfängst, im Kernel herumzukriechen, solltest Du zweifelsfrei feststellen, daß der Wurm nicht im Bootloader sitzt. Die Fehlermeldungen sind manchmal irreführend.

Schalte Grub mal in den Kommandozeilenmodus um und versuche, Ubuntu “per Hand” zu starten, indem Du jeden Befehl (jede Zeile), der in der menu.lst zum Ubuntu-Eintrag gehört, einzeln ausführst. Dann siehst Du, wo es hakt. Im Kommandozeilenmodus ist der abschließende Befehl

boot

nach den anderen Befehlen aber notwendig!

Ich habe leider die Links zur Grub-Kommandozeile nicht zur Hand, aber die sollten sich auffinden lassen.

Viel Erfolg,

Ugglan

Rico Rommel – Dienstag, 28. Februar 2006 19:24 Uhr

Hallo Benjamin,

hast du auf deinem Board eventuell einen zweiten IDE-Controller oder eine
Erweiterungskarte mit einem IDE-Controller? Es könnte sich z.B. auch um einen
Raid-Controller handeln.
In dem Fall kann es sein, dass der zweite Controller als erstes initialisiert
wird und sich die Reihenfolge vertauscht. Aus IDE1 wird dann IDE3 und aus hda
demzufolge hde.

Du könntest mit dem Bootparameter ide=reverse die Reihenfolge wieder tauschen
oder den zweiten Controller im Bios deaktivieren.

mfg
Rico

Anonnym Linuxuser – Dienstag, 28. Februar 2006 21:34 Uhr

Hi,
ich habe alle anderen SATA und IDE Controller im Bios deaktiviert. Hat leider aber auch nichts geändert…
mfg
Ben

Robert von Burg – Dienstag, 07. März 2006 07:19 Uhr

Hallo. Kannste mal mit ner Knoppix CD/DVD booten, und dann in ner Konsole folgendes eingeben:

cat /proc/partitions

oder auch

df

Dies dann hier posten, so bekommen wir ne ahnung wie Linux deine Platten erkennt. Und dann kannst du im Knoppix auch im Ordner /media/ schauen welche Partitionen gemountet werden (eventuell musst du noch mount /media/xxx eingeben um die Partition auch lesen zu können. Dann schaust du mal auf welcher Partition der boot Ordner ist, wo der Grub Ordner auch vorhanden sein sollte mit der menu.lst.

Wenn du diese Informationen hast, kannst du wieder neubooten und probieren Ubuntu zu booten mit den neuen Informationen.

Unter Linux ist immer Vorsicht geboten, wenn man Festplatten umdreht, ändert, denn die Paritionsreihenfolge kann sich schnell ändern (das musste ich mit grösseren Schweissausbrüchen merken:))