Fix `_add_efistub_bootloader()` partition number with partn (#2084)

This commit is contained in:
codefiles 2023-09-21 11:13:22 -04:00 committed by GitHub
parent c75ae97f00
commit 6d908e8cd7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 2 deletions

View File

@ -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}')

View File

@ -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,

View File

@ -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} ' \