Importer n’importe quelle distribution Linux à utiliser avec WSL

Vous pouvez utiliser n’importe quelle distribution Linux à l’intérieur du Sous-système Windows pour Linux (WSL), même si elle n’est pas disponible dans le Microsoft Store, en l’important avec un fichier tar.

Cet article explique comment importer la distribution Linux, CentOS, pour une utilisation avec WSL en obtenant son fichier tar à l’aide d’un conteneur Docker. Ce processus peut être appliqué pour importer n’importe quelle distribution Linux.

Obtenir un fichier tar pour la distribution

Tout d’abord, vous devez obtenir un fichier tar qui contient tous les fichiers binaires Linux pour la distribution.

Vous pouvez obtenir un fichier tar de différentes manières, dont deux :

  • Téléchargez un fichier tar fourni. Vous trouverez un exemple pour Alpine dans la section « Mini Système de fichiers racine » du site de téléchargement d’Alpine Linux .
  • Recherchez un conteneur de distribution Linux et exportez un instance sous forme de fichier tar. L’exemple ci-dessous montre ce processus à l’aide du conteneur CentOS.

Obtention d’un fichier tar pour l’exemple CentOS

Dans cet exemple, nous allons utiliser Docker dans une distribution WSL pour obtenir le fichier tar pour CentOS.

Prérequis

Exporter le tar à partir d’un conteneur

  1. Ouvrez la ligne de commande (Bash) pour une distribution Linux que vous avez déjà installée à partir du Microsoft Store (Ubuntu dans cet exemple).

  2. Démarrez le service Docker :

    sudo service docker start
    
  3. Exécutez le conteneur CentOS dans Docker :

    docker run -t centos bash ls /
    
  4. Récupérez l’ID de conteneur CentOS à l’aide de grep et d’awk :

    dockerContainerID=$(docker container ls -a | grep -i centos | awk '{print $1}')
    
  5. Exportez l’ID de conteneur dans un fichier tar sur votre lecteur C monté :

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

Exemple d’exécution des commandes ci-dessus

Ce processus exporte le fichier tar CentOS à partir du conteneur Docker afin que nous puissions maintenant l’importer pour une utilisation locale avec WSL.

Importer le fichier tar dans WSL

Une fois que vous avez un fichier tar prêt, vous pouvez l’importer à l’aide de la commande : wsl --import <Distro> <InstallLocation> <FileName>.

Exemple d’importation de CentOS

Pour importer le fichier tar de distribution CentOS dans WSL :

  1. Ouvrez PowerShell et vérifiez que vous avez créé un dossier dans lequel vous souhaitez stocker la distribution.

    cd C:\temp
    mkdir E:\wslDistroStorage\CentOS
    
  2. Utilisez la commande wsl --import <DistroName> <InstallLocation> <InstallTarFile> pour importer le fichier tar.

    wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar
    
  3. Utilisez la commande wsl -l -v pour case activée les distributions que vous avez installées.

    Exemple de commandes ci-dessus en cours d’exécution dans WSL

  4. Enfin, utilisez la commande wsl -d CentOS pour exécuter votre distribution Linux CentOS nouvellement importée.

Ajouter des composants spécifiques À WSL, comme un utilisateur par défaut

Par défaut, lorsque vous utilisez --import, vous êtes toujours démarré en tant qu’utilisateur racine. Vous pouvez configurer votre propre compte d’utilisateur, mais notez que le processus de configuration varie légèrement en fonction de chaque distribution Linux différente.

Pour configurer le compte d’utilisateur avec la distribution CentOS que nous venons d’importer, commencez par ouvrir PowerShell et démarrez dans CentOS, à l’aide de la commande :

wsl -d CentOS

Ensuite, ouvrez votre ligne de commande CentOS. Utilisez cette commande pour installer les outils de définition de sudo et de mot de passe dans CentOS, créer un compte d’utilisateur et le définir comme utilisateur par défaut. Dans cet exemple, le nom d’utilisateur sera « caloewen ».

Notes

Vous souhaiterez ajouter le nom d’utilisateur au fichier sudoers afin de permettre à l’utilisateur d’utiliser sudo. La commande adduser -G wheel $myUsername ajoute l’utilisateur myUsername au groupe de roues. Les utilisateurs du groupe wheel bénéficient automatiquement de privilèges sudo et peuvent effectuer des tâches nécessitant une autorisation élevée.

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

Vous devez maintenant quitter cette instance et vous assurer que toutes les instances WSL sont terminées. Démarrez à nouveau votre distribution pour voir votre nouvel utilisateur par défaut en exécutant cette commande dans PowerShell :

wsl --terminate CentOS
wsl -d CentOS

Vous voyez maintenant [caloewen@loewen-dev]$ comme sortie basée sur cet exemple.

Exemple de code ci-dessus en cours d’exécution dans WSL

Pour en savoir plus sur la configuration des paramètres WSL, consultez Configurer les paramètres avec .wslconfig et wsl.conf.

Utiliser une distribution Linux personnalisée

Vous pouvez créer votre propre distribution Linux personnalisée, empaquetée en tant qu’application UWP, qui se comportera exactement comme les distributions WSL disponibles dans le Microsoft Store. Pour savoir comment procéder, consultez Création d’une distribution Linux personnalisée pour WSL.