Importación de cualquier distribución de Linux que se va a usar con WSL

Puede utilizar cualquier distribución Linux dentro del Subsistema de Windows para Linux (WSL), aunque no esté disponible en la Microsoft Store, importándola 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.

Obtener 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.

Requisitos previos

Exportación del archivo tar desde un contenedor

  1. Abra la línea de comandos (Bash) para una distribución de Linux que ya haya instalado desde 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 CentOS desde el contenedor de Docker para poder 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, al usar --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 acabamos de importar, primero abra PowerShell y arranque en CentOS mediante 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á "caloewen".

Nota:

Querrá agregar el nombre de usuario al archivo sudoers para que el usuario pueda usar sudo. El comando adduser -G wheel $myUsername añade el usuario myUsername al grupo de ruedas. A los usuarios del grupo de ruedas se les conceden automáticamente privilegios de sudo y se 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 todas las instancias de WSL finalizan. 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 [caloewen@loewen-dev]$ verá como salida en función de este ejemplo.

Example of the code above running in WSL

Para obtener más información sobre cómo configurar las opciones de WSL, consulte Configuración de valores con .wslconfig y wsl.conf.

Compilación de su propia distribución 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 Microsoft Store. Para saber cómo, consulte Creación de una distribución Linux personalizada para WSL.