revert 7f18485: improve uefi detection mechanism

Make is_uefi_supported() only check for /sys/firmware/efi as
get_efi_partition() will detect a missing ESP or an invalid
partition scheme. Stop using get_efi_partition() inside
is_uefi_supported() as the former is eventually called in every
UEFI related code.
UEFI supports both MBR and GPT as partition schemes and this is
a required change to handle the particular case of Windows not
being able to boot UEFI from a MBR partition scheme.
master
Alejandro Sirgo Rica 2024-03-26 11:32:41 +01:00
parent 049b7a5a2b
commit 42791a1a7c
2 changed files with 3 additions and 13 deletions

View File

@ -111,7 +111,7 @@ def boot_os_at(disk, part):
if not mount_mkdir(device, mountpoint): if not mount_mkdir(device, mountpoint):
raise RuntimeError(f'Cannot probe OS family. Unable to mount {device} at {esp_mountpoint}.') raise RuntimeError(f'Cannot probe OS family. Unable to mount {device} at {esp_mountpoint}.')
is_uefi = is_uefi_supported(disk) is_uefi = is_uefi_supported()
if is_uefi: if is_uefi:
logging.info('UEFI support detected') logging.info('UEFI support detected')
else: else:

View File

@ -11,7 +11,6 @@ import logging
import os import os
import shlex import shlex
import subprocess import subprocess
from src.utils.disk import get_efi_partition
import fdisk import fdisk
@ -47,17 +46,8 @@ def _check_efibootmgr_json():
return supported return supported
def is_uefi_supported(disknum): def is_uefi_supported():
is_supported = os.path.exists("/sys/firmware/efi") return os.path.exists("/sys/firmware/efi")
if is_supported:
try:
get_efi_partition(disknum)
except Exception as e:
logging.info(e)
is_supported = False
return is_supported
def run_efibootmgr_json(): def run_efibootmgr_json():