# Could not find the root block device in .  SOLVED

## Moriah

I have a new machine - 2.6GHz Intel dual-core quad-cpu with 4 GB ram and 5 TB SATA disk.  It has a new LG Blu Ray drive that interfaces over SATA.  I can boot the install-x86-minimal-2008.0_beta2.iso CD from the drive, but during the pivot root (or somewhere near there?) is says:

```
>> Activating mdev

>> Determining root device...

!! Could not find the root block device in .
```

Do I need some kind of funky option on my boot line?  I just booted with no framebuffer, but no other options, from the handy menu.

I hope I am not ahead of the curve on this box and need to downgrade to a plain CD or DVD drive just to do the install.  :-\

----------

## NeddySeagoon

Moriah,

I suspect the liveCD cannot see your SATA controller. The boot process so far goes thus.

BIOS loads Grub (the CD uses grub now, not isolinux)

Grub uses the bios to load the kernel and initrdfs.

The kernel looks around for a drive to talk to and can't find one.

That means the fix is a newer kernel (if there is one for you yet) or a borrowed plug in card for you to use for the install.

Its worth trying the doscsi boot time option. I'm not sure if thats still needed to get SATA support.

----------

## Moriah

I am having trouble figuring out how to use grub to boot this manually from the cd drive.  It is complaining:

```
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(2,0)

```

Since it does not show any options, does this mean I need to attach a good old fashioned IDE style CD drive to o the install?

----------

## Moriah

I attached a plain old fashioned IDE CD drive, and I still get the same problem.  I also tried booting from an old liveCD 2006.1 minimal, and that too failed at the pivot root.  It can't seem to find the CD drive, whether I use the new SATA BluRay one, or the old PATA IDE CDrom drive.  I suspect a motherboard incompatibility, which ain't good at all.   :Sad: 

The motherboard is an ASUS P5E-VM BIOS Rev 0506

----------

## Moriah

I got it working!

I had a bad IDE cable I pulled out of the junk box, along with the IDE CDROM drive.  That caused it to not even show video.  Changed to another IDE cable and got my video back (after trying a *LOT* of other things, including another CD drive).

It turns out that something was foobared with the SATA cables -- the ordering, or something not plugged in well, or a BIOS setting -- I don't really know for sure, but once I got it to boot with the IDE drive, I was able to get it to boot with the SATA BluRay drive also.

I wish I had more definite results, but at least it is working and I can get along with the gentoo installation.

----------

## Moriah

I now have definate results:  The gentoo-nofb kernel does not find my LG Blu-Ray drive as the boot device, whereas the gentoo kernel does.  This is using the install-x86-minimal-2008.0_beta2.iso livecd.  I generally prefer to use the no-framebuffer kernel forinstallations, as I use a KVM-over-IP setup to do this from 400 miles away, and the smaller raster gives better performance in the presence of netlag.  Using the gentoo kernel, I am able to boot, but the raster is larger.  Oh well...    :Confused: 

After I get things generally booted, I start sshd and do the rest using that.    :Cool: 

----------

## NeddySeagoon

Moriah,

Please report his as a bug at bugs.gentoo.org if its not already been reported

----------

## Moriah

Bug 224895 already covered it, so I added a comment to that report.  No action has been taken on it yet.

----------

## Moriah

I have additional information to report.  When I set the SATA controller in IDE mode, I can boot thru grub into the liveCD, but when I set it in AHCI or RAID mode, When it boots, it reads grub, but then falls into a grub shell prompt because i cannot read the rest of the loader.  My guess is that the code in grub to read the disk cannot handle my sata controller, and it doesn't use the BIOS to read the CD drive either.

