如何获取没有任何可识别卷的驱动器的物理扇区大小?

Ben*_*n N 6 windows hard-drive advanced-format

Windows 可以通过fsutil fsinfo sectorinfo x:命令告诉我负责分区/卷的驱动器的逻辑和物理扇区大小(x我的驱动器号在哪里)。如何获取没有任何驱动器号或任何类型卷的驱动器的此信息?

我使用的是 Windows 8.1 Pro,但我希望答案至少也适用于 Windows 7。

我知道但无济于事的事情

  • wmic partition get BlockSize, Name错误的,因为它只给出逻辑扇区大小,并且如果驱动器上没有分区也不起作用。
  • wmic diskdrive get BytesPerSector, Name再次只给我逻辑扇区大小,但确实适用于所有硬盘驱动器。似乎没有Win32_DiskDrive具有物理尺寸的属性。
  • fsutil fsinfo ntfsinfo \\?\Volume{...}\ 仅适用于带有分区的驱动器,以及 NTFS 分区。
  • sectorinfo上面的版本根本不适用于特殊的卷语法 ( Error: The system cannot find the path specified.)。
  • 系统信息 ( msinfo32) 仅显示每个扇区的逻辑字节数。
  • 设备管理器似乎没有列出与驱动器几何相关的任何内容。

我不想初始化驱动器或在其上创建卷,因为这会破坏 Windows 看不到的内容。

我也知道IOCTL_DISK_GET_DRIVE_GEOMETRY_EX,但使用它需要编写和编译程序。最好没有第三方工具,如何在 Windows 中找到硬盘驱动器的物理扇区大小?

Ben*_*n N 7

在写另一个答案时,我找到了解决方案:PowerShell!该Get-Diskcmdlet 返回有关当前连接的所有驱动器的信息,即使它们尚未分区。要查看已知磁盘的信息,请使用以下命令:

Get-Disk | Format-List
Run Code Online (Sandbox Code Playgroud)

我的一个驱动器(实际上是一个挂载的 VHD 文件,因为我手头没有临时驱动器)显示如下:

UniqueId           : 6002248038B7BF29A1D79765E555C965
Number             : 1
Path               : \\?\scsi#disk&ven_msft&prod_virtual_disk#2&<redacted>
Manufacturer       : Msft
Model              : Virtual Disk
SerialNumber       :
Size               : 100 MB
AllocatedSize      : 0
LogicalSectorSize  : 512
PhysicalSectorSize : 512
NumberOfPartitions : 0
PartitionStyle     : RAW
IsReadOnly         : False
IsSystem           : False
IsBoot             : False
Run Code Online (Sandbox Code Playgroud)

注意它PartitionStyle是如何RAW- 我什至还没有初始化这个磁盘!该PhysicalSectorSize属性是以字节为单位的物理扇区大小。

Get-PhysicalDiskcmdlet将有类似的功能,但返回更多的信息。从 Windows 8 开始支持这两个 cmdlet。