Импорт любого дистрибутива 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.

Предварительные требования

Экспорт 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

Этот процесс экспортирует файл CentOS tar из контейнера 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 и Password в CentOS, создать учетную запись пользователя и задать ее в качестве пользователя по умолчанию. В этом примере имя пользователя будет иметь значение "калоевен".

Примечание

Необходимо добавить имя пользователя в файл sudo, чтобы пользователи могли использовать sudo. Команда adduser -G wheel $myUsername добавляет пользователя myUsername в группу wheel. Пользователям в группе с колесиком автоматически предоставляются права 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 см. в разделе Настройка параметров с помощью. вслконфиг и WSL. conf.

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

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