We found an error in the partition calculation of DASD devices. This only applies to DASDs with CMS, LNX (old linux disk layout) and unpartitioned devices. In these cases the partition created by kpartx is smaller than the partion that would be accessible through the kernel partition device. If 512B blocksize was used when formatting the DASD the calculations are ok. The partitions are also ok if the default (Compatible Disk Layout) was used. BIG WARNING: The following fix will correct this (and it should be done so kernel and kpartx partitions are the same). However, if someone has already used the disk layouts mentioned above and wrote data to the partitions created by kpartx this will lead to trouble! The data won't be found at the new start of the partition. But a manually created linear target might be used to access the data and move it somewhere else. echo "0 <size> <device> <offset>" | dmsetup create <name> <device> = /dev/dasd[a-z][a-z]* <f> = 8 (for 4K blocksize), 4 (2K BS), 2 (1K BS) <size> = $(blockdev --getsize <device>) - (3 * f) - (3 * f * f) <offset> = 3 * f * f To check if someone is affected by the bug the output of "kpartx -l <device>" can be compared against the start and size attribute in /sys/block/<devicename>/<devicename>1. (e.g. "kpartx -l /dev/dasdb" <--> cat /sys/block/dasdb/dasdb1/...) Stefan Bader
Attachment:
mptools-kpartx-dasd.patch
Description: Binary data
-- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel