Вопрос или проблема
Я выполнил эту команду PS, чтобы получить точный размер диска, но размер, возвращенный одной командой, составляет на10440 секторов
меньше, чем другой (512B размер сектора
). Кому из них доверять? Почему возникает разница?
$ wmic diskdrive list brief
Caption DeviceID Model Partitions Size
KINGSTON SNV2S1000G \\.\PHYSICALDRIVE0 KINGSTON SNV2S1000G 3 1000202273280
USB SanDisk 3.2Gen1 USB Device \\.\PHYSICALDRIVE2 USB SanDisk 3.2Gen1 USB Device 1 61525094400
HP P900 1TB SCSI Disk Device \\.\PHYSICALDRIVE3 HP P900 1TB SCSI Disk Device 2 1024203640320
ACASIS EC-5351C SCSI Disk Device \\.\PHYSICALDRIVE1 ACASIS EC-5351C SCSI Disk Device 1 4000784417280
$ Get-Disk | Select-Object Number, Size
Number Size
------ ----
3 1024209543168
1 4000787030016
0 1000204886016
2 61530439680
Вы видите, что первая команда дала мне размер 61525094400
, но вторая дала 61530439680
Следующая команда сообщает фактический размер в байтах.
Get-Disk | Select-Object Number, Size
Следующая команда сообщает размер CHS в байтах.
wmic diskdrive list brief
Два размера связаны следующим образом.
a = 512 байт/сектор * 63 сектора/головка * 255 головок/цилиндр = 8,225,280 байт/цилиндр
S = Фактический размер в байтах
C = a * Округлить(S / a) = Размер CHS в байтах
Для всех практических целей цилиндры, головки и сектора не имеют значения по отношению к современным HDD и SSD. Поэтому размер CHS также не имеет значения.
Таблица ниже показывает преобразование от адресации логических блоков (LBA), которая использует фактический размер, и адресации цилиндр-главка-сектор (CHS), которая использует размер CHS.
Диск | Цилиндры | Головки | Секторы | Размер CHS в байтах | Фактический размер в байтах |
---|---|---|---|---|---|
0 | 121,601 | 255 | 63 | 1,000,202,273,280 | 1,000,204,886,016 |
1 | 486,401 | 255 | 63 | 4,000,784,417,280 | 4,000,787,030,016 |
2 | 7,480 | 255 | 63 | 61,525,094,400 | 61,530,439,680 |
3 | 124,519 | 255 | 63 | 1,024,203,640,320 | 1,024,209,543,168 |
Ответ или решение
Чтобы получить точный размер диска в байтах в Windows, необходимо понимать разницу между двумя методами измерения, которые вы упомянули: команда wmic diskdrive list brief
и команда PowerShell Get-Disk | Select-Object Number, Size
. Оба подхода предоставляют информацию о размере диска, но с использованием разных методов и понятий.
Теория
Команда wmic diskdrive list brief
использует старый метод адресации дискового пространства, называемый CHS (цилиндр-головка-сектор), что имеет свои корни в ранних этапах разработки жестких дисков. Этот метод не учитывает современные технологии, такие как LBA (логическая блоковая адресация), которые более эффективно используют пространство современного оборудования, включая SSD и современные HDD. CHS предоставляет "геометрическое" представление данных диска, и его расчёты могут давать значения, которые не учитывают все ресурсы, предоставляемые диском.
С другой стороны, команда PowerShell Get-Disk | Select-Object Number, Size
использует LBA для определения размера диска. LBA — более современный метод, который применяет единообразное логическое нумерование блоков, что позволяет максимально точно определить доступное пространство в байтах. Это обеспечивает фактическое отображение размеров, так как весь объём диска рассматривается как последовательность логически нумерованных блоков фиксированного размера.
Пример
В вашем случае был представлен пример, где команда wmic diskdrive list brief
указывает размер диска USB как 61525094400
байтов, в то время как команда PowerShell показывает 61530439680
байтов. Разница связана со 10440 секторами и 512 байтами на сектор, что показывает, что LBA-метод на самом деле измеряет полный объём, доступный для использования, в то время как метод CHS может игнорировать определенные сегменты памяти, либо представляет их менее точно.
Применение
Для большинства современных пользователей и системных администраторов важно использовать команду PowerShell для получения истинного размера диска в байтах, так как это позволяет более точно управлять ресурсами системы и планировать её использование. LBA подходит для всех современных дисковых систем, так как учитывает все области диска, не игнорирует пространство и обеспечивает более надежный доступ. Во всём мире этот метод становится стандартом для измерения ёмкости, так как предлагает гораздо более точное и вышеуказанное представление данных, доступных на носителе.
Таким образом, когда вы сталкиваетесь с различиями в показателях между этими двумя командами, стоит доверять той информации, которая предоставлена командой PowerShell Get-Disk
, поскольку она даёт более точную картину с учётом всех доступных секторов и фактического размера носителя. Это становится особенно критичным при установке программного обеспечения, которое требует определённых объёмов памяти, или при распределении дискового пространства, чтобы использовать каждую единицу доступного хранилища максимально эффективно.
С точки зрения бизнеса, правильное измерение и понимание доступного дискового пространства напрямую связано с эффективностью эксплуатации IT-инфраструктуры и управления затратами на оборудование. В эпоху, когда данные становятся основным активом, такие точные измерения важны для принятия оперативных и тактических решений относительно масштабирования, модернизации оборудования и оптимизации использования существующих ресурсов.
Такое понимание гарантирует, что ваша компания сможет точно планировать затраты на IT, оптимизировать доступное пространство для хранения, снизить риски связанных с потерей данных и предложить надежные решения для защиты и управления данными.