I have a new laptop with a HDD (sda) and a SSD (sdb). Both are detected by the UEFI firmware. I have installed OpenSuse on the SSD.

I have this problem:
If I have OpenSuse CD in the drive then laptop boots from it and I can choose 'boot from hard drive'. This way all works fine.
If I remove the CD from drive I get 'No bootable device' on startup.

I have SSD as /dev/sdb and it is the first in the boot order. It has GPT partition format and following structure:

/dev/sdb1 on /boot/efi type vfat (rw,relatime,fmask=0002,dmask=0002,allow_utime=0020,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro) /dev/sdb2 on /boot/grub2/i386-pc type btrfs (rw,relatime,ssd,space_cache,subvolid=260,subvol=/@/boot/grub2/i386-pc) /dev/sdb2 on /boot/grub2/x86_64-efi type btrfs (rw,relatime,ssd,space_cache,subvolid=261,subvol=/@/boot/grub2/x86_64-efi) /dev/sdb2 on / type btrfs (rw,relatime,ssd,space_cache,subvolid=259,subvol=/@/.snapshots/1/snapshot) /boot/efi looks like that: /boot/efi/ └── EFI ├── boot │   ├── bootx64.efi │   └── fallback.efi └── opensuse ├── boot.csv ├── grub.cfg ├── grub.efi ├── grubx64.efi ├── MokManager.efi └── shim.efi

I have tried re-installing grub2, but it did not help.

I have in BIOS UEFI with secure boot disabled.

Still, I can only boot via CD.

update No luck so far. Tried installing on /dev/sda and also tried Ubuntu. At the end, I turned UEFI of and installed in legacy mode. It worked.

  • Did you correctly set the boot device in your UEFI/BIOS? It might just be that you selected the HDD as the boot device. – Seth Jan 26 '17 at 8:11
  • 1
    You should see how is the BIOS priority order. It seems that something is not working properly. Are you sure that your OS is installed in the SSD? Try to put 1st then in the priority list. – jgorostegui Jan 26 '17 at 8:16
  • SSD is the first in boot order, CD second, HDD third. OpenSuse Yast boot module does not complain about anything. And in fact I can boot the installed system, but only via CD. – Alexey Mints Jan 26 '17 at 8:25
  • 1
    I agree with jgorosdev - I had similar problem with opensuse and there was something in my bios where disks swapped places, so the system was not found. In any case looks like your bootloader (grub2) is not found. I think the most straightforward thing to do would be to boot from CD, then reinstall grub (this should do autodetection of other installed systems too). Something like grub-install --efi-directory=/boot/efi – r0berts Jan 26 '17 at 18:19

Of you get 'No bootable device' then the firmware has detected no bootable drive. The most probably causes for this are:

  • You have some valid boot code on /dev/sdb but the HDD (/dev/sda) is set as first bootable device.
    1) Install the bootpart on the HDD or
    2) change the bootorder in your EUFI setup.
  • Or you are booting in EFI mode on a disk which is not properly setup for EFI
    Read: the disk must have GPT partition format and an EFI system partition. This system partition must be in a format which the EFI firmware understands, which usually means FAT32. And it must contain a EFI bootloader. That bootloader should be configure in the EFI program and point at things like elilo.EFI or grub.EFI. If no configuration is done in the firmware then it will fallback to looking for a generic BOOTx64.EFI file.
  • Or you have installed in backward BIOS mode with a MBR, a bootsector and classic LILO or classic grub. To use that you need to enable the backward compatability shims (CMS) and you also want to disable secure boot (which only allows booting from signed binaries).
  • Can you add that structure to your post? (Using the edit link). – Hennes Jan 28 '17 at 13:28
  • Updated the question – Alexey Mints Jan 28 '17 at 13:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.