Fix `mountpoint` for pre-mounted disk configuration (#2113)
* Fix `mountpoint` for pre-mounted disk configuration * Add missing commas
This commit is contained in:
parent
c427391543
commit
717a22371f
|
|
@ -594,7 +594,9 @@ class DeviceHandler(object):
|
|||
if is_subpath(mountpoint, base_mountpoint):
|
||||
path = Path(part_info.disk.device.path)
|
||||
part_mods.setdefault(path, [])
|
||||
part_mods[path].append(PartitionModification.from_existing_partition(part_info))
|
||||
part_mod = PartitionModification.from_existing_partition(part_info)
|
||||
part_mod.mountpoint = mountpoint.root / mountpoint.relative_to(base_mountpoint)
|
||||
part_mods[path].append(part_mod)
|
||||
break
|
||||
|
||||
device_mods: List[DeviceModification] = []
|
||||
|
|
|
|||
|
|
@ -42,12 +42,6 @@ class DiskLayoutType(Enum):
|
|||
class DiskLayoutConfiguration:
|
||||
config_type: DiskLayoutType
|
||||
device_modifications: List[DeviceModification] = field(default_factory=list)
|
||||
# used for pre-mounted config
|
||||
relative_mountpoint: Optional[Path] = None
|
||||
|
||||
def __post_init__(self):
|
||||
if self.config_type == DiskLayoutType.Pre_mount and self.relative_mountpoint is None:
|
||||
raise ValueError('Must set a relative mountpoint when layout type is pre-mount"')
|
||||
|
||||
def json(self) -> Dict[str, Any]:
|
||||
return {
|
||||
|
|
@ -487,10 +481,8 @@ class SubvolumeModification:
|
|||
|
||||
raise ValueError('Mountpoint is not specified')
|
||||
|
||||
def is_root(self, relative_mountpoint: Optional[Path] = None) -> bool:
|
||||
def is_root(self) -> bool:
|
||||
if self.mountpoint:
|
||||
if relative_mountpoint is not None:
|
||||
return self.mountpoint.relative_to(relative_mountpoint) == Path('.')
|
||||
return self.mountpoint == Path('/')
|
||||
return False
|
||||
|
||||
|
|
@ -742,14 +734,12 @@ class PartitionModification:
|
|||
"""
|
||||
return any(set(self.flags) & set(self._boot_indicator_flags))
|
||||
|
||||
def is_root(self, relative_mountpoint: Optional[Path] = None) -> bool:
|
||||
if relative_mountpoint is not None and self.mountpoint is not None:
|
||||
return self.mountpoint.relative_to(relative_mountpoint) == Path('.')
|
||||
elif self.mountpoint is not None:
|
||||
def is_root(self) -> bool:
|
||||
if self.mountpoint is not None:
|
||||
return Path('/') == self.mountpoint
|
||||
else:
|
||||
for subvol in self.btrfs_subvols:
|
||||
if subvol.is_root(relative_mountpoint):
|
||||
if subvol.is_root():
|
||||
return True
|
||||
|
||||
return False
|
||||
|
|
@ -861,8 +851,8 @@ class DeviceModification:
|
|||
filtered = filter(lambda x: x.is_boot() and x.mountpoint, self.partitions)
|
||||
return next(filtered, None)
|
||||
|
||||
def get_root_partition(self, relative_path: Optional[Path]) -> Optional[PartitionModification]:
|
||||
filtered = filter(lambda x: x.is_root(relative_path), self.partitions)
|
||||
def get_root_partition(self) -> Optional[PartitionModification]:
|
||||
filtered = filter(lambda x: x.is_root(), self.partitions)
|
||||
return next(filtered, None)
|
||||
|
||||
def json(self) -> Dict[str, Any]:
|
||||
|
|
|
|||
|
|
@ -716,7 +716,7 @@ class Installer:
|
|||
|
||||
def _get_root_partition(self) -> Optional[disk.PartitionModification]:
|
||||
for mod in self._disk_config.device_modifications:
|
||||
if root := mod.get_root_partition(self._disk_config.relative_mountpoint):
|
||||
if root := mod.get_root_partition():
|
||||
return root
|
||||
return None
|
||||
|
||||
|
|
@ -903,8 +903,8 @@ class Installer:
|
|||
|
||||
add_options = [
|
||||
'--target=x86_64-efi',
|
||||
f'--efi-directory={efi_partition.mountpoint}'
|
||||
f'--boot-directory={boot_partition.mountpoint if boot_partition else "/boot"}'
|
||||
f'--efi-directory={efi_partition.mountpoint}',
|
||||
f'--boot-directory={boot_partition.mountpoint if boot_partition else "/boot"}',
|
||||
'--bootloader-id=GRUB',
|
||||
'--removable'
|
||||
]
|
||||
|
|
|
|||
|
|
@ -139,7 +139,6 @@ def select_disk_config(
|
|||
|
||||
return disk.DiskLayoutConfiguration(
|
||||
config_type=disk.DiskLayoutType.Pre_mount,
|
||||
relative_mountpoint=path,
|
||||
device_modifications=mods
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -9,5 +9,4 @@ mods = disk.device_handler.detect_pre_mounted_mods(root_mount_dir)
|
|||
disk_config = disk.DiskLayoutConfiguration(
|
||||
disk.DiskLayoutType.Pre_mount,
|
||||
device_modifications=mods,
|
||||
relative_mountpoint=Path('/mnt/archinstall')
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in New Issue