From 6d908e8cd7d395a1f8f2473b2dc9ca3e2ace1226 Mon Sep 17 00:00:00 2001 From: codefiles <11915375+codefiles@users.noreply.github.com> Date: Thu, 21 Sep 2023 11:13:22 -0400 Subject: Fix `_add_efistub_bootloader()` partition number with partn (#2084) --- archinstall/lib/disk/device_handler.py | 7 ++++++- archinstall/lib/disk/device_model.py | 3 +++ archinstall/lib/installer.py | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) (limited to 'archinstall') diff --git a/archinstall/lib/disk/device_handler.py b/archinstall/lib/disk/device_handler.py index a95e21e3..494319a1 100644 --- a/archinstall/lib/disk/device_handler.py +++ b/archinstall/lib/disk/device_handler.py @@ -293,6 +293,7 @@ class DeviceHandler(object): lsblk_info = self._fetch_part_info(part_mod.safe_dev_path) + part_mod.partn = lsblk_info.partn part_mod.partuuid = lsblk_info.partuuid part_mod.uuid = lsblk_info.uuid @@ -371,7 +372,7 @@ class DeviceHandler(object): time.sleep(attempt_nr + 1) lsblk_info = get_lsblk_info(path) - if lsblk_info.partuuid and lsblk_info.uuid: + if lsblk_info.partn and lsblk_info.partuuid and lsblk_info.uuid: break self.partprobe(path) @@ -380,6 +381,10 @@ class DeviceHandler(object): debug(f'Unable to get partition information: {path}') raise DiskError(f'Unable to get partition information: {path}') + if not lsblk_info.partn: + debug(f'Unable to determine new partition number: {path}\n{lsblk_info}') + raise DiskError(f'Unable to determine new partition number: {path}') + if not lsblk_info.partuuid: debug(f'Unable to determine new partition uuid: {path}\n{lsblk_info}') raise DiskError(f'Unable to determine new partition uuid: {path}') diff --git a/archinstall/lib/disk/device_model.py b/archinstall/lib/disk/device_model.py index 69038b01..ec0207a1 100644 --- a/archinstall/lib/disk/device_model.py +++ b/archinstall/lib/disk/device_model.py @@ -627,6 +627,7 @@ class PartitionModification: # only set if the device was created or exists dev_path: Optional[Path] = None + partn: Optional[int] = None partuuid: Optional[str] = None uuid: Optional[str] = None @@ -933,6 +934,7 @@ class LsblkInfo: ptuuid: str = '' rota: bool = False tran: Optional[str] = None + partn: Optional[int] = None partuuid: Optional[str] = None parttype :Optional[str] = None uuid: Optional[str] = None @@ -957,6 +959,7 @@ class LsblkInfo: 'ptuuid': self.ptuuid, 'rota': self.rota, 'tran': self.tran, + 'partn': self.partn, 'partuuid': self.partuuid, 'parttype' : self.parttype, 'uuid': self.uuid, diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py index d71e6ad3..d0aa2252 100644 --- a/archinstall/lib/installer.py +++ b/archinstall/lib/installer.py @@ -1085,7 +1085,7 @@ TIMEOUT=5 cmd = f'efibootmgr ' \ f'--disk {parent_dev_path} ' \ - f'--part {boot_partition.safe_dev_path} ' \ + f'--part {boot_partition.partn} ' \ f'--create ' \ f'--label "{label}" ' \ f'--loader {loader} ' \ -- cgit v1.2.3-54-g00ecf