Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
"Could not find the root block device in ." in ESP
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Installing Gentoo
View previous topic :: View next topic  
Author Message
qspec
n00b
n00b


Joined: 07 Jun 2016
Posts: 8

PostPosted: Thu Nov 24, 2016 3:37 am    Post subject: "Could not find the root block device in ." in ESP Reply with quote

Kind of a weird problem that will certainly show my ignorance on all of this:

I have an ESP from my Windows partition on "/dev/sda2".

I wanted to keep parity with the Windows boot, so I moved my kernel and initramfs.img to
Code:
/boot/efi/EFI/gentoo/
.

In so doing, when I boot up (using rEFInd on a USB... I don't have a boot manager yet) I get the following:

Code:

!! Could not find the root block device in .
!! Please specify another value or:
!! - press Enter for the same
!! - type "shell" for a shell
!! - type "q" to skip...
root block device() ::


I could type "/dev/sdb2" (which is where my root partition is), and everything would boot up fine and seemed to work without a hitch.

So out of frustration, I moved my kernel and initramfs back to "/boot" and voila! everything works as expected. Does anyone know why? I am not married to keeping my kernel in the ESP, but now I'm determined to know why in the hell it won't work.

Related, I would get a kernel panic when I first booted because I skipped the initramfs step. The install guide kind of made it sound optional and only necessary in specific situations. Is that no longer the case? Or am I unwittingly in one of those specific situations?
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54237
Location: 56N 3W

PostPosted: Thu Nov 24, 2016 11:18 am    Post subject: Reply with quote

qspec,

Code:
!! Could not find the root block device in .
Tells that the kernel loaded could not reach any block devices.
As it works when you move the kernel back, I guess the block device drivers are made as modules.
You need to move the kernel and initrd around together.

The initrd is just a small temporary root filesystem. Its intended to support mounting the real root filesystem.
However, if your kernel can mount the root filesystem with out any outside help, the intramd is not required.
Clearly, your kernel is not made that way at the moment.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
qspec
n00b
n00b


Joined: 07 Jun 2016
Posts: 8

PostPosted: Thu Dec 01, 2016 5:15 am    Post subject: Reply with quote

NeddySeagoon wrote:
qspec,

Code:
!! Could not find the root block device in .
Tells that the kernel loaded could not reach any block devices.
As it works when you move the kernel back, I guess the block device drivers are made as modules.
You need to move the kernel and initrd around together.

The initrd is just a small temporary root filesystem. Its intended to support mounting the real root filesystem.
However, if your kernel can mount the root filesystem with out any outside help, the intramd is not required.
Clearly, your kernel is not made that way at the moment.


Neddy, I appreciate the response.

What section in the kernel compile set-up would I find block devices? I don't recall adding anything as a module (I tried to keep it as simple as possible for my first time). I'll see about going through menuconfig again to see if I missed something (which it would seem that I obviously did).
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54237
Location: 56N 3W

PostPosted: Thu Dec 01, 2016 12:18 pm    Post subject: Reply with quote

qspec,

Unfortunately, its not that simple.

When you run lspci, it will list your hardware, including your block device driver hardware.
Kernel options need to be selected to match that.

I have
Code:
00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode]
00:14.1 IDE interface: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 IDE Controller
You may have several of both.
Unless you know where the hard drive containing your root filesystem is attached, you need them all.

However, it used to work before the move, so the kernel and initrd are OK together as as pair.
Is the initrd actually being loaded from its new location?
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
DONAHUE
Watchman
Watchman


Joined: 09 Dec 2006
Posts: 7651
Location: Goose Creek SC

PostPosted: Thu Dec 01, 2016 3:00 pm    Post subject: Reply with quote

when you select the kernel in refind and hit enter you should get a black screen with two or three white lines of info that should define the chosen kernel, the kernel cmdline options, and initrd=/path/filename. You only get a second to read it. It may be worthwhile to capture this output with a camera and see if it makes sense.
BTW I find the lowest maintenance solution to be keeping the kernel at /boot; using make && make modules_install && make install to create a manually configured efi stub kernel, and allowing rEFInd to expand the list of available kernels as I make new ones. As whim dictates, deleting surplus kernels from /boot, the world file, and from /usr/src.
_________________
Defund the FCC.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Installing Gentoo All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum