Импорт любого дистрибутива Linux для использования с WSL

Вы можете использовать любой дистрибутив Linux внутри подсистема Windows для Linux (WSL), даже если он недоступен в Microsoft Store, импортируя его с помощью tar-файла.

В этой статье показано, как импортировать дистрибутив Linux CentOS для использования с WSL, получив его tar-файл с помощью контейнера Docker. Этот процесс можно применить к импорту любого дистрибутива Linux.

Получение tar-файла для распространения

Сначала необходимо получить tar-файл, содержащий все двоичные файлы Linux для дистрибутива.

Вы можете получить tar-файл различными способами, в том числе двумя из следующих способов:

Получение tar-файла для примера CentOS

В этом примере мы будем использовать Docker внутри дистрибутива WSL для получения tar-файла для CentOS.

Необходимые компоненты

Экспорт tar из контейнера

  1. Откройте командную строку (Bash) для дистрибутива Linux, который вы уже установили из Microsoft Store (Ubuntu в этом примере).

  2. Запустите службу Docker:

    sudo service docker start
    
  3. Запустите контейнер CentOS в Docker:

    docker run -t centos bash ls /
    
  4. Захват идентификатора контейнера CentOS с помощью grep и awk:

    dockerContainerID=$(docker container ls -a | grep -i centos | awk '{print $1}')
    
  5. Экспортируйте идентификатор контейнера в tar-файл на подключенном c-диске:

    docker export $dockerContainerID > /mnt/c/temp/centos.tar
    

Example of running the commands above

Этот процесс экспортирует tar-файл CentOS из контейнера Docker, чтобы теперь можно было импортировать его для локального использования с WSL.

Импорт tar-файла в WSL

После готовности к tar-файлу его можно импортировать с помощью команды: wsl --import <Distro> <InstallLocation> <FileName>

Пример импорта CentOS

Чтобы импортировать tar-файл распространения CentOS в WSL, выполните следующие действия.

  1. Откройте PowerShell и убедитесь, что у вас есть папка, в которой вы хотите сохранить дистрибутив.

    cd C:\temp
    mkdir E:\wslDistroStorage\CentOS
    
  2. Используйте команду wsl --import <DistroName> <InstallLocation> <InstallTarFile> для импорта tar-файла.

    wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar
    
  3. Используйте команду wsl -l -v для проверка установленных дистрибутивов.

    Example of the above commands running in WSL

  4. Наконец, используйте команду 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]$ выходные данные на основе этого примера.

Example of the code above running in WSL

Дополнительные сведения о настройке параметров WSL см. в разделе "Настройка параметров с помощью Wslconfig и wsl.conf".

Использование настраиваемого дистрибутива Linux

Вы можете создать собственный настраиваемый дистрибутив Linux, упакованный как приложение UWP, которое будет вести себя точно так же, как дистрибутивы WSL, доступные в Microsoft Store. Дополнительные сведения см. в статье "Создание настраиваемого дистрибутива Linux для WSL".