Моя проблема в том, что мне приходится переустанавливать или переустанавливать Windows из-за некоторых проблем, но я потратил много времени на настройку WSL для разработки и не хочу его терять.
Есть ли способ резервного копирования всего WSL с его настройками и установленными модулями, плагинами, пользователями и т. Д. И восстановления его после сброса или переустановки Windows? Я много искал эту тему, но не смог найти никакой полезной информации.
Иначе, если нет способа сделать резервную копию, сброс Windows 10 полностью удалит WSL?
%USERPROFILE%/AppData/Local/lxss
. Вы пробовали это?Ответы:
Как сделать резервную копию?
Существует множество способов, но одной из распространенных практик является использование tar для создания архива файлов, которые вы хотите сделать резервную копию (для того, чтобы переустановить все, когда вы воссоздаете свою среду). Написание простого
backup.sh
сценария должно упростить многократное резервное копирование на регулярной основе.Что делать бекап?
Большая часть вашей конфигурации хранится в конфигурационных файлах Linux .___, часто в вашей папке ~ /. Вы также можете сделать резервную копию ваших
/etc/ssh/ssh_config
и других аналогичных файлов конфигурации системы, хотя будьте осторожны со сложными файлами конфигурации, которые содержат специфичные для экземпляра ключи / данные / и т. Д.Вы можете сгенерировать свой список пакетов apt, используя
dpkg-query -f '${binary:Package}\n' -W
файл, который вы также можете сделать резервную копию.Где сделать резервную копию?
Затем вы можете скопировать эти архивы tar в другое место. Мы рекомендуем копировать в доступную для Windows папку (например
/mnt/c/backups
), из которой вы можете скопировать ее в OneDrive, DropBox, внешний жесткий диск, FTP в другое место и т. Д.НТН.
источник
Windows 10 v1903 включает в себя встроенную команду экспорта / импорта WSL . В частности,
wsl --export
который производитtar
иwsl --import
, который импортирует ранее экспортированныйtar
. Затем вы можете переместить этот файл между компьютерами.Вы также можете указать stdin / stdout с помощью
-
, что позволит вам напрямую переносить на другой компьютер и импортировать с использованием удаленной оболочки, напримерssh
.источник
wsl --import
также можно импортироватьtar.gz
файлы. Эти команды запускают%SystemRoot%\System32\lxss\tools\bsdtar
двоичный файл ELF64.wsl --export
может занять больше времени, чем вы ожидаете. На моей машине он сидел примерно 10 минут, записав всего несколько мегабайт, а затем, наконец, записал 3,2 ГБ tar-файл.Для резервного копирования и восстановления полного дистрибутива WSL linux вы можете попытаться (1) создать
.tar.gz
файл с вашей файловой системой и (2) восстановить копию с помощью некоторых инструментов установщика, доступных в Интернете:.tar.gz
файла.rootfs.tar.gz
.Создание резервной копии
На основании отчета о проблеме вы можете создать резервную копию, используя
tar
в WSL. Обратите внимание, что вы должны игнорировать некоторые папки (например, / mnt) в копии.Вы должны создать или переместить позже файл резервной копии в допустимую
/mnt/c
подпапку. В этом примере файлы создаются в/mnt/c/tmp
.Восстановление с помощью lxRunOffline
Используя lxRunOffline , вы можете установить получившийся tar как новый дистрибутив в WSL, используя командную строку Windows.
Для запуска резервного копирования вы можете использовать тот же lxRunOffline
Восстановление с помощью DistroLauncher
Есть много программ запуска для дистрибутивов Linux, основанных на примере Microsoft . Я думаю, что вы можете попробовать версию Yuk7 .
Вы должны скачать дистрибутив и файл
launcher.exe
. Чтобы использовать тот же самый файл дистрибутива, который упоминался выше, вы должны переименовать файл резервной копииrootfs.tar.gz
и лаунчер в нужное имя дистрибутива. Позже вы должны запустить лаунчер от имени администратора (я получил ошибки при запуске его как обычный пользователь)При первом запуске программы запуска она устанавливает и запускает дистрибутив. В следующий раз он запустит дистрибутив Linux.
источник
Хотя ответ Хайме идеален,
/tmp
папка почему-то не воссоздается, когда для установки tar-шара используется launcher.exe (я специально говорю о переносе установки WSL с одной машины на другую).Поэтому нужно создавать
/tmp
и назначать необходимые права.Один подход, который работал для меня:
https://www.cyberciti.biz/faq/mysqld-innodb-error-unable-to-create-temporary-file/
источник