Jump to content
Read the Funtoo Newsletter: Summer 2023 ×
  • 0

[UEFI+BTRFS] Need support getting it to boot.



Hi guys,

I'm trying to get my new funtoo installation to boot, but something is missing. (no boot device at bootscreen)



Acer ES1 Netbook:
Intel(R) Celeron(R) CPU  N2940  @ 1.83GHz
256Gb SSD

root@sysresccd /root % fdisk -l /dev/sda
Disk /dev/sda: 223.6 GiB, 240057409536 bytes, 468862128 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: 5B3E7C8B-19A2-4463-BDF6-0A68D8996201

Device       Start       End   Sectors   Size Type
/dev/sda1     2048   1026047   1024000   500M EFI System
/dev/sda2  1026048   9414655   8388608     4G Linux swap
/dev/sda3  9414656 468862094 459447439 219.1G Linux filesystem

root@sysresccd /root % mkdir /mnt/funtoo
root@sysresccd /root % mount -t btrfs -o ssd,noatime,compress=zstd /dev/sda3 /mnt/funtoo
root@sysresccd /root % mount -t vfat /dev/sda1 /mnt/funtoo/boot        
root@sysresccd /root % swapon /dev/sda2

root@sysresccd /root % cd /mnt/funtoo
root@sysresccd /mnt/funtoo % mount -t proc none proc
root@sysresccd /mnt/funtoo % mount --rbind /dev dev
root@sysresccd /mnt/funtoo % mount --rbind /sys sys
root@sysresccd /mnt/funtoo % cd 
root@sysresccd /root % chroot /mnt/funtoo /bin/bash

