Fix mixup of mount options and fstype during mount (#1258)

Fixed issue where `options` wasn't passed as `options=options` and got mixed up as fs-type.
This commit is contained in:
Anton Hvornum 2022-05-27 21:37:38 +02:00 committed by GitHub
parent da8043ede9
commit 3c04a6b196
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 4 deletions

View File

@ -89,7 +89,8 @@ class Filesystem:
partition['device_instance'] = self.add_partition(partition.get('type', 'primary'),
start=start,
end=partition.get('size', '100%'),
partition_format=partition.get('filesystem', {}).get('format', 'btrfs'))
partition_format=partition.get('filesystem', {}).get('format', 'btrfs'),
skip_mklabel=layout.get('wipe', False) is not False)
elif (partition_uuid := partition.get('PARTUUID')):
# We try to deal with both UUID and PARTUUID of a partition when it's being re-used.
@ -209,10 +210,10 @@ class Filesystem:
# TODO: Implement this with declarative profiles instead.
raise ValueError("Installation().use_entire_disk() has to be re-worked.")
def add_partition(self, partition_type :str, start :str, end :str, partition_format :Optional[str] = None) -> Partition:
def add_partition(self, partition_type :str, start :str, end :str, partition_format :Optional[str] = None, skip_mklabel :bool = False) -> Partition:
log(f'Adding partition to {self.blockdevice}, {start}->{end}', level=logging.INFO)
if len(self.blockdevice.partitions) == 0:
if len(self.blockdevice.partitions) == 0 and skip_mklabel is False:
# If it's a completely empty drive, and we're about to add partitions to it
# we need to make sure there's a filesystem label.
if self.mode == GPT:

View File

@ -481,6 +481,7 @@ class Partition:
def mount(self, target :str, fs :Optional[str] = None, options :str = '') -> bool:
if not self.mountpoint:
log(f'Mounting {self} to {target}', level=logging.INFO)
if not fs:
if not self.filesystem:
raise DiskError(f'Need to format (or define) the filesystem on {self} before mounting.')

View File

@ -314,7 +314,7 @@ class Installer:
if partition.get('filesystem',{}).get('mount_options',[]):
mount_options = ','.join(partition['filesystem']['mount_options'])
mount_queue[mountpoint] = lambda instance=partition['device_instance'], target=f"{self.target}{mountpoint}", options=mount_options: instance.mount(target, options)
mount_queue[mountpoint] = lambda instance=partition['device_instance'], target=f"{self.target}{mountpoint}", options=mount_options: instance.mount(target, options=options)
else:
mount_queue[mountpoint] = lambda instance=partition['device_instance'], target=f"{self.target}{mountpoint}": instance.mount(target)