From 486ad7dd6d195dd435c5da58d241e14742f60485 Mon Sep 17 00:00:00 2001 From: Anton Hvornum Date: Sat, 28 May 2022 15:40:36 +0200 Subject: Removes btrfs subvolume warnings on incorrect subvolume locations (#1267) * Adding debug information * Adding debug information * Adding debug information * Removed a 'already-a-subvolume' check as it requires more information. * Adding debug information * Adding debug information * Made sure Partition().subvolumes() only attempts to retrieve btrfs subvolume information if fstype==btrfs. * Removed debug information --- archinstall/lib/disk/btrfs/btrfspartition.py | 8 ++++++-- archinstall/lib/disk/partition.py | 10 ++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) (limited to 'archinstall/lib/disk') diff --git a/archinstall/lib/disk/btrfs/btrfspartition.py b/archinstall/lib/disk/btrfs/btrfspartition.py index 5020133d..299357b8 100644 --- a/archinstall/lib/disk/btrfs/btrfspartition.py +++ b/archinstall/lib/disk/btrfs/btrfspartition.py @@ -108,9 +108,13 @@ class BTRFSPartition(Partition): if glob.glob(str(subvolume / '*')): raise DiskError(f"Cannot create subvolume at {subvolume} because it contains data (non-empty folder target is not supported by BTRFS)") - elif subvolinfo := subvolume_info_from_path(subvolume): - raise DiskError(f"Destination {subvolume} is already a subvolume: {subvolinfo}") + # Ideally we would like to check if the destination is already a subvolume. + # But then we would need the mount-point at this stage as well. + # So we'll comment out this check: + # elif subvolinfo := subvolume_info_from_path(subvolume): + # raise DiskError(f"Destination {subvolume} is already a subvolume: {subvolinfo}") + # And deal with it here: SysCommand(f"btrfs subvolume create {subvolume}") return subvolume_info_from_path(subvolume) \ No newline at end of file diff --git a/archinstall/lib/disk/partition.py b/archinstall/lib/disk/partition.py index 73c88597..151775b1 100644 --- a/archinstall/lib/disk/partition.py +++ b/archinstall/lib/disk/partition.py @@ -310,8 +310,9 @@ class Partition: def iterate_children_recursively(information): for child in information.get('children', []): if target := child.get('target'): - if subvolume := subvolume_info_from_path(pathlib.Path(target)): - yield subvolume + if child.get('fstype') == 'btrfs': + if subvolume := subvolume_info_from_path(pathlib.Path(target)): + yield subvolume if child.get('children'): for subchild in iterate_children_recursively(child): @@ -320,8 +321,9 @@ class Partition: for mountpoint in self.mount_information: if result := findmnt(pathlib.Path(mountpoint['target'])): for filesystem in result.get('filesystems', []): - if subvolume := subvolume_info_from_path(pathlib.Path(mountpoint['target'])): - yield subvolume + if mountpoint.get('fstype') == 'btrfs': + if subvolume := subvolume_info_from_path(pathlib.Path(mountpoint['target'])): + yield subvolume for child in iterate_children_recursively(filesystem): yield child -- cgit v1.2.3-70-g09d2