web-dev-qa-db-ja.com

ボリュームが認識されていないドライブの物理セクターサイズを取得するにはどうすればよいですか?

Windowsは、fsutil fsinfo sectorinfo x:コマンド(xは私のドライブ文字)を介して、パーティション/ボリュームを担当するドライブの論理および物理セクターサイズを教えてくれます。どのような種類のドライブ文字またはボリュームも持たないドライブのこの情報を取得するにはどうすればよいですか?

私はWindows 8.1 Proを使用していますが、少なくともWindows 7でも回答が機能することを願っています。

私が知っていることは助けにはならない

  • wmic partition get BlockSize, Namewrongです。これは、論理セクターサイズのみを示し、ドライブにパーティションがない場合は機能しないためです。
  • 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のハードドライブの物理セクターサイズを確認するにはどうすればよいですか?

6
Ben N

この他の答え を書いているときに、私は解決策を見つけました:PowerShell! Get-Disk コマンドレットは、まだパーティション化されていない場合でも、現在接続されているすべてのドライブに関する情報を返します。既知のディスクの情報を表示するには、次のコマンドを使用します。

Get-Disk | Format-List

私のドライブの1つ(スクラッチドライブがないため、実際にはマウントされた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

PartitionStyleRAWであることに注意してください-このディスクはまだ初期化されていません! PhysicalSectorSizeプロパティは、バイト単位の物理セクターサイズです。

Get-PhysicalDisk コマンドレットは同様のことを行いますが、より多くの情報を返します。両方のコマンドレットは、Windows8以降でサポートされています。

7
Ben N