From 6515d0779a41c1ea902ada86e4e911821cded92e Mon Sep 17 00:00:00 2001 From: Vladimir Slavik Date: Thu, 3 Sep 2020 19:27:28 +0200 Subject: [PATCH] Check if original partitions are mounted, too Resolves: rhbz#1751698 --- pyanaconda/modules/storage/checker/utils.py | 30 +++++++++++++++------ 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/pyanaconda/modules/storage/checker/utils.py b/pyanaconda/modules/storage/checker/utils.py index ff3ee3a6b..c40aa1dc3 100644 --- a/pyanaconda/modules/storage/checker/utils.py +++ b/pyanaconda/modules/storage/checker/utils.py @@ -417,11 +417,15 @@ def verify_luks2_memory_requirements(storage, constraints, report_error, report_ def verify_mounted_partitions(storage, constraints, report_error, report_warning): """ Check the selected disks to make sure all their partitions are unmounted. + Check both the currently known and original partitions. + :param storage: a storage to check :param constraints: a dictionary of constraints :param report_error: a function for error reporting :param report_warning: a function for warning reporting """ + partitions_to_check = {} + for disk in storage.disks: if disk.protected: continue @@ -430,14 +434,24 @@ def verify_mounted_partitions(storage, constraints, report_error, report_warning continue for part in disk.format.partitions: - part_dev = storage.devicetree.get_device_by_path(part.path) - if part_dev and part_dev.protected: - log.debug("Not checking protected %s for being mounted, assuming live " - "image mount", part.path) - continue - if part.busy: - report_error(_("%s is currently mounted and cannot be used for the " - "installation. Please unmount it and retry.") % part.path) + if part.path not in partitions_to_check: + partitions_to_check[part.path] = part + + if hasattr(disk.original_format, "partitions"): + for part in disk.original_format.partitions: + if part.path not in partitions_to_check: + partitions_to_check[part.path] = part + + for path, part in partitions_to_check.items(): + part_dev = storage.devicetree.get_device_by_path(path) + if part_dev and part_dev.protected: + log.debug("Not checking protected %s for being mounted, assuming live " + "image mount", path) + return + + if part.busy: + report_error(_("%s is currently mounted and cannot be used for the " + "installation. Please unmount it and retry.") % path) def verify_lvm_destruction(storage, constraints, report_error, report_warning): -- 2.23.0