• Windows
  • Déployer linux sur windows 10 avec windows subsystem linux 2 (wsl)

Windows Subsystem Linux 2

Je vous avez déjà parlé de WSL ici.

Mais depuis la mise à jour de windows version 2004 (mai 2020) il y a des nouveautés très intéressante.
WSL 2 offre des performances de système de fichiers beaucoup plus rapides et une compatibilité totale des appels système, ce qui vous permet d'exécuter davantage d'applications comme docker! Et donc on n'est plus du tout obligé d'installer une machine virtuelle pour faire fonctionner docker. 😃

Doc windows pour mettre à jour vers WSL 2 https://docs.microsoft.com/fr-fr/windows/wsl/install-win10#update-to-wsl-2

Pour installer WSL

Ouvrez PowerShell en tant qu’administrateur et exécutez :

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Mettre à jour vers WSL 2

Pour effectuer une mise à jour vers WSL 2, vous devez mettre à jour Windows 10 vers la version 2004, build 19041 ou ultérieure.

Avant d’installer WSL 2, vous devez activer la fonctionnalité facultative « Plateforme de machine virtuelle ».
Ouvrez PowerShell en tant qu’administrateur et exécutez :

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Redémarrez votre ordinateur pour terminer l’installation de WSL et mettre à jour vers WSL 2.

Définir WSL 2 comme version par défaut

wsl.exe --set-default-version 2

Vous pouvez avoir l'erreur

WSL 2 nécessite une mise à jour de son composant noyau. Pour plus d’informations, visitez https://aka.ms/wsl2kernel

Dans ce cas téléchargez le paquet et installez-le!

Ensuite pour installer la distribution Linux de votre choix vous pouvez les télécharger sur windows store!

    Juste une question : Comment on sait si on est en wsl 1 ou 2 ?
    J'ai fais la MAJ, j'ai relancé mon shell Debian, mais j'avoue que comme ça, je ne vois pas de différence. Non pas que le m'attendais à quelque chose d'ultra visible, mais au moins une version visible qqpart histoire d'être sûr quoi ^^

    Pour voir la version tu peux faire un :

    PS C:\Users\xataz> wsl --list --all --verbose
      NAME                   STATE           VERSION
      Alpine                 Running         2
      Archlinux              Running         2
      Centos8                Running         2
    * Debian                 Running         2
      Ubuntu-20.04           Running         2
      docker-desktop-data    Running         2
      docker-desktop         Running         2
      openSuse-tumbleweed    Running         2

    Tu peux convertir en version 2 si tu le souhaites :

      PS C:\Users\xataz> wsl --set-version Ubuntu-20.04 2

    Je mets ici un Launcher.exe https://github.com/yuk7/wsldl pour pouvoir configurer la distribution.
    Comme pouvoir modifier avec quel utilisateur la distribution démarre pas défaut (root par defaut)

    Si vous importez ou installez une distribution avec la méthode de xataz il y a pas de launcher de créé.

    Par exemple un cas d'utilisation si vous voulez changer vous renommer le launcher par le nom de votre distribution et dans powershell

    distro.exe config config --default-user magicalex

    Merci @xataz , @Magicalex et @Alexis 🙂

    Autant je suis à l'aise sous linux, autant Windows et Powershell, c'est du Chinois pour moi !

    Quand je vois tout ça, je me dit qu'il ne dois pas manquer grand chose pour avoir des onglets et des raccourcis scriptés qui ouvrent un explorer en sshfs en parallèle par exemple... Allez, on peut rêver 😃

    Si comme moi vous bloquez le Store, voici un howto pour installer Linux à la main.

    Bon bah je déchante, après m'être amusé avec ce potentiel de Windows10, je me rends compte que Docker active, logiquement, Hyper-V et que du coup ça rend impossible l'utilisation de VirtualBox. La lose.
    Je me doute que certains s'y connaissent mieux en Windows que moi, si vous avez des pistes je suis preneur. De ce que j'ai compris y'a pas vraiment de solution hélas...

      Aerya Hello,
      Oui en effet quand tu utilises WSL, c'est pas (pour le moment j'espère) possible d'utiliser VirtualBox ou tout autre outil de virtualisation..
      Ca m'a pas mal embêté au départ, puis en fait vu que WSL est une VM à lui seul je me suis résigné au fait de n'utiliser que WSL.
      Du coup on fait l'impasse sur la GUI d'un OS (et encore, pour le moment parce qu'en théorie ils vont release quelque chose de pas mal de ce que j'ai vu) et sur la possibilité de faire tourner plusieurs systèmes qui ne sont pas dans le store (et encore, on peut importer n'importe quel OS, voir le msg de xataz sur créer sa propre distrib).
      Donc globalement je n'ai plus besoin de VirtualBox (pour le moment), après ça va dépendre de l'usage que tu en fais. Il me semble qu'il existe certaines versions d'outil de virtu (comme VB ou VMware) qui supportent HyperV, je te laisse faire des recherches à ce sujet.

      Pour éviter le double post et pour ceux qui seraient embêté par la RAM utilisée par WSL (c'est un gros problème de leur côté, la mémoire cachée n'est pas libérée pour l'OS hôte), voici un petit lien qui vous explique comment faire tourner une crontab (à la fréquence que vous désirez) pour nettoyer la mémoire cache et la récupérer. Idem pour bloquer la RAM maximale utilisable par WSL:
      https://github.com/microsoft/WSL/issues/4166#issuecomment-618159162

      Répondre…