I use Lenovo y500 and after buying a 250 gb Samsung SSD, I decided to use dual OS consisting of Arch Linux and Windows 8.1. In order to prevent boot problems, I installed Arch later. I used UEFI and selected systemd-boot for the installation. Linux boot loader worked fine. However, for some reason, the boot screen was not aligned for my screen correctly and I decided to update my BIOS (which I regret doing because it did not fix the problem) since the issue, according to my search, is about the firmware.

After that, in boot options, I could not see the Linux boot loader. There was only Windows boot loader. Checking the EFI partition, I found that systemd-boot files do exist without any change.

I couldn't understand why my PC cannot see the Linux boot loader. There was no information about this in the Internet, either. So my questions are:

  • How can a BIOS update affect my EFI boot?
  • If the problem is about update indeed, should I try to roll it back?
  • For my problem, is it possible to repair EFI by using Arch Linux live USB? If it is, how?

I feel impelled to say that BIOS update re-enabled Secure Boot. I disabled it, nevertheless, that did not work. The update might have done something to EFI when it re-enabled Secure Boot but I'm not sure.

  • 1
    Hi, it might help if you gave us some more details. Which version of Arch have you installed and did you regularly update your system (as strongly recommended by the Arch community)? What exactly is your boot process? Did I understand you correctly that you use systemd-boot to load the windows boot loader? If yes, does this still work? How did you boot into Linux, are you using an additional boot loader next to boot-systemd? Last but not least, how did you partition the disk? – vic Oct 18 '15 at 18:35

I had the same issue with systemd-boot. After recent bios patch for MSI gs40, systemd bootloader was gone from bios options. Yet grub2 (ubuntu's loader) and ms-boot (windows') are still detected ok. Updating systemd-boot, toggling secure boot or some other random clicking in bios didn't help either. As for your questions:

  1. How can a BIOS update affect my EFI boot? The issue seems to be related to systemd-boot support for new EFI bios versions. There's still no issues in bugtrackers and I'm too lazy to create any.
  2. If the problem is about update indeed, should I try to roll it back? Nope, In my practice flashing old bios version can turn your laptop into a brick. You won't be able to firmware bios back without special programmer. Note that's not always, but I wouldn't risk
  3. For my problem, is it possible to repair EFI by using Arch Linux live USB? If it is, how? Just switch to grub2 or any other bootloaders. Archlinux usb livecd should still be bootable in UEFI mode. @younes answer will do fine. For more information see wiki


Ok, I was finally able to boot from systemd-boot. For me recreating efi structure helped for some magical reason. Here're steps to fix:

  1. Boot from any linux livecd (archlinux will do fine)
  2. mount your boot partition, backup all data from it somewhere
  3. Erase all files from boot partition (only file, no need to do some operations with partition)
  4. Install systemd boot again bootctl install, since you're already boot in efi mode and boot partition is mounted
  5. sync files and reboot into BIOS. systemd boot should appear in UEFI loader. Mark it as first. Now after rebooting systemd boot should be available!
  6. Restore your old UEFI structure from livecd. (Copy your backed up /boot to new installed files in partition overriding them.)
  7. Reboot again and boot from your system.

I hope this help you.

| improve this answer | |
  • I got this today after upgrading the BIOS on my Gigabyte Aorus X570. It was enough to run bootctl --path=esp install without recreating the ESP partitions file structure. – lubosz Dec 17 '19 at 11:10

Use live CD or USB, then chroot into your Archlinux which is on the hard drive, and then update-grub, also you may need to run grub-install /dev/sda && update-grub.

If you can give more informations about your hard drive (partitions table, type and parts scheme ...) the stdout of lsblk and sudo fdisk -l

| improve this answer | |
  • OP clearly stated that he is using systemd-boot. I don't see how your Grub commands will help. – vic Oct 18 '15 at 18:31

There's a simpler way. Just enter the UEFI firmware settings from Windows boot options. Change the boot order and make Linux boot first. Save changes and exit. Upon reboot grub will load and you'll be able to boot into either of the two OSes.

| improve this answer | |
  • I just actually did this and then found your comment. Should be top comment – Tasos Anesiadis Jun 19 '18 at 1:20

Open Elevated Command Prompt (press Windows Key > type CMD > Right Click on Command Prompt > select Run as administrator) and enter the following:

bcdedit /set {bootmgr} path \EFI\GRUB\grubx64.efi 

(In the above command you can replace GRUB with debian for Debian OS and ubuntu for Ubuntu OS.)

| improve this answer | |
  • This worked for me. NOTE: You literally put in {bootmgr}. I thought that was a variable you need to replace with something. But, it's not. :) – stuckj Jun 15 at 20:30

Go into your BIOS and select the Ubutu boot loader to load first.

| improve this answer | |

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.