# kernel panic: VFS: Cannot open boot device sda4 [SOLVED]

## cayenne

Ok, please be patient with me...its been a LONG time since I did a gentoo install, and I'm running back and forth between monitors to see what's on the screen.

VFS: Cannot open boot device "sda4" or unknown-block (0,0): error -6

Please append a correct "boot=" option : Here are the available partitions:

0b00    1048575  sr0  driver: sr

CPU: 1  PID: 1  Comm:  swapper/0 Not tainted 3.18.11-gentoo #1

That looks like most of the message besides some hex addresses....

Gentoo has changed a great deal since I last messed with it and some things are new to me. I followed the handbook, the grub2 thing being somewhat 'auto' was new to me. 

I'm sure I checked off all the scsi drivers in the kernel (I didn't do genkernel...should I go back and try it? Does it generate the .config that make menuconfig can look at to see what it selected and allow you to tweak it?)

I did the basic set up of the handbook.  

sda1  small bios boot partition

sda2 boot partition

sda3 swap

sda4 /

I'm about to throw the liveCD back in and reboot...but hoping ya'll could give me some pointers and areas to look at where the problem might be?

Do you think the problem in in fstab   or in the grub2 settings?

This is a dell powerdedge 2850.  I'd left the RAID/Drive set up as it came to me. It appears to have 6  36GB drives, two of them as hot and a pair if mirrored sets of drives for the remaining 4 drives.

The liveCD install, seemed to work just fine with reformatting. This box apparently had VMWare on it which I overwrote with my Gentoo install.

I'd not used parted before..that was new, but it seemed to work while I was following the install guide.

Anyway, about to boot back into the install disk and chroot back into it....but hoping ya'll can give me some pointers on where to look for the problem(s).

Thank you in advance!!

cayenne

----------

## cayenne

Following up.

Here's is more info now that I"ve booted into LiveCD again.

I've not chromed into it yet...but here is the results of fdisk -l

livecd ~ # fdisk -l

Disk /dev/loop0: 186.9 MiB, 195960832 bytes, 382736 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sda: 67.8 GiB, 72729231360 bytes, 142049280 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: gpt

Disk identifier: 1BD84C0C-2C41-4346-9B80-871712318157

Device       Start       End   Sectors  Size Type

/dev/sda1     2048      6143      4096    2M BIOS boot

/dev/sda2     6144    530431    524288  256M EFI System

/dev/sda3   530432   6674431   6144000    3G Linux filesystem

/dev/sda4  6674432 142047231 135372800 64.6G Linux filesystem

Ok...I've chrooted in and think I may have the problem:

(chroot) livecd / # more /etc/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/sda2		/boot		ext2		noauto,noatime	0 2

/dev/sda4		/		ext3		noatime		0 1

/dev/sda3		none		swap		sw		0 0

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

/dev/fd0		/mnt/floppy	auto		noauto,user	0 0

I do believe I put ext4 as the root filesystem, not ext3.

I'm gonna change that and see if she works.

Once I change FSTAB, do I have to rerun the grub2 commands?

cayenne

----------

## NeddySeagoon

cayenne,

```
VFS: Cannot open boot device "sda4" or unknown-block (0,0): 
```

Tells that your kernel cannot reach your HDD at all.  This usually indicates that the low level chipset driver is missing from your kernel.

```
lspci -k
```

will tell you the kernel module you need.  Post it here if you are not sure.

There was probably another message too. 

```
Unable to find root device in .
```

This is the kernel listing all the block devices it can see.

They are supposed to be listed one per line between the 'in' and the full stop.

The kernel will work out for itself which version og ext is in use for root. 

With root not mounted and fstab being on root, the kernel has not yet read the file, so if its worng, its not the cause of the issue anyway.

----------

## cayenne

 *NeddySeagoon wrote:*   

> cayenne,
> 
> ```
> VFS: Cannot open boot device "sda4" or unknown-block (0,0): 
> ```
> ...

 

