Configurar distribuciones de Linux

Subsistema de Windows para Linux (WSL) admite la ejecución de tantas distribuciones de Linux diferentes como quiera instalar. Esto puede incluir elegir distribuciones de la Microsoft Store ,importar una distribución personalizadao crear su propia distribución personalizada.

Formas de ejecutar WSL

Hay varias maneras de ejecutar una distribución de Linux con WSL una vez instalada:

  1. El número uno que se recomienda ejecutar distribuciones de Linux es instalar Terminal Windows. Terminal Windows permite abrir varias pestañas o varios paneles para mostrar y cambiar rápidamente entre varias distribuciones de Linux u otras líneas de comandos (PowerShell, símbolo del sistema, PowerShell, CLI de Azure, etc.). Puede personalizar completamente el terminal con combinaciones de colores únicas, estilos de fuente, tamaños, imágenes de fondo y métodos abreviados de teclado personalizados. Más información.
  2. Para abrir directamente la distribución de Linux, visite el Windows menú Inicio y escriba el nombre de las distribuciones instaladas. Por ejemplo: "Ubuntu". Se abrirá Ubuntu en su propia ventana de consola.
  3. Desde Windows símbolo del sistema o PowerShell, puede escribir el nombre de la distribución instalada. Por ejemplo: ubuntu
  4. Desde Windows símbolo del sistema o PowerShell, puede abrir la distribución predeterminada de Linux dentro de la línea de comandos actual. Para ello, escriba: wsl.exe .
  5. Desde Windows símbolo del sistema o PowerShell, puede usar la distribución predeterminada de Linux dentro de la línea de comandos actual, sin escribir una nueva, si escribe: wsl [command] . Reemplazar por un comando WSL, como: para enumerar las distribuciones instaladas o para ver dónde se monta la ruta de acceso del directorio [command]wsl -l -v actual en wsl pwd wsl. Desde PowerShell, el comando proporcionará la fecha del sistema de archivos Windows y proporcionará la fecha get-date del sistema de archivos de wsl date Linux.

El método que seleccione debe depender de lo que haga. Si ha abierto una línea de comandos de WSL dentro de una ventana Windows Prompt o PowerShell y desea salir, escriba el comando: exit .

Iniciar WSL desde el menú Inicio

Enumeración de las distribuciones instaladas

Para ver una lista de las distribuciones de Linux que ha instalado, escriba: wsl --list o para obtener una lista wsl -l -v detallada. Para establecer una distribución de Linux instalada como el valor predeterminado que se usa con el comando , escriba: o , reemplazando por el nombre de la distribución de Linux que wslwsl -s <DistributionName> le gustaría wsl --setdefault <DistributionName><DistributionName> usar. Por ejemplo, en Powershell, escriba: wsl -s Debian para establecer la distribución predeterminada en Debian. Ahora, wsl npm init al ejecutar desde PowerShell, se ejecutará el comando en npm init Debian.

Anular el registro de una distribución y reinstalarla

Aunque las distribuciones de Linux se pueden instalar a través Microsoft Store, no se pueden desinstalar a través del almacén.

Para anular el registro y desinstalar una distribución de WSL:

wsl --unregister <DistributionName>
Anula el registro de la distribución de WSL para que se pueda volver a instalar o limpiar. Precaución: Una vez anulado el registro, todos los datos, la configuración y el software asociados a esa distribución se perderán permanentemente. Si se vuelve a instalar desde Store, se instalará una copia limpia de la distribución.

Por ejemplo: wsl --unregister Ubuntu quitaría Ubuntu de las distribuciones disponibles en WSL. La wsl --list ejecución revelará que ya no aparece en la lista. Para volver a instalar, busque la distribución en el Microsoft Store seleccione "Iniciar".

Ejecutar como usuario específico

wsl -u <Username>, wsl --user <Username>

Ejecuta WSL como el usuario especificado. Ten en cuenta que el usuario debe existir dentro de la distribución de WSL.

Cambio del usuario predeterminado para una distribución

