# [solved] [grub] cannot open root device "sda3" or

## knipser11s

Hallo zusammen,

Ich habe Gentoo von der LIVE-CD experimental AMD64 Kernel 2.6.0     installiert.

Hardware:

Board D1607 (FujitsuSiemens) Prozessor AMD64 3200+ (Clawhammer) Chipsatz VIA K8T800/VT8237 Festplatte Samsung 80 GB SATA 

Da ich mit emerge lilo probleme hatte (siehe https://forums.gentoo.org/viewtopic.php?t=118325) habe ich nun grub-static installiert. Meine grub.conf habe ich nach der Installationsanweisung angelegt.

 *Quote:*   

> default 0
> 
> timeout 10
> 
> splashimage=(hd0,0)/boot/grub/splash.xpm.gz
> ...

 

Den MBR habe ich auch beschrieben.

 *Quote:*   

> #grub
> 
>    GNU GRUB  version 0.93  (640K lower / 3072K upper memory)
> 
>  [ Minimal BASH-like line editing is supported.  For the first word, TAB
> ...

 

Wie man sehen kann wird die Festplatte richtig erkannt und eingerichtet.

Trotzdem laesst sich das System nach einem REBOOT nicht booten.

Zunächst wird das splashimage nicht angezeigt. Der Bootvorgang geht dann nach 10 Sekunden weiter, wird dann aber beim versuch den Kernel zu laden mit folgender Meldung abgebrochen.

 *Quote:*   

> VFS: cannot open root device "sda3" or unkown-block(0,0)
> 
> Please append a correct "root=" boot option
> 
> Kernel panic: VFS: unable to mount root fs on unkown-block(0,0)

 

Weiß jemand Rat?

knipser11s

----------

## RealGeizt

hi knipser!

hier hat jemand die gleichen probleme wie du:

https://forums.gentoo.org/viewtopic.php?t=117219

ich selbst habe meine scsi platte mit grub auch nicht booten können.

so wie es aussieht haben viele damit ein problem.

zu einer lösung bin ich selbst auch noch nicht gekommen und daher zu lilo ausgewichen.

----------

## knipser11s

Hallo RealGeizt,

danke für den Hinweis. Leider kann ich lilo weder emergen noch selbst compilieren.(siehe https://forums.gentoo.org/viewtopic.php?t=119046)

Ich bin also im Moment dazu verurteilt eine Lösung mit grub zu finden.

Für weitere Hinweise wäre ich also sehr dankbar.

knipser11s

----------

## thomasmue

Grub hat eine gewöhnungsbedürftige Syntax für Laufwerksbezeichnungen. Wie das mit SATA Platten ist, weiss ich auch nicht, eventuell mal in die Doku gucken. 

bei mir liegt die Root- Partitiion auf /dev/hda5, was für grub (hd0,4)  ist.

Mein Boot- Eintrag ist demnach:

root  (hd0,4)

boot (hd0,0)/boot/kernel-2.6.0

initrd (hd0,0)/boot/initrd-2.6.0.

Hope this helps.

Thomas

----------

## Peng

siehe https://forums.gentoo.org/viewtopic.php?t=117219, ich hab mich wohl irgendwie auf beide Threads bezogen..

----------

## knipser11s

Hallo thomasmue,

Ich habe inzwischen #info grub zweimal durchgelesen. Vieleicht habe ich ja etwas übersehen. Poste mir doch einmal Deine grub.conf

Hallo Peng,

ich bin mir nicht sicher das man für den Kernel 2.6.0 das genkernel script benutzen kann, Nach der .config von der LIVE_CD habe schon gesucht, aber nicht gefunden.

EDIT:

Übrigens: das splashimage wirde jetzt angezeigt. Habe aus dem Kernel ->GraphicSupport->Logoconfig-> die ersten zwei Standartlogos entfernt. D.h. grub ließt von der Platte aus den MBR. und beginnt auch mit dem Laden des Kernel. Bleibt dann aber wie oben beschrieben mit obiger Meldung stehen. 

Gruß knipser11s

----------

## knipser11s

Hallo zusammen,

nachdem es für obiges Problem noch keine Lösung gibt, habe ich heute das komplette System neu installiert. Gott sei Dank ist das System wirklich schnell (ca. 3 Stunden für bootstrap system und kernel, reine kompilierzeit). Das Problem mit Grub bleibt aber.

Deshalb habe ich mir die Arbeit gemacht die Meldungen vom Bootvorgang über mein Nootebook einzutippen

Nach Start des Rechners wird angezeigt

 *Quote:*   

> Grub Loading stage1_5
> 
> Grub loading, please wait...

 

dies dauert sehr lange. Bis zu 30 Sekunden

Danach wird das splashimage angezeigt, und ich kann den Kernel auswählen.

Jetzt beginnt der eigendliche Bootvorgang. Am Monitor werden die üblichen Meldungen angezeigt. Die ersten so schnell, das ich sie nicht lesen kann. Dann kommt auf den letzten drei Zeilen obige Fehlermeldung. 

 *Quote:*   

> VIA8237SATA: 100 % nativ modeon irq 9
> 
> ide2: BM-DMA at 0x2c00-0x2c07, BIOS settings: hde:DMA, hdf:pio
> 
> ide3: BM-DMA at 0x2c08-0x2c0f, BIOS settings: hdg:pio, hdh:pio
> ...

 

Kann hier jemand etwas ableiten?

Oder sol ich lieber per emerge -B lilo auf dem Notebook erzeugen und dann das Package auf den amd64-Rechner kopieren und mit emerge -k lilo installieren? Kann das funktionieren?

für Unterstützung wäre ich sehr Dankbar

knipser11s

----------

## neo-X²

also ich kann nichts im angefügten Text erkennen, das der Kernel deine Samsungplatte erkannt hat. Nach der grub.conf müßte es ja eine SCSI-Platte sein. Wenn dem so ist, solltest du den Treiber vom Controller fest in den Kernel einbauen. So funzte es zumindest bei meinem AIC7xxx-Controller. Vieleicht funzt es auch als Modul in Kombination mit einer RAM-Disk-Datei. Genkernel macht sowas glaube ich, hat aber bei mir überhaupt nicht geklappt. Also alles schön von Hand gemacht und schon gings.

----------

## knipser11s

Hallo,

neo-X² hat geschrieben

 *Quote:*   

> also ich kann nichts im angefügten Text erkennen, das der Kernel deine Samsungplatte erkannt hat.

 

Es handelt sich um ein SATA Laufwerk

4. Zeile  hde: SAMSUNG SP0812C, ATA DISK drive

Der Controller ist fest im Kernel

->SCSI Device support > Scsi low-level-drivers >

Serial ATA (SATA) support y

VIA SATA support Y

Genkernel benutze ich nicht. Ich mache den Kernel immer selbst.

Allerdings ist es richtig das etwas fehlt, denn beim booten von der LIVE-CD und mounten von /dev/sda3 wird die Platte erkannt.

knipser11s

----------

## Peng

```
hde: SAMSUNG SP0812C, ATA DISK drive
```

Ich würde es mit root=/dev/hde3 versuchen.

----------

## knipser11s

Hallo Peng,

Das hab ich gestern auch schon probiert.

Kein Erfolg!

knipser11s

----------

## awiesel

Ich habe zwar kein SATA, aber wenn die LiveCD die Disk schon als sd erkennt, hast Du dann auch in den Kernel SCSI disk support (BLK_DEV_SD) eingebaut?

----------

## knipser11s

Hallo awiesel,

 *Quote:*   

> hast Du dann auch in den Kernel SCSI disk support (BLK_DEV_SD) eingebaut?

 

logo

Ich bin inzwischen sogar so weit gegangen das ich die config von der LIVE-CD 1:1 übernommen habe.

Erfolg gleich Null.

Ich probier es jetzt nochmal mit lilo. D.h. lilo und bin86 selbst bauen. Die sind nämlich noch nicht für amd64 im portage.

knipser11s

----------

## knipser11s

Hallo zusammen,

Die Idee mit lilo und bin86 selbst zu kompilieren war nichts.

Nachdem ich jetzt einige Zeit versucht habe, grub dazu zu bewegen meine Sata-Festplatte beim Booten zu 

erkennen, weiß ich jetzt nicht mehr weiter. Die letzten Tage habe ich in diesem und anderen Foren, sowie im google gesucht.

Folgendes habe ich mir aus den gelesen Info zusammen gereimt.

Um SATA Laufwerke  mit Kernel 2.6.0 zu erkennen wird ein Patch für das Modul libata benötigt. Dieser wird zu den Gentoo-Dev-Sources bei emerge gentoo-dev-sources mit eingespielt. Da auch die ModulAutoloader Funktion eingeschaltet ist sollte also dieses Modul beim Aufruf des Kernels geladen werden.

Seltsamerweise wird aber der MBR Bereich gelesen und auch das splashimage gelesen und angezeigt. Beim

Kernelaufruf dann aber mit der Meldung

 *Quote:*   

> VFS: cannot open root device "sda3" or unkown-block(0,0)
> 
> Please append a correct "root=" boot option
> 
> Kernel panic: VFS: unable to mount root fs on unkown-block(0,0)

 

abgebrochen.

Ich denke das, wie bei der LIVE_CD, ein virtueller Ram-Bereich (initrd..) eingerichtet werden muß. Dazu ist aber das Prog mkinitrd nötig  Wie es der Zufall so will gibt es keine amd64-Version im Portage-Tree. Ich habe auch keine sourcen gefunden, sodas ich mit einer RPM- Version vorlieb nehmen müsste.  Also RPM im Portage gesucht und gefunden. Leider bricht rpm mit Fehlermeldung beim emerge ab.

Es ist zum aus der Haut fahren!

Ich werde sicher nicht aufgeben, aber inzwischen habe ich eine IDE-Festplatte in den Rechner geschraubt und das System auf dieser Festplatte erfolgreich installiert.

Nur etwas ist geblieben.

Nach Start des Rechners wird angezeigt

 *Quote:*   

> Grub Loading stage1_5
> 
> Grub loading, please wait...

 

dies dauert sehr lange. Bis zu 30 Sekunden

Deshalb eine Frage an alle grub Nutzer.

Ist das normal? 

Oder ist meine grub.conf falsch?

 *Quote:*   

> default 0
> 
> timeout 10
> 
> splashimage=(hd0,0)/boot/grub/splash.xpm.gz
> ...

 

knipser11s

----------

## awiesel

Wie sieht es denn mit Device Drivers -> SCSI device support -> SCSI low-level drivers -> Serial ATA (SATA) support (SCSI_SATA)

 aus? Ich würde den ganzen Kram eh fest in den Kernel bauen und auf eine initrd ganz verzichten.

----------

## knipser11s

Hallo awiesel,

Device Drivers -> SCSI device support -> SCSI low-level drivers -> Serial ATA (SATA) kann man eh nur fest in den Kernel bauen. Den für mein System zuständigen Switch (Modul sata_via), als Modul oder fest. Das entscheidende Modul ist aber, wie schon oben geschrieben, libata. Und ich habe keine Ahnung, wie ich das in den Kernel einbinden soll. Deshalb bleibt mir also nur eine initrd.

knipser11s

----------

## Earthworm

Hi! Habe das Problem kürzlich auf einem anderen Thread ( weiss die Nummer nicht mehr ) hier gefunden. Weiss nicht ob es wirklich funktioniert ( bin grad beim Neukompilieren ) aber in dem Thread hat es angeblich geholfen.

File Systems --> Partition Types -->

[*] Advanced partition selection

[*]   PC BIOS (MSDOS partition tables) support

wenns klappt, dann poste ich nochmal !  :Wink: 

lg,

Jimmy

----------

## Earthworm

Es funzt !!!! Yippi!!!!

Aber nochmals: Ich habe das Problem über Lilo gehabt! Habe kein SCSI. Trotzdem hört sich das Problem sehr ähnlich an wie bei mir. Hoffe es hilft euch trotzdem irgendwie weiter!

lg,

Jimmy

----------

## knipser11s

Hallo Earthworm,

Danke für deine Antwort. Leider funktioniert es bei mir immer noch nicht.

Habe das System mit emerge system und emerge world auf den neuesten Stande gebracht. Auch den aktuellen Kernel 2.6.1-rc2 habe ich eingespielt. Hier wurde ein Problem mit dem Modul libata behoben. (compile error on libata fixed)

 *Quote:*   

> File Systems --> Partition Types -->
> 
> [*] Advanced partition selection
> 
> [*] PC BIOS (MSDOS partition tables) support
> ...

 

war schon.

Ich denke das ich auf eine amd64 Version von mkinitrd warten muß. Denn so wird es bei expermental Live-CD gelöst. Die geht.

Wenn wenigstens die amd64 Version von "rpm" kompilierbar wäre. Dann könte ich eine rpm Version von mkinitrd installieren. Lilo würde dann auch gehen.

(EDIT)

Ach ja: Mein amd64 Systerm läuft mit einer IDE-Platte ganz passabel und stabil.

knipser11s

----------

## airflow

Hallo knipser11s!

Ich vesuche ebenfalls gerade, Gentoo auf meinem SATA-only System (ein Dell Dimension 8300) zum Laufen zu bringen... Leider ohne Erfolg, bekanntes Problem "cannot open root device...". Ich hab' jetzt das halbe Forum rauf und runter gelesen, jede Menge Lösungsvorschläge versucht, aber es bleibt dabei... Falls Du Fortschritte erzielst, *bitte* poste sie in diesem Thread!

Danke,

airflow

----------

## knipser11s

Hallo airflow,

natürlich werde ich Fortschritte, mit der SATA-Festplatte, hier posten. Du solltest aber noch die andere Hälfte des Forums anschauen. Vielleich habe ich ja etwas übersehen. Zunächst habe ich aber das Problem mit einer IDE-Festplatte umgangen. Geht einwandtfrei. Morgen Nachmittag habe ich wieder etwas Zeit. Dann steck ich die SATA-Platte wieder rein und probier weiter. Irgenwie sollte es mir gelingen mit einem initrd, zum Grub, der Platte Leben einzuhauchen. Denn die LIVE-CD schafft das ja auch. Meine SATA-Platte wird hier beim Booten einwandfrei erkannt.

knipser11s

----------

## airflow

Lieber knipser11s,

ich habe den begründeten Verdacht, daß (zumindest mir) der Bootloader grub bei der Eingrenzung der SATA-Probleme ordentlich reinscheisst. Bevor Du dadurch weitere wertvolle Zeit verschwendest, laß Dir folgende Entdeckung meinerseits auf der Zunge zergehen: Ob der "root not found" Fehler auftritt, hängt auch davon ab, ob Du den ersten oder zweiten Grub-Eintrag bootest! Traurig, aber wahr! Etwas ausführlicher unter

https://forums.gentoo.org/viewtopic.php?t=123127

Gruß,

airflow

----------

## knipser11s

Hallo airflow,

das grub, für Systeme mit SCSI-Platten, nicht das gelbe vom Ei zu sein scheint, ist mir beim durchstöbern dieses und anderer Foren schon aufgefallen. Mein Problem ist, das für mein amd64 System,  im Portage kein anderer Bootloader zur verfügung steht. Ich bin hier auf die grub-static version angewiesen. Ich werde später noch den Versuch von Dir bezügl. https://forums.gentoo.org/viewtopic.php?t=123127 nachvollziehen. Solltest Du inzwischen neues herausfinden dann lass es mich wissen.

knipser11s

----------

## BlinkEye

naja, immerhin ist man nicht alleine mit seinem problem. ist jemand weitergekommen? ich will meine SATA platten benützen!

habe selbst posts für posts durchgelesen und komme nicht weiter. habe von RAID auf "normalen" SATA betrieb umgestellt und erhalte immer noch denselben fehler.

kommt schon jungs, ihr wollt mir doch nicht sagen, dass ihr alle auf SATA platten verzichtet?!

----------

## BlinkEye

solved the problem. https://forums.gentoo.org/viewtopic.php?p=931563#931563

----------

## knipser11s

Hallo,

nach einigen Monaten der Suche und des Probierens ist es mir endlich gelungen von meiner SATA-Festplatte zu Booten.

Dies ist mir allerding nur mit Hilfe von Genkernel gelungen. Frühere Versuche mit Genkernel misslangen allerdings. Genkernel brach beim erstellen der initrd einfach ab. Ich arbeitete dann halt mit einer IDE-Festplatte.

Diese gab letzte Woche aber den Geist auf (Wochenende). Also habe ich mich noch einmal hingesetzt, und nach dem alle Versuche wieder gescheitert waren habe ich nochmal Genkernel versucht. Und siehe da, Genkernel lief durch und erstellte einen Kernel und eine Initrd. Die Platte wurde nach dem Booten erkannt (hde) und das ohne KernelPanik. 

Den total überladenen Kernel habe ich dann abgespeckt (sowohl feste Einstellungen als auch Module) neu kompiliert und mit der initrd nochmals getestet. 

Lief einwandfrei. Aus Jux habe ich dann noch mal die benötigten Module fest einkopiliert und diesen Kernel dann ohne initrd gebootet. Zu meiner Überaschung lief der dann auch.

Um die Ursache meiner Probleme zu anfang des Jahres zu finden habe ich inzwischen die configs des letzten und der ersten Kernel verglichen. Aber die sind abgesehen von Audio, FW und I2c gleich.

Vieleicht hätte ich nicht immer das config-file für den Kernel mitziehen sollen. 

Möglicherweise hat auch ein Update des Bios geholfen. Denn mit diesen Bios kann man neuerdings die SATA-Platte auch im kompatibel-Modus betreiben. Bei diesem Modus wird die Platte übrigens als "hda" erkannt und läßt sich auch booten.

Den Tip hierfür habe ich direkt von FSC erhalten.

Gruß knipser11s

----------

