[parted-devel] [RESEND] Wrong logical sector size/geometry of DASD disks
Petr Uzel
petr.uzel at suse.cz
Thu May 29 10:25:40 UTC 2014
[Resending, adding Nageswara/IBM to CC]
Hello,
on IBM System z, parted reports confusing disk geometry and logical
sector size for ECKD DASD disks.
linux:~ # lsdasd | grep dasdb
0.0.0150 active dasdb 94:4 ECKD 4096 7043MB 1803060
linux:~ # fdasd -p /dev/dasdb
reading volume label ..: VOL1
reading vtoc ..........: ok
Disk /dev/dasdb:
cylinders ............: 10017
tracks per cylinder ..: 15
blocks per track .....: 12
bytes per block ......: 4096
volume label .........: VOL1
volume serial ........: 0X0150
max partitions .......: 3
[...]
linux:~ # parted -s /dev/dasdb unit cyl print
Model: IBM S390 DASD drive (dasd)
Disk /dev/dasdb: 80135cyl
Sector size (logical/physical): 512B/4096B
BIOS cylinder,head,sector geometry: 80136,15,12. Each cylinder is 92.2kB.
Partition Table: dasd
Disk Flags:
[...]
Notice that parted reports the disk to have 512B logical block size, which
is however not correct (compare to fdasd output or /sys/block/dasdb/queue/logical_block_size).
This also means that the cylinder size reported by parted (80136) is incorrect:
8-times bigger than reality.
In _device_set_sector_size() I see that this 'faking' of logical
sector size on DASD disks is intentional and that internally, parted knows
the correct logical sector size and does the right thing.
784 #if defined __s390__ || defined __s390x__
785 /* Return PED_SECTOR_SIZE_DEFAULT for DASDs. */
786 if (dev->type == PED_DEVICE_DASD) {
787 arch_specific->real_sector_size = dev->sector_size;
788 dev->sector_size = PED_SECTOR_SIZE_DEFAULT;
789 }
790 #endif
But I fail to understand why/if it is needed and whether it could be
changed to make parted consistent with other tools/kernel.
Thanks,
Petr
--
Petr Uzel
TL SUSE L3 Team 2
More information about the parted-devel
mailing list