index : archinstall32 | |
Archlinux32 installer | gitolite user |
summaryrefslogtreecommitdiff |
-rw-r--r-- | archinstall/lib/disk/helpers.py | 16 |
diff --git a/archinstall/lib/disk/helpers.py b/archinstall/lib/disk/helpers.py index 2f73b2bd..f9618b6c 100644 --- a/archinstall/lib/disk/helpers.py +++ b/archinstall/lib/disk/helpers.py @@ -418,16 +418,20 @@ def find_partition_by_mountpoint(block_devices :List[BlockDevice], relative_moun if partition.get('mountpoint', None) == relative_mountpoint: return partition -def partprobe() -> bool: - if SysCommand(f'bash -c "partprobe"').exit_code == 0: - time.sleep(5) # TODO: Remove, we should be relying on blkid instead of lsblk - return True +def partprobe(path :str = '') -> bool: + try: + if SysCommand(f'bash -c "partprobe {path}"').exit_code == 0: + return True + except SysCallError: + pass return False def convert_device_to_uuid(path :str) -> str: device_name, bind_name = split_bind_name(path) + for i in range(storage['DISK_RETRY_ATTEMPTS']): - partprobe() + partprobe(device_name) + time.sleep(max(0.1, storage['DISK_TIMEOUTS'] * i)) # TODO: Remove, we should be relying on blkid instead of lsblk # TODO: Convert lsblk to blkid # (lsblk supports BlockDev and Partition UUID grabbing, blkid requires you to pick PTUUID and PARTUUID) @@ -437,8 +441,6 @@ def convert_device_to_uuid(path :str) -> str: if (dev_uuid := device.get('uuid', None)): return dev_uuid - time.sleep(storage['DISK_TIMEOUTS']) - raise DiskError(f"Could not retrieve the UUID of {path} within a timely manner.") def has_mountpoint(partition: Union[dict,Partition,MapperDev], target: str, strict: bool = True) -> bool: |