<DistributionName> config --default-user <Username>

Cambie el usuario predeterminado que para el inicio de sesión de distribución. El usuario tiene que existir ya dentro de la distribución para convertirse en el usuario predeterminado.

Por ejemplo: ubuntu config --default-user johndoe cambiaría el usuario predeterminado de la distribución de Ubuntu al usuario "johndoe".

Nota

Si tiene problemas para averiguar el nombre de la distribución, use el comando wsl -l .

Ejecutar una distribución específica

wsl -d <DistributionName>, wsl --distribution <DistributionName>

Ejecuta una distribución especificada de WSL, se puede usar para enviar comandos a una distribución específica sin tener que cambiar la predeterminada.

Configuración de opciones con .wslconfig y wsl.conf

Puede configurar opciones para las distribuciones de Linux instaladas, como las opciones de montaje automático y la configuración de red, que se aplicarán automáticamente cada vez que inicie WSL de dos maneras:

  • Globalmente para todas las distribuciones instaladas que se ejecutan en modo WSL 2 con un archivo .wslconfig almacenado en el directorio
  • Por distribución con un archivo wsl.conf almacenado en el directorio de la distribución

Para acceder al directorio, en PowerShell, use para acceder al directorio principal (que suele ser el perfil de usuario, ) o puede abrir Windows Explorador de archivos y escribir en la barra %UserProfile%cd ~ de C:\Users\<UserName>%UserProfile% direcciones. La ruta de acceso del directorio para configurar globalmente las opciones de WSL será C:\Users\<UserName>\.wslconfig .

Para acceder al directorio de una distribución instalada, use la línea de comandos de la distribución con para acceder al directorio raíz y, a continuación, para enumerar los archivos o para /etccd /lsexplorer.exe . verlos Windows Explorador de archivos. La ruta de acceso del directorio para configurar opciones de WSL por distribución será /etc/wsl.conf .

WSL detectará la existencia de estos archivos y leerá el contenido. Si falta el archivo o tiene un formato incorrecto (es decir, un formato de marcado incorrecto), WSL se iniciará de manera normal.

Nota

El ajuste de la configuración por distribución con el archivo wsl.conf solo está disponible en Windows compilación 17093 y versiones posteriores.

Opciones de configuración por distribución con wsl.conf

En wsl.conf el archivo de ejemplo siguiente se muestran algunas de las opciones de configuración disponibles para agregar a las distribuciones:

# Enable extra metadata options by default
[automount]
enabled = true
root = /windir/
options = "metadata,umask=22,fmask=11"
mountFsTab = false

# Enable DNS – even though these are turned on by default, we'll specify here just to be explicit.
[network]
generateHosts = true
generateResolvConf = true

Al iniciar varios shells de Linux para la misma distribución, debe esperar hasta que el subsistema de Linux deje de ejecutarse, lo que puede tardar aproximadamente 8 segundos después de cerrar la última instancia del shell de distribución. Si inicia una distribución (es decir, Ubuntu), modifique el archivo wsl.conf, cierre la distribución y vuelva a iniciarla. Puede suponer que los cambios realizados en el archivo wsl.conf han entrado en vigor inmediatamente. Este no es el caso actualmente, ya que el subsistema podría seguir ejecutándose. Debe esperar unos 8 segundos a que el subsistema se detenga antes de volver a iniciarse para dar tiempo suficiente para que se seleccionen los cambios. Puede comprobar si la distribución de Linux (shell) todavía se está ejecutando después de cerrarla mediante PowerShell con el comando : wsl --list --running . Si no hay distribuciones en ejecución, recibirá la respuesta: "No hay distribuciones en ejecución". Ahora puede reiniciar la distribución para ver las actualizaciones de wsl.conf aplicadas.

Sugerencia

wsl --shutdown es una ruta de acceso rápida para reiniciar las distribuciones de WSL 2, pero apagará todas las distribuciones en ejecución, por lo que debe usarse con sensatez.

Opciones para wsl.conf

