# [gelöst] System bootet nicht: "Cannot open root device..."

## Todie77

Nach dem ersten gescheiterten Versuch habe ich das System komplett neu aufgesetzt, diesmal bootet es erst gar nicht.

Habe den Fehler natürlich gegoogelt, die Lösungen helfen mir aber nicht weiter. Ich komme nicht darauf, woran es bei mir liegt.

FEHLERMELDUNG:

```
md: Scanned 0 and added 0 devices

md: autorun ...

md: ...autorun Done.

Root-NFS: No NFS server available, giving up.

VFS: unable to mount root via NFS, trying floppy

VFS: Cannot open root device "hda3" or unknown-block(0,2)

Please append a correct "root=" boot option;

here are the available partitions

Kernel panic - not syncing:VFS:unable to mount root fs on unknown-block(0,2)
```

grub.config

```
knoppix@Microknoppix:/media$ sudo cat sda1/grub/grub.conf  

s

# This is a sample grub.conf for use with Genkernel, per the Gentoo handbook

# http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=10#doc_chap2

# If you are not using Genkernel and you need help creating this file, you

# should consult the handbook. Alternatively, consult the grub.conf.sample that

# is included with the Grub documentation.

default 0

timeout 30

splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title Gentoo Linux 2.6.36-r8

root (hd0,0)

kernel /boot/kernel-2.6.36-gentoo-r8 root=/dev/hda3

title Gentoo Linux 2.6.36-r8 (rescue)

root (hd0,0)

kernel /boot/kernel-2.6.36-gentoo-r8 root=/dev/hda3 init=/bin/bb

#vim:ft=conf:

knoppix@Microknoppix:/media$ 

```

fstab

```

# /etc/fstab: static file system information.

#

# noatime turns off atimes for increased performance (atimes normally aren't

# needed; notail increases performance of ReiserFS (at the expense of storage

# efficiency).  It's safe to drop the noatime options if you want and to

# switch between notail / tail freely.

#

# The root filesystem should have a pass number of either 0 or 1.

# All other filesystems should have a pass number of 0 or greater than 1.

#

# See the manpage fstab(5) for more information.

#

# <fs>                  <mountpoint>    <type>          <opts>          <dump/pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.

/dev/hda1               /boot           ext2            defaults,noatime        1 2

/dev/hda3               /               ext3            noatime                 0 1

/dev/hda4               /home           ext3            noatime                 0 1

/dev/hdb1               /mnt/HD         ext3            noatime                 0 1

/dev/SWAP               none            swap            sw                      0 0

/dev/cdrom              /mnt/cdrom      auto            noauto,ro               0 0

#/dev/fd0               /mnt/floppy     auto            noauto                  0 0

# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for

# POSIX shared memory (shm_open, shm_unlink).

# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will

#  use almost no memory if not populated with files)

shm                     /dev/shm        tmpfs           nodev,nosuid,noexec     0 0

```

Last edited by Todie77 on Fri Apr 29, 2011 3:39 pm; edited 1 time in total

----------

## ChrisJumper

Hallo Todie77,

da du ja scheinbar kein NFS, also Netzwerk-Root System einhängen willst, gehe ich davon aus das dein Kernel nicht auf die Festplatte zugreifen kann. Dann ist mir aufgefallen das du noch /dev/hdaX verwendest statt /dev/sdaX - doch dies war glaube ich der Fall wenn man statt der aktuellen S-ATA Treiber die (veralteten) ATA-Treiber im Kernel verwendet.

Hast du den Kernel selber kompiliert oder verwendest du genkernel? Auf welche Weise hast du Gentoo installiert, per Chroot von einer Live-CD, wenn ja war dies vielleicht schon eine älter (und hast daher hda und hdb statt sda und sdb, verwendet)?

Natürlich könntest du jetzt einfach deine fstab oder den grub-Kernel-Parameter root=/dev/hda3 anpassen und root=/dev/sda3 verwenden. Doch ich würde noch empfehlen (wenn du nicht genkernel verwendest) noch einmal zu Prüfen ob du bei

