Windows 7 如何确定windows中的扇区大小?

Windows 7 如何确定windows中的扇区大小?,windows-7,hard-drive,sector,Windows 7,Hard Drive,Sector,如何确定Windows 7中的物理扇区大小(例如,如果我的驱动器具有4096字节扇区而不是传统的512字节扇区) 我知道,通过单击文件并获取属性,我们可以找到NTFS群集的大小,但这与硬盘驱动器的扇区大小不同 注意:我们询问Windows 7是因为它(和Windows Vista SP1)了解4096个高级格式硬盘驱动器的存在。您需要fsutil。确保以管理员身份运行命令提示符 C:\Windows\system32>fsutil fsinfo ntfsinfo c: NTFS Volum

如何确定Windows 7中的物理扇区大小(例如,如果我的驱动器具有4096字节扇区而不是传统的512字节扇区)

我知道,通过单击文件并获取属性,我们可以找到NTFS群集的大小,但这与硬盘驱动器的扇区大小不同


注意:我们询问Windows 7是因为它(和Windows Vista SP1)了解4096个高级格式硬盘驱动器的存在。

您需要fsutil。确保以管理员身份运行命令提示符

C:\Windows\system32>fsutil fsinfo ntfsinfo c:
NTFS Volume Serial Number :       0xf4ca5d7cca5d3c54
Version :                         3.1
Number Sectors :                  0x00000000378fd7ff
Total Clusters :                  0x0000000006f1faff
Free Clusters  :                  0x00000000000e8821
Total Reserved :                  0x0000000000000910
Bytes Per Sector  :               512
Bytes Per Physical Sector :       512
Bytes Per Cluster :               4096
Bytes Per FileRecord Segment    : 1024
Clusters Per FileRecord Segment : 0
Mft Valid Data Length :           0x00000000196c0000
Mft Start Lcn  :                  0x00000000000c0000
Mft2 Start Lcn :                  0x000000000097ffff
Mft Zone Start :                  0x000000000051f920
Mft Zone End   :                  0x000000000051f9a0
RM Identifier:        0652C3D3-7AA9-11DA-ACAC-C80AA9F2FF32
您可以从命令行使用:

C:\Windows\System32\wmic partition get BlockSize, StartingOffset, Name, Index

BlockSize  Index  Name                   StartingOffset
512        0      Disk #0, Partition #0  32256
512        1      Disk #0, Partition #1  370195176960

BlockSize
是驱动器的扇区大小。

我想进一步介绍Chris Gessler的答案,并注意到没有已知的方法可以使用Windows Management Instrumentation(WMI)获取驱动器的物理扇区,例如
wmic

考虑到我有一个高级格式驱动器(即每个扇区使用4096字节,而不是512字节):

WMI的
磁盘驱动器

wmic:root\cli>diskdrive
Availability  BytesPerSector  Capabilities  CapabilityDescriptions                                       Caption
              512             {3, 4, 10}    {"Random Access", "Supports Writing", "SMART Notification"}  ST1000DM003-9YN162 ATA Device

nor
分区

wmic:root\cli>partition get BlockSize, StartingOffset, Name, Index
BlockSize  Index  Name                   StartingOffset
512        0      Disk #0, Partition #0  1048576
可以报告基础物理扇区大小。当您意识到它们都使用报告Windows的扇区大小时,这是有意义的。它是每个扇区512字节-驱动器内部恰好不同

这是因为只有Windows8支持使用4k扇区。Windows 7了解驱动器可能是4k的,并将其4k群集与硬盘驱动器的底层4k扇区对齐

更新
wmic diskdrive
now是否在
每个扇区的字节数中显示每个扇区的物理字节数

C:\Windows\system32>wmic
wmic:root\cli>diskdrive
Availability  BytesPerSector  Capabilities  CapabilityDescriptions                                       
              4096            {3, 4}        {"Random Access", "Supports Writing"}                        
wmic分区
仍然是错误的


Windows 10.0.19041.804

如果您想以编程方式使用它,您需要发送
IOCTL\u DISK\u GET\u DRIVE\u GEOMETRY\u EX
并使用
GEOMETRY.bytesperctor
from
DISK\u GEOMETRY\u EX
结构

  • 在命令行中运行msinfo 32,该命令行将弹出一个名为 “系统信息”
  • 在左窗格中选择“系统摘要->组件->存储->磁盘”。这将在右窗格中加载所有驱动器的信息
  • 找到所需的驱动器并检查“字节/扇区”的值。应该是“字节/扇区4096”
  • Windows 10更新:

    现在有一个
    sectorInfo
    子命令,可以提供更好的信息:

    C:\>fsutil fsinfo sectorInfo C:
    
    LogicalBytesPerSector :                                 512
    PhysicalBytesPerSectorForAtomicity :                    4096
    PhysicalBytesPerSectorForPerformance :                  4096
    FileSystemEffectivePhysicalBytesPerSectorForAtomicity : 4096
    Device Alignment :                                      Aligned (0x000)
    Partition alignment on device :                         Aligned (0x000)
    Performs Normal Seeks
    Trim Not Supported
    

    Powershell:

    $wql = "SELECT Label, Blocksize, Name FROM Win32_Volume WHERE FileSystem='NTFS'"
    Get-WmiObject -Query $wql -ComputerName '.' | Select-Object Label, Blocksize, Name
    
    输出示例:

    Label            Blocksize Name
    -----            --------- ----
    OSDisk                4096 C:\
    Windows RE Tools      4096 \\?\Volume{b042c778-cd66-4381-9312-3f4311321675}\
    PS C:\>
    

    如果您确实希望以编程方式使用它,则需要发送
    IOCTL\u STORAGE\u QUERY\u PROPERTY
    提供
    STORAGE\u PROPERTY\u QUERY
    ,并将
    PropertyId
    设置为
    StorageAccessAlignmentProperty
    。这提供了物理和逻辑扇区大小


    注意:这仅适用于Windows Vista及更高版本。

    BlockSize
    是逻辑扇区大小,而不是
    fsutil fsinfo ntfssinfo c:
    报告的物理大小。来源:我有一个4096 AF驱动器,fsutil报告为4096,
    BlockSize
    报告为512。其次,这只报告逻辑扇区大小
    fsutil
    报告正确。当每个物理扇区的属性字节数为:这意味着512@user2601995你有来源吗?什么是“文件记录段”?是文件元数据的额外存储吗?它只报告逻辑扇区大小。通过将
    IOCTL\u STORAGE\u QUERY\u属性传递到
    DeviceIoControl
    来获取
    STORAGE\u ACCESS\u ALIGNMENT\u DESCRIPTOR
    结构,将获得逻辑和物理扇区大小。唯一的缺点是它不适用于外部硬盘驱动器-
    DeviceIoControl
    返回
    ERROR\u INVALID\u函数
    (至少,我还没有找到一种方法使其适用于外部硬盘)。适用于2012 R2在Windows 7 Ultimate上不可用。请解释一下。。。msinfo32报告全部为512,这报告全部为4096,我知道我两者都有,因为我无法设置镜像,但我不知道哪个磁盘是哪个。。。此外,这只显示驱动器号,而不显示磁盘。我将为Windows 10更新此文件,因为这是我搜索中出现的第一篇文章:使用Powershell,“获取磁盘|格式列表”(但是,它不会显示我的所有磁盘…)更好地更新Windows 10,“获取物理磁盘|选择物理扇区大小,friendlyname”。正确显示我的所有物理磁盘及其扇区大小。此答案已严重过时。这些实用程序现在显示逻辑(模拟的,几乎总是512)和物理(真实的,几乎总是4096)扇区大小。请看其他答案。
    Label            Blocksize Name
    -----            --------- ----
    OSDisk                4096 C:\
    Windows RE Tools      4096 \\?\Volume{b042c778-cd66-4381-9312-3f4311321675}\
    PS C:\>