1

I have a fresh install of Ubuntu 18.04 which has this strange behaviour:

First boot fails - black screen after grub. After a force power-off the next one succeeds. Another reboot would bring it to the first state - failed boot (and so on).

The machine is a i9-9820x (ASUS X299) with dual nvidia GPUs (1080 Ti). Boot device is nvme ssd.

OS: Ubuntu 18.04.3 LTS

Kernel details:

$ uname -a
Linux sbimage1804 5.0.0-36-generic #39~18.04.1-Ubuntu SMP Tue Nov 12 11:09:50 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

A few things that were tried:

  • kernel parameter: nomodeset: display changes accordingly but it still fails first boot
  • blacklisting nouveau driver: display changed to lower resolution, first boot fails (nvidia drivers haven't been installed yet)
  • Trying rescue mode on first boot: first boot hangs, last writing on the screen: Loading initial ramdisk
  • Also didn't help: setting recordfail=0 in grub
  • kernel parameter: acpi=off did not help either

Any ideas of how to solve / debug this situation? I tried adding debug earlyprintk=efi,keep kernel parameters but it doesn't add any output before the machine hangs (even in rescue mode)

miluz
  • 275

1 Answers1

1

So it seems this is an issue caused by a faulty update of intel microcode (relative to the affected hardware).

Working around it is done by adding dis_ucode_ldr as kernel parameter. This eliminates the hanged boots.

Note that this workaround comes with a risk of missing a fix to a CPU bug. The price looks like keep following on errata/bugs relevant to the CPU model and and perform BIOS updates to the latest version in a hope that the vendor addresses those bugs. Hopefully a future update of intel-microcode package would fix that issue.

Edit:

I discovered that the default package of intel-microcode that comes with Ubuntu 18.04.3 doesn't cause this issue. A newer version of that packages coming from sudo apt upgrade is the problematic one. Marking that package as 'hold' prevents it from being upgraded, and avoids the need to put the dis_ucode_ldr kernel parameter:

$ sudo apt-mark hold intel-microcode
miluz
  • 275