Windows can tell me the logical and physical sector size of the drive responsible for a partition/volume via the fsutil fsinfo sectorinfo x: command (where x is my drive letter). How can I get this information for a drive that doesn't have any drive letters or volumes of any kind?
I am using Windows 8.1 Pro, but I hope an answer would work for at least Windows 7 as well.
Things I know about but that don't help
wmic partition get BlockSize, Nameis wrong because it only gives the logical sector size and also doesn't work if there are no partitions on the drive.wmic diskdrive get BytesPerSector, Nameagain only gives me the logical sector size, but does work on all hard drives. There doesn't appear to be a property ofWin32_DiskDrivethat has the physical size.fsutil fsinfo ntfsinfo \\?\Volume{...}\only works for drives with partitions, and NTFS partitions at that.- The
sectorinfoversion of the above doesn't work at all with that special volume syntax (Error: The system cannot find the path specified.). - System Information (
msinfo32) shows only the logical bytes per sector. - Device Manager does not appear to list anything related to the drive geometry.
I don't want to initialize the drive or create a volume on it because that would blow away the contents that Windows isn't seeing.
I also know about IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, but using that would require writing and compiling a program. Preferably without third-party tools, how can I find the physical sector size of a hard drive in Windows?