Quantcast
Korben, roi d’internet, logo bébé avec des lunettes en mode thug life Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Korben Upgrade your mind

Linux avec une interface graphique sous Windows (WSL) Shadow

Bon, je sais, ce titre c’est un peu le bordel, mais je vais tout vous expliquer. J’utilise régulièrement mon PC Shadow qui est un ordinateur Windows dans le cloud qui fonctionne très bien. C’est vraiment un avis objectif, car à chaque fois que je le lance, je suis bluffé par l’absence de latence et les possibilités de leur client.

Breeeef. Dans mes errances nocturnes, je me suis dit que ce serait rigolo d’avoir un Linux sur mon Shadow. Malheureusement, comme c’est une machine virtualisée, ce n’est pas vraiment possible de faire fonctionner à l’intérieur une Virtualbox ou quelque chose comme ça (ou alors je n’ai pas trouvé).

Edit: Techniquement c’est possible de faire tourner une VM dans une VM mais il faut que l’hyperviseur ait une option pour activer l’encapsulation de la virtualisation comme par exemple vhc.enable sur VMWare. Shadow dans mon cas ne permet pas cela.

Mais heureusement, sous Windows, il y a WSL, qui est le Windows Subsystem for Linux. C’est un truc dont je vous ai déjà parlé et qui permet d’avoir une distrib Linux comme Ubuntu, en ligne de commande, nativement sous Windows, sans virtualisation. C’est très cool. Mais ce que je vous propose aujourd’hui, c’est d’aller encore plus loin dans le cool en faisant tourner sur WSL des applications graphiques. Voire même un bureau complet comme Xfce ou Unity.

Notez que ce tuto fonctionnera avec n’importe quelle machine Windows 10, qu’elle soit physique ou virtualisée Shadow, Virtualbox, VMWare ou que sais-je encore.

Ah et j’ai aussi fait un tuto vidéo pour apprendre à installer WSL, si vous préférez.

Étape 1 – Installer WSL

Première mission pour vos petits doigts potelés, installer le WSL. Pour cela, lancez PowerShell en Administrateur comme ceci, en tapant PowerShell dans la barre de menu :

Dans PowerShell, entrez la ligne de commande suivante :

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Étape 2 – Installer une distrib

Ça va s’installer tranquille. Pendant ce temps là, posez-vous la question de la distrib Linux que vous aimeriez installer. Actuellement voici les distrib dispo sur le Windows Store :

Vous pouvez aussi lancer le Windows Store et taper WSL dans la barre de recherche.

Une fois que WSL est installé sur votre machine, il vous faudra rebooter. Dès que la machine a redémarré, vous pouvez installer le Linux de votre choix. Pour mon article, j’ai pris Ubuntu.

Lorsque l’installation se termine, un terminal Linux se lance vous demandant de créer un compte utilisateur et un mot de passe associé.

Trop cool.

Étape 3 – Mettre à jour Linux

Ensuite, mettez à jour tout ça avec un petit :

sudo apt-get update
sudo apt-get upgrade

Bon, voilà, là vous avez un beau Linux sous Windows, c’est parfait. L’autre excellente nouvelle, c’est que par défaut WSL sait exporter nativement ses écrans dans un serveur X (plus besoin de modifier votre .bashrc).

Cela signifie que vous allez pouvoir installer et utiliser des applications graphiques Linux sous Windows. C’est chouette ça non ?

Notez que si à un moment, vous fermez la fenêtre WSL, vous pouvez relancer votre Linux via le menu Démarrer ou le champ de Recherche de Windows en tapant Ubuntu.

Étape 4 – Installer un serveur X

Tout ce que vous avez à faire c’est installer l’outil VcXsrv ou un équivalent sur votre Windows.

Au lancement de VcXsrv, vous pouvez choisir un mode d’affichage. « Multiple Windows » signifie que les applications vont se lancer dans des fenêtres indépendantes. Et « One large windows » va afficher le bureau et tout le bordel dessus ainsi que toutes vos applications.

Pour le moment, comme on n’a pas installé d’environnement de bureau, si vous choisissez « One large windows », vous aurez un joli fond noir.

Pour le reste des paramètres de VcXsrv (display number and co), laissez tout par défaut. VcXsrv est lancé et on va installer une application avec interface graphique pour vérifier que tout fonctionne.

Dans votre terminal WSL, tapez :

sudo apt-get install vim-gtk

Cela va installer gvim qui est un éditeur de texte (vim) avec une GUI. Toujours dans WSL, tapez :

gvim

Et vous devriez voir quelque chose comme ça :

Si ça ne fonctionne pas, c’est que vous n’avez pas la dernière version de WSL (donc des mises à jour Windows). Vous devrez alors rajouter la lignbe suivante tout en bas de votre fichier .bashrc qui se trouve dans votre répertoire home sur votre Linux WSL.

export DISPLAY=:0

Sauvegardez .bashrc, fermez et relancez le shell et retentez le coup avec gvim.

C’est beau je suis ému. A partir de là, vous pouvez installer à peu près tout ce que vous voulez.

Étape 5 – Installer un environnement de bureau (Xfce, Unity…etc.)

Mais si vous voulez un bureau, je vous invite à en installer un. Bon, Unity, je suis pas trop fan comme beaucoup de monde, alors pour changer un peu, je vous propose d’essayer Xfce.

Pour installer Xfce il suffit d’entrer la commande suivante :

sudo apt-get install xfce4

Dès que c’est installé, il vous suffira de taper :

xfce4-session

Et vous devriez obtenir ceci :

Elle est pas belle la vie ?

Si ce tuto vous a plu, n’hésitez pas à le partager sur vos réseaux et à me faire des retours !

