Это правильный способ импорта экспорта WSL с заменой установки по умолчанию? - PullRequest
0 голосов
/ 04 августа 2020

Я создал дистрибутив Ubuntu 20.04 WSL (версия 1), который я экспортировал в качестве резервной копии. Я внес некоторые изменения в исходный дистрибутив и хочу вернуться к экспорту.

Исходная установка дистрибутива называется: Ubuntu-20.04

wsl --list

Вывод:

Windows Subsystem for Linux Distributions:
Ubuntu-20.04 (Default)

Установочная папка для Ubuntu - это папка по умолчанию из установки:

C:\Users\<my user name>\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_xxxxx

(я изменил имя пользователя и UID)

Я посмотрел импорт и экспорт параметры, и я могу легко импортировать экспортированный файл в новую папку:

wsl --export Ubuntu-20.04 c:\temp\wcc-ubuntu-20-04-wsl.tar
wsl --import Ubuntu-20.04-New c:\wsl\ubuntu-new wcc-ubuntu-20-04-wsl.tar

Это затем появляется в доступном списке:

wsl --list

Вывод:

Windows Subsystem for Linux Distributions:
Ubuntu-20.04 (Default)
Ubuntu-20.04-New

Если я хочу использовать «новый» импорт, мне нужно сначала установить значение по умолчанию, а затем открыть доступ к нему из командной строки:

wsl --setdefault Ubuntu-20.04-New
wsl -d Ubuntu-20.04-New -u myusername

Если я использую значок Ubuntu в меню «Пуск», это кажется чтобы проигнорировать "новое" значение по умолчанию и откроет исходную установку. Не проблема, я всегда могу запустить WSL из командной строки, если это необходимо.

Затем я рассмотрел, как выполнить импорт поверх исходной установки по умолчанию. Мое исследование показало, что вы можете удалить дистрибутив с помощью опции «отменить регистрацию», а затем снова импортировать файл в то же место. Поэтому я выполнил команду отмены регистрации:

wsl --unregister Ubuntu-20.04

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

C:\Users\<my user name>\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_xxxxx\LocalState

Посмотрев на импортированный WSL, он имеет только две папки:

  • rootfs
  • temp

После отмены регистрации папка rootfs полностью удаляется, а темп остается. Чтобы перезаписать место назначения, вам необходимо удалить временную папку. Если вернуться к исходной папке установки, эти две папки находятся во вложенной папке «LocalState». Поэтому я вручную удалил эти две папки.

Затем я смог выполнить импорт в исходную папку. Мне удалось запустить WSL через командную строку, а также через значок ubuntu в меню «Пуск». Единственное, что я заметил, это то, что в командной строке по умолчанию задан пользователь «root».

root@xxxxxxx:~#   

Я могу войти в систему как правильный пользователь с помощью команды switch users «su».

su - myusername
myusername@xxxxxxx:~#

Я не тестировал полностью импортированный WSL, чтобы убедиться, что он делает все, что ему нужно. Не обнаружено никаких ошибок.

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

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

...