Configuration des paramètres avancés dans WSL
Les fichiers wsl.conf et .wslconfig sont utilisés pour configurer les options de paramètres avancés, par distribution (
wsl.conf) et globalement pour toutes les distributions WSL 2 (
.wslconfig). Ce guide couvre chacune des options de paramètres, le moment d'utiliser chaque type de fichier, l'emplacement où stocker le fichier, les exemples de fichiers de paramètres et les conseils.
Quelle est la différence entre wsl.conf et .wslconfig ?
Vous pouvez configurer les paramètres de vos distributions Linux installées qui seront automatiquement appliquées chaque fois que vous lancez WSL de deux manières, à l'aide de :
- .wslconfig pour configurer les paramètres globalement sur toutes les distributions installées s'exécutant sur WSL 2.
- wsl.conf pour configurer les paramètres par distribution pour les distributions Linux s'exécutant sur WSL 1 ou WSL 2.
Les deux types de fichiers sont utilisés pour configurer les paramètres WSL, mais l'emplacement où le fichier est stocké, l'étendue de la configuration et la version de WSL exécutant votre distribution ont tous un impact sur le type de fichier à choisir.
La version de WSL que vous exécutez aura un impact sur les paramètres de configuration. WSL 2 s'exécute comme une machine virtuelle légère. Par conséquent, utilise des paramètres de virtualisation qui vous permettent de contrôler la quantité de mémoire ou de processeurs utilisés (ce qui peut être familier si vous utilisez Hyper-V ou VirtualBox).
wsl.conf
- Stocké dans le
/etcrépertoire de la distribution sous la forme d'un fichier unix.
- Utilisé pour configurer les paramètres par distribution. Les paramètres configurés dans ce fichier ne sont appliqués qu'à la distribution Linux spécifique qui contient le répertoire dans lequel ce fichier est stocké.
- Peut être utilisé pour les distributions exécutées par une version, WSL 1 ou WSL 2.
- Pour accéder au
/etcrépertoire d'une distribution installée, utilisez la ligne de commande de la distribution avec
cd /pour accéder au répertoire racine, puis
lspour répertorier les fichiers ou
explorer.exe .pour afficher dans Windows Explorateur de fichiers. Le chemin d'accès au répertoire doit ressembler à :
/etc/wsl.conf.
.wslconfig
- Stocké dans votre
%UserProfile%répertoire.
- Permet de configurer les paramètres globalement sur toutes les distributions Linux installées s'exécutant en tant que version WSL 2.
- Peut être utilisé uniquement pour les distributions exécutées par WSL 2. Les distributions exécutées en tant que WSL 1 ne seront pas affectées par cette configuration, car elles ne s'exécutent pas en tant que machine virtuelle.
- Pour accéder à votre
%UserProfile%répertoire, dans PowerShell, utilisez
cd ~pour accéder à votre répertoire de base (qui est généralement votre profil utilisateur),
C:\Users\<UserName>ou vous pouvez ouvrir Windows Explorateur de fichiers et entrer
%UserProfile%dans la barre d'adresses. Le chemin d'accès au répertoire doit ressembler à :
C:\Users\<UserName>\.wslconfig.
WSL détecte l'existence de ces fichiers, lit le contenu et applique automatiquement les paramètres de configuration chaque fois que vous lancez WSL. Si le fichier est manquant ou mal formé (mise en forme incorrecte du balisage), WSL continue de se lancer comme d'habitude sans que les paramètres de configuration ne s'appliquent.
Vérifiez la version de WSL que vous exécutez.
Notes
L'ajustement des paramètres par distribution avec le fichier wsl.conf est disponible uniquement dans Windows Build 17093 et versions ultérieures.
Règle des 8 secondes
Vous devez attendre que le sous-système exécutant votre distribution Linux cesse complètement de s'exécuter et redémarre pour que les mises à jour des paramètres de configuration apparaissent. Cela prend généralement environ 8 secondes après la fermeture de TOUTES les instances de l'interpréteur de commandes de distribution.
Si vous lancez une distribution (par exemple. Ubuntu), modifiez le fichier de configuration, fermez la distribution, puis relancez-le. Vous pouvez supposer que vos modifications de configuration sont immédiatement entrées en vigueur. Ce n'est pas le cas actuellement, car le sous-système est toujours en cours d'exécution. Vous devez attendre que le sous-système s'arrête avant de redémarrer afin de laisser suffisamment de temps pour que vos modifications soient récupérées. Vous pouvez vérifier si votre distribution Linux (shell) est toujours en cours d'exécution après sa fermeture à l'aide de PowerShell avec la commande :
wsl --list --running. Si aucune distribution n'est en cours d'exécution, vous recevez la réponse : « Il n'y a aucune distribution en cours d'exécution ». Vous pouvez maintenant redémarrer la distribution pour voir vos mises à jour de configuration appliquées.
La commande
wsl --shutdown est un chemin d'accès rapide au redémarrage des distributions WSL 2, mais elle arrêtera toutes les distributions en cours d'exécution, donc utilisez judicieusement.
Paramètres de configuration pour wsl.conf
Le fichier wsl.conf configure les paramètres par distribution. (Pour la configuration globale des distributions WSL 2, consultez .wslconfig).
Le fichier wsl.conf prend en charge quatre sections :
automount,
network,
interopet
user. (Modélisées après .ini conventions de fichier, les clés sont déclarées sous une section, comme les fichiers .gitconfig.) Pour plus d'informations sur l'emplacement de stockage du fichier wsl.conf, consultez wsl.conf .
prise en charge systemd
De nombreuses distributions Linux exécutent « systemd » par défaut (y compris Ubuntu) et WSL a récemment ajouté la prise en charge de ce gestionnaire de système/service afin que WSL soit encore plus similaire à l'utilisation de vos distributions Linux préférées sur une machine nue. Vous aurez besoin de la version 0.67.6+ de WSL pour activer systemd. Vérifiez votre version WSL avec la commande
wsl --version. Si vous avez besoin de mettre à jour, vous pouvez récupérer la dernière version de WSL dans le Microsoft Store. Pour en savoir plus, consultez annonce de blog.
Pour activer systemd, ouvrez votre
wsl.conf fichier dans un éditeur de texte à l'aide
sudo des autorisations d'administrateur
/etc/wsl.confet ajoutez ces lignes au :
[boot] systemd=true
Vous devrez ensuite fermer votre distribution WSL à l'aide
wsl.exe --shutdown de PowerShell pour redémarrer vos instances WSL. Une fois votre distribution redémarrée, systemd doit être en cours d'exécution. Vous pouvez confirmer à l'aide de la commande :
systemctl list-unit-files --type=service, qui affiche l'état de vos services.
Paramètres de montage automatique
Étiquette de section :
[automount]
|key||value||default||HDInsight|
|enabled||boolean||true||


|mountFsTab||boolean||true||


|root||string||
||Définit le répertoire dans lequel les lecteurs fixes sont montés automatiquement. Par défaut, la valeur est définie sur


|options||Liste de valeurs séparées par des virgules, telles que uid, gid, etc. Consultez les options de montage automatique ci-dessous||chaîne vide||Les valeurs d'option de montage automatique sont répertoriées ci-dessous et sont ajoutées à la chaîne d'options de montage DrvFs par défaut. Seules les options propres à DrvFs peuvent être spécifiées.|
Les options de montage automatique sont appliquées en tant qu'options de montage pour tous les lecteurs montés automatiquement. Pour modifier les options d'un lecteur spécifique uniquement, utilisez le fichier à la
/etc/fstab place. Les options que le fichier binaire de montage analyse normalement dans un indicateur ne sont pas prises en charge. Si vous souhaitez spécifier explicitement ces options, vous devez inclure chaque lecteur pour lequel vous souhaitez le faire dans
/etc/fstab.
Options de montage automatique
La définition des différentes options de montage pour les lecteurs Windows (DrvFs) peut contrôler la façon dont les autorisations de fichier sont calculées pour les fichiers Windows. Les options suivantes sont disponibles :
|Clé||Description||Default|
|uid||identifiant utilisateur utilisé pour le propriétaire de tous les fichiers||ID d'utilisateur par défaut de votre distribution WSL (à la première installation, la valeur par défaut est 1000)|
|gid||identifiant de groupe utilisé pour le propriétaire de tous les fichiers||ID de groupe par défaut de votre distribution WSL (à la première installation, la valeur par défaut est 1000)|
|umask||masque octal des autorisations à exclure pour tous les fichiers et répertoires||000|
|fmask||masque octal des autorisations à exclure pour tous les fichiers||000|
|dmask||masque octal des autorisations à exclure pour tous les répertoires||000|
|metadata||Si des métadonnées sont ajoutées aux fichiers Windows pour prendre en charge les autorisations système Linux||disabled|
|casse||Détermine les répertoires traités comme respectant la casse et détermine si les nouveaux répertoires créés avec WSL auront l'indicateur défini. Consultez Respect de la casse pour obtenir une explication détaillée des options. Les options incluent


Par défaut, WSL définit l'uid et le gid sur la valeur de l'utilisateur par défaut. Par exemple, dans Ubuntu, l'utilisateur par défaut est uid=1000, gid=1000. Si cette valeur est utilisée pour spécifier une autre option gid ou uid, la valeur utilisateur par défaut est remplacée. Dans le cas contraire, la valeur par défaut est toujours ajoutée.
Le masque de mode de création de fichiers utilisateur (umask) définit l'autorisation pour les fichiers nouvellement créés. La valeur par défaut est 022. Vous seul pouvez écrire des données, mais n'importe qui peut lire des données. Les valeurs peuvent être modifiées pour refléter différents paramètres d'autorisation. Par exemple,
umask=077 modifie l'autorisation pour qu'elle soit entièrement privée, aucun autre utilisateur ne peut lire ou écrire des données. Pour spécifier davantage l'autorisation, fmask (fichiers) et dmask (répertoires) peuvent également être utilisés.
Notes
Les masques d'autorisation passent par une opération OR logique avant d'être appliqués aux fichiers et aux répertoires.
Qu'est-ce que DrvFs ?
DrvFs est un plug-in de système de fichiers pour WSL qui a été conçu pour prendre en charge l'interopérabilité entre WSL et le système de fichiers Windows. DrvFs permet à WSL de monter des lecteurs avec des systèmes de fichiers pris en charge sous /mnt, tels que /mnt/c, /mnt/d, etc. Pour plus d'informations sur la spécification du comportement de confidentialité de la casse par défaut lors du montage de lecteurs ou de répertoires Windows ou Linux, consultez la page relative à la confidentialité de la casse .
Paramètres réseau
Étiquette de section :
[network]
|key||value||default||HDInsight|
|generateHosts||boolean||


|generateResolvConf||boolean||


|hostname||string||Nom d'hôte Windows||Définit le nom d'hôte à utiliser pour la distribution WSL.|
Paramètres d'interopérabilité
Étiquette de section :
[interop]
Ces options sont disponibles dans Insider build 17713 et ultérieures.
|key||value||default||HDInsight|
|enabled||boolean||
||La définition de cette clé permet de déterminer si WSL prend en charge le lancement des processus Windows.|
|appendWindowsPath||boolean||
||La définition de cette clé détermine si WSL ajoute des éléments de chemin Windows à la variable d'environnement $PATH.|
Paramètres utilisateur
Étiquette de section :
[user]
Ces options sont disponibles dans build 18980 et versions ultérieures.
|key||value||default||HDInsight|
|default||string||Nom d'utilisateur initial créé lors de la première exécution||La définition de cette clé spécifie l'utilisateur sous lequel s'exécuter lors du premier démarrage d'une session WSL.|
Paramètres de démarrage
Le paramètre de démarrage n'est disponible que sur Windows 11 et Server 2022.
Étiquette de section :
[boot]
|key||value||default||HDInsight|
|command||string||""||Chaîne de la commande que vous souhaitez exécuter au démarrage de l'instance WSL. Cette commande est exécutée en tant qu'utilisateur racine. par exemple :


Exemple de fichier wsl.conf
L'exemple
wsl.conf de fichier ci-dessous illustre certaines des options de configuration disponibles. Dans cet exemple, la distribution est Ubuntu-20.04 et le chemin du fichier est
\\wsl.localhost\Ubuntu-20.04\etc\wsl.conf.
# Automatically mount Windows drive when the distribution is launched [automount] # Set to true will automount fixed drives (C:/ or D:/) with DrvFs under the root directory set above. Set to false means drives won't be mounted automatically, but need to be mounted manually or with fstab. enabled = true # Sets the directory where fixed drives will be automatically mounted. This example changes the mount location, so your C-drive would be /c, rather than the default /mnt/c. root = / # DrvFs-specific options can be specified. options = "metadata,uid=1003,gid=1003,umask=077,fmask=11,case=off" # Sets the `/etc/fstab` file to be processed when a WSL distribution is launched. mountFsTab = true # Network host settings that enable the DNS server used by WSL 2. This example changes the hostname, sets generateHosts to false, preventing WSL from the default behavior of auto-generating /etc/hosts, and sets generateResolvConf to false, preventing WSL from auto-generating /etc/resolv.conf, so that you can create your own (ie. nameserver 22.214.171.124). [network] hostname = DemoHost generateHosts = false generateResolvConf = false # Set whether WSL supports interop process like launching Windows apps and adding path variables. Setting these to false will block the launch of Windows processes and block adding $PATH environment variables. [interop] enabled = false appendWindowsPath = false # Set the user when launching a distribution with WSL. [user] default = DemoUser # Set a command to run when a new WSL instance launches. This example starts the Docker container service. [boot] command = service docker start
Paramètre de configuration pour .wslconfig
Le fichier .wslconfig configure les paramètres globalement pour toutes les distributions Linux s'exécutant avec WSL 2. (Pour la configuration par distribution, consultez wsl.conf).
Consultez .wslconfig pour plus d'informations sur l'emplacement de stockage du fichier .wslconfig.
Notes
Options de configuration globale avec
.wslconfig est disponible uniquement pour les distributions s'exécutant en tant que WSL 2 dans Windows Build 19041 et versions ultérieures. Gardez à l'esprit que vous devrez peut-être exécuter
wsl --shutdown pour arrêter la machine virtuelle WSL 2, puis redémarrer votre instance WSL pour que ces modifications prennent effet.
Ce fichier peut contenir les options suivantes qui affectent la machine virtuelle qui alimente toute distribution WSL 2 :
Étiquette de section :
[wsl2]
|key||value||default||HDInsight|
|noyau||path||Boîte de réception fournie par le noyau intégré Microsoft||Chemin d'accès Windows absolu à un noyau Linux personnalisé.|
|mémoire||taille||50 % de la mémoire totale sur Windows ou 8 Go, selon la valeur la moins élevée ; sur les builds antérieures à 20175 : 80 % de votre mémoire totale sur Windows||Quantité de mémoire à affecter à la machine virtuelle WSL 2.|
|processeurs||nombre||Le même nombre de processeurs logiques sur Windows||Nombre de processeurs logiques à affecter à la machine virtuelle WSL 2.|
|localhostForwarding||boolean||
||Boolean spécifiant si les ports liés à un caractère générique ou localhost dans la machine virtuelle WSL 2 doivent être connectables à partir de l'hôte via


|kernelCommandLine||string||Vide||Arguments de ligne de commande supplémentaires du noyau.|
|Safemode||boolean||
||Exécutez WSL en « mode sans échec », ce qui désactive de nombreuses fonctionnalités et est destiné à être utilisé pour récupérer des distributions qui sont dans des états incorrects. Disponible uniquement pour Windows 11 et WSL version 0.66.2+.|
|swap||taille||25 % de la taille de la mémoire sur Windows arrondie au Go le plus proche||Espace d'échange à ajouter à la machine virtuelle WSL 2, 0 pour aucun fichier d'échange. Le stockage d'échange est une ram sur disque utilisée lorsque la demande de mémoire dépasse la limite sur l'appareil matériel.|
|swapFile||path||
||Chemin d'accès Windows absolu au disque dur virtuel d'échange.|
|pageReporting||boolean||
||Le paramètre par défaut


|guiApplications||Boolean*||
||Boolean pour activer ou désactiver la prise en charge des applications gui (WSLg) dans WSL. Disponible uniquement pour Windows 11.|
|debugConsole||Boolean*||
||Boolean pour activer une fenêtre de console de sortie qui affiche le contenu de


|nestedVirtualization||Boolean*||
||Boolean pour activer ou désactiver la virtualisation imbriquée, ce qui permet à d'autres machines virtuelles imbriquées de s'exécuter dans WSL 2. Disponible uniquement pour Windows 11.|
|vmIdleTimeout||Nombre*||
||Nombre de millisecondes pendant lesquelles une machine virtuelle est inactive, avant son arrêt. Disponible uniquement pour Windows 11.|
Les entrées avec la
path valeur doivent être des chemins Windows avec des barres obliques inverses d'échappement, par exemple :
C:\\Temp\\myCustomKernel
Les entrées avec la
size valeur doivent être une taille suivie d'une unité, par exemple
8GB ou
512MB.
Les entrées avec un * après le type valeur ne sont disponibles que sur Windows 11.
Exemple de fichier .wslconfig
L'exemple
.wslconfig de fichier ci-dessous illustre certaines des options de configuration disponibles. Dans cet exemple, le chemin du fichier est
C:\Users\<UserName>\.wslconfig.
# Settings apply across all Linux distros running on WSL 2 [wsl2] # Limits VM memory to use no more than 4 GB, this can be set as whole numbers using GB or MB memory=4GB # Sets the VM to use two virtual processors processors=2 # Specify a custom Linux kernel to use with your installed distros. The default kernel used can be found at https://github.com/microsoft/WSL2-Linux-Kernel kernel=C:\\temp\\myCustomKernel # Sets additional kernel parameters, in this case enabling older Linux base images such as Centos 6 kernelCommandLine = vsyscall=emulate # Sets amount of swap storage space to 8GB, default is 25% of available RAM swap=8GB # Sets swapfile path location, default is %USERPROFILE%\AppData\Local\Temp\swap.vhdx swapfile=C:\\temp\\wsl-swap.vhdx # Disable page reporting so WSL retains all allocated memory claimed from Windows and releases none back when free pageReporting=false # Turn off default connection to bind WSL 2 localhost to Windows localhost localhostforwarding=true # Disables nested virtualization nestedVirtualization=false # Turns on output console showing contents of dmesg when opening a WSL 2 distro for debugging debugConsole=true