In short,

PREEMPT_RT disabled EFI runtime, meaning efibootmgr does not work. GRUB uses 
efibootmgr to set the UEFI boot loader to itself and manages this internally by 
`grub-install`

1.) Set `efi=runtime` on kernel command line (not required if using 
systemrescuecd)

2.) Boot into Debian. If you do not have access to the Debian system due to 
boot loader not being installed correctly or missing, then:

2b.) Boot systemrescuecd

2c.) Mount Debian root filesystem, EFI partition and boot partition. i.e.

/dev/sda1 - 100MB - EFI system partition (/efi)
/dev/sda2 - 2GB - Linux filesystem (/boot)
/dev/sda3 - 100GB - Linux root filesystem (x86-64) (/)

With the above partition layout (`fdisk -l` to print current table) chroot and 
mount like so:

mkdir -p /mnt/debian
mount /dev/sda3 /mnt/debian
mount /dev/sda1 /mnt/debian/efi
mount /dev/sda2 /mnt/debian/boot
mount -t proc none /mnt/debian/proc
mount --rbind /dev /mnt/debian/dev
mount --rbind /sys /mnt/debian/sys
mount --bind /run /mnt/debian/run
chroot /mnt/debian /bin/bash
source /etc/profile && ldconfig

Note `bind` for /run and `rbind` for /dev and /sys this is so /dev and /sys and 
mounted recursively (i.e. /sys/firmware and /sys/firmware/efivars are mounted 
too)

3.) Install GRUB with UEFI:

grub-install --target=x86_64-efi --efi-directory=/efi

4.) Generate GRUB config file:

grub-mkconfig -o /boot/grub/grub.cfg

Change EFI path and all partitions accordingly.

Alec


_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to