Thanks for the reply Neddy!! (whew...I did finally remember the old password for this account...).

Here is the lspci -k:

```
(chroot) livecd / # lspci -k

00:00.0 Host bridge: Intel Corporation E7520 Memory Controller Hub (rev 09)

   Subsystem: Dell PowerEdge 2850 Memory Controller Hub

00:02.0 PCI bridge: Intel Corporation E7525/E7520/E7320 PCI Express Port A (rev 09)

   Kernel driver in use: pcieport

00:04.0 PCI bridge: Intel Corporation E7525/E7520 PCI Express Port B (rev 09)

   Kernel driver in use: pcieport

00:05.0 PCI bridge: Intel Corporation E7520 PCI Express Port B1 (rev 09)

   Kernel driver in use: pcieport

00:06.0 PCI bridge: Intel Corporation E7520 PCI Express Port C (rev 09)

   Kernel driver in use: pcieport

00:1d.0 USB controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (rev 02)

   Subsystem: Dell PowerEdge 2850 onboard UHCI

   Kernel driver in use: uhci_hcd

00:1d.1 USB controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (rev 02)

   Subsystem: Dell PowerEdge 2850 onboard UHCI

   Kernel driver in use: uhci_hcd

00:1d.2 USB controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (rev 02)

   Subsystem: Dell PowerEdge 2850 onboard UHCI

   Kernel driver in use: uhci_hcd

00:1d.7 USB controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (rev 02)

   Subsystem: Dell PowerEdge 2850 onboard EHCI

   Kernel driver in use: ehci-pci

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev c2)

00:1f.0 ISA bridge: Intel Corporation 82801EB/ER (ICH5/ICH5R) LPC Interface Bridge (rev 02)

00:1f.1 IDE interface: Intel Corporation 82801EB/ER (ICH5/ICH5R) IDE Controller (rev 02)

   Subsystem: Dell PowerEdge 2850 IDE Controller

   Kernel driver in use: ata_piix

01:00.0 PCI bridge: Intel Corporation 80332 [Dobson] I/O processor (A-Segment Bridge) (rev 06)

01:00.2 PCI bridge: Intel Corporation 80332 [Dobson] I/O processor (B-Segment Bridge) (rev 06)

02:0e.0 RAID bus controller: Dell PowerEdge Expandable RAID controller 4 (rev 06)

   Subsystem: Dell PowerEdge Expandable RAID Controller 4e/Di

   Kernel driver in use: megaraid

03:0b.0 Ethernet controller: Intel Corporation 82546GB Gigabit Ethernet Controller (rev 03)

   Subsystem: Intel Corporation PRO/1000 MT Dual Port Server Adapter

   Kernel driver in use: e1000

03:0b.1 Ethernet controller: Intel Corporation 82546GB Gigabit Ethernet Controller (rev 03)

   Subsystem: Intel Corporation PRO/1000 MT Dual Port Server Adapter

   Kernel driver in use: e1000

05:00.0 PCI bridge: Intel Corporation 6700PXH PCI Express-to-PCI Bridge A (rev 09)

05:00.2 PCI bridge: Intel Corporation 6700PXH PCI Express-to-PCI Bridge B (rev 09)

06:07.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller (rev 05)

   Subsystem: Dell PRO/1000 MT Network Connection

   Kernel driver in use: e1000

07:08.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller (rev 05)

   Subsystem: Dell PRO/1000 MT Network Connection

   Kernel driver in use: e1000

09:0d.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RV100 [Radeon 7000 / Radeon VE]

   Subsystem: Dell PowerEdge 2850 Embedded Radeon 7000-M

```

Is there a good way for me to post my .config here or the parts that might be missing/wrong?

Oh ..one thing I found. Here it says it is using "megaraid" In the make menuconfig, I didn't see a plain megaraid available, but I did use the megaraid-legacy which seemed to be the same driver?

I believe I put that and all the e1000 and UHCI EHCI and at a_piix kernel needs and I built everything I touched into the kernel and not a module.

Thank you!!

cayenne

----------

## NeddySeagoon

cayenne,

Use wgetpaste on your .config and post the URL it gives you.

```
02:0e.0 RAID bus controller: Dell PowerEdge Expandable RAID controller 4 (rev 06)

   Subsystem: Dell PowerEdge Expandable RAID Controller 4e/Di

   Kernel driver in use: megaraid 
```

isn't very useful.  There are lots of megaraid drivers.

```
lspci -n
```

will provide the vendor and device IDs. We need the output corresponding to 02:0e.0 to know which megaraid driver you need.

----------

## cayenne

 *NeddySeagoon wrote:*   

> cayenne,
> 
> Use wgetpaste on your .config and post the URL it gives you.
> 
> ```
> ...

 

I'm not familiar with wgetpaste?  I'll go look it up......

Meanwhile here is lspci -n

```
(chroot) livecd linux # lspci -n

00:00.0 0600: 8086:3590 (rev 09)

00:02.0 0604: 8086:3595 (rev 09)[/u]

00:04.0 0604: 8086:3597 (rev 09)

00:05.0 0604: 8086:3598 (rev 09)

00:06.0 0604: 8086:3599 (rev 09)

00:1d.0 0c03: 8086:24d2 (rev 02)

00:1d.1 0c03: 8086:24d4 (rev 02)

00:1d.2 0c03: 8086:24d7 (rev 02)

00:1d.7 0c03: 8086:24dd (rev 02)

00:1e.0 0604: 8086:244e (rev c2)

00:1f.0 0601: 8086:24d0 (rev 02)

00:1f.1 0101: 8086:24db (rev 02)

01:00.0 0604: 8086:0330 (rev 06)

01:00.2 0604: 8086:0332 (rev 06)

02:0e.0 0104: 1028:0013 (rev 06)

03:0b.0 0200: 8086:1079 (rev 03)

03:0b.1 0200: 8086:1079 (rev 03)

05:00.0 0604: 8086:0329 (rev 09)

05:00.2 0604: 8086:032a (rev 09)

06:07.0 0200: 8086:1076 (rev 05)

07:08.0 0200: 8086:1076 (rev 05)

09:0d.0 0300: 1002:5159

```

----------

## cayenne

Ok, I emerged wgetpaste and looked at some examples and think I got it for the .config:

```
(chroot) livecd linux # cat .config | wgetpaste

Your paste can be seen here: https://bpaste.net/show/e9c1bfdbebbc
```

Thank you,

Cayenne

----------

## NeddySeagoon

cayenne,

This page is of interest.

This is a real SCSI driver.  Well, its an optional part of a driver.

```
  │ │    [*]   LSI Logic New Generation RAID Device Drivers                   │ │  

  │ │    <*>     LSI Logic Management Module (New Driver)
```

looks like what is needed.

Thats  CONFIG_MEGARAID_NEWGEN and CONFIG_MEGARAID_MM

----------

## cayenne

 *NeddySeagoon wrote:*   

> cayenne,
> 
> This page is of interest.
> 
> This is a real SCSI driver.  Well, its an optional part of a driver.
> ...

 

Hmm..interesting.

I'd seen those as options, but was thinking my system was 'older' and when I saw the terms New vs Legacy, I assumed that mine would be legacy....

Ok, do you think I should remove the megaraid_legacy I currently have and put those two "new" ones in there....or should I put ALL of them in the kernel to see if one or all of them catch?

Also, and again, I'm kind of a noob again at this since it has been a long time since I last tried gentoo ...once I make the changes, I do the

make && make modules_install

and then

make install.

Is this correct?

Do I then next run all the grub2 commands ?

Thank you so much for your help!!

cayenne

----------

## cayenne

Thank you Neddy!!

I removed the megaraid legacy and put the other megaraid options on....recompiled kernel, updated grub2 and it came right up.

Thank you for ALL the great help!!

cayenne

----------