The controller is an Intel 82801IR/IO/IH (4 sata ports) and 82801I (2 ports).  The motherboard is an ASUS (don't remember the model).  There are 5 WD 1TB drives on sata ports 1 thru 5, and port 6 has an LG BluRay burner.

Any suggestions as to what to do other than crippling my sata drives by running them in ide compatible mode?  That would not be acceptable!    :Evil or Very Mad: 

----------

## NeddySeagoon

Moriah,

That means that AHCI driver is missing from the kernel or initrdfs on the CD.

grub loads the kernel and initrdfs, the kernel looks round and sees nothing.

You can install with IDE mode selected (it will be slow) and build your own kernel to use AHCI, then switch your BIOS before you boot your own kernel.

----------

## Moriah

That's what I was thinking I needed to do, but will grub be able to load it?  

The BIOS loaded the first part of grub, but grub never displayed the selection box where you choose what kernel you want to boot; it just dropped directly into the grub shell without ever displaying the grub splash screen or anything.  

This makes me wonder if grub needs an update too.

----------

## NeddySeagoon

Moriah,

grub cannot use the kernel as its purpose is to load and start the the kernel.

Grub has to make its own arrangements for reading the drive.

It does this with BIOS calls.

----------

## Moriah

That is what I had always thought.  So this would tend to imply that beyond some point on the CD drive (sata bluray) the addressing as LBA is perhaps different to reach the same physical spot on the CD and read it?  Sounds to me like there may be a BIOS problem here...   :Shocked: 

Hopefully, this will  not affect booting from a hard drive after the system is installed.  We shall soon see, because I intend to install a small system tonight.

BTW not to change the subject, but this is a 64 bit quad cpu intel box.  I downloaded the plain old x86 minimal live cd.  Should I be using something different for a 64 bit system?  This is replacing an adm64 box that is 3.5 years old; I do not really want to run it in 32 bit mode.

----------

## NeddySeagoon

Moriah,

You should be using the amd64 CD and stage 3 tarballs.

Any 64 bit LiveCD will do. You cannot do a 64 bit install on top of a 32 bit kernel but te other way round can be made to work

----------

## Moriah

I use the amd64 livecd on an intel chip ???   :Shocked: 

Can I use an old one, such as 2006?  I already have a 2006 amd64 livecd; otherwise I will have to download and burn one, which can be a challange when the you are 400 miles away from the system you are working on, which I am.   :Cool: 

If the old 2006.1 amd64 livecd will work, then I can get someone to change the cd in the drive of the new machine, otherwise I need to download the new iso, get someone to put a blank cd in the burner on another machine so I can burn the image, then instruct them to take the 2008beta2 cd out of the new machine and move the freshly burned cd to it.  Trying to tell someone where things are over the phone, when I am not totally sure myself, can be a pain.    :Confused: 

----------

## Moriah

OK, I have the 2008.0 beta2 amd64 livecd booted.  It still failes on the gentoo-nofb kernel, and it still requires the sata controller to be in ide mode to boot, but at leaat now it can see all 4 gb of ram.    :Razz: 

So I assume that proves it is also running in 64 bit mode, because uname -a doesn't give me a clue.

I am going to go ahead an do a very simple install and kernel build and see if it will boot.  If it does, then I will add the AHCI SATA drivers and tell the BIOS to use AHCI mode and see if I can still boot.

I will post again tomorow sometime when I have some results.

Thanks!   :Smile: 

----------

## NeddySeagoon

Moriah,

Intels Itainium chip (their own 64 bit design) failed to take the world by storm because it could not run existing IA32 code without a software emulator, meaning it was slow with legacy code. The alternative was to rebuild the code for Itainium, which would be a new version an in the commercial word, a new liecence which users would have to pay for.

Meanwhile, AMD made their 64 bit chip backwards compatible with existing 32 bit code. This hurt Intel so much they licenced things from AMD and produced chips with a compatible instruction set. Its not lasted. The Intel and AMD instrution sets contine to diverge.

Thus it comes about that almost all 64 bit Intel/AMD CPUs want the amd64 live CD. If you had an Itainium, you would want the IA64 CD but they are very rare outside of servers.    

Yes, you have a 64 bit install that by defualt will run 32 bit code too.

----------

## Moriah

Thanks!  I am intending to perform a small install to test bootability from the SATA disk drives today.  I will report on my results, but first I need o get something to eat.    :Wink: 

----------

## Moriah

I have  built a simple kernel on a simple setup: 1 sata drive, partitions just like in the handbook.  It won't boot.    :Crying or Very sad: 

It does read grub and start booting te kernel, but it complains:

```
No filesystem could mount root, tried: ext3 ext2 msdos vfat, iso9660

Kernel panic - not suncing: VFS: Unable to mount root fs on unknown-block(8,3)
```

Now this is probably because it choose xfs for the root filesystem, which was a choice in the handbook.

I have been using reiserfs for several years on the predecessors of this box, the latest of which is an amd64 Athlon 3000+, but the amd64 handbook now says that reiserfs is not well maintained (I wonder why...   :Wink:  given Dr. Reisers present residence), and that "ReiserFS may work but need more testing.", so I chose xfs instead.

But xfs was not one of the filesystems the boot process says it tried.    :Surprised: 

Do I need an initrd ramdisk and a pivot-root to get xfs on the root fs?  That would not be very convenient.   :Mad: 

----------

## Moriah

OK, I am smart, because I thought about this and I determined what the problem had to be, and I was right!    :Cool: 

Yes, I'm stupid!  In my haste, I made XFS a module instead of static in the kernel, so of course it wouldn't boot.   :Embarassed: 

Fixed that.  Now it works!    :Very Happy: 

----------

## waw

Hello, 

I have a same issue on my gentoo after installing it on an external USB SATA drive.

My Computer was an ASUS laptop F9S series with a duo T5450 CPU. (not an AMD one  :Wink:  )

All its ok during the boot process and grub launch without errors my kernel (2.6.24r5).

But when mdev is activated, after module loading, and try to determine root device, it reject Block device /dev/sdb3 as an invalid root device.

I need to set it by hand (entering /dev/sdb3), hit enter is not working too.

I have tried to set real_root=/dev/sdb3 option to force it but with no success...

Does anyone have an idea ?

Regards

ps : dmesg available on request.

(sorry to reopen an older thread)

----------

## NeddySeagoon

waw,

Welcome to the forums.  When you boot from a USB device, the BIOS loads run then grub loads the kernel.

The kernel now needs the USB subsystem started before it can mount its root file system.

This is where it gets messy.

In the normal course of events, root is mounted before USB is started. Thats an issue for USB bootig because you need USB first.

Normally, adding rootdelay=15 to the end of the kernel line in grub.conf and building usb-storage support into the kernel allows it to boot. rootdelay is a number of seconds, which allows USB to start before the kernel mounts its root filesystem.

However, if you use an initrd, that is mounted as root and you need the delay to apply to the real_root.

I've never tested that combination.

----------

## Moriah

It should be easy enough to add a sleep 15 to the end of the initrd linuxrc script.  I have a sleep 10 in mine already for another reason.

----------

## waw

Thanks and happy new year to all !

I've tried to add rootdelay=15 but without success.

I think the issue don't come from the root slice to be mounted. I can boot my kernel from grub (that is installed on the USB device)

My main problem was when the boot process invoke mdev, i've seen a same issue on https://forums.gentoo.org/viewtopic-t-722387.html.

Seem to be an mdev issue, but i don't now how mdev work (it don't suceed mounting /dev/sdb3 automatically, and need it to be set by hand) !

waw

----------

## NeddySeagoon

waw,

grub loads your kernel and initrd without using the kernel to access your USB drive.

It has to, as the kernel is not yet loaded. grub uses the BIOS.

When your kernel is loaded it mounts the initrd as a temporary root filesystem and runs things from here, including mdev.

You still need usbstorage started before the kernel (using mdev) can see your USB hard drive.

----------

## Moriah

And USB can start slowly.  I would give it probably more than 30 seconds...

----------