En concordancia con las convenciones de .ini, las claves se declaran en una sección.

WSL admite cuatro secciones: automount , network , y interopuser .

automount

Sección: [automount]

key value default HDInsight
enabled boolean true true hace que las unidades fijas (es C:/ decir, D:/ o ) se monten automáticamente con DrvFs en /mnt . false significa que las unidades no se montarán automáticamente, pero puede montarlas manualmente o a través de fstab .
mountFsTab boolean true true establece /etc/fstab para que se procese en el inicio de WSL. /etc/fstab es un archivo donde puedes declarar otros sistemas de archivos, como un recurso compartido de SMB. Por lo tanto, puedes montar estos sistemas de archivos automáticamente en WSL en el inicio.
root String /mnt/ Establece el directorio donde se montarán automáticamente las unidades fijas. Por ejemplo, si tienes un directorio en WSL en /windir/ y lo especificas como raíz, esperarías ver que las unidades fijas se monten en /windir/c
opciones lista de valores separados por comas cadena vacía Este valor se anexa a la cadena predeterminada de opciones de montaje de DrvFs. Solo se pueden especificar opciones específicas de DrvFs. No se admiten las opciones que el binario de montaje analizaría normalmente en una marca. Si quieres especificar explícitamente esas opciones, tienes que incluir en /etc/fstab cada unidad para la que quieras hacerlo.

De manera predeterminada, WSL establece uid y gid en el valor del usuario predeterminado (en una distribución de Ubuntu, el usuario predeterminado se crea con uid=1000,gid=1000). Si el usuario especifica una opción gid o uid explícitamente a través de esta clave, se sobrescribirá el valor asociado. De lo contrario, siempre se anexará el valor predeterminado.

Nota: Estas opciones se aplican como opciones de montaje para todas las unidades montadas automáticamente. Para cambiar las opciones solo para una unidad específica, usa /etc/fstab en su lugar.

Opciones de montaje

Establecer diferentes opciones de montaje para las unidades de Windows (DrvFs) puede controlar cómo se calculan los permisos de archivo para los archivos de Windows. Están disponibles las opciones siguientes:

Clave Descripción Valor predeterminado
uid Id. de usuario que se usa para el propietario de todos los archivos Id. de usuario predeterminado de su distribución WSL (en la primera instalación, el valor predeterminado es 1000)
gid Id. de grupo que se usa para el propietario de todos los archivos Id. de grupo predeterminado de su distribución WSL (en la primera instalación, el valor predeterminado es 1000)
umask Máscara octal de permisos que se van a excluir para todos los archivos y directorios 000
fmask Máscara octal de permisos que se van a excluir para todos los archivos 000
dmask Máscara octal de permisos que se van a excluir para todos los directorios 000
metadata Si se agregan metadatos a Windows para admitir permisos del sistema Linux deshabilitado
mayúsculas y minúsculas Determina los directorios tratados como que distinguen mayúsculas de minúsculas y si los nuevos directorios creados con WSL tendrán la marca establecida. Consulte la confidencialidad de mayúsculas y minúsculas para obtener una explicación detallada de las opciones. off

Nota

Las máscaras de permisos se colocan a través de una operación OR lógica antes de aplicarse a archivos o directorios.

red

Etiqueta de la sección: [network]

key value default HDInsight
generateHosts boolean true true establece WSL para generar /etc/hosts. El archivo hosts contiene una asignación estática de direcciones IP correspondientes a nombres de host.
generateResolvConf boolean true true establece WSL para generar /etc/resolv.conf. resolv.conf contiene una lista de DNS que es capaz de resolver un nombre de host determinado en su dirección IP.

interop

Etiqueta de la sección: [interop]

Estas opciones están disponibles en la compilación 17713 de Insider y versiones posteriores.

key value default HDInsight
enabled boolean true La configuración de esta clave determinará si WSL admitirá el inicio de procesos de Windows.
appendWindowsPath boolean true Establecer esta clave determinará si WSL agregará elementos de ruta de acceso de Windows a la variable de entorno $PATH.

