Вы когда-нибудь замечали, что встроенные инструменты Windows иногда выводят противоречивые данные? Например, размер одного и того же диска в PowerShell и через WMIC может отличаться на тысячи секторов. Это не ошибка, а следствие устаревших стандартов и современных технологий хранения данных. Давайте разбираться, как не запутаться в цифрах.
Почему команды дают разные результаты?
Две популярные команды для проверки размера диска – wmic diskdrive list brief
и Get-Disk | Select-Object Number, Size
– используют разные системы расчёта:
WMIC опирается на CHS (Cylinder-Head-Sector) – архаичную схему адресации времён жёстких дисков с механическими головками. Здесь размер вычисляется по формуле:
512 Б/сектор × 63 сектора/дорожку × 255 головок = 8,225,280 Б/цилиндр
Get-Disk в PowerShell показывает реальный размер через LBA, без округлений. Например, для диска 2:
CHS: 61,525,094,400 Б
LBA: 61,530,439,680 Б
Разница в 5,345,280 байт – как раз те самые «лишние» секторы, которые WMIC отбросил.
Кстати, если разделить разницу между значениями на 8,225,280 (размер цилиндра), вы получите остаток от деления – именно его «теряет» CHS-расчёт.
Как выбрать правильный метод?
Для повседневных задач (форматирование, разметка) ориентируйтесь на PowerShell:
1. Откройте PowerShell от имени администратора.
2. Введите:
Get-Disk | Format-Table Number, FriendlyName, Size
Это выведет таблицу с фактическими размерами.
3. Если нужно конвертировать байты в гигабайты, разделите значение на 1,073,741,824 (не на 1,000,000,000 – это частая ошибка!).
Пример: Диск 2: 61,530,439,680 Б ÷ 1,073,741,824 ≈ 57.3 ГБ
А когда WMIC может пригодиться:
- Работа с legacy-системами, где требуется CHS-параметры (напр., некоторые виды виртуализации).
- Анализ старых журналов, где размеры записаны в CHS.
Таблица сравнения: где кроются расхождения
Взгляните на конкретные цифры для диска 2:
Параметр | WMIC (CHS) | PowerShell (LBA) |
Цилиндры | 7,480 | — |
Секторы | 63 | — |
Размер | 61,525,094,400 Б | 61,530,439,680 Б |
Разница в 5.3 МБ кажется незначительной, но если вы создаёте раздел «под завязку», эти мелочи могут привести к ошибкам (например, при клонировании).
Совет: никогда не используйте CHS-значения для расчёта разделов в GPT – современная таблица разделов оперирует LBA-адресами.
Почему Windows до сих пор поддерживает CHS?
Ответ – обратная совместимость. Некоторые программы (особенно низкоуровневые утилиты для восстановления данных) могут запрашивать CHS-параметры через API. Но для пользователя эта информация уже лет 15 как нерелевантна.
Если вы дочитали досюда, возможно, уже поняли главное: доверять нужно PowerShell. Но если вдруг захотите проверить расчёты вручную, вот формула:
CHS Size = LBA Size - (LBA Size mod 8,225,280)
И да, не пугайтесь, если в диспетчере дисков увидите третье значение – там используется двоичная система с округлением (например, 1 ГБ = 1024 МБ). Но это уже совсем другая история…