Ошибка при попытке создать WSL2 из файла резервной копии ext4.vhdx

Вопрос или проблема

Я попробовал шаги, описанные здесь для использования файла ext4.vhdx для создания нового экземпляра WSL2, но столкнулся с проблемой.

Указанный ответ:

  • Установите WSL, как обычно. Убедитесь, что вы выполнили шаг wsl --set-default-version 2.
  • Установите ту же самую дистрибуцию из Microsoft Store, которая была у вас на предыдущем компьютере.
  • Запустите ее в первый раз, создав то же самое имя пользователя, что и на предыдущем компьютере.
  • Выйдите из WSL
  • Выполните wsl --shutdown из PowerShell или CMD
  • Скопируйте старый ext4.vhdx поверх недавно созданного. Я предполагаю, что вы знаете местоположение, так как сделали резервную копию на старом компьютере, но это будет в %userprofile%\AppData\Local\Packages\<distribution_package>\LocalState. Если вы не найдете ext4.vhdx и вместо этого обнаружите папку rootfs, значит дистрибуция была создана как WSL1.

Итак, вот что я попробовал, с одним исключением, и я получил следующую ошибку:

Виртуальная машина или контейнер были принудительно завершены.

Мое исключение в том, что предыдущая установленная версия была Ubuntu 22.04.1.6.0, а моя новая версия – 22.04.1.7.0

Есть ли способ получить 22.04.1.6.0? Или другой способ исправить мою конкретную ошибку?

Старый компьютер был перезаписан новым, так что выполнение wsl --export не является опцией.

Виртуальная машина или контейнер были принудительно завершены.

Хм. Из этого обсуждения на Github похоже, что много чего может вызвать это.

Одним из предположений является этот комментарий:

Тогда я выполняю wsl --shutdown, и если я не подождал достаточно долго, мне говорят, что программа используется другим процессом. Если я попробовал снова через минуту или около того, команда выполняется. После этого, если я пытаюсь снова запустить wsl, возникает та же ошибка:

Вы пробовали снова с более длительным ожиданием после wsl --shutdown?

Также есть этот комментарий:

Я запустил ярлык bash on Ubuntu, и все еще была некоторая настройка, которую нужно было завершить.

Убедитесь, что имя пользователя и пароль установлены полностью. Я думаю, это не проблема, но она попадает в область, которая может быть затронута следованием моим первоначальным инструкциям.


Может быть полезно попробовать новый метод, который я опубликовал сегодня. Он значительно упрощает, и обновление вашей WSL, вероятно, не повредит шансам на исправление подлежащего также.

.

Ответ или решение

Вопрос о проблеме с созданием экземпляра WSL2 из резервной копии файла ext4.vhdx охватывает ряд технических аспектов, связанных с работой Windows Subsystem for Linux и процессом восстановления данных. Рассмотрим теоретическую основу, возможные примеры и способы применения для решения данной задачи.

Теория

Windows Subsystem for Linux (WSL) – это компонент Windows, который позволяет запускать дистрибуции Linux непосредственно в среде Windows. Версия WSL2, в отличие от WSL1, использует полную виртуализацию ядра Linux на основе виртуальной машины Hyper-V, что позволяет значительно повысить производительность и расширить функциональные возможности.

Файл ext4.vhdx – это виртуальный жёсткий диск, который используется для хранения файловой системы дистрибуции Linux в WSL2. При восстановлении данной файловой системы из резервной копии может возникать ряд сложностей, обусловленных несовпадением версий, процессами, занимающими файл, или некорректным завершением службы WSL.

Пример

Автор вопроса столкнулся с ошибкой "The virtual machine or container was forcefully exited" при попытке восстановить экземпляр WSL2 из резервной копии, используя файл ext4.vhdx. Основная загвоздка заключается в том, что на старой машине была установлена версия Ubuntu 22.04.1.6.0, в то время как на новой – 22.04.1.7.0.

Этот конфликт версий может вызывать ошибки при запуске, поскольку между версиями дистрибуции могут быть разницы в конфигурации системных файлов или приложений. К тому же, если не подождать достаточное время после выполнения команды wsl --shutdown, операционная система все еще может рассматривать виртуальный диск как занятой другим процессом, что затрудняет его замену.

Применение

  1. Сопоставление версий: Постарайтесь установить ту же версию дистрибуции, что использовалась ранее, т.е. 22.04.1.6.0, если это возможно. Иногда более старые версии все еще можно найти на сторонних репозиториях или через архивы Ubuntu.

  2. Тайминг и ресурсы: Убедитесь, что после выполнения wsl --shutdown прошло достаточное время, чтобы все связанные с WSL процессы завершили свою работу. Подождите не менее одной минуты, прежде чем пытаться заменить файл ext4.vhdx.

  3. Полное завершение и запуск сервиса: Проверьте, что перед заменой файла были завершены все операции настройки пользователя. Это можно сделать, запустив и корректно завершив первый запуск дистрибуции, чтобы убедиться в создании всех необходимых конфигураций.

  4. Обновление метода: Рассмотрите возможность использования нового упрощенного метода, предложенного в ответе на SuperUser. Поскольку Microsoft постоянно обновляет WSL, переход на более новую или исправленную версию может решить многие проблемы автоматически.

  5. Проверка процесса и журналов: Дальнейший анализ можно провести, просматривая журналы событий Windows и логи WSL, чтобы выявить более конкретные причины сбоя. Операции могут генерировать детализированные сообщения об ошибках, которые укажут на точные ошибки конфигурации или несовместимости.

  6. Сообщество и поддержка: Посмотрите, испытывают ли другие пользователи аналогичные проблемы в сообществах, таких как GitHub или Stack Overflow. Иногда пользовательские патчи или временные решения могут быть опубликованы опытными пользователями.

Подводя итоги, решение проблемы с заменой файла ext4.vhdx в WSL2 требует комплексного подхода с вниманием к деталям каждого шага в процессе установки и настройки дистрибуции Linux. Воспользуйтесь вышеприведёнными рекомендациями, и это может помочь решить возникшую ошибку.

Оцените материал
Добавить комментарий

Капча загружается...