4

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?

1 ответ1

5

При написании этого другого ответа я нашел решение: PowerShell! Командлет Get-Disk возвращает информацию обо всех подключенных дисках, даже если они еще не разбиты на разделы. Чтобы увидеть информацию об известных дисках, используйте эту команду:

Get-Disk | Format-List

Один из моих дисков (на самом деле это смонтированный 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

Обратите внимание, что PartitionStyle RAW - я даже еще не инициализировал этот диск! Свойство PhysicalSectorSize - это размер физического сектора в байтах.

Командлет Get-PhysicalDisk делает нечто похожее, но возвращает гораздо больше информации. Оба командлета поддерживаются начиная с Windows 8.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .