From e6344f93f7e476d05bbcd642f2ed91fdde545870 Mon Sep 17 00:00:00 2001 From: czapek <32851089+48cf@users.noreply.github.com> Date: Tue, 21 Nov 2023 10:19:17 +0100 Subject: Fix Limine bootloader deployment (#2216) * Add `get_unique_path_for_device` to `DeviceHandler` * Fix Limine bootloader deployment * Fail if UKI is enabled with Limine * Support more configuration options with Limine * Fix linter errors * Fix boot partition fs_type check for Limine --- archinstall/lib/disk/device_handler.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'archinstall/lib/disk/device_handler.py') diff --git a/archinstall/lib/disk/device_handler.py b/archinstall/lib/disk/device_handler.py index 50e8c59c..fcf52013 100644 --- a/archinstall/lib/disk/device_handler.py +++ b/archinstall/lib/disk/device_handler.py @@ -133,6 +133,20 @@ class DeviceHandler(object): lsblk = get_lsblk_info(dev_path) return Path(f'/dev/{lsblk.pkname}') + def get_unique_path_for_device(self, dev_path: Path) -> Optional[Path]: + 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) -> Optional[str]: partition = self.find_partition(path) return partition.partuuid if partition else None -- cgit v1.2.3-54-g00ecf