Physical Sector Size(たとえば、レガシーではなく4,096バイトセクターの Advanced Format ドライブがある場合) Windows 7で512バイトセクター?
ファイルをクリックしてプロパティを取得すると、NTFSCluster Sizeを見つけることができますが、ハードドライブのセクターとは異なりますサイズ。
注:Windows 7(およびWindows Vista SP1)は4096のAdvanced Formatハードドライブの存在を理解しているため、Windows 7について質問します。
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
クリス・ゲスラーの答えを拡張したかったのですが、Windows Management Instrumentation(WMI)を使用してドライブのPhysicalセクターを取得する方法は知られていないことに注意してください、例えばwmic
。
私がAdvanced Formatドライブを持っているとすると(つまり、512ではなくセクターあたり4,096バイトを使用します):
C:\Windows\system32>fsutil fsinfo ntfsinfo d:
NTFS Volume Serial Number : 0xa016d8a616d87eaa
Version : 3.1
Number Sectors : 0x00000000747057ff
Total Clusters : 0x000000000e8e0aff
Free Clusters : 0x000000000e7b2813
Total Reserved : 0x0000000000000000
Bytes Per Sector : 512
Bytes Per Physical Sector : 4096
どちらのWMIのDiskDrive
:
wmic:root\cli>diskdrive
Availability BytesPerSector Capabilities CapabilityDescriptions Caption
512 {3, 4, 10} {"Random Access", "Supports Writing", "SMART Notification"} ST1000DM003-9YN162 ATA Device
またPartition
:
wmic:root\cli>partition get BlockSize, StartingOffset, Name, Index
BlockSize Index Name StartingOffset
512 0 Disk #0, Partition #0 1048576
基礎となる物理セクターサイズを報告できます。 Windowsがsingであるセクターサイズを両方とも報告していることに気付いた場合、それは理にかなっています。 It isセクターあたり512バイト-ドライブはたまたま内部で異なっています。
これは、Windows 8のみが4kセクターのseをサポートしているためです。 Windows 7は、ドライブが4kである可能性があることを理解し、その4kを調整するように動作しますClusters基になるハードドライブの4k- セクター.
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
プログラムで使用する場合は、IOCTL_DISK_GET_DRIVE_GEOMETRY_EX
を送信し、Geometry.BytesPerSector
構造体からDISK_GEOMETRY_EX
を使用する必要があります。
コマンドラインから wmic を使用できます。
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
は、ドライブのセクターサイズです。
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_STORAGE_QUERY_PROPERTY
にSTORAGE_PROPERTY_QUERY
を提供し、PropertyId
をStorageAccessAlignmentProperty
に設定して送信する必要があります。これにより、物理セクターサイズと論理セクターサイズの両方が得られます。
注:これはWindows Vista以降でのみ機能します。