# Block device /dev/sda3 is not a valid root device..

## bebobero

After compiling i get a strange message when booting

```
Block device /dev/sda3 is not a valid root device..

The root block device is unspecified or not detected.

Please specify a device to boot, or "Shell" for a shell

boot() : :
```

Any help please??  :Question: 

----------

## Bones McCracker

To help, people will need a bit more information:

I'm assuming you are rebooting during the installation process.  If not, what did you just compile?

Also, could you post:

- your bootloader configuration file?  (E.g. one of grub.conf, lilo.conf, yaboot.conf, etc.)

- a listing of your disk's partition table (e.g. fdisk -l /dev/<whatever> ).

----------

## yfh2

It is possible that your kernel is not compiled with 'SATA' enabled. This happened to me.

It has to be loaded by the init in order to detect and read the sata partition.

----------

## dantrell

I believe I'm having the same problem as the op.

How do I check to see if SATA support is enabled or not?

I find this whole thing strange as well. Never had this problem 'til I started tinkering with 64-bit AMD. Something change?

----------

## doggizback

sameeeeeeeee thing happening to me here

obviously, it's a fairly broad, generic thing. 

strangely enough, this happens to me when booting from a liveusb - THEN, when i get that prompt you see above, i simply key in /dev/sda3, and the sucker boots!

of course, it boots from the 2.6.19 kernel that's on the livecd. so really, my post here is pointless. 

But yes, I'm experiencing similar troubles as well

HP Pavillion DV9605ea (dv9000 series)

suppose I might make a new thread about it, post my config?

should see my kernel right now. it's hideous. I've enabled darn near every option just to see if I could get this sucker working. No luck

EDIT: NEVERMIND! Mine was...partially my own stupidity, partially unexpected behaviour from the install process - https://forums.gentoo.org/viewtopic-t-642467-highlight-.htmlLast edited by doggizback on Wed Jan 09, 2008 10:18 am; edited 2 times in total

----------

## jburns

[quote"bebobero"]

Block device /dev/sda3 is not a valid root device..

The root block device is unspecified or not detected.

Please specify a device to boot, or "Shell" for a shell

boot() : :

[/quote]

There are several possibilities 

You could have ATA/ATAPI/MFM/RLL support ---> enabled

The kernel may have assigned a different device name to the drive

The driver for the drive may be missing

If ATA/ATAPI/MFM/RLL support is enabled the kernel may give the drive a /dev/hdxx name.  Removing ATA/ATAPI/MFM/RLL support in the kernel should correct the problem.

The kernel may assign /dev/sda to another device.  It is possible to reference drives by UUID or by label.

The driver may be missing if it is not selected or if the required kernel support is not configured.

To aid in determining the cause at the boot() : : prompt enter the command "shell".  At the busybox prompt enter the commands "ls /dev/hd*" and "ls /dev/sd*".  If you see hda3 listed then you have ATA/ATAPI/MFM/RLL support enabled.  If you see sdx3 where x is not a then the kernel has changed the device name for the root partition.  If nothing is listed then the driver is missing.

See https://forums.gentoo.org/viewtopic-t-627464-highlight-uuid.html for how to setup referencing the partitions by UUID.  This also helps when the kernel includes ATA/ATAPI/MFM/RLL support.

----------

## Bones McCracker

 *yfh2 wrote:*   

> It is possible that your kernel is not compiled with 'SATA' enabled. This happened to me.
> 
> It has to be loaded by the init in order to detect and read the sata partition.

 

Yes, not having kernel support for the type of storage is a common cause of this type of problem (although I think that causes a kernel panic - but I might not be remembering that correctly).

Other causes related to bootloader configuration and are very common post-install problems.

As to kernel support (which is what the error message mentioned sounds like):

Basically, the kernel must have support for the type of storage on which the Linux /root resides.  This includes both the storage device and the filesystem.  If you followed the handbook, you walked through the steps necessary to select these items, but it's possible you did not make the right selections.  Also, it's a good idea to not use modules for the kernel support required to access /root.

One can check to see if a particular kernel configuration item is enabled or not by examining the kernel configuration file.  However, to do this you need to know what option you're looking for, and this varies by system.

For example, if you know you want to check to see whether you enabled NVIDIA SATA support, you could take a quick peek like this:

```
# grep SATA_NV /usr/src/linux/.config
```

In fact, since most of the configuration symbols for SATA devices begin with "SATA", you can get a pretty good general idea of whether SATA support is configured by this:

```
# grep SATA /usr/src/linux/.config
```

But at this point, it's probably more useful to use menuconfig.  Basically, you are revisiting the "Configuring the Kernel" section in the handbook.  Unfortunately, unless you have a working system, this means rebooting from the CD and repeating the steps necessary to set up the chroot (remount the disk partitions, bind the running proc, sys, and dev filesystems to your target filesystems, re-enter chroot, update environment, etc. -- just like you did the first time).  Then fire up menuconfig again:

```
# cd /usr/src/linux

# make menuconfig
```

Then, if it is a kernel configuration problem, I believe the likely suspects would be in either the "Device Drivers" section or the "Filesystems" section.

To check for SATA support, look for this:

```
<*> Serial ATA (prod) and Parallel ATA (experimental) drivers  --->
```

Then, in that subsection, you need to enable the specific type of device you have (you have to figure that out for yourself, but the handbook provides good advice on using various sources of information to determine what kind of devices are in your system - like using lspci.  I have also found it useful to gather specifications from the internet, in particular for my motherboards / chipsets.

Next, check the other likely culprit, by going back up and entering the "File Systems" section.  Make sure you've got support enabled for whatever kind of partition your /root filesystem is on (although from the error message mention in the post so far, that's not the problem -- I added this mainly in that it's a related problem people often have).

Refer to the handbook.  If you change the kernel configuration you must follow through by recompiling it, reinstalling it, etc.

Regarding bootloader-related problems:

This is a confusing area for lots of people.  Search for and read documentation for the bootloader you are using (for most people, this is GRUB).  Take your time, don't get frustrated, and set it up right.  There is documentation in the Gentoo Docs as well as related threads in the forums.  And there are guides on the internet.  If you still have problems, you'll need to post your bootloader configuration and your partition table listing(s) (as I noted in earlier post) in order to get help.    :Smile: 

----------

## dantrell

SATA was indeed enabled.

I deselected 90% of the items--including ATA/ATAPI/MFM/RLL support--and it booted.

Edit: This might help but it's mostly the same of what was previously said, https://forums.gentoo.org/viewtopic-t-637619.html

----------

## Bones McCracker

 *dantrell wrote:*   

> SATA was indeed enabled.
> 
> I deselected 90% of the items--including ATA/ATAPI/MFM/RLL support--and it booted.
> 
> Edit: This might help but it's mostly the same of what was previously said, https://forums.gentoo.org/viewtopic-t-637619.html

 

Excellent.  Thank you jburns for pointing that out.

Yes, most of these post-install difficulties have been covered at one time or another in the forums.  Unfortunately, it can be difficult to search the forums, particularly if you're not sure what to search for.

Glad it's working!    :Smile: 

----------

## omerkh

just as a side note, i had the right kernel parameters set but was still getting the same problem. 

I checked and noticed that the 'kernel' and 'initramfs' entries in my grub.conf file were not on same line. 

I corrected them such that both of them had a line of their own, and the problem vanished  :Smile: 

----------

