«Дефрагментация OK» и «неперемещаемые файлы» — это про разное. Дефраг никогда не трогает по-настоящему неперемещаемые файлы (pagefile, hiberfil, VSS-снимки, дамп памяти, метаданные NTFS вроде $MFT). Поэтому статус может быть «ОК», а один такой файл сидит ближе к концу тома и упирает `SizeMin` в большое значение. При 40 ГБ занятого из 200 ГБ вам мешает именно расположение такого файла, а не объём данных.
Разберём по порядку.
## 1. Убрать «активные» неперемещаемые файлы
Это решает большинство случаев. Всё с правами администратора:
```powershell
powercfg /h off # hiberfil.sys
```
Файл подкачки — временно в «Нет» (Свойства системы → Дополнительно → Быстродействие → Дополнительно → Виртуальная память → снять автовыбор, поставить «Без файла подкачки»).
Дамп памяти — тоже в «нет» и удалить готовый:
```powershell
# Параметры системы → Загрузка и восстановление → Запись отладочной информации → (нет)
Remove-Item C:\Windows\MEMORY.DMP -Force -ErrorAction SilentlyContinue
Remove-Item C:\Windows\Minidump\* -Force -ErrorAction SilentlyContinue
```
Теневые копии / точки восстановления:
```powershell
vssadmin delete shadows /all
Disable-ComputerRestore "C:\"
```
**Перезагрузка обязательна** — пока эти файлы «живые», они не исчезнут. После ребута проверьте предел заново:
```powershell
Get-PartitionSupportedSize -DriveLetter C
```
Если `SizeMin` упал до вменяемого — сразу ужимайте, потом вернёте pagefile/дамп на место.
## 2. Найти конкретного виновника, если всё ещё упирается
Самый надёжный способ узнать, какой именно файл мешает: попробовать сжать через `diskmgmt.msc` (правой кнопкой по тому → «Сжать»). После того как он ужмётся меньше ожидаемого, в журнале **Просмотр событий → Журналы Windows → Приложение** обычно появляется запись от источника `defrag`, где указан LCN последнего неперемещаемого файла. По LCN можно вычислить файл через `fsutil`.
Проще — визуально: поставить бесплатный **Defraggler** (Piriform) — он рисует карту тома и подсвечивает неперемещаемые кластеры, сразу видно, что и где. Либо `contig -a <файл>` из Sysinternals для проверки подозреваемых.
Типичные «сидельцы» в конце тома на Server: остаточный VSS-store (если `vssadmin delete shadows` не всё убрал — проверьте `vssadmin list shadowstorage`), файл подкачки, который не отключился, и Recovery/WinRE-раздел (но это уже отдельный раздел, а не файл внутри C:).
## 3. Если мешают метаданные NTFS ($MFT и подобные)
Их встроенный shrink Windows двигать не умеет — принципиально. Тогда два пути:
**Оффлайн через менеджер разделов.** Загрузиться с WinPE-флешки и утилитой, которая умеет перемещать системные структуры NTFS — AOMEI Partition Assistant, MiniTool Partition Wizard или Paragon. Они делают «resize with move» и сдвигают $MFT к началу. Windows своими средствами так не может.
**Клонирование на меньший диск (самый безопасный).** Добавить в VM второй диск нужного размера, склонировать раздел (Clonezilla или тот же менеджер), сделать загрузочным, старый удалить. Дольше, но без риска задеть метаданные и GPT.
---
Начните с пункта 1 и перезагрузки — в 9 случаях из 10 после отключения pagefile + hiberfil + дампа + VSS предел уходит вниз. Скиньте вывод `Get-PartitionSupportedSize -DriveLetter C` до и после — по разнице сразу будет видно, помогло или там реально засел $MFT, и тогда пойдём в оффлайн.