diff options
Diffstat (limited to 'src/utils/uefi.py')
-rw-r--r-- | src/utils/uefi.py | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/utils/uefi.py b/src/utils/uefi.py index b51d765..17b35cb 100644 --- a/src/utils/uefi.py +++ b/src/utils/uefi.py @@ -15,6 +15,7 @@ import shutil from src.utils.disk import * from src.utils.fs import * from src.utils.probe import * +from src.log import OgError import fdisk @@ -25,14 +26,14 @@ def _find_bootentry(entries, label): if entry['description'] == label: return entry else: - raise NameError('Boot entry {label} not found') + raise OgError('Boot entry {label} not found') def _strip_boot_prefix(entry): try: num = entry['name'][4:] except: - raise KeyError('Unable to strip "Boot" prefix from boot entry') + raise OgError('Unable to strip "Boot" prefix from boot entry') return num @@ -56,7 +57,7 @@ def is_uefi_supported(): def run_efibootmgr_json(): if _check_efibootmgr_json() is False: - raise RuntimeError(f'{EFIBOOTMGR_BIN} not available') + raise OgError(f'{EFIBOOTMGR_BIN} not available') proc = subprocess.run([EFIBOOTMGR_BIN, '--json'], capture_output=True, text=True) dict_json = json.loads(proc.stdout) @@ -99,14 +100,14 @@ def efibootmgr_create_bootentry(disk, part, loader, label, add_to_bootorder=True try: proc = subprocess.run(shlex.split(efibootmgr_cmd), check=True, text=True) except OSError as e: - raise OSError(f'Unexpected error adding boot entry to nvram. UEFI firmware might be buggy') from e + raise OgError(f'Unexpected error adding boot entry to nvram. UEFI firmware might be buggy') from e def copy_windows_efi_bootloader(disk, partition): device = get_partition_device(disk, partition) mountpoint = device.replace('dev', 'mnt') if not mount_mkdir(device, mountpoint): - raise RuntimeError(f'Cannot probe OS family. Unable to mount {device} into {mountpoint}') + raise OgError(f'Cannot probe OS family. Unable to mount {device} into {mountpoint}') os_family = get_os_family(mountpoint) is_uefi = is_uefi_supported() @@ -119,7 +120,7 @@ def copy_windows_efi_bootloader(disk, partition): esp_mountpoint = esp.replace('dev', 'mnt') if not mount_mkdir(esp, esp_mountpoint): umount(mountpoint) - raise RuntimeError(f'Unable to mount detected EFI System Partition at {esp} into {esp_mountpoint}') + raise OgError(f'Unable to mount detected EFI System Partition at {esp} into {esp_mountpoint}') loader_paths = [f'{esp_mountpoint}/EFI/{bootlabel}/Boot/bootmgfw.efi', f'{esp_mountpoint}/EFI/Microsoft/Boot/bootmgfw.efi'] @@ -131,7 +132,7 @@ def copy_windows_efi_bootloader(disk, partition): logging.info(f'Found bootloader at ESP partition: {loader}') break else: - raise RuntimeError(f'Unable to locate Windows EFI bootloader bootmgfw.efi') + raise OgError(f'Unable to locate Windows EFI bootloader bootmgfw.efi') loader_dir = os.path.dirname(loader) destination_dir = f'{mountpoint}/ogBoot' @@ -139,12 +140,12 @@ def copy_windows_efi_bootloader(disk, partition): try: shutil.rmtree(destination_dir) except Exception as e: - raise OSError(f'Failed to delete {destination_dir}: {e}') from e + raise OgError(f'Failed to delete {destination_dir}: {e}') from e logging.info(f'Copying {loader_dir} into {destination_dir}') try: shutil.copytree(loader_dir, destination_dir) except Exception as e: - raise OSError(f'Failed to copy {loader_dir} into {destination_dir}: {e}') from e + raise OgError(f'Failed to copy {loader_dir} into {destination_dir}: {e}') from e finally: umount(mountpoint) umount(esp_mountpoint) |