summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--curtin/block/__init__.py21
1 files changed, 14 insertions, 7 deletions
diff --git a/curtin/block/__init__.py b/curtin/block/__init__.py
index 921e1929..0de202ab 100644
--- a/curtin/block/__init__.py
+++ b/curtin/block/__init__.py
@@ -1000,21 +1000,28 @@ def sysfs_partition_data(blockdev=None, sysfs_path=None):
sysfs_prefix = sys_block_path(parent)
partnum = int(partnum)
+ keys = {'partition', 'start', 'size'}
ptdata = []
for part_sysfs in get_sysfs_partitions(sysfs_prefix):
data = {}
- for sfile in ('partition', 'start', 'size'):
+ for sfile in keys:
dfile = os.path.join(part_sysfs, sfile)
if not os.path.isfile(dfile):
continue
data[sfile] = int(util.load_file(dfile))
if partnum is None or data['partition'] == partnum:
- ptdata.append((
- path_to_kname(part_sysfs),
- data['partition'],
- data['start'] * SECTOR_SIZE_BYTES,
- data['size'] * SECTOR_SIZE_BYTES,
- ))
+ if data.keys() == keys:
+ ptdata.append((
+ path_to_kname(part_sysfs),
+ data['partition'],
+ data['start'] * SECTOR_SIZE_BYTES,
+ data['size'] * SECTOR_SIZE_BYTES,
+ ))
+ else:
+ LOG.debug(
+ "sysfs_partition_data: "
+ f"skipping {part_sysfs} - incomplete sysfs read"
+ )
return ptdata