ysresccd / # ping -c 3 www.google.com
PING www.google.com ( 56(84) bytes of data.
64 bytes from lu-in-f147.1e100.net ( icmp_seq=1 ttl=44 time=97.7 ms
64 bytes from lu-in-f147.1e100.net ( icmp_seq=2 ttl=44 time=47.4 ms
64 bytes from lu-in-f147.1e100.net ( icmp_seq=3 ttl=44 time=47.1 ms

--- www.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 47.110/64.121/97.770/23.794 ms

sysresccd / # mount
/dev/sda3 on / type btrfs (rw,noatime,compress=zstd,ssd,space_cache,subvolid=5,subvol=/)
/dev/sda1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
none on /proc type proc (rw,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=10240k,nr_inodes=484062,mode=755)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
efivarfs on /sys/firmware/efi/efivars type efivarfs (ro,relatime)

sysresccd / # history | tee /tmp/history_$(date +%Y-%m-%d_%H.%M).txt

sysresccd / # ls -ltr /boot
total 13980
-rwxr-xr-x 1 root root  150024 Sep 21 20:49 memtest86.bin
-rwxr-xr-x 1 root root 3045553 Sep 21 23:48 System.map-genkernel-x86_64-4.18.8-gentoo
-rwxr-xr-x 1 root root 6160944 Sep 21 23:48 kernel-genkernel-x86_64-4.18.8-gentoo
-rwxr-xr-x 1 root root 4940896 Sep 22 00:42 initramfs-genkernel-x86_64-4.18.8-gentoo
drwxr-xr-x 3 root root    4096 Sep 22 16:42 EFI
drwxr-xr-x 6 root root    4096 Sep 22 16:46 grub

sysresccd / # ls -ltr /boot/EFI/
total 4
drwxr-xr-x 2 root root 4096 Sep 22 16:42 'Funtoo Linux [GRUB]'
sysresccd / # ls -ltr /boot/EFI/Funtoo\ Linux\ \[GRUB\]/
total 120
-rwxr-xr-x 1 root root 120832 Sep 22 16:44 grubx64.efi

sysresccd / # ls -ltr /boot/grub/
total 44
drwxr-xr-x 3 root root  4096 Sep 22 16:42 themes
drwxr-xr-x 2 root root  4096 Sep 22 16:42 locale
-rwxr-xr-x 1 root root  1024 Sep 22 16:42 grubenv
drwxr-xr-x 2 root root  4096 Sep 22 16:42 fonts
drwxr-xr-x 2 root root 20480 Sep 22 16:44 x86_64-efi
-rwxr-xr-x 1 root root   790 Sep 22 16:45 grub.cfg.old
-rwxr-xr-x 1 root root   780 Sep 22 16:46 grub.cfg


Some files I gathered from the system are in the thread's attachments.

I'm using SystemRescue CD to setup the laptop.

Included is also a complete history of commands (I didnt bother to remove redundancies or errors, but you can see sometimes I had to repeat stuff until it was right).

I have experience with Gentoo (2005-2013-ish), but I'm new to funtoo.

Did I miss something in the installation proceedure?

I'm happy if someone was able to point me to the right direction.

Thanks in advance.










EDIT: ok, sorry about the confusion, but it wasn't a problem with the setup in general.

What I forgot to do was add HDD/grub/grub.efi into the list of trusted boot sources in the BIOS.

However, still I'm getting an error at boot time that it can't mount the root fs with btrfs.



Could not mount specified ROOT, try again

Coult not find the root block device in .


See screenshot "20180922_221358.jpg".



Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Hello guys & gals,

I can happily report my problem is solved and the Laptop is booting now properly. So no issue with the boot or grub configuration was present, despite what I assumed.

What I have noticed and what irritated me is the fact that I used the /proc/config.gz from my SystemRescue CD LiveCD which has full BTRFS support.

However, my current kernel config from genkernel had BTRFS not even set, which is strange.

Apparently the "make oldconfig" after coping over the config removed the BTRFS support. [1, 2]

So what I did is copy the config over from the LiveCD again, DON'T RUN "make oldconfig" and run straight genkernel --btrfs all to rebuild everything.

Voila... it straight up boots.

It was a mistake from me to not check it from the beginning because I was 100% confident if I use the same config, it couldnt possibly be different, right? Wrong!

Anyhow you can never stop learning.

Thanks for your support!


1) https://www.funtoo.org/Genkernel_Quick_Start_Tutorial

2) https://www.funtoo.org/Building_a_Kernel_from_Source

Apparently both those articles recommend running "make oldconfig", but for me that was the reason why it wouldn't work.

Link to comment
Share on other sites

  • 0
3 hours ago, palica said:

try changing

linux /kernel-genkernel-x86_64-4.18.8-gentoo real_root=/dev/sda3 rootfstype=btrfs root=/dev/sda3 rootflags=ssd,compress=zstd rootfstype=btrfs


linux /kernel-genkernel-x86_64-4.18.8-gentoo real_root=/dev/sda3 rootfstype=btrfs real_rootflags=ssd,compress=zstd,subvol=/


Strange, I didnt notice it and I certainly didnt manually edit these files.

I changed it but the same boot error message pops up, so it had no effect.

In the meantime I emerged some microcode which I forgot, but even that doesn't make the difference.

Here a short update:

  167  boot-update 
  168  emerge -pv sys-firmware/intel-microcode sys-apps/iucode_tool
  169  echo "sys-firmware/intel-microcode initramfs" >> /etc/portage/package.use 
  170  emerge -pv sys-firmware/intel-microcode sys-apps/iucode_tool
  171  emerge -pv sys-firmware/intel-microcode sys-apps/iucode_tool dracut
  172  emerge sys-firmware/intel-microcode sys-apps/iucode_tool dracut
  173  boot-update 
  174  cat /etc/boot.conf
  175  ls -l /boot/
  176  dracut --early-microcode
  177  history |egrep genkernel
  178  genkernel --microcode --btrfs initramfs
  179  genkernel --microcode --btrfs initramfs
  180  ls /boot/
  181  iucode_tool -S --write-earlyfw=/boot/early_ucode.cpio /lib/firmware/intel-ucode/*
  182  ls -l /boot
  183  vi /boot/grub/grub.cfg
  184  vi /etc/default/grub 
  185  cp -a /boot/grub/grub.cfg /boot/grub/grub.cfg.bak
  186  grub-mkconfig -o /boot/grub/grub.cfg
  187  diff /boot/grub/grub.cfg /boot/grub/grub.cfg.bak
  188  vi /boot/grub/grub.cfg 
  189  mv /boot/grub/grub.cfg.bak /boot/grub/grub.cfg
  190  boot-update 
  191  vi /etc/boot.conf
  192  vi /boot/grub/grub.cfg
  193  history

sysresccd / # cat /etc/boot.conf
boot {
  generate grub
  default "Funtoo Linux" 
  timeout 3 

"Funtoo Linux" {
  kernel kernel[-v]
  initrd initramfs[-v]
  params += real_root=/dev/sda3 rootfstype=btrfs

"memtest86+" {
  type linux16
  kernel /memtest86.bin

sysresccd / # cat /boot/grub/grub.cfg
set timeout=3

  insmod part_gpt
  insmod fat
  set root=(hostdisk//dev/sda,gpt1)
  search --no-floppy --fs-uuid --set 1B67-8C03
if loadfont /grub/fonts/unicode.pf2; then
   set gfxmode=640x480
   insmod all_video
   terminal_output gfxterm

set menu_color_normal=cyan/blue
set menu_color_highlight=blue/cyan

menuentry "Funtoo Linux - kernel-genkernel-x86_64-4.18.8-gentoo" {
  insmod part_gpt
  insmod fat
  set root=(hostdisk//dev/sda,gpt1)
  search --no-floppy --fs-uuid --set 1B67-8C03
  linux /kernel-genkernel-x86_64-4.18.8-gentoo real_root=/dev/sda3 rootfstype=btrfs root=/dev/sda3 real_rootflags=ssd,compress=zstd
  initrd /early_ucode.cpio /initramfs-genkernel-x86_64-4.18.8-gentoo
  set gfxpayload=keep

menuentry "memtest86+" {
  linux16 /memtest86.bin
set default=0

What I totally dont get is what boot.conf is supposed to do when I already have a grub.cfg. It seems redundant to me.

Maybe someone can explain the differences?

Link to comment
Share on other sites

  • 0

I had a problem similar to what you show in your screenshot. I.e. mounting /dev/sdxx ... no such device.

Except in my case it was working with the debian kernel but not with my custom one.

What is the output of


in the rescue shell ?

Also what do you get when you

ls /dev

in the rescue shell ?

It looks like your ssd isn't even recognized. So maybe a driver is missing. Probably the sata driver.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...