"No bootable device found" After completing qubes os install

After completing installation for qubes 4.1 beta, I am greeted with the “no bootable devices found” after reboot.

I’ve had this problem when installing 4.0.4, and I think I got around it by doing another install; but this does not appear to be a viable solution in this case (6th install, same problem).

I noticed docs in the UEFI Troubleshooting page mentioning this error, but I do not see these files, how I am supposed to accomplish those changes.

I’ve tried using the troubleshooting part available for selection with installation boot, and going through it does find my LUKS drive. Decrypting it yields the message of something like “no linux partions available”.

Right bsfore the installation reboot shutdown, it flashes the messages:

Failed to unmount: /run/install/repo Device or resource busy
Could not detach loopback /dev/loop2 Device or resource busy
… etc.

I’ve tried 2 different bootable usb’s for installation.
I only have the one drive atm to target, new one arrives in a week.

Now I am stumped.
Any help solving this issue greatly appreciated.

I’ve encountered this before as well, I booted a different OS from usb, but you could probably use the Qubes Installer rescue mode as well (UEFI troubleshooting | Qubes OS), then just manually find and mount the boot partition. Here’s a copy of the commands I’ve used to get a bootable install: (run as root)

mount /dev/the_partition /mnt/qubes mount the boot partition
cd /mnt/qubes/EFI go to the EFI directory
rm -rf BOOT
mkdir BOOT i just delete and recreate the directory to start clean
cp -r qubes/. BOOT copy all the files
mv BOOT/grub.cfg BOOT/BOOTX64.cfg rename the .cfg file
mv BOOT/grubx64.efi BOOT/BOOTX64.efi rename the .efi file
umount /mnt/qubes unmount the drive

Similar to what’s described in the UEFI Troubleshooting article, this will have to be redone after each dom0 kernel or Xen update, but it works for me.

2 Likes

In any situation, if somewhen your bootable device is not found on grub.

Try booting into qubes os installation media and boot into rescue qubes os entry.

Just skip to shell :

Then run efibootmgr -v -c -u -L Qubes OS -l /EFI/qubes/grubx64.efi -d /dev/nvme0n1 -p 1

-d = where your bootloader device remain.
could be : /dev/sda /dev/sdb /dev/nvme0n1 /dev/nvme1n1
-p = which partition.

you can try run lsblk first before running above command.

4 Likes

Thank you both so much for these solutions.

So far no success yet using the recovery tool, trying both solutions. I may need to try the first again on a real os, but I expect it’ll probably do the same. My bios supports UEFI or UEFI+Legacy modes, and I use the latter, not sure if that’s relevent.

Here’s the result:

I will need to learn some more about these errors. Happy to have some place to start troubleshooting again though. Grateful for all help.

from the partition i can see that you are installing with uefi, perhaps you boot qubes os rescue with bios ?

1 Like

Oh thank you for that tip – now it works!
My understanding is:
I was using the UEFI installer, switched boot order to use legacy installer instead.
Just did a fresh install this way.
That’s it, then it just works.

Thank you all for the amazing help and guidance, it has made me so happy to get this running again.
:slight_smile:

I am having this no bootable device found problem with a Dell Latitude 7290, Qubes 4.1.2

I tried this fix from the docs and the one in the post above above but the problem I’m having is the /boot directory does not contain the EFI folder as the instruction suggest. All it contains is a symlink initramfs-5.15.94.1.qubes.fc32.x86_64.img ->/run/install/repo/images/pxeboot/initrd.img

Any hints greatly appreciated.

EDIT. OK I needed to mount /dev/sda1 first - but now I find there is no xen.cfg file in efi/EFI/qubes/ am I getting closer?

I don’t think Qubes OS r4.1.2 has a xen.cfg … I think it was [only] Qubes OS r4.0 that had xen.cfg.

I think you should be looking for grub.cfg. :slight_smile:

1 Like

Ah thanks - I’ll check that out tomorrow.

Nope, I’m stumped. I’ve tried everything I can find online but no joy. Has anyone had any success in getting over this one?

Do you have an USB stick with an alternate/recovery/live OS? - and can you boot from that?

If so, could you try and boot and share the output of:

fdisk -l /dev/sda
fdisk -l /dev/sdb
fdisk -l /dev/nvme0n1

?

– is your issue something like in:

?

OK (this is after I manually partitioned /dev/sda). sdb is the qubes install USB

Device Boot Start End Sectors Size id Type
/dev/sda1 * 2048 41365503 41363456 19.7G 83 Linux
/dev/sda2 41365504 5000117503 458752000 218.8G 83 Linux

/dev/sdb1 * 0 12044287 12044288 5.8G 0 Linux
/dev/sdb2 808 5427 4620 2.3M ef EFI

no such device for nvm0n1

That is … unexpected … :-/

What do you get with:

ls /sys/firmware/efi

?

If I understand correctly, then the /dev/sdb/ is your Qubes [install] USB stick … and /dev/sda/ should be the internal hard drive (~ 240G hdd/ssd?) - do you have more than one hard drive in the system?

The /dev/nvme0n1 would have been if you had NVMe drives in the machine.

Glad it’s not me!

ls /sys/firmware/efi

gives

files: config_table, fw_platform_size, systab, and dir efivars

Missed this. No, just the one sdd

From unexpected to wierd … :-/

When you boot the installer, it runs in a UEFI environment … but the installed OS is Legacy boot - I had expected to see a EFI System somewhere:

Device              Start       End   Sectors   Size Type
/dev/some_device    2048   1230847   1228800   600M EFI System

Do you have a /dev/sdc - so you get something with:

fdisk -l /dev/sdc

?

No, there’s no /dev/sdc. I’ve tinkered with all the BIOS settings, UEFI on/off. Legacy on/off, auto/manual partitioning, but it always seems to come to this point. I’m sure I’m missing something as it’s a bog standard laptop, but what that thing is I don’t know. Anyway, thanks for taking the time to help.

I’ve always been (so I am?) lazy and just picked auto [“magical”] partitioning and got something that works - my lenovo still needs the

efibootmgr -c -d /dev/nvme0n1 -p 1 -L "QUBES" -l '\EFI\qubes\grubx64.efi'

– but the EFI partition is on the NVMe, so still very easy … and I don’t have a legacy BIOS install, so I’m not sure what partitions to look for … :-/

Well this is just the latest iteration of my trials. I’ll try again with everything set to default and see what comes of that. Anyway, thanks again for your help!

Right, I’m over that hurdle. In case it helps others, here are the BIOS settings that allowed me to continue the installation.

Boot list option - UEFI
Advanced boot options - legacy rom and legacy boot both selected
UEFI path security - always
Integrated NIC - enabled with pxe
SATA - AHCI
Drives - SATA-2 and M2-PCIe both selected
USB - enable boot support and enable external USB both selected
Secure boot - off, Secure boot mode - audit # this mode selection is one of the changes I made before the successful reboot, but I doubt if it made a difference since SB is off
Key management - pk
Intel SoftwareGuard - Software controlled
Virtialisation - Intel enabled, VT for direct I/O enabled, Trusted execution enabled. # Trusted execution was disabled previously. I think this might have been the culprit

1 Like