Импорт любого дистрибутива Linux для использования с WSL
Вы можете использовать любой дистрибутив Linux внутри подсистема Windows для Linux (WSL), даже если он недоступен в Microsoft Store, импортируя его с помощью tar-файла.
В этой статье показано, как импортировать дистрибутив Linux CentOS для использования с WSL, получив его tar-файл с помощью контейнера Docker. Этот процесс можно применить к импорту любого дистрибутива Linux.
Получение tar-файла для распространения
Сначала необходимо получить tar-файл, содержащий все двоичные файлы Linux для дистрибутива.
Вы можете получить tar-файл различными способами, в том числе двумя из следующих способов:
- Скачайте предоставленный tar-файл. Пример для Alpine можно найти в разделе "Мини-корневая файловая система" сайта загрузки Alpine Linux.
- Найдите контейнер дистрибутива Linux и экспортируйте экземпляр в виде tar-файла. В приведенном ниже примере показан этот процесс с помощью контейнера CentOS.
Получение tar-файла для примера CentOS
В этом примере мы будем использовать Docker внутри дистрибутива WSL для получения tar-файла для CentOS.
Необходимые компоненты
- Необходимо включить WSL с дистрибутивом Linux под управлением WSL 2.
- Необходимо установить Docker Desktop для Windows с включенным подсистемой WSL 2 и проверить интеграцию с соглашением о лицензировании Docker Desktop для обновлений условий использования.
Экспорт tar из контейнера
Откройте командную строку (Bash) для дистрибутива Linux, который вы уже установили из Microsoft Store (Ubuntu в этом примере).
Убедитесь, что у вас запущен рабочий стол Docker (или если в дистрибутиве WSL установлен Docker, запустите службу с
sudo service docker start
)Запустите контейнер CentOS в Docker:
docker run -t --name wsl_export centos ls /
Экспортируйте идентификатор контейнера в tar-файл на подключенном c-диске:
docker export wsl_export > /mnt/c/temp/centos.tar
Очистка контейнера
docker rm wsl_export
Этот процесс экспортирует tar-файл CentOS из контейнера Docker, чтобы теперь можно было импортировать его для локального использования с WSL.
Импорт tar-файла в WSL
После готовности к tar-файлу его можно импортировать с помощью команды: wsl --import <Distro> <InstallLocation> <FileName>
Пример импорта CentOS
Чтобы импортировать tar-файл распространения CentOS в WSL, выполните следующие действия.
Откройте PowerShell и убедитесь, что у вас есть папка, в которой вы хотите сохранить дистрибутив.
cd C:\temp mkdir E:\wslDistroStorage\CentOS
Используйте команду
wsl --import <DistroName> <InstallLocation> <InstallTarFile>
для импорта tar-файла.wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar
Используйте команду
wsl -l -v
, чтобы проверить, какие дистрибутивы установлены.Наконец, используйте команду
wsl -d CentOS
для запуска недавно импортированного дистрибутива CentOS Linux.
Добавление определенных компонентов WSL, таких как пользователь по умолчанию
По умолчанию при использовании --import всегда запускается в качестве корневого пользователя. Вы можете настроить собственную учетную запись пользователя, но обратите внимание, что процесс настройки будет немного отличаться в зависимости от каждого разного дистрибутива Linux.
Чтобы настроить учетную запись пользователя с дистрибутивом CentOS, который мы только что импортировали, сначала откройте PowerShell и загрузите в CentOS, используя команду:
wsl -d CentOS
Затем откройте командную строку CentOS. Используйте эту команду, чтобы установить средства настройки sudo и пароля в CentOS, создать учетную запись пользователя и задать ее в качестве пользователя по умолчанию. В этом примере имя пользователя будет "caloewen".
Примечание.
Необходимо добавить имя пользователя в файл sudoers, чтобы пользователь мог использовать sudo. adduser -G wheel $myUsername
Команда добавляет пользователя myUsername
в группу колес. Пользователи в группе колес автоматически предоставляют права sudo и могут выполнять задачи, требующие повышенных разрешений.
yum update -y && yum install passwd sudo -y
myUsername=caloewen
adduser -G wheel $myUsername
echo -e "[user]\ndefault=$myUsername" >> /etc/wsl.conf
passwd $myUsername
Теперь необходимо выйти из этого экземпляра и убедиться, что все экземпляры WSL завершаются. Запустите дистрибутив еще раз, чтобы увидеть нового пользователя по умолчанию, выполнив следующую команду в PowerShell:
wsl --terminate CentOS
wsl -d CentOS
Теперь вы увидите [caloewen@loewen-dev]$
выходные данные на основе этого примера.
Дополнительные сведения о настройке параметров WSL см. в разделе "Настройка параметров с помощью Wslconfig и wsl.conf".
Использование настраиваемого дистрибутива Linux
Вы можете создать собственный настраиваемый дистрибутив Linux, упакованный как приложение UWP, которое будет вести себя точно так же, как дистрибутивы WSL, доступные в Microsoft Store. Дополнительные сведения см. в статье "Создание настраиваемого дистрибутива Linux для WSL".
Windows Subsystem for Linux