Importar cualquier distribución de Linux para usarla con WSL

Puede usar cualquier distribución de Linux dentro de Subsistema de Windows para Linux (WSL), incluso si no está disponible en el Microsoft Store, importing it with a tar file (Importarlo con un archivo tar).

En este artículo se muestra cómo importar la distribución de Linux, CentOS, para su uso con WSL mediante la obtención de su archivo tar mediante un contenedor de Docker. Este proceso se puede aplicar para importar cualquier distribución de Linux.

Obtención de un archivo tar para la distribución

En primer lugar, deberá obtener un archivo tar que contenga todos los archivos binarios de Linux para la distribución.

Puede obtener un archivo tar de varias maneras, dos de las cuales incluyen:

  • Descargue un archivo tar proporcionado. Puede encontrar un ejemplo de Alpine en la sección "Mini root filesystem" del sitio de descargas de Alpine Linux .
  • Busque un contenedor de distribución de Linux y exporte una instancia como un archivo tar. En el ejemplo siguiente se mostrará este proceso mediante el contenedor centOS.

Obtención de un archivo tar para el ejemplo de CentOS

En este ejemplo, usaremos Docker dentro de una distribución de WSL para obtener el archivo tar para CentOS.

Prerrequisitos

Exportación del tar desde un contenedor

  1. Abra la línea de comandos (Bash) para una distribución de Linux que ya haya instalado desde el Microsoft Store (Ubuntu en este ejemplo).

  2. Inicie el servicio Docker:

    sudo service docker start
    
  3. Ejecute el contenedor CentOS dentro de Docker:

    docker run -t centos bash ls /
    
  4. Tome el identificador de contenedor de CentOS mediante grep y awk:

    dockerContainerID=$(docker container ls -a | grep -i centos | awk '{print $1}')
    
  5. Exporte el identificador del contenedor a un archivo tar en la unidad c montada:

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

Example of running the commands above

Este proceso exporta el archivo tar de CentOS desde el contenedor de Docker para que ahora podamos importarlo para usarlo localmente con WSL.

Importación del archivo tar en WSL

Una vez que tenga un archivo tar listo, puede importarlo mediante el comando : wsl --import <Distro> <InstallLocation> <FileName>.

Ejemplo de importación de CentOS

Para importar el archivo tar de distribución de CentOS en WSL:

  1. Abra PowerShell y asegúrese de que tiene una carpeta creada donde desea almacenar la distribución.

    cd C:\temp
    mkdir E:\wslDistroStorage\CentOS
    
  2. Use el comando wsl --import <DistroName> <InstallLocation> <InstallTarFile> para importar el archivo tar.

    wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar
    
  3. Use el comando wsl -l -v para comprobar qué distribuciones ha instalado.

    Example of the above commands running in WSL

  4. Por último, use el comando wsl -d CentOS para ejecutar la distribución de CentOS Linux recién importada.

Agregar componentes específicos de WSL como un usuario predeterminado

De forma predeterminada, cuando se usa --import, siempre se inicia como usuario raíz. Puede configurar su propia cuenta de usuario, pero tenga en cuenta que el proceso de configuración variará ligeramente en función de cada distribución de Linux diferente.

Para configurar la cuenta de usuario con la distribución de CentOS que acaba de importar, primero abra PowerShell y arranque en CentOS con el comando :

wsl -d CentOS

A continuación, abra la línea de comandos de CentOS. Use este comando para instalar las herramientas de configuración de sudo y contraseña en CentOS, crear una cuenta de usuario y establecerla como el usuario predeterminado. En este ejemplo, el nombre de usuario será "caloe smtp".

Nota

Querrá agregar el nombre de usuario al archivo sudoers para que el usuario pueda usar sudo. El comando adduser -G wheel $myUsername agrega el usuario al myUsername grupo de ruedas. A los usuarios del grupo de ruedas se les conceden automáticamente privilegios sudo y pueden realizar tareas que requieren permisos elevados.

yum update -y && yum install passwd sudo -y
myUsername=caloewen
adduser -G wheel $myUsername
echo -e "[user]\ndefault=$myUsername" >> /etc/wsl.conf
passwd $myUsername

Ahora debe salir de esa instancia y asegurarse de que se terminan todas las instancias de WSL. Vuelva a iniciar la distribución para ver el nuevo usuario predeterminado mediante la ejecución de este comando en PowerShell:

wsl --terminate CentOS
wsl -d CentOS

Ahora verá como la [caloewen@loewen-dev]$ salida basada en este ejemplo.

Example of the code above running in WSL

Para más información sobre la configuración de WSL, consulte Configuración de opciones con .wslconfig y wsl.conf.

Uso de una distribución personalizada de Linux

Puedes crear tu propia distribución personalizada de Linux, empaquetada como una aplicación para UWP, que se comportará exactamente igual que las distribuciones de WSL disponibles en el Microsoft Store. Para obtener información sobre cómo hacerlo, consulte Creación de una distribución personalizada de Linux para WSL.