usuario

Etiqueta de la sección: [user]

Estas opciones están disponibles en la compilación 18980 y versiones posteriores.

key value default HDInsight
default string El nombre de usuario inicial creado en la primera ejecución Al establecer esta clave se especifica qué usuario se ejecutará como al iniciar por primera vez una sesión de WSL.

Opciones de vista previa del usuario

Estas opciones solo están disponibles en las compilaciones de versión preliminar más recientes si se encuentra en las compilaciones más recientes del programa Windows Insiders.

boot

Etiqueta de la sección: [boot]

key value default HDInsight
command string "" Cadena del comando que le gustaría ejecutar cuando se inicie la instancia de WSL. Este comando se ejecuta como el usuario raíz. E.g: service docker start

Opciones de configuración global con .wslconfig

Puede agregar un archivo denominado al directorio principal Windows (por ejemplo, ) para controlar las opciones globales de WSL en las .wslconfigC:\Users\crloewen\.wslconfig distribuciones de Linux. Consulte el archivo de ejemplo siguiente como ejemplo.

[wsl2]
kernel=C:\\temp\\myCustomKernel
memory=4GB # Limits VM memory in WSL 2 to 4 GB
processors=2 # Makes the WSL 2 VM use two virtual processors

Nota

Opciones de configuración global con en solo disponible para distribuciones que se ejecutan como .wslconfig WSL 2 en Windows compilación 19041 y versiones posteriores. Tenga en cuenta que es posible que tenga que ejecutar para apagar la máquina virtual de WSL 2 y, a continuación, reiniciar la instancia de WSL para que estos cambios wsl --shutdown sumen efecto.

Este archivo puede contener las siguientes opciones:

Opciones para .wslconfig

Etiqueta de la sección: [wsl2]

Esta configuración afecta a la máquina virtual que impulsa cualquier distribución de WSL 2.

key value default HDInsight
kernel string Bandeja de entrada del kernel creado por Microsoft Ruta de acceso Windows a un kernel de Linux personalizado.
memoria size 50 % de la memoria total en Windows o 8 GB, lo que sea menor; en compilaciones anteriores a 20175: el 80 % de la memoria total en Windows Cantidad de memoria que se asignará a la máquina virtual WSL 2.
procesadores number El mismo número de procesadores en Windows Cuántos procesadores se asignarán a la máquina virtual WSL 2.
localhostForwarding boolean true Booleano que especifica si los puertos enlazados a caracteres comodín o localhost de la máquina virtual WSL 2 deben poder conectarse desde el host a través de localhost:port .
kernelCommandLine string En blanco Argumentos adicionales de la línea de comandos del kernel.
swap size El 25 % del tamaño de memoria Windows redondeado hasta el GB más cercano Cantidad de espacio de intercambio que se va a agregar a la máquina virtual WSL 2, 0 para ningún archivo de intercambio.
swapFile string %USERPROFILE%\AppData\Local\Temp\swap.vhdx Ruta de acceso Windows al disco duro virtual de intercambio.

Las entradas con el valor se deben Windows rutas de acceso con barras path diagonales inversas con escape, por ejemplo:C:\\Temp\\myCustomKernel

Las entradas con el size valor deben tener un tamaño seguido de una unidad, por 8GB ejemplo, o 512MB .

Opciones de versión preliminar de configuración de WSL 2

Estas opciones solo están disponibles en las compilaciones de versión preliminar más recientes si se encuentra en las compilaciones más recientes del programa Windows Insiders.

key value default HDInsight
guiApplications boolean true Booleano para activar o desactivar la compatibilidad con aplicaciones gui(WSLg)en WSL.
debugConsole boolean false Booleano para activar una ventana de la consola de salida que muestra el contenido de al principio de una instancia de la distro de dmesg WSL 2.
nestedVirtualization boolean true Booleano para activar o desactivar la virtualización anidada para WSL2.
vmIdleTimeout number 60000 Número de milisegundos que una máquina virtual está inactiva antes de apagarse.