Ubuntu – Dual boot Dell XPS 13 fails to boot into Ubuntu after firmware update

bootdelldual-bootfirmware

A year ago, I bought a Dell XPS with Windows 10 installed in the factory. When it arrived, I added new partitions to the internal hard disk — boot, home and swap — and installed Ubuntu 16.04 LTS to create a dual-boot system. At that time, I followed the official instructions from Dell on how to install Ubuntu, with two changes:

  1. The Dell instructions say to choose SHIMx64.EFI, but this is not available. The choice I have is between \EFI\BOOT\BOOTx64.EFI and \EFI\BOOT\grubx64.efi. I believe that I chose grub64.efi
  2. I set the SATA Operation from RAID On to AHCI.

After this, I was able to install Ubuntu 16.04.1, and everything worked until today.

Today, I was offered a firmware update, which I accepted. Presumably this update was designed for a Windows-only machine. Now, when the laptop boots, it no longer recognizes the Ubuntu operating system on the internal SSD. After running a system scan (F12 during start-up), I have cleared up a partition error, and after that the Boot Sequence menu in the BIOS appeared like this:

[✓] UEFI: THNSN5256GPU7 NVMe TOSHIBA 256 GB, Par(tition 1)
[✓] UEFI: SanDisk Partition 1 
[✓] Windows Boot Manager  

SanDisk is the LiveUSB key that I am using.

To this, I have added a new Boot Option [✓] Ubuntu, which uses \EFI\BOOT\grubx64.efi, as before. I put this as the first in the list.

I have disabled Secure Boot, but I do not think that this was an issue before.

In the SATA Operation Panel, if I select AHCI, the laptop boots into the SanDisk LiveUSB. If I set it to RAID On, and disable the SanDisk in the Boot Sequence, then the laptop boots into Windows.

In no case does it boot into the Ubuntu OS that is installed on the 256 GB internal SSD.

What steps do I need to take to make the laptop capable of booting into the installed version of Ubuntu?

Best Answer

I'm back in Ubuntu! The issue was that the path to grub set in the BIOS after the firmware upgrade was wrong. Fixing the path fixed the issue.

To do this, press the F2 key while rebooting the Dell laptop, to bring up the BIOS interface.

Optional: In the menu on the left, first select System Configuration > SATA Operation, and select the AHCI radio button. (This step is required on my machine, because there are no RAID drivers installed for Ubuntu yet. If you have RAID drivers for Ubuntu, then you can choose RAID On instead.) Confirm the change of SATA Operation.

With the correct SATA setting already chosen, select Boot Sequence, and then click on the Add Boot Option button in the middle of the right pane. Name the new record (in my case — Ubuntu AHCI) and click on the [...] button to the right of the File Name field, choose a grub file for start-up. Select EFI > ubuntu > grub64.efi. Click OK.

Using the arrows by the list at the top right of the Boot Sequence pane, place your new Ubuntu Boot Option at the top of the list.

I had a new Boot Option with an unhelpful name (UEFI: THNSN5256GPU7 NVMe TOSHIBA 256 GB, Par) which had the same choice of file as Windows Boot Manager. I deleted this, and checked afterwards that I could still boot into Windows. Here is what my Boot Options look like now:

[✓] Ubuntu AHCI
[✓] Windows Boot Manager  

Click Apply, confirm your changes, and then click Exit.

The machine should now boot into Ubuntu, just as it did before the firmware upgrade.

Related Question