Amusez-vous bien !


PROMO Western Digital Disque dur externe 2 TB USB 3.0

-17 % de réduction

Compatibilité USB 3.0 et USB 2.0. Température de fonctionnement: 41 ° F à 95 ° F
Taux de transfert rapides
Améliorez la performance de votre PC en libérant de l’espace sur votre ordinateur
Capacité massive dans un boîtier compact
La qualité WD dedans et dehors
Formaté pour Windows. Reformatage possible pour les systèmes d’exploitation Mac ou autres

Voir la promo



Réponses notables

  1. Avatar for bmx22c bmx22c says:

    Merci Chef pour ce tuto !
    Malheureusement ça bloque pour moi à gvim qui me renvoi l’erreur « cannot open display » alors que j’ai VcXsrv d’installé et ouvert avec le fameux écran noir…
    De même pour la commande xfce4-session qui me renvoi la même chose: Cannot open display.

    J’ai zieuté le fichier /etc/ssh/sshd_config pour voir si le paramètre « X11Forwarding » est à « yes » et c’est le cas… Je comprends pas.

    EDIT: J’ai du faire la commande suivante: « export DISPLAY=:0 » et ça a tout réglé

  2. Avatar for EggEek EggEek says:

    Salut Korben et les Korbenautes,

    Pour Windows ils y a plus simple : il suffit d’installer le serveur X RDP (le paquet xrdp est dispo sur toutes les distros) et se connecter via mstsc. Généralement il n’y a pas grand chose à changer niveau configuration, juste le port RDP à changer si il est en cours d’utilisation par Windows. Et du coup on peut faire du montage des dossiers et du partage de périphériques USB …

    Je trouve ça plus simple et on a rien à ajouter au Windows.

    Des bisous à tous.

  3. Avatar for spm404 spm404 says:

    Bonjour à tous, question sur les performances :
    Entre

    • WSL (article de Korben)
    • Solution de @EggEek
    • virtual box linux
      Lequel serai le plus rapide et fiable ?
  4. Avatar for EggEek EggEek says:

    @spm404 : ma solution est plus rapide à mettre en oeuvre et on ne rajoute pas de logiciel supplémentaire à Windows mais la base WSL est la même. On modifie seulement le moteur X11 du Linux embarqué.

    Pour répondre à ta question je pense qu’en vitesse d’emulation un VirtualBox va aller plus vite qu’un sous système WSL mais ça va être moins « pratique » à utiliser (ajout des agents de virtualisation et installation de l’OS depuis un ISO, tuning des logiciels, etc). Avec WSL tu installe ton Linux comme un programme normal, tu installe xrdp et un gestionnaire de bureau et c’est fini.

    J’espère avoir répondu à ta question.

    Ciao bye !

  5. Avatar for mll mll says:

    Merci pour l’astuce, mais je veux bien que tu développes (attention, linuxnoob inside).
    Ce que j’ai fait pour l’instant (très fier) :

    • j’ai pigé qu’il fallait taper sudo apt-get install xrdp
    • j’ai pigé que comme xrdp m’envoyait des insultes (« running in daemon mode with no access to pid files, quitting »), il fallait en fait taper sudo xrdp

    …mais pour la partie Windows, je sèche : quand je lance le client rdp (mstsc), et que je tente une connexion à localhost, il me dit qu’une session est en cours… Peut-être est-ce ce qu’on évite si on suit ton conseil de changer le port RDP, mais comment le faire côté serveur WSL ? Et côté mstsc ?

    Edit : trouvé comment faire sur https://dev.to/darksmile92/linux-on-windows-wsl-with-desktop-environment-via-rdp-522g

  6. Avatar for Korben Korben says:

    J’ai fait une petite MAJ de l’article avec ça. Avec la dernière version de Windows et donc de WSL ce n’est pas nécessaire mais pour ceux qui n’ont pas fait les mises à jour, il faut effectivement écrire un petit

    export DISPLAY=:0
    

    tout en bas du fichier .bashrc de votre répertoire home et relancer le shell au complet.

  7. Avatar for bmx22c bmx22c says:

    De mon point de vue, question de simplicité et de fiabilité, une VM sera beaucoup plus simple. Au pire dans ta VM tu fout un dossier partagé jusqu’à la racine de ton disque C: et c’est fini.
    Seul inconvénient de la VM: Pas de support GPU, ce sera que sur ton processeur, à moins que tu fasses du GPU Passthrough mais c’est compliqué, faut un GPU compatible, etc

  8. Coucou !
    Possible de dire où se trouve le répertoire Home dans Windows 10 ?
    Merci Tonton :wink:

  9. Bonjour,

    Est-ce qu’il y a moyen d’accéder au système de fichier de Windows depuis WSL ?
    Super tuto en tout cas :slight_smile:

  10. Avatar for bmx22c bmx22c says:

    Oui, tu le trouve dans
    ~/.bashrc

  11. Avatar for bmx22c bmx22c says:

    Oui, tu le trouve dans le répertoire
    /mnt/<lettre de ton disque>/

    Pour ton disque C:, ce sera donc
    /mnt/c/

  12. Avatar for zorg6 zorg6 says:

    Je doute que cela fonctionne dans tous les cas, en tous cas pour mes PC car cela récupère le nom du serveur DNS, et ce n’est pas « localhost » pour ce qui me concerne.

    Ca m’étonnerai que $DISPLAY contenant le nom de mon serveur DNS (qui est un autre ordinateur, un pi-hole) l’affichage se fasse sur mon PC… :grinning: mais je peux me tromper?

Continuer la discussion sur Korben Communauté

15 commentaires supplémentaires dans les réponses

Participants