I am attempting to install the latest CentOS 7.5 x64 on small form factor PC ASUS Eee Box EB1037. It is an Intel Celeron J1900 (Bay Trail) with an onboard NVIDIA GeForce GT 820M. The installtion media will lock up unless Nouveau is first disabled. This is fine. But after installation and subsequent reboots, the EFI partition seems to become corrupt.
This question is NOT about troubleshooting how to boot but rather understanding why exactly this boot failure is corrupting the EFI partition and causing GRUB to fail.
Here is the installation procedure:
- Burned CentOS 7.5 to USB
- Boot to USB installer (grub bootloader)
- Edit grub option to add "nouveau.modeset=0"
- Set time zone
- Software selection: Minimal install (no changes)
- Network & Hostname: Set hostname
- Set manual partitions as "standard partitions" (no LVM) and automatic partition layout
- Installation continues
- Set root password and user account (as an administrator)
- Installation completes
- Reboot
- Hard disk GRUB appears
I did not change any of the GRUB settings (such as disabling Nouveau). See the default settings here:
Attempted to boot CentOS with these defaults and it hung as expected (since I did not disable Nouveau). All I could see was a black screen. The monitor was on but the keyboard indicators and backlight, as well as the optical mouse LED were all off. Keyboard was unresponsible to ctrl-alt-del.
Performed a hard reset by holding the power button. System booted up to the hard disk GRUB menu a second time with no problems. Tried to boot using defaults again and it locked the same as before (as expected, as I still haven't disabled Nouveau).
Note that I still have the CentOS USB installer inserted. Upon this THIRD reboot (after the previous two post-install reboots), the system takes me to the USB GRUB instead of the hard disk one. Odd. Popped out the CentOS USB and rebooted with ctrl-alt-del.
Now I see a message from GRUB flash on the screen briefly indicated thing it cannot read the EFI partition:
After a moment it disappears and I see this:
The system is now no longer bootable to the EFI partition.
Why is this happening? How is the EFI partition corrupting?
Additional Information
Secure Boot is Enabled in the BIOS and cannot be disabled but is set to "Other OS".
There is only ONE SATA port inside the unit and it is populated by a Samsung 850 Pro 500GB SSD. Despite being set to AHCI and visible as SATA1 and the only disk connected to the system, CentOS identifies it as sdb
instead of sda
, possibly because it thinks that the USB install media is sda
. It does not present the USB drive as a second disk during installation, however, and displays the Samsung SSD as the only visible drive.
GRUB sees the attached CentOS install USB media as (hd0) and the onboard SATA as (hd1) when both as inserted. The onboard SATA is seen as (hd0) when the USB media is removed. Interestingly, the onboard SATA is seen as sd
by the CentOS installer but hd
by GRUB.
Highlights
- System has an Nvidia graphics processor (Optimus?)
- Secure Boot is ENABLED (cannot be disabled)
- BIOS presents USB disks as attached SATA disks? (
sda
during installation,hd0
in GRUB)
PLEASE NOTE
I can already get the system to boot by removing the USB stick after installation, setting nouveau.modeset=0
and updating GRUB afterwards at /boot/efi/EFI/centos/grub.cfg
.
The question is to understand what is corrupting the EFI partition!
Photo of the system booted:
root=hd1,gpt2
orroot=hd0,gpt2
(though I'm not certain why). Possibly because it's using the UUID later on the line.