You are not logged in.

#1 2016-07-04 17:37:27

satyanash
Member
From: Nagpur, India
Registered: 2012-10-30
Posts: 6
Website

Kernel Panic: Unable to mount root fs with unknown-block(0,0)

I'm trying to install Arch Linux without any bootloader.
I want to use my system's UEFI itself as my 'OS switcher'.

Following is my partition layout:

/dev/sda1   500M EFI System
/dev/sda2   128M Microsoft Reserved
/dev/sda3   100G Microsoft basic data
/dev/sda4   144G Linux filesystem
/dev/sda5   450M Windows recovery environment

I have mounted /dev/sda1 on /boot.
I have also generated the initramfs-linux.img and the initramfs-linux-fallback.img using mkinitcpio.
I have also verified that the vmlinuz-linux kernel file with the EFISTUB also exists on the /boot mounted partition.

Next I've also added the proper BootEntry using efibootmgr in the following way:

efibootmgr -d /dev/sda -p 1 -c -L "Arch Linux" -l /vmlinuz-linux -u "root=/dev/sda4 rw initrd=/initramfs-linux.img"

Everything seems to be proper as per the installation docs.
But I still get a kernel panic the moment the OS starts.
I'm not sure if there's any other output because things go by very fast and the panic message is the only thing visible.

Kernel Panic: Unable to mount root fs with unknown-block(0,0)
...
...

I've tried various combinations of the below:

  • changing the root=/dev/sda4 to use the corresponding PARTUUID=... instead

  • using the initramfs-linux-fallback.img instead of the default one

  • changing the / to a \\ in the -l and initrd=\\initramfs-linux.img options

  • setting the rootfstype=ext4 in the kernel params

None of the above changes seem to affect the output. It stays the same.

ps. The Windows 10 installation boots just fine.

Last edited by satyanash (2016-07-04 18:30:24)


Hi!

Offline

#2 2016-07-04 19:08:44

satyanash
Member
From: Nagpur, India
Registered: 2012-10-30
Posts: 6
Website

Re: Kernel Panic: Unable to mount root fs with unknown-block(0,0)

Some more notes:

  • Some people have tried adding the add_efi_memmap kernel parameter but it doesn't seem to work either

  • This is a x64 installation that I am trying to get up and running.

I am beginning to think that none of the options are being passed to the kernel at all.
This is why any change to the kernel parameters doesn't seem to have any effect whatsoever.
Also ArchLinux depends entirely on the initramfs to perform hardware detection.
And since it is never loaded, the kernel bootup doesn't get very far.


Hi!

Offline

#3 2016-07-04 19:36:30

ewaller
Administrator
From: Pasadena, CA
Registered: 2009-07-13
Posts: 19,802

Re: Kernel Panic: Unable to mount root fs with unknown-block(0,0)

After you set the efi variable, have you tried reading it with efibootmgr -v
Does your system let you edit the boot parameters in the pre-boot menus?  With this HP Envy it was impossible to set up with efibootmgr.  I was able to configure it with the pre-boot menus.  Another option is the efishell, but I have never mastered that tool

Last edited by ewaller (2016-07-04 21:35:39)


Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way

Offline

#4 2016-07-04 19:58:43

satyanash
Member
From: Nagpur, India
Registered: 2012-10-30
Posts: 6
Website

Re: Kernel Panic: Unable to mount root fs with unknown-block(0,0)

I manged to obtain a UEFI v2 Shell from where I executed the vmlinuz-linux executable[1]:

> fs1:
fs1:\> vmlinuz-linux root=/dev/sda4 rw initrd=/initramfs-linux.img

this finally booted the kernel nicely to the login prompt big_smile

ewaller wrote:

...have you tried reading it with efibootmgr -v

Running efibootmgr -v displays all the BootEntries properly including the extra UCS2 data (-u) being stored correctly.

So it looks like my UEFI is storing, but not passing any of the (kernel) parameters when booting the EFI binary (vmlinuz-linux) directly.
I can however pass the same parameters by manually executing the EFI binary via the UEFIv2 shell.
Now I'm not sure if this is a part of the UEFI spec or an implementation bug in Dell's UEFI. :-/

[1] https://wiki.archlinux.org/index.php/EF … UEFI_Shell

Last edited by satyanash (2016-07-04 19:59:15)


Hi!

Offline

#5 2016-07-13 05:31:35

satyanash
Member
From: Nagpur, India
Registered: 2012-10-30
Posts: 6
Website

Re: Kernel Panic: Unable to mount root fs with unknown-block(0,0)

I also had a look at the Windows BootEntry and it also contains some data in the UCS2 encoded extra args section:

WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................

I tried creating another BootEntry pointing to \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI but without the extra args and it booted without issues. This probably means that Windows does not depend on any data stored in the extra args section.

I also tried looking around for extra args issues in Dell UEFI firmware and found a firmware update[1] that hinted that the issue might have been fixed:

Fixes
-. Fixed Ubuntu boot options in boot menu.

I downloaded and updated the firmware but it still doesn't seem to pass the extra args so I'm not sure if it refers to the same problem I am having.

I finally gave up and installed systemd-boot :-/

[1] Original: http://www.dell.com/support/home/us/en/ … erId=T03KR, Archived: https://web.archive.org/web/20160713052 … erId=T03KR


Hi!

Offline

Board footer

Powered by FluxBB