Device-Drivers -> Serial ATA and Parallel ATA drivers -> [...] dein-Sata-Controller

auch das richtige ausgewählt hast. Mit lspci findest du heraus welchen SATA Controller auf deinem Mainboard verwendet wird. Stöberst du im Kernel findest du vielleicht einen Treiber der passt oder du fragst Google.

Achte auch darauf das du für die Dateisysteme der Laufwerke auch die entsprechenden Module integrierst. Für andere Partitionen ist das eigentlich egal da diese von der Festplatte geladen werden können wenn das Root-Dateisystem gestartet ist. Aber es ist wichtig das alle Komponenten fest eingebaut werden die dein Kernel braucht um das Root-Device einzuhängen. Also SATA-Treiber und Dateidevice-Systeme für die Rootpartition.

----------

## Todie77

Hi ChrisJumper, ich habe Gentoo per Chroot von einer Live-CD installiert, die ich kurz vorher gebrannt habe, dürfte also nicht zu alt sein. Den Kernel habe ich selber kompiliert.

 *Quote:*   

> Mit lspci findest du heraus welchen SATA Controller auf deinem Mainboard verwendet wird

 

Das sagt lspci. Was soll denn jetzt da der SATA Controller sein ?

```

knoppix@Microknoppix:~$ lspci

00:00.0 Host bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133] (rev 02)

00:01.0 PCI bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133 AGP]

00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 22)

00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 10)

00:07.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 10)

00:07.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 10)

00:07.4 Bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 30)

00:07.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 20)

00:08.0 USB Controller: Silicon Image, Inc. USB0670 (rev 06)

00:09.0 Communication controller: Motorola Wildcard X100P

00:0b.0 Ethernet controller: ADMtek NC100 Network Everywhere Fast Ethernet 10/100 (rev 11)

01:00.0 VGA compatible controller: ATI Technologies Inc Radeon RV200 QW [Radeon 7500]

knoppix@Microknoppix:~$ 

```

----------

## manuels

Du hast einen IDE-Controller:

```
00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 10) 
```

Wie dem auch sei, auch dieser wird mittlerweile vom Kernel als /dev/sd? erkannt.

Also: alle /dev/hd? durch /dev/sd? in der /etc/fstab ersetzen, dann dürfe das System booten.

----------

## Josef.95

 *Todie77 wrote:*   

> 
> 
> ```
> 00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 10)
> ```
> ...

  Dies sollte wohl der Controller sein an dem deine HDD hängt?!

Ich würde vorschlagen im Kernel (unter make menuconfig) folgendes zu setzen 

```
Device Drivers  --->

< > ATA/ATAPI/MFM/RLL support (DEPRECATED)  --->  ## Diesen Zweig bitte komplett deaktivieren

<*> Serial ATA and Parallel ATA drivers  --->

<*>       VIA PATA support
```

Und ja, damit sollten dann deine Devices mit sda statt hda angesprochen werden, ändere es also bitte in der /boot/grub/grub.conf und in der /etc/fstab entsprechend.

/edit: Ups..., da war manuels ein wenig flotter...

----------

## firefly

[quote="Josef.95"] *Todie77 wrote:*   

> Ich würde vorschlagen im Kernel (unter make menuconfig) folgendes zu setzen [code]Device Drivers  --->
> 
> < > ATA/ATAPI/MFM/RLL support (DEPRECATED)  --->  ## Diesen Zweig bitte komplett deaktivieren
> 
> <*> Serial ATA and Parallel ATA drivers  --->
> ...

 

Und nicht vergessen scsi-disk support fest in den kernel zu packen. Ansonsten kennt der kernel keine sd? devices

----------

## manuels

Können wir so einen Thread nicht mal "sticky" machen.

Ich kann kaum zählen, wie oft das schon gefragt wurde...

----------

## Todie77

```
Device Drivers  --->

< > ATA/ATAPI/MFM/RLL support (DEPRECATED)  --->  ## Diesen Zweig bitte komplett deaktivieren

<*> Serial ATA and Parallel ATA drivers  --->

<*>       VIA PATA support
```

Hat funktioniert, System bootet, danke.

----------

