Ошибки и коды · Инструкция
WSL: Virtual hard disk must be uncompressed and unencrypted
WSL Virtual hard disk must be uncompressed and unencrypted and must not be sparse означает конфликт атрибутов VHDX на стороне Windows.
Короткий ответ
Ошибка означает, что VHDX дистрибутива имеет несовместимый файловый атрибут: Windows видит его как сжатый, зашифрованный или sparse в сценарии, где это не допускается. Снимите эти атрибуты с файла/папки дистрибутива вместо переустановки Linux.
Почему WSL отказывается открывать VHDX
Microsoft описывает эту ошибку при операциях WSL 2 с виртуальным диском. Она часто появляется после включения NTFS Compression/Encryption на папке LocalState или после изменения атрибутов VHDX сторонним инструментом. Это проблема контейнера виртуального диска на Windows-стороне, а не ext4 внутри Linux. Поэтому `fsck` в дистрибутиве и изменение chmod не исправляют системный запрет открытия VHD.
Совет: Перед изменением атрибутов обязательно выполните `wsl --shutdown`, чтобы виртуальный диск не оставался открытым WSL.
Где проверить Compression и Encryption
- Выполните `wsl --shutdown`, чтобы VHDX не был открыт работающей WSL VM.
- Найдите `ext4.vhdx` конкретного дистрибутива по его install location; не редактируйте случайный VHDX другого окружения.
- В свойствах файла/папки Windows снимите NTFS Compress и Encrypt, если они включены, и дождитесь применения ко всем нужным объектам.
- Если файл помечен sparse сторонним инструментом/экспериментальной настройкой и операция WSL требует обычный VHD, верните поддерживаемый атрибут по документации вашей версии.
- Запустите WSL снова и повторите исходную команду; если ошибка остаётся, сохраните точный текст и атрибуты файла перед дальнейшими изменениями.
Предупреждение: `ext4.vhdx` содержит файловую систему дистрибутива: удаление или случайная замена этого файла означает риск потери Linux-данных.
Как работать с sparse-атрибутом осторожно
- Не удаляйте `ext4.vhdx` ради исправления атрибутов — это основной виртуальный диск дистрибутива и потеря файла означает потерю данных.
- Не применяйте массовое снятие шифрования ко всему профилю Windows без необходимости; исправляйте конкретную папку/диск WSL.
- Экспериментальный `sparseVhd` в новых WSL — отдельная функция; учитывайте версию и операцию, при которой возникла ошибка.
- Перед рискованными действиями с VHDX сделайте экспорт/резервную копию, если дистрибутив ещё запускается или файл можно безопасно скопировать.
Важно: Не применяйте инструкции для случайного пути `LocalState` к импортированному дистрибутиву — сначала найдите фактический install location.
Почему chmod и fsck здесь не помогают
После исправления проверьте не только запуск, но и исходную операцию — например, `wsl --set-version`, импорт или обновление. Если ошибка возвращается, выясните, какой процесс снова включает compression/encryption/sparse на папке. Это может быть политика экономии места или сторонний optimizer, который продолжит ломать WSL после ручного исправления.
Что сделать перед изменением файла диска
После снятия несовместимых атрибутов запустите тот же сценарий, который выдавал ошибку: обычный старт, импорт или `--set-version`. Если проблема возвращается после перезагрузки, ищите Windows-политику, Storage-компрессию или сторонний optimizer, который снова меняет атрибуты папки — ручное исправление тогда будет временным.
Как найти процесс, который возвращает атрибут
Не путайте этот старый diagnostic message с настройкой `sparseVhd` для новых виртуальных дисков в современных WSL: контекст операции имеет значение. Если ошибка появляется в нестандартной миграции/импорте, сохраните точную команду, версию WSL и расположение VHDX, прежде чем менять дополнительные атрибуты.
Не исправляйте VHDX во время работы дистрибутива
Перед изменением атрибутов файла завершите WSL через `wsl --shutdown`, чтобы виртуальный диск не был открыт. Затем снимайте NTFS‑сжатие, шифрование или sparse‑атрибут только у нужного VHDX/каталога по официальной процедуре. Копия важного VHDX перед низкоуровневыми операциями даёт путь назад, если файл уже повреждён.
Что учитывать
Microsoft описывает эту ошибку при операциях WSL 2 с виртуальным диском. Она часто появляется после включения NTFS Compression/Encryption на папке LocalState или после изменения атрибутов VHDX сторонним инструментом. Это проблема контейнера виртуального диска на Windows-стороне, а не ext4 внутри Linux. Поэтому `fsck` в дистрибутиве и изменение chmod не исправляют системный запрет открытия VHD.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. Troubleshooting Windows Subsystem for Linux). Пример и формулировки — редакция N1RO на 2026-09-23.