diff --git a/archinstall/lib/disk/device_handler.py b/archinstall/lib/disk/device_handler.py index 1f6e3db4b9..a18b48591f 100644 --- a/archinstall/lib/disk/device_handler.py +++ b/archinstall/lib/disk/device_handler.py @@ -191,19 +191,6 @@ def get_parent_device_path(self, dev_path: Path) -> Path: lsblk = get_lsblk_info(dev_path) return Path(f'/dev/{lsblk.pkname}') - def get_unique_path_for_device(self, dev_path: Path) -> Path | None: - paths = Path('/dev/disk/by-id').glob('*') - linked_targets = {p.resolve(): p for p in paths} - linked_wwn_targets = {p: linked_targets[p] for p in linked_targets if p.name.startswith('wwn-') or p.name.startswith('nvme-eui.')} - - if dev_path in linked_wwn_targets: - return linked_wwn_targets[dev_path] - - if dev_path in linked_targets: - return linked_targets[dev_path] - - return None - def get_uuid_for_path(self, path: Path) -> str | None: partition = self.find_partition(path) return partition.partuuid if partition else None diff --git a/archinstall/lib/disk/utils.py b/archinstall/lib/disk/utils.py index 4941e0757e..0e94df542b 100644 --- a/archinstall/lib/disk/utils.py +++ b/archinstall/lib/disk/utils.py @@ -110,6 +110,20 @@ def disk_layouts() -> str: return lsblk_output.model_dump_json(indent=4) +def get_unique_path_for_device(dev_path: Path) -> Path | None: + paths = Path('/dev/disk/by-id').glob('*') + linked_targets = {p.resolve(): p for p in paths} + linked_wwn_targets = {p: linked_targets[p] for p in linked_targets if p.name.startswith('wwn-') or p.name.startswith('nvme-eui.')} + + if dev_path in linked_wwn_targets: + return linked_wwn_targets[dev_path] + + if dev_path in linked_targets: + return linked_targets[dev_path] + + return None + + def mount( dev_path: Path, target_mountpoint: Path, diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py index 68902e0d4c..55574b3576 100644 --- a/archinstall/lib/installer.py +++ b/archinstall/lib/installer.py @@ -16,7 +16,13 @@ from archinstall.lib.disk.device_handler import device_handler from archinstall.lib.disk.fido import Fido2 -from archinstall.lib.disk.utils import get_lsblk_by_mountpoint, get_lsblk_info, mount, swapon +from archinstall.lib.disk.utils import ( + get_lsblk_by_mountpoint, + get_lsblk_info, + get_unique_path_for_device, + mount, + swapon, +) from archinstall.lib.models.application import ZramAlgorithm from archinstall.lib.models.device import ( DiskEncryption, @@ -1534,7 +1540,7 @@ def _add_limine_bootloader( parent_dev_path = device_handler.get_parent_device_path(boot_partition.safe_dev_path) - if unique_path := device_handler.get_unique_path_for_device(parent_dev_path): + if unique_path := get_unique_path_for_device(parent_dev_path): parent_dev_path = unique_path try: