Si vous intéressez au fonctionnement des processus sous UNIX ou Linux, vous allez tôt ou tard confrontez aux signaux généralement au travers de la commande Kill. Les signaux sont des interruptions que l’on peut envoyer à un processus pour informer d’un évènement.
Dans ce tutoriel, je vous donne une définition des signaux UNIX/Linux, la liste des signaux et comment envoyer un signal à un processus.
Qu’est-ce qu’un signal dans UNIX ou Linux
Les signaux sont des notifications diverses envoyées à un processus afin de l’informer de divers événements “importants”. De par leur nature, ils interrompent ce que le processus est en train de faire, et l’obligent à les traiter immédiatement. Chaque signal possède un nombre entier qui le représente (1, 2, etc.), ainsi qu’un nom symbolique qui est généralement défini dans le fichier /usr/include/signal.h ou dans l’un des fichiers inclus par celui-ci directement ou indirectement (HUP, INT, etc.). Utilisez la commande “kill -l” pour obtenir la liste des signaux pris en charge par votre système).
Chaque signal peut avoir un gestionnaire de signal, qui est une fonction appelée lorsque le processus reçoit ce signal. La fonction est appelée en “mode asynchrone”, ce qui signifie qu’aucun code de votre programme n’appelle directement cette fonction. Au lieu de cela, lorsque le signal est envoyé au processus, le système d’exploitation arrête l’exécution du processus et le “force” à appeler la fonction de gestion du signal. Lorsque la fonction de gestion du signal revient, le processus poursuit son exécution là où il se trouvait avant la réception du signal, comme si l’interruption n’avait jamais eu lieu.
En quelques sortes, le signal visant un processus fonctionne comme une interruption (IRQ) pour le matériel. Le signal n’est rien d’autre qu’une interruption dans l’exécution du processus. Un processus peut se signaler lui-même ou provoquer le passage d’un signal à un autre processus. Ces interruptions (signaux) peuvent provenir de diverses sources, par exemple des erreurs matérielles telles que l’accès à des adresses mauvaises ou mal alignées, la mort d’un processus enfant, les signaux générés par l’utilisateur à l’aide de la commande kill, ou à partir d’autres processus utilisant un appel système.
Quelle est la liste des signaux UNIX et Linux
Nom du Signal
Numéro du Signal
Description
SIGHUP
1
Raccrochage détecté sur le terminal de contrôle ou mort du processus de contrôle. Il intervient à la perte ou fermeture du terminal : tout programme démarré dans un terminal donné recevra un SIGHUP lorsque le terminal sera fermé. L’autre possibilité est que quelque chose envoie délibérément à votre processus un SIGHUP qui, par “tradition”, est souvent utilisé pour signaler à un processus qu’il doit relire sa configuration.
SIGINT
2
Émise si l’utilisateur envoie un signal d’interruption (Ctrl + C). Le comportement par défaut est de mettre fin au processus, mais il peut être rattrapé ou ignoré. L’intention est de fournir un mécanisme pour un arrêt ordonné et gracieux.
SIGQUIT
3
Émis si l’utilisateur envoie un signal de sortie (Ctrl + D). Le comportement par défaut est de mettre fin au processus et de vider le noyau, mais il peut être rattrapé ou ignoré. L’intention est de fournir un mécanisme permettant à l’utilisateur d’interrompre le processus. Vous pouvez considérer SIGINT comme un “arrêt heureux initié par l’utilisateur” et SIGQUIT comme un “arrêt malheureux initié par l’utilisateur”.
SIGFPE
8
Émis si une opération mathématique illégale est tentée.
SIGKILL
9
Si un processus reçoit ce signal, il doit s’arrêter immédiatement et n’effectuera aucune opération de nettoyage.
SIGALRM
14
Signal d’alarme (utilisé pour les minuteries).
SIGTERM
15
Signal de fin de logiciel. Le comportement par défaut est de mettre fin au processus, mais il peut également être pris en charge ou ignoré. L’intention est de tuer le processus, gracieusement ou non, mais de lui donner d’abord une chance de se nettoyer.
SIGSTOP
19
Mettre le processus en pause ; le signal ne peut pas être capté ou ignoré. L’interpréteur de commandes utilise la pause (et son équivalent, la reprise via SIGCONT) pour mettre en œuvre le contrôle des tâches.
Quelle est la liste des signaux UNIX
Vous obtenir très facilement la liste des signaux avec la commande kill :
Pour envoyer un signal à un processus, il faut utiliser la commande kill. La syntaxe est la suivante où signal est le nom ou le numéro du signal.
kill -<signal< <pid>
Ici, signal est le numéro ou le nom du signal à délivrer et PID est l’ID du processus auquel le signal doit être envoyé. Par exemple –
kill -1 2001
La commande équivalente est :
kill -SIGHUP 2001
La commande ci-dessus envoie le signal HUP ou de raccrochage au programme qui s’exécute avec l’ID de processus 2001. Pour envoyer un signal kill au même processus, utilisez la commande suivante –
kill -9 2001
Cette commande tue le processus qui s’exécute avec l’ID de processus 2001.
Le terminal Linux permet d’effectuer des opérations parfois impossible en graphique ou plus rapidement. C’est un élément obligatoire à maîtriser pour les administrateurs de système Linux. Connaître les raccourcis clavier du terminal Linux vous permet de gagner en productivité et confort.
Dans ce guide complet, je vous fournis une liste complète des raccourcis clavier Linux.
Liste des raccourcis clavier du terminal Linux
Raccourci clavier
Description
CTRL+A
Se déplacer au début de la ligne
CTRL+E
Se déplacer jusqu’à la fin de la ligne
CTRL+U
Effacer à partir du curseur jusqu’au début de la ligne
CTRL+K
Effacer à partir du curseur jusqu’à la fin de la ligne
CTRL+W
Supprime le mot précédant le curseur
CTRL+L
Effacer l’écran du terminal
CTRL+C
Arrêter le processus/commande en cours
CTRL+D
Déconnexion ou sortie du terminal
CTRL+Z
Interrompt le processus en cours (peut être repris)
CTRL+R
Recherche dans l’historique des commandes (recherche en amont)
CTRL+U
Coller le texe effacé
CTRL+O
Exécute la commande précédente
↑
Affiche la commande précédente (à partir de l’historique des commandes)
↓
Affiche la commande suivante (à partir de l’historique des commandes).
!!
Répétez le dernier ordre
!n
Répéter la nième commande de l’historique
TAB
Auto-complétion de commandes, de fichiers ou de répertoires
TAB (2 fois)
Dressez la liste de tous les compléments possibles
CTRL+MAJ+C
Copie le texte ou la commande sélectionné(e)
CTRL+MAJ+V
Coller le texte ou la commande copié(e)
CTRL+MAJ+N
Ouvrez une nouvelle fenêtre de terminal
CTRL+MAJ+T
Ouvrez un nouvel onglet dans le terminal
CTRL+TAB ou CTRL+PageDown
Passer d’un onglet de terminal à l’autre
Liste des raccourcis clavier du terminal Linux
TAB : compléter automatiquement la commande
Ce raccourci est l’un des plus important à connaître. En effet, il permet de gagner énormément de temps en complétant automatiquement les lignes. Il vous permet aussi de retrouver certaines commandes.
Commencez simplement à taper une commande, un nom de fichier, un nom de répertoire ou même des options de commande et appuyez sur la touche de tabulation. Le programme complétera automatiquement ce que vous avez tapé ou affichera tous les résultats possibles pour vous.
Si vous ne pouviez retenir qu’un seul raccourci, ce serait celui-là.
Ctrl + C : interrompre l’exécution d’une commande
Ce sont les touches sur lesquelles vous devez appuyer pour sortir d’une commande ou d’un processus sur un terminal. Cela arrêtera (terminera) immédiatement un programme en cours d’exécution. Il interrompt proprement la plupart des programmes en envoyant le signal SIGINT au programme que je veux interrompre et abandonner. La plupart des programmes l’attrapent correctement et se terminent proprement. Si le programme ne spécifie pas comment gérer le signal SIGINT, les processus sous-jacents s’arrêtent d’eux-mêmes. Oui, c’est une méthode sûre.
Si vous voulez arrêter d’utiliser un programme qui s’exécute au premier plan, il suffit d’appuyer sur cette combinaison de touches.
Ctrl + Z : suspendre une commande
Ce raccourci suspend un programme en cours d’exécution et vous donne le contrôle de l’interpréteur de commandes. Il envoie le signal SIGTSTP au processus d’avant-plan. Par exemple, vous travaillez dans un éditeur de texte et vous avez besoin d’en sortir pour trouver des données. Vous pouvez utiliser ce raccourci pour suspendre et envoyer l’éditeur en arrière-plan, effectuer votre autre tâche, puis exécuter fg pour revenir dans votre application.
Ce raccourci clavier vous déconnecte du terminal en cours. Si vous utilisez une connexion SSH, elle sera fermée. Si vous utilisez un terminal directement, l’application sera fermée immédiatement.
Il s’agit de l’équivalent de la commande ‘exit’.
Ctrl + L : effacer l’écran de votre terminal
Comment effacer l’écran de votre terminal ? J’imagine qu’on utilise la commande clear. Au lieu d’écrire clear, vous pouvez simplement utiliser CTRL+L pour effacer le terminal.
Ctrl + A : déplacer le curseur au début de la ligne
Supposons que vous ayez tapé une longue commande ou un long chemin dans le terminal et que vous souhaitiez aller au début de la ligne, l’utilisation de la touche fléchée pour déplacer le curseur prendra beaucoup de temps. Notez que vous ne pouvez pas utiliser la souris pour déplacer le curseur au début de la ligne.
C’est là que Ctrl+A vous sauve la mise.
Ctrl + E : déplacer le curseur en fin de ligne
Ce raccourci est en quelque sorte l’inverse de CTRL+A. CTRL+A envoie le curseur au début de la ligne, tandis que CTRL+E déplace le curseur à la fin de la ligne.
Note : Si vous disposez des touches Home et Fin sur votre clavier, vous pouvez également les utiliser. La touche Accueil est équivalente à CTRL+A et la touche Fin est équivalente à CTRL+E.
Ctrl + U : effacer à partir du curseur pour commencer
Vous avez tapé une mauvaise commande ? Au lieu d’utiliser la touche d’effacement arrière pour abandonner la commande en cours, utilisez le raccourci Ctrl+U dans le terminal Linux. Ce raccourci efface tout ce qui se trouve entre la position actuelle du curseur et le début de la ligne.
Ctrl+U ne supprime pas seulement le texte du début de la ligne jusqu’au curseur, il le copie dans une mémoire tampon. Vous pouvez ensuite récupérer le texte – le coller, si vous voulez – en utilisant CTRL+Y.
Ctrl + K : effacer du curseur à la fin
Ce raccourci est similaire au raccourci Ctrl+U. La seule différence est qu’au lieu du début de la ligne, il efface tout ce qui se trouve entre la position actuelle du curseur et la fin de la ligne.
Ctrl + W : supprimer un seul mot avant le curseur
Vous venez d’apprendre à effacer du texte jusqu’au début et à la fin de la ligne. Mais que faire si vous ne voulez effacer qu’un seul mot ? Utilisez le raccourci CTRL+W.
En utilisant le raccourci CTRL+W, vous pouvez effacer le mot qui précède la position du curseur. Si le curseur se trouve sur un mot, il effacera toutes les lettres à partir de la position du curseur jusqu’au début du mot.
La meilleure façon de l’utiliser est de déplacer le curseur jusqu’à l’espace suivant le mot ciblé, puis d’utiliser le raccourci clavier CTRL+W.
Ctrl + Y : coller le texte effacé
Cette fonction permet de coller le texte effacé à l’aide des raccourcis CTRL+W, CTRL+U et CTRL+K. Elle est pratique si vous effacez un mot. Cette fonction est pratique si vous avez effacé un texte erroné ou si vous devez utiliser le texte effacé à un autre endroit.
Ctrl + P : afficher la commande précédente
Ce raccourci permet d’afficher la commande précédente. Vous pouvez appuyer plusieurs fois sur cette touche pour revenir en arrière dans l’historique des commandes. Dans de nombreux terminaux, la même chose peut être obtenue avec la touche PgUp.
Alternativement, vous pouvez aussi utiliser le raccourci ↑ pour revenir à la commande précédente depuis l’historique.
Ctrl + N : affiche la commande suivante
Vous pouvez utiliser ce raccourci en conjonction avec CTRL+P. Ctrl+N affiche la commande suivante. Si vous consultez les commandes précédentes avec CTRL+P, vous pouvez utiliser CTRL+N pour naviguer en avant et en arrière. Sur de nombreux terminaux, ce raccourci est associé à la touche PgDn.
Alternativement, vous pouvez aussi utiliser le raccourci ↓pour revenir à la commande précédente depuis l’historique.
Ctrl + R : recherche dans l’historique des commandes
Voici un autre raccourci clavier très utile pour retrouver une commande depuis l’historique.
Lorsque vous appuyez sur CTRL+R, une fenêtre de recherche s’ouvre (reverse-i-search), dans laquelle vous pouvez taper n’importe quelle partie de la commande et qui trouvera la commande correspondant à la chaîne de caractères que vous avez saisie.
Une fois la commande trouvée, il vous suffit d’appuyer sur la touche Entrée pour l’exécuter.
Ctrl+R : rappelle la dernière commande correspondant aux caractères fournis
Ctrl+R (à nouveau) : Naviguer parmi les commandes correspondantes
Ctrl+O : Renvoyer la commande à votre terminal ou sélectionner Entrée pour exécuter la commande à partir du mode de recherche
Ctrl+G : quitter le mode de recherche dans l’historique sans exécuter de commande
OpenVPN est un serveur VPN très populaire qui offre de nombreuses options et qui peut rendre sa configuration compliquée. Parmi les problèmes courants que l’on peut rencontrer : les problèmes de MTU. Les problèmes de MTU se manifestent souvent par des connexions qui se bloquent pendant les périodes d’utilisation active.
Dans ce tutoriel, je vous propose de découvrir les options MTU d’OpenVPN et comment configurer le MTU dans OpenVPN. Je termine par quelques problèmes courants de MTU.
Comprendre le MTU dans OpenVPN
Le MTU est mesuré en octets et représente la plus grande taille de paquet qui peut être transmise sur un réseau sans être décomposée en fragments plus petits. Des valeurs MTU plus élevées permettent une transmission de données plus efficace, car moins de paquets sont nécessaires pour transmettre la même quantité de données. Cependant, si le MTU est trop élevé et dépasse les capacités de n’importe quel appareil réseau le long du chemin de transmission, une fragmentation peut se produire, entraînant des problèmes de performance ou la perte de paquets
OpenVPN fonctionne en encapsulant les données dans ses propres paquets, qui ont leur propre MTU. Par défaut, OpenVPN définit un MTU de 1500 octets, qui est le MTU standard pour les réseaux Ethernet. Le MTU par défaut n’est pas toujours adapté à toutes les configurations de réseau, et il peut être nécessaire de le modifier pour garantir des performances optimales.
Détermine la taille maximale des paquets que le VPN peut transporter, Du côté du serveur (le serveur VPN), vous pouvez modifier le fichier de configuration du serveur OpenVPN pour définir le MTU à l’aide de l‘option tun-mtu.
Serveur/Client
link-mtu 1400
Réfère à la taille maximale de la charge utile UDP qui sont envoyés entre les pairs OpenVPN. Cette taille n’inclut pas l’en-tête IP ou UDP.
Serveur
mssfix 1400
Définit le MTU côté client, vous pouvez utiliser l’option mssfix. Cette option réduit la taille maximale de segment (MSS) à 1400 octets, ce qui permet d’éviter la fragmentation. La valeur tun-mtu du serveur ne doit pas être modifiée (à 1500) sinon le client ignore cette option.
Client
fragment 1400
Permet la fragmentation effectuée par OpenVPN lui-même en utilisant son propre algorithme interne (pas la fragmentation IP), et en tant que telle, elle doit être acceptée par les deux points d’extrémité. Cependant, lorsqu’il est présent, il peut avoir des valeurs asymétriques. L’option fragment doit être soit présent des deux côtés, soit absent des deux côtés
Des deux côtés
Path MTU Discovery (PMTUD)
L’activation de la découverte du MTU du chemin (PMTUD) peut permettre aux points d’extrémité d’ajuster dynamiquement le MTU en fonction des conditions du chemin. Vous pouvez l’activer en ajoutant les lignes suivantes à votre serveur OpenVPN et aux configurations de vos clients : fragment 1300 mssfix 1300 Ceci indique à OpenVPN de tenter de réduire le MTU à 1300 octets si des problèmes sont rencontrés.
Client
mtu-disc
Active ou désactive la découverte du Path MTU sur le canal TCP/UDP. Uniquement sur les systèmes d’exploitation tels que Linux qui supportent l’appel système nécessaire pour définir le MTU. Trois valeurs sont valides : no — Ne jamais envoyer de trames DF (Don’t Fragment) maybe — Utiliser des conseils par itinéraire yes — Toujours DF (Don’t Fragment)
Il peut y avoir des confusions entre ceux options d’OpenVPN. En voici les différences :
Link-MTU :
La MTU (Maximum Transmission Unit) de la liaison (link-MTU) fait référence à la taille maximale des paquets qui peuvent être transmis sur une interface réseau physique ou virtuelle, telle qu’une carte réseau Ethernet.
La valeur de la link-MTU dépend des caractéristiques de la connexion réseau sous-jacente, comme le type de carte réseau, le protocole utilisé, et les paramètres de configuration du système d’exploitation.
Tun-MTU :
La MTU du tunnel (tun-MTU) fait référence à la taille maximale des paquets qui peuvent être encapsulés dans le tunnel VPN entre les deux points de terminaison du VPN.
Dans le contexte d’OpenVPN, la tun-MTU est spécifiée dans la configuration du serveur et du client. Elle détermine la taille maximale des paquets que le VPN peut transporter, en tenant compte de la surcharge de l’en-tête VPN.
En résumé, la link-MTU est la taille maximale des paquets pouvant être transmis sur une interface réseau, tandis que la tun-MTU est la taille maximale des paquets pouvant être encapsulés dans le tunnel VPN.
mtu-disc
L’option “mtu-disc” permet à OpenVPN de détecter automatiquement la MTU maximale autorisée sur le chemin réseau entre les deux points de terminaison du VPN. Cela se fait en envoyant des paquets ICMP “Fragmentation Needed” (Type 3, Code 4) et en ajustant la MTU en conséquence pour éviter la fragmentation des paquets.
Lorsque cette option est activée, OpenVPN utilise la découverte automatique de la MTU pour ajuster la taille des paquets envoyés par la connexion VPN, ce qui peut améliorer les performances et la fiabilité de la transmission des données. Cependant, dans certains cas, il peut être nécessaire de désactiver cette option si la découverte automatique de la MTU provoque des problèmes de connectivité ou de performances sur le réseau.
Celle-ci est à configurer côté serveur :
mtu-disc yes
net.ipv4.ip_forward_use_pmtu sur Linux
L’option net.ipv4.ip_forward_use_pmtu dans Linux contrôle la façon dont le système gère la fragmentation des paquets IP lorsque la fonctionnalité de routage IP est activée (c’est-à-dire lorsque le routage est activé sur le système).
Plus précisément, lorsque cette option est activée (avec une valeur de 1), le système utilise le MTU (Maximum Transmission Unit) path discovery (PMTU) pour déterminer la taille maximale des paquets qu’il peut transmettre à travers les interfaces réseau. Cette fonctionnalité est utile pour éviter la fragmentation des paquets IP lors de leur transmission à travers des réseaux ayant des MTU différents. Elle contribue à améliorer l’efficacité et les performances de la transmission des données.
Pour modifier la valeur et tester celle-ci, utilisez la commande sysctl suivante :
sysctl net.ipv4.ip_forward_use_pmtu=1
Comment calculer la valeur du MTU optimale pour OpenVPN
Cela suggère que nous devons prendre en compte les octets de l’en-tête UDP. Donc 1470 – 28 (pour IPv4) = 1442.
Manuellement avec des tests ping
La première chose à faire pour résoudre votre problème de MTU OpenVPN est de déterminer quel est votre plus grand MTU. Pour cela, on utilise l’utilitaire ping en faisant varier la valeur du MTU à l’aide des commandes suivantes :
ping <adresse IP passerelle VPN> -f -l <valeur mtu>
ping -c 10 -M do -s <valeur mtu> <adresse IP passerelle VPN>
L’idée est de commencer avec une valeur de 1500 et de réduire de 10 pour trouver la valeur où les paquets ne sont pas fragmenté et aucune perte de paquet n’a lieu.
ping <adresse IP passerelle VPN> -f -l 1500
A partir de là, vous pouvez déterminer la valeur optimale du MTU.
Automatiquement avec –mtu-test
Une autre façon de procéder est de laisser OpenVPN calculer la valeur du MTU. Pour mesurer empiriquement le MTU au démarrage de la connexion, ajoutez l’option –mtu-test à votre configuration. OpenVPN enverra des paquets ping de différentes tailles au pair distant et mesurera les plus gros paquets qui ont été reçus avec succès. Le processus –mtu-test prend normalement environ 3 minutes. La sortie des journaux est la suivante :
2024-05-13 12:06:08 NOTE: Beginning empirical MTU test -- results should be available in 3 to 4 minutes. 2024-05-13 12:06:11 read UDPv4 [EMSGSIZE Path-MTU=1436]: Message too long (fd=5,code=90) 2024-05-13 12:09:08 NOTE: Empirical MTU test completed [Tried,Actual] local->remote=[1454,1454] remote->local=[1454,1454]
Résoudre les erreurs MTU
Lorsque les valeurs du MTU sont trop importantes, vous pouvez rencontrer une baisse des performances allant même jusqu’à des freez et blocage du VPN. Dans les logs, vous pouvez rencontrer les entrées suivantes :
2024-05-13 11:49:34 write UDPv4 [EMSGSIZE Path-MTU=1436]: Message too long (fd=5,code=90)
Vous pouvez corriger cela, en ajoutant des paramètres fragment côté serveur et client et mssfix côté client.
resolvectl est une commande utilisée pour interagir avec le système de résolution de noms de domaine (DNS) sur les systèmes Linux utilisant systemd comme gestionnaire de système et de services. Elle fait partie de systemd-resolved, un service qui fournit des fonctionnalités de résolution de noms DNS, DNSSEC, LLMNR et mDNS pour le système d’exploitation.
Dans ce tutoriel, je vous montre comment utiliser la commande resolvectl sur Linux pour modifier les serveurs DNS, connaître la configuration DNS et vider le cache DNS.
Comment utiliser la commande resolvectl sur Linux
Connaître les serveurs DNS par interface réseau
Pour afficher la configuration DNS, utilisez l’option status :
resolvectl status
Cette commande affiche des informations sur les serveurs DNS actuellement configurés pour chaque interfaces réseau, et le statut de la résolution de noms. Elle vous indique aussi si les protocoles DNSSEC, LLMNR et mDNS sont actifs.
Tester la résolution de noms
Une autre utilisation pratique de la commande resolvectl est la possibilité de tester une résolution DNS. Pour cela, on utilise l’option query.
resolvectl query malekal.com
L’utilitaire renvoie la ou les adresses IP de l’hôte et vous indique aussi quelle interface réseau a effectué la résolution DNS. Cela est pratique, par exemple si un VPN est configuré pour savoir si la résolution DNS passe par ce dernier. De plus, vous obtenez le temps de résolution DNS et si l’authentification ou le chiffrement est configuré.
Bien entendu, il est possible d’effectuer une résolution DNS inverse à partir d’une adresse IP pour obtenir le nom d’hôte.
resolvectl query <adresse ip>
Configurer les serveurs DNS pour une interface réseau spécifique
Vous pouvez aussi modifier la configuration DNS de Linux en ligne de commandes grâce à cet outil. La syntaxe est la suivante :
sudo resolvectl dns <interface> <Serveur DNS primaire> <Serveur DNS secondaire>
sudo resolvectl dns <interface> <Serveur DNS primaire> <Serveur DNS secondaire>
Par exemple, pour modifier l’interface enp0s3 avec les serveurs DNS de Google :
sudo resolvectl dns enp0s3 8.8.8.8 8.8.4.4
Configurer les domaines de recherche DNS pour une interface réseau
De la même manière, vous pouvez configurer le domaine de recherche DNS avec l’option domain :
sudo resolvectl domain enp0s3 exemple.com
Monitorer les connexions DNS
Vous pouvez aussi écouter les résolutions DNS, ce qui peut être utile si vous pensez que des connexions malveillantes ont lieu ou pour débugueur les problèmes de connexions DNS. Cela grâce à l’option monitor qui nécessite un accès root.
sudo resolvectl monitor
Afficher et vider le cache DNS
Pour afficher le cache DNS de Linux, utilisez l’option show-cache comme ceci :
sudo resolvectl show-cache
Et si vous souhaitez vider le cache DNS de Linux :
sudo resolvectl flush-cache
Afficher les statistiques
Utiliser l’option statistics pour afficher les statistiques générales du résolveur, y compris des informations sur l’activation et la disponibilité de DNSSEC, ainsi que des statistiques sur la résolution et la validation.
sudo resolvectl statistics
Pour remettre à zéro les compteurs de statistiques affichés dans statistics. Cette opération requiert les privilèges de l’administrateur.
sudo resolvectl reset-statistics
Configurer les options de résolution DNS (DNS, DNSSEC, LLMNR et mDNS)
Cette commande permet de configurer les options de résolution LLMNR pour une interface réseau.
Ubuntu 24.04 LTS ‘Noble Numbat’ a été publiée le 11 Avril 2024, bien que la mise à niveau de la distribution est pour le moment bloqué en attendant la sortie de 24.04.1. Comme toute version LTS d’Ubuntu, le support est de 5 ans portant jusqu’à Juin 2029. Il est même possible d’obtenir un support de 12 ans avec Ubuntu Pro.
Si vous souhaitez connaître l’intégralité des nouveautés incluses dans cette mise à jour, en voici la liste.
Quelles sont les nouveautés dans Ubuntu 24.04 LTS
Versions des paquets du système
Voici les versions des paquets systèmes dans Ubuntu 24.04 LTS
Sa nouvelle mouture d’Ubuntu propose un installeur revisité que ce soit dans l’aspect de l’expérience visuelle, que son contenu. Vous aurez l’occasion de prendre en main un tout nouvel installateur Ubuntu construit en Flutter et soutenu par Subiquity et Curtin, les puissantes technologies d’installation d’Ubuntu basées sur les serveurs.
Nous parlons ici d’une refonte des visuels, d’une amélioration de la formulation pour que chaque étape ait plus de sens, et d’une poignée de nouvelles fonctionnalités telles que la possibilité de personnaliser Ubuntu via des paramètres d’accessibilités selon vos besoins.
Mais aussi la possibilité d’utiliser le « provisionnement » (via un fichier .yaml) pour automatiser l’installation et configurer les options d’accessibilité avant l’installation.
En plus de cela, le programme d’installation utilise désormais par défaut le mode d’installation « minimal ». Ainsi, vous n’obtiendrez pas de nombreux utilitaires inutiles (si vous n’en avez pas besoin).
Enfin, l’installeur prend en charge les installations ZFS et le chiffrement expérimental de l’intégralité du disque soutenu par le TPM pour les personnes soucieuses de la sécurité.
Nouveau centre d’applications
Le centre d’applications remplace l’application Ubuntu Software comme moyen recommandé d’installer des logiciels dans Ubuntu 24.04 LTS. Il s’agit d’un échange décent, l’App Center offrant un aspect propre et moderne.
Vous pouvez rechercher, parcourir, installer, supprimer et mettre à jour des applications instantanées ou des paquets DEB dans l’archive Ubuntu, mais vous ne pouvez pas utiliser le centre d’applications pour installer des paquets DEB que vous téléchargez vous-même – non, pas même des logiciels comme Google Chrome, Steam, Zoom, Discord, etc.
De plus, avec Ubuntu 24.04 LTS, les applications sont organisées de manière à ce que vous trouviez différentes sections d’applications principales pour vous aider à trouver des applications utiles.
L’écran de gestion et de vérification des applications installées a également été revu et les détails sont présentés de manière organisée.
Menu Paramètres revisité
L’option Paramètres rapides utilise des commandes en forme de pilules sur lesquelles vous pouvez cliquer pour activer les fonctions matérielles. Les cosses indiquent également l’état (par exemple, le nom du réseau actif), tandis que les sous-menus se déploient pour vous permettre d’effectuer des actions, comme choisir un réseau Wi-Fi ou modifier la luminosité du rétroéclairage du clavier.
En outre, l’application Paramètres a été réorganisée et de nouvelles options ont été ajoutées, y compris plus de paramètres d’accessibilité ; le partage permet la connexion à distance via RDP ; tandis que Souris et pavé tactile ajoute une bascule pour empêcher le pavé tactile d’être désactivé lors de la saisie.
La section Comptes en ligne propose désormais les fournisseurs WebDAV et Microsoft 365, le premier prenant en charge la synchronisation des contacts, des fichiers et des calendriers et le second offrant – grand changement – l’accès aux fichiers OneDrive via Nautilus.
Amélioration dans GNOME 46
GNOME 46 introduit de nouvelles améliorations de l’interface utilisateur afin d’améliorer l’expérience globale de l’utilisateur. Parmi les améliorations, citons la prise en charge des écrans tactiles et l’amélioration des animations afin d’offrir une expérience de bureau fluide et immersive.
Bien qu’expérimentale (elle doit être activée manuellement), la prise en charge de la fréquence de rafraîchissement variable (VRR) est une autre nouvelle fonctionnalité majeure de GNOME 46, qui vous permettra de modifier la fréquence de rafraîchissement variable de votre moniteur à partir de l’application Paramètres de GNOME, dans la section Affichage. Bien entendu, cela ne fonctionnera qu’avec les moniteurs qui prennent en charge les taux de rafraîchissement variables.
Lorsque vous vous connectez à distance à votre bureau GNOME, vous pouvez ajuster l’affichage à partir du client distant et utiliser le système comme une ressource distante à part entière. Cependant, lors de l’utilisation d’une session de bureau à distance, il ne doit pas y avoir de session locale en cours d’exécution.
Dans Ubuntu 24.04 LTS, les notifications fournissent de meilleures informations et invitent à prendre des mesures. Par exemple, lorsque vous effectuez une capture d’écran à l’aide d’un outil de capture d’écran, une fenêtre contextuelle s’affiche pour vous informer de l’action possible, dans ce cas, coller l’image dans le presse-papiers.
Consultez ce lien pour avoir la liste complète des nouveautés incluses dans GNOME 46 : https://release.gnome.org/46/
Gnome 46 apporte aussi des améliorations dans Nautilus.
Le bouton de recherche dans la barre latérale de Nautilus active une recherche globale qui passe au crible tous les emplacements indexés. Le (nouveau) bouton de la barre d’outils situé à côté de la barre des chemins d’accès permet d’effectuer une recherche dans un dossier. Il s’agit de deux façons distinctes de rechercher des fichiers sans avoir à définir des emplacements, à appliquer des filtres, etc.
Par ailleurs, la progression du transfert de fichiers passe de la barre d’outils au bas de la barre latérale (bien qu’elle n’apparaisse que lorsqu’une opération est active). Cliquez sur cette icône lorsqu’elle est affichée pour faire apparaître une boîte de dialogue contextuelle indiquant la barre de progression, la vitesse de transfert, le temps restant, etc.
Quelques autres nouveautés dans Nautilus :
Ajout d’une boîte de recherche dans les préférences
La barre de chemin d’accès peut être modifiée en cliquant dessus
La fonction d’icône de dossier personnalisé est plus facile à trouver/réinitialiser
Option pour afficher les horodatages détaillés des fichiers/dossiers
Mosaïques améliorées
Ubuntu 24.04 est aussi la première version LTS à prendre en charge la mosaïque de fenêtres dès sa sortie. Bien que la distribution ait toujours permis d’accrocher les fenêtres de manière à ce qu’elles occupent la moitié de l’espace disponible sur l’écran, il manquait la possibilité de carreler les fenêtres dans les coins. Des fonctionnalités avancées de mosaïque de fenêtres sont désormais intégrées.
Outre la prise en charge d’un plus grand nombre d’emplacements pour l’accrochage des fenêtres, le nouvel assistant de tuilage d’Ubuntu propose également une invite de suggestion automatique lorsque vous tuilez des fenêtres. Il suggère d’autres applications ouvertes pour qu’elles soient juxtaposées à la fenêtre que vous êtes en train de juxtaposer – il n’est pas nécessaire de les faire glisser manuellement là où vous le souhaitez.
Vous pouvez régler cela depuis Paramètres > Bureau Ubuntu > Mosaïques améliorées.
Nouvel outil de mise à jour des microprogrammes (Firmware)
Il a toujours été facile de mettre à jour les microprogrammes matériels dans Ubuntu, mais c’est encore plus facile dans Ubuntu 24.04 grâce à l’inclusion d’un nouvel outil de mise à jour des microprogrammes.
Il n’est pas tape-à-l’œil, mais il n’a pas besoin de l’être : il affiche des informations sur les microprogrammes existants pour les périphériques pris en charge/améliorables, affiche les mises à jour des microprogrammes et peut également mettre à jour les microprogrammes – tout cela à partir du LVFS, bien sûr.
Amélioration de la sécurité
Cette nouvelle version de la distribution Linux voit un renforcement de la sécurité a également été effectué pour les binaires où la bibliothèque GNU C fournit une protection contre les conditions de débordement de mémoire tampon.
Ubuntu 24.04 LTS inclut la dernière version d’AppArmor 4.0, qui prend en charge de nombreuses nouvelles fonctionnalités, telles que la spécification des adresses réseau et des ports autorisés dans la politique de sécurité (plutôt que des protocoles de haut niveau) ou diverses conditionnalités permettant d’exprimer une politique plus complexe. Un nouveau développement passionnant fourni par AppArmor 4 dans Ubuntu 24.04 LTS est la possibilité de reporter les décisions de contrôle d’accès à un programme de confiance de l’espace utilisateur. Cela permet de mettre en œuvre une prise de décision assez avancée, en prenant en compte le contexte plus large disponible dans l’espace utilisateur ou même d’interagir avec l’utilisateur / l’administrateur système en temps réel. Par exemple, la fonction expérimentale d’invite snapd tire parti de ce travail pour permettre aux utilisateurs d’exercer un contrôle direct sur les fichiers auxquels un snap peut accéder dans leur répertoire personnel. Enfin, au sein du noyau, AppArmor a acquis la capacité de gérer l’accès aux espaces de noms des utilisateurs ainsi qu’au sous-système io_uring, deux éléments qui, historiquement, ont fourni des surfaces d’attaque supplémentaires au noyau pour les applications malveillantes.
L’utilisation de la cryptographie pour les communications privées est l’épine dorsale de l’internet moderne. Le protocole Transport Layer Security assure la confidentialité et l’intégrité des communications internet depuis sa première normalisation en 1999 avec TLS 1.0. Dans Ubuntu 24.04 LTS, TLS 1.0, 1.1 et DTLS 1.0 sont tous désactivés de force (pour toutes les applications qui utilisent les bibliothèques openssl ou gnutls sous-jacentes) afin de s’assurer que les utilisateurs ne sont pas exposés à d’éventuelles attaques de rétrogradation de TLS qui pourraient exposer leurs informations sensibles.
Autres améliorations en vrac
Le noyau Linux 6.8 qui, entre autres, permet aux processeurs Intel ‘Meteor Lake’ d’atteindre les vitesses de boost annoncées, prend en charge les manettes Nintendo Switch Online, remédie aux problèmes de Wi-Fi sur certains ordinateurs portables AMD, améliore le comportement de zswap, et bien d’autres choses encore.
Dans le panneau Paramètres > Wi-Fi, vous trouverez une option permettant de générer un code QR afin de partager rapidement les informations d’identification du réseau sans avoir à copier/coller le véritable mot de passe dans des applications de chat (potentiellement non sécurisées), etc ;
L’application Horloges GNOME fait désormais partie du jeu de logiciels par défaut dans les installations par défaut (minimales) et étendues ;
Thunderbird est maintenant une application snap (et le DEB dans le repo est un paquet de transition qui installera la version snap ; lors des mises à jour, la version snap sera remplacée) ;
Pour les PC portable, la prise en compte de la batterie a été ajoutée et l’état « équilibré » par défaut favorise désormais la durée de vie de la batterie plutôt que les performances lorsque l’ordinateur fonctionne uniquement sur batterie.
Prise en charge les fichiers HEIF/HEIC
Prise en charge étendue du chiffrement des disques ;
Ubuntu 24.04 met à jour sa pile réseau sous-jacente vers Netplan 1.0. Cela permet de prendre en charge les connexions WPA2 et WPA3 simultanées, le VF-LAG de Mellanox, d’améliorer le VXLAN et de fournir l’API stable libnetplan1 ;
Optimisation de l’utilisation de la mémoire ;
Portage du moniteur système vers GTK 4 ;
Fonctionnalités avancées pour le système de fichiers ZFS ;
Dépréciation et désactivation des clés de signature du référentiel APT RSA 1024 bits ;
Amélioration de l’intégration des conteneurs et du cloud.
Pipewire est le serveur audio par défaut d’Ubuntu 24.04 LTS. PipeWire et PulseAudio étaient tous deux inclus dans Ubuntu 22.04 mais PipeWire ne gérait que la vidéo alors que maintenant (enfin, depuis 22.10) PipeWire gère toutes les tâches audio – et très bien, je pourrais ajouter. PipeWire offre de nombreux avantages, notamment une meilleure compatibilité matérielle, une rétrocompatibilité avec JACK, une utilisation réduite du processeur, une base de code moderne et plus agile, et une meilleure gestion des équipements audio Bluetooth modernes tels que les barres de son.
Comment passer à Ubuntu 24.04 LTS
Comme expliqué en introduction, la mise à niveau n’est pas encore disponible. Ainsi vous n’aurez pas de popup de mise à jour de la distribution et do-release-upgrade retourne qu’aucune nouvelle version LTS n’est disponible. Toutefois, si vous êtes pressé, vous pouvez mettre à jour Ubuntu via APT en suivant ce guide : Mettre à jour/à niveau Ubuntu en ligne de commande
Ubuntu 24.04 LTS (Noble Numbat) est la version avec un support étendu publiée en Avril 2024. Ce support s’étend sur 5 années, soit donc jusqu’en Juin 2029.
Cette version d’Ubuntu vient avec une version du noyau Linux 6.8, GCC est mis à jour vers la version 14, binutils vers 2.42, glibc vers 2.39 et Python en 3.12. La pile réseau par défaut est dorénavant NetPlan et PipeWire est le nouveau serveur de son.
Dans ce tutoriel, vous trouverez toutes les liens gratuits pour télécharger les images d’Ubuntu et ses dérivés Kubuntu, Lubuntu, Xubuntu.
Un fichier ISO est une image disque qui contient l’intégralité des données et la structure d’un disque optique, comme un CD ou un DVD. Monter un fichier ISO est un processus qui permet de simuler la présence d’un disque physique dans votre ordinateur, sans avoir besoin d’un disque réel. Vous pouvez faire cela très facilement sur Linux pour accéder au contenu du fichier image.
Dans ce tutoriel, je vous montre comment monter un fichier ISO sur Linux depuis un terminal ou en graphique.
Comment monter un fichier ISO sur Linux
En graphique
Faites un clic droit sur le fichier ISO puis Ouvrir avec Monteur d’image disque
Le lecteur virtuel est accessible depuis l’Explorateur, cliquez dessus
Selon la distribution Linux, le lecteur peut s’afficher dans les favoris, sur le bureau ou encore dans la barre des tâches ou lanceur
Pour retirer le lecteur virtuel du fichier image, faites simplement un clic droit dessus puis Démonter
En ligne de commandes depuis un terminal
La commande mount vous permet d’attacher (monter) des fichiers ISO à un point de montage particulier dans l’arborescence des répertoires. Les instructions de cette section devraient fonctionner sur n’importe quelle distribution Linux, y compris Ubuntu, Debian, Linux Mint ou Fedora.
Voici la syntaxe de la commande mount :
sudo mount -o loop <fichier ISO> /dossier/destination
On créé le répertoire /media/iso :
sudo mkdir /media/iso
Puis par exemple, pour monter le fichier VBoxGuestAdditions_7.0.18.iso dans /media/iso :
sudo mount -o loop ~/Téléchargements/VBoxGuestAdditions_7.0.18.iso /media/iso
Vous vérifier que le fichier ISO est bien monté en utilisant la commande. Vous devez obtenir une ligne du type
/home/mak/Téléchargements/VBoxGuestAdditions_7.0.18.iso on /media/iso type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048,iocharset=utf8)
Enfin pour démonter le fichier ISO, utilisez la commande umount en indiquant le point de montage :
sudo umount /media/iso
Avec AcetoneISO
AcetoneISO est un programme libre et open-source qui permet de gérer et de manipuler des fichiers d’image disque tels que les fichiers ISO sous Linux. Il offre une interface graphique intuitive qui facilite diverses opérations sans nécessiter de commandes complexes en ligne de commande. De plus, vous pouvez convertir des formats ISO, audio ou encore graver des DVD-Rom.
Pour l’installer :
sudo apt install acetoneiso
Vous pouvez monter un fichier ISO manuellement ou encore gérer une base de données depuis un répertoire.
Si vous rencontrez des erreurs pour monter ou accéder à une partition NTFS d’un disque dur ou d’une clé USB sur Linux, vous pouvez réparer les erreurs avec l’utilitaire ntfsfix du paquet ntfs-3g.
Dans ce tutoriel, je vous présente cet utilitaire et je vous montre comment l’utiliser à travers des exemples.
Qu’est-ce que ntfsfix
ntfsfix est un outil de réparation pour les systèmes de fichiers NTFS, généralement utilisé dans les environnements Linux. Le système de fichiers NTFS (New Technology File System) est le système de fichiers principal utilisé par les systèmes d’exploitation Microsoft Windows.
Cet outil fait partie du paquet ntfs-3g, un logiciel libre qui permet aux systèmes d’exploitation basés sur Linux de lire et d’écrire sur des systèmes de fichiers NTFS.
Les principales fonctions incluent :
Réparer des erreurs mineures : ntfsfix peut résoudre certaines erreurs mineures du système de fichiers NTFS, ce qui permet à un système Linux d’accéder correctement aux partitions NTFS.
Effacer les journaux d’erreurs : Il supprime les journaux d’erreurs marqués comme “bad” (mauvais), ce qui peut aider à résoudre certains problèmes.
Configurer pour une vérification complète par Windows : ntfsfix ne fait pas une réparation complète du système de fichiers NTFS. Au lieu de cela, il marque la partition NTFS pour une vérification par les outils de réparation natifs de Windows, tels que ntfsfix. Cela signifie qu’une fois que la partition NTFS est montée sur un système Windows, ce dernier effectuera une vérification complète du système de fichiers et pourra réparer toute erreur majeure.
Il est important de noter que ntfsfix ne doit pas être considéré comme un outil de réparation complet pour les systèmes de fichiers NTFS. Il est principalement conçu pour permettre l’accès immédiat à une partition NTFS depuis un environnement Linux, mais pour une réparation complète, il est recommandé d’utiliser les outils natifs de Windows.
Comment utiliser ntfsfix sur Linux
Sur les distributions Linux à base de Debian, Ubuntu, Mint, avec APT :
sudo apt-get install ntfs-3g
Pour les distributions Linux de type Fedora / Redhat :
Pour effectuer une simulation où ntfsfix n’écrit rien mais montre seulement ce qui aurait été fait, utilisez l’option -n ou –no-action. Remplacez /dev/sda4 par le lecteur de disque :
sudo ntfsfix -n /dev/sda4
Après cela, vous pouvez lancer la réparation sans option :
sudo ntfsfix /dev/sda4
ntfsfix dispose d’une autre option utile -b ou –clear-bad-sectors pour effacer la liste des secteurs défectueux. Cette fonctionnalité est particulièrement utile après le clonage d’un ancien disque contenant des secteurs défectueux sur un nouveau disque.
sudo ntfsfix -b /dev/sda4
De plus, ntfsfix permet d’effacer le drapeau de volume sale si le volume peut être fixé et monté. Vous pouvez invoquer cette fonctionnalité en contournant l’option -d comme indiqué.
sudo ntfsfix -d /dev/sda4
Remarque : ntfsfix ne peut réparer que certaines erreurs de partition NTFS. S’il échoue, chkdsk réussira probablement. Si Windows est installé, vous pouvez également charger Windows et exécuter son programme de vérification des disques, chkdsk.
Vous utiliser Linux et vous ne parvenez pas à monter une partition NTFS (New Technology File System). Cela peut se produire sur une partition de disque spécifique ou une clé USB. En général vous rencontrez une erreur mount et impossible d’accéder aux fichiers de la partition de disque ou clé USB : mount: wrong fs type, bad option, bad superblock, Failed to mount ou $MFTMirr does not match $MFT (record 3).
Dans ce tutoriel, je vous donne toutes les solutions pour résoudre les problèmes pour monter une partition NTFS sur Linux.
Pourquoi Linux ne parvient pas à monter une partition NTFS
Voici les principales raisons qui peuvent faire que vous rencontriez des problèmes pour accéder à un disque en NTFS sur Linux :
Le système de fichiers NTFS est endommagé
La partition de disque est corrompu. Par exemple elle est passée en RAW
Le disque présente un problème matériel, comme une corruption de disque
Un autre cas courant est que le système de fichiers n’est pas propre et doit être vérifié. Dans ce cas là, mount peut renvoyer l’erreur suivant :
$MFTMirr does not match $MFT (record 3). Failed to mount '/dev/sda1': Erreur d'entrée/sortie NTFS is either inconsistent, or there is a hardware fault, or it's a SoftRAID/FakeRAID hardware. In the first case run chkdsk /f on Windows then reboot into Windows twice. The usage of the /f parameter is very important! If the device is a SoftRAID/FakeRAID then first activate it and mount a different device under the /dev/mapper/ directory, (e.g. /dev/mapper/nvidia_eahaabcc1). Please see the 'dmraid' documentation for more details.
Nautilus ou autre explorateur de fichier peuvent aussi afficher une erreur
Impossible d'accéder à l'emplacement error mounting - wrong fs type, bad option, bad superblock
Comment résoudre les erreurs NTFS sur Linux
Faire un chkdsk (si Windows est disponible)
Si vous avez une installation Dual-boot (sinon passez au paragraphe suivant), vous pouvez utiliser l’utilitaire internet de Windows chkdsk (check disk). Comme son nom l’indique, il permet de réparer les erreurs du système de fichiers.
Redémarrez sous Windows
Sur votre partition de disque ou clé USB : faites un clic droit > Propriétés
Onglet Outils
Puis cliquez sur Vérifier
Il est aussi possible de lancer la commande depuis l’invite de commandes :
Si Windows n’est disponible, vous pouvez utiliser l’utilitaire de réparation NTFS de Linux nommé ntfsfix. Notez qu’il est réputé pour être moins performant que chkdsk mais il peut résoudre les problèmes mineurs.
Installez la suite d’utilitaires NTFS pour Linux :
sudo apt-get install ntfs-3g
Puis utilisez la commande suivante en spécifiant la lecteur de disque :
sudo ntfsfix /dev/sdaXX
Pour vérifier et réparer les secteurs défectueux, ajoutez l‘option -b. Pour effacer l’indicateur de volume sale, utilisez l’option -d :
sudo ntfsfix -b -d /dev/sda6
Monter la partition de disque manuellement
Si aucune des étapes ci-dessus n’a fonctionné, vous pouvez essayer de monter manuellement la partition. Ouvrez une fenêtre de terminal et tapez :
sudo mount -t ntfs /dev/sdXY /mnt
Remplacez /dev/sdXY par votre propre nom de périphérique ou l’emplacement de votre disque dur, et choisissez n’importe quel répertoire comme point de montage (dans ce cas, mon exemple utilise “/mnt”). Il est essentiel de garder à l’esprit que ces étapes ne peuvent réparer que quelques types d’erreurs NTFS.
Dans certains cas, la récupération d’une partition NTFS défectueuse peut nécessiter un formatage ou une restauration à partir de sauvegardes. Il est essentiel de toujours effectuer des sauvegardes régulières pour éviter de perdre des données importantes.
Vérifier les secteurs défectueux à l’aide de smartmontools
Si votre disque dur présente des secteurs défectueux, cela peut entraîner l’erreur “NTFS Partition Failed to Mount” (Échec du montage de la partition NTFS). Vous pouvez utiliser smartmontools pour vérifier la présence de secteurs défectueux sur votre disque dur.
Une fois installé, vous pouvez exécuter la commande “smartctl” avec les options appropriées pour vérifier l’état de votre disque dur. Si des secteurs défectueux sont détectés, vous devez remplacer votre disque dur dès que possible.
Si les solutions précédentes ne permettent pas de résoudre l’erreur NTFS Partition Failed to Mount, essayez d’utiliser des outils tiers tels que TestDisk et Photorec. Ces outils puissants permettent de récupérer les partitions perdues ou endommagées, de réparer les tables de partition et de récupérer les données perdues.
TestDisk est un outil de ligne de commande qui peut être utilisé pour restaurer des partitions supprimées, résoudre des problèmes de table de partition et rendre les disques non amorçables à nouveau amorçables.
Photorec est un outil de récupération de fichiers qui permet de récupérer des fichiers perdus sur des disques endommagés ou formatés. Ces deux outils sont des logiciels libres et gratuits qui fonctionnent sur plusieurs plateformes, y compris Linux.
Git est un système de contrôle de version distribué, conçu pour suivre les modifications dans les fichiers et coordonner le travail sur ces fichiers entre plusieurs personnes
git clone est une commande Git utilisée pour créer une copie d’un dépôt distant sur votre machine locale. Elle télécharge essentiellement l’ensemble du dépôt, y compris tous ses fichiers, ses branches et l’historique des livraisons. Vous pouvez en avoir besoin pour récupérer un dépôt public sur GitHub ou si vous êtes un développeur pour obtenir une copie d’un projet.
Dans ce tutoriel, je vous explique comment utiliser la commande git clone.
Comment cloner un dépôt git
Voici la syntaxe générale de la commande git clone :
git clone <repository_URL>
Par exemple, si vous voulez cloner un dépôt hébergé sur GitHub, vous utiliserez :
git clone git://github.com/<nom dépôt>.git
Cette commande créera un nouveau répertoire sur votre machine locale avec le même nom que le dépôt et téléchargera tout son contenu dans ce répertoire.
Si vous souhaitez spécifier un nom de répertoire différent, vous pouvez le faire en l’ajoutant comme argument supplémentaire après l’URL du dépôt :
git clone <dépôt_URL> <nom_repertoire>
Comment cloner un dépôt, y compris ses sous-modules (récursif)
Un submodule (sous-module) est un référentiel Git intégré à un autre référentiel Git plus large. Lorsque vous clônez un référentiel qui contient des sous-modules, ces sous-modules sont initialement configurés pour pointer vers une version spécifique (commit) dans leur référentiel d’origine.
Si vous souhaitez cloner un dépôt git tout en clonant également ses sous-modules, vous devez ajouter l’option –recurse-submodules :
Si vous souhaitez cloner et mettre à jour les sous-modules à leur dernière révision, ajoutez la commande –remote-submodules. Celle-ci va mettre à jour les sous-modules d’un référentiel pour pointer vers les dernières révisions disponibles dans leurs référentiels distants. Cela signifie qu’au lieu de pointer vers une révision spécifique (commit) dans le même référentiel parent, les sous-modules pointeront vers les révisions les plus récentes de leur référentiel distant.
Pour cloner une branche spécifique avec Git, vous pouvez utiliser la commande git clone suivie de l’URL du référentiel, puis vous pouvez spécifier la branche que vous souhaitez cloner en utilisant l’option -b ou –branch suivi du nom de la branche.
Voici la syntaxe générale :
git clone -b <URL_du_référentiel>
Par exemple, si vous souhaitez cloner la branche develop d’un référentiel, vous pouvez utiliser la commande suivante :
Cela va cloner le référentiel et basculer automatiquement sur la branche develop après le clonage. Si vous ne spécifiez pas la branche à cloner, Git clonera automatiquement la branche par défaut, souvent master ou main , selon la configuration du référentiel.
Si vous avez déjà cloné le référentiel et que vous souhaitez basculer vers une branche spécifique après le clonage, vous pouvez utiliser la commande git checkout après avoir cloné le référentiel :
git clone https://github.com/utilisateur/nom_du_repos.git cd nom_du_repos git checkout
Cela va cloner le référentiel et basculer sur la branche spécifiée après le clonage.
Comment cloner un dépôt à distant par SSH
Vous pouvez aussi cloner un dépôt distant disponible par SSH. Voici la syntaxe générale :
Lorsque vous git clone, git fetch, git pull ou git push vers un référentiel distant à l’aide d’URL SSH, vous êtes invité à entrer un mot de passe et vous devez fournir la phrase secrète de votre clé SSH. Pour plus d’informations, consultez « Utilisation des phrases secrètes de clé SSH ».
Pour utiliser Windows dans Linux, vous avez la solution VirtualBox. Mais grâce à Dockurr, nouveau projet open source, vous pouvez exécuter Windows à l’intérieur d’un conteneur Docker sans avoir à franchir de nombreuses étapes. De plus, le conteneur fournit une connexion VNC et RDP notamment accessible par un simple navigateur internet. Enfin les performances sont bonnes grâce à l’accélération KVM (Kernel Virtual Machine).
Dans ce tutoriel, je vous guide pour exécuter Windows, Tiny11, Tiny10 dans un conteneur Linux (Docker) avec Dockurr.
Qu’est-ce que Dockurr?
Dockurr est un projet libre et gratuit qui permet d’exécuter des installations de bureau Windows client et Windows Server dans un environnement de conteneur Docker. Il vous permet également de le faire sur un hôte Docker Linux qui ne pourrait normalement exécuter que des conteneurs Linux. En utilisant l’accélération KVM, il vous permet d’exécuter des conteneurs Windows sur un hôte de conteneur Linux sans avoir besoin d’installer et de démarrer Docker Desktop ou d’autres problèmes de compatibilité qui sont typiques avec le mélange de systèmes d’exploitation entre Linux et Windows.
Il fournit également une connexion VNC au conteneur pendant le processus d’installation. Il vous permet également de vous connecter via le protocole de bureau à distance (RDP) à l’installation Windows exécutée dans Docker.
Quelles sont les configurations de distribution Windows prises en charge ?
Windows 11 Pro
Windows 10 Pro
Windows 10 LTSC
Windows 8.1 Pro
Windows 7 SP1
Windows Vista SP2
Windows XP SP3
Windows Server 2022
Windows Server 2019
Windows Server 2016
Windows Server 2012 R2
Windows Server 2008 R2
Tiny 11 Core
Tiny 11
Tiny 10
Installer la machine virtuelle à noyau (KVM)
Dans un premier temps, Docker doit être installé sur votre appareil en Linux. Si ce n’est pas le cas, vous pouvez consulter ce guide : Comment installer Docker sur Linux Ensuite, vous devez installer KVM (Kernel Virtual Machine) et qemu :
Exécutez la commande suivante à partir de la ligne de commande pour installer KVM. Assurez-vous d’être root ou de faire partie du groupe d’utilisateurs sudo :
Télécharger Dockurr dans un conteneur et lancer Windows dans un conteneur Docker
Après avoir installé KVM sur notre hôte Docker Linux, nous pouvons maintenant lancer le conteneur Docker appelé Dockurr, qui utilise l’isolation de KVM. Deux manières sont possibles, par docker run ou par docker compose.
La méthode docker run est la plus automatisé et rapide. Voici comment faire :
Dans mon cas, j’ai du passer la commande suivante pour autoriser les sockets Docker à être utilisé par les utilisateurs Linux
sudo chmod 666 /var/run/docker.sock
Vous pouvez utiliser la commande docker run à partir de l’interface de commande de docker pour exécuter le conteneur :
docker run -it --rm --name windows -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows
La méthode par docker compose vous permet de modifier le fichier de configuration si vous souhaitez installer une autre version de Windows ou modifier la configuration du réseau (voir fin de ce guide). Voici comment faire :
Cloner le dépôt Git :
git clone https://github.com/dockur/windows.git
Modifiez le fichier compose.yml si besoin (voir plus bas)
Puis exécutez le conteneur :
cd windows
docker-compose up -d
L’image de Windows se télécharge puis l’installation de l’OS s’effectue.
Après avoir utilisé les commandes ci-dessus pour installer la solution Dockurr, vous pouvez vous connecter au conteneur sur votre hôte de conteneur en vous connectant à votre hôte de conteneur dans un navigateur sur le port 8006 pour l’accès à l’interface utilisateur.
Lorsque vous démarrez la configuration de conteneur par défaut, elle tire une image Docker Windows 11. Notez l’exemple de configuration Docker compose ci-dessous :
Ensuite une phase d’extraction du fichier win11x64.esd
Puis l’image de Windows 11 est construire
Ensuite qemu exécute l’installeur de Windows 11, la copie de fichiers s’effectuent
Une fois l’installation terminée, l’utilisateur se connectera automatiquement en utilisant le nom d’utilisateur docker
Voila, Windows s’exécute dans un conteneur Docker.
Ici nous utilisons le navigateur internet pour se connecter via VNC, mais vous pouvez aussi prendre la main sur Windows par RDP, avec par exemple le bureau à distance. Le port utilisé est celui par défaut, à savoir le port 3389.
Exécuter différentes images du système d’exploitation Windows dans Docker
Comme mentionné en introduction, plusieurs versions de Windows sont supportés. Par défaut, c’est Windows 11 qui est installé, mais vous pouvez modifier la partie suivante du fichier compose.yml pour changer la version de Windows :
environment: VERSION: "win11"
Vous pouvez utiliser les désignateurs suivants dans la variable d’environnement pour indiquer la version de Windows que vous souhaitez lancer (win11, win10, ltsc10, win7, etc.) dans la liste d’informations ci-dessous :
Valeur
Description
Source
Transfert
Taille
win11
Windows 11 Pro
Microsoft
Rapide
6,4 Go
win10
Windows 10 Pro
Microsoft
Rapide
5,8 Go
ltsc10
Windows 10 LTSC
Microsoft
Rapide
4,6 Go
win81
Windows 8.1 Pro
Microsoft
Rapide
4,2 Go
win7
Windows 7 SP1
Bob Pony
Moyen
3,0 Go
vista
Windows Vista SP2
Bob Pony
Moyen
3,6 Go
winxp
Windows XP SP3
Bob Pony
Moyen
0,6 Go
2022
Windows Server 2022
Microsoft
Rapide
4,7 Go
2019
Windows Server 2019
Microsoft
Rapide
5,3 Go
2016
Windows Server 2016
Microsoft
Rapide
6,5 Go
2012
Windows Server 2012 R2
Microsoft
Rapide
4,3 Go
2008
Windows Server 2008 R2
Microsoft
Rapide
3,0 Go
core11
Tiny 11 Core
Archive.org
Lent
2,1 Go
tiny11
Tiny 11
Archive.org
Lent
3,8 Go
tiny10
Tiny 10
Archive.org
Lent
3,6 Go
Les versions de Windows supportées par Dockurr
Outre les versions de Windows que vous pouvez installer par défaut, vous pouvez également utiliser des images personnalisées pour vos supports Windows. Il suffit de définir l’emplacement web de l’ISO personnalisée de Windows comme suit :
Vous avez la possibilité de modifier la configuration de l’hôte Windows.
Configurer le réseau
Par défaut, les conteneurs utilisent un réseau ponté qui utilise l’adresse IP de l’hôte Docker. Cependant, selon les détails de la documentation. Si vous souhaitez connecter vos conteneurs Windows à un réseau spécifique en production, vous pouvez le faire avec une configuration supplémentaire. Vous pouvez changer cela manuellement :
Wayland est un protocole du serveur d’affichage pour Linux et Unix. Dans la plupart des distributions, il est utilisé par défaut à la place de X11. Mais si les pilotes propriétés NVIDIA sont installés, Linux peut revenir à Xorg.
Dans ce tutoriel, je vous donne plusieurs commandes pour vérifier si le bureau Linux est en Wayland ou Xorg.
Comment vérifier si le bureau Linux Wayland ou Xorg (X11)
Depuis le terminal
Ouvrez le terminal Ubuntu par la recherche d’application ou par le raccourci clavier CTRL+ALT+T. Plus de détails : Comment ouvrir terminal Ubuntu
Puis saisissez la commande suivante
echo $XDG_SESSION_TYPE
Cela retourne Wayland ou X11
Une alternative est la commande loginctl pour cibler le type de session :
Dans Linux, chaque application, outil ou fenêtre que vous voyez sur l’écran de votre ordinateur de bureau ou portable provient d’une technologie de serveur d’affichage. Depuis 1987, le standard est le serveur X, la version la plus récente étant X11. Xorg (parfois connu sous le nom de X.org) est l’implémentation open-source la plus populaire d’un serveur X sous Linux.
Mais Wayland fait de la concurrence à Xorg. Wayland a été développé pour créer une approche plus rationalisée qui utilise des processus modernes. Le développement de Wayland a commencé en 2013, et la première version alpha a été publiée en janvier 2021. Depuis 2013, le débat autour de Wayland et Xorg n’a cessé d’enfler.
Dans ce guide complet, je vous explique tout ce qu’il faut savoir sur Wayland, le serveur d’affichage pour Linux, les différences avec X11 et quel est le meilleur.
Qu’est-ce que Wayland
Wayland est un protocole de communication et un serveur d’affichage pour les systèmes Unix-like, principalement utilisé sur les systèmes Linux. Il a été développé comme une alternative au serveur d’affichage X11, qui était le standard de facto depuis de nombreuses années.
Le projet Wayland Display Server a été lancé par Kristian Høgsberg, développeur chez Red Hat, en 2008. Contrairement à X11, Wayland est conçu pour être plus rapide et réduire la latence. Il simplifie également la gestion des fenêtres et des événements d’entrée
Wayland se compose d’un protocole et d’une implémentation de référence appelée Weston. Le projet développe également des versions de GTK et de Qt qui rendent vers Wayland au lieu de X. La plupart des applications devraient prendre en charge Wayland par l’intermédiaire de l’une de ces bibliothèques sans modification de l’application.
Wayland est considéré comme le remplaçant du serveur X.Org vieillissant.
Comment fonctionne Wayland
Wayland est conçu de manière modulaire. Il sépare le serveur d’affichage (Wayland compositor) et les clients (applications), ce qui permet une meilleure isolation et une sécurité améliorée.
Le protocole Wayland suit un modèle client-serveur dans lequel les clients sont les applications graphiques qui demandent l’affichage de tampons de pixels sur l’écran, et le serveur (compositeur) est le fournisseur de services qui contrôle l’affichage de ces tampons. Un compositeur est un gestionnaire de fenêtres qui fournit une mémoire tampon hors écran pour chaque fenêtre. La mémoire tampon de la fenêtre contient une image ou d’autres effets graphiques tels qu’une animation, et l’écrit dans la mémoire de l’écran.
Le rendu est effectué par le client via EGL, et le client envoie simplement une requête au compositeur pour indiquer la région qui a été mise à jour. EGL (Embedded-System Graphics Library)est une interface de programmation d’applications (API) qui fournit un moyen standard pour les applications graphiques de créer et de gérer des contextes de rendu graphique. Elle fait le lien entre ses API de rendu, comme OpenGL ES ou OpenVG, et le système de fenêtrage du système d’exploitation sous-jacent.
La communication entre le client et le composeur se fait par IPC via l’espace noyau.
Wayland VS Xorg (X11) et pourquoi Wayland est meilleur
Tout comme Xorg, Wayland utilise aussi les technologies récentes du noyau Linux comme le DRI (Direct Rendering Infrastructure,), KMS (Kernel-based mode-setting), et GEM (Graphics Execution Manager), dans le but de fournir un serveur d’affichage minimal, léger et performant.
Mais Wayland priorise la performance et la sécurité. Il réduit la complexité de la communication entre les composants et permet aux applications d’interagir plus efficacement avec le serveur d’affichage. Dans la majorité des cas, le serveur X n’est plus qu’un intermédiaire qui introduit une étape supplémentaire entre les applications et le compositeur et une étape supplémentaire entre le compositeur et le matériel. Sous Wayland, les fonctions du serveur d’affichage et du gestionnaire de fenêtres sont combinées dans le compositeur Wayland correspondant. Le protocole Wayland permet au compositeur d’envoyer les événements d’entrée directement aux clients et au client d’envoyer l’événement d’endommagement directement au compositeur. Les clients effectuent le rendu localement et communiquent directement avec le compositeur.
Ainsi, l’application sait ce qu’elle veut rendre. Le rendu côté client réduit les étapes généralement associées au processus client/serveur traditionnel. Les applications dessinent la fenêtre dans laquelle elles vont s’exécuter et envoient ensuite leurs informations d’affichage à Wayland. Avec Wayland, le compositeur est le serveur d’affichage.
Wayland offre une base de code simplifiée, ce qui présente l’avantage supplémentaire de réduire le gonflement dû à des années de développement pour faire fonctionner Xorg au fur et à mesure des évolutions technologiques. Le passage à un rendu côté client augmente les temps de chargement et, dans la plupart des cas, offre une interface plus simple. Ainsi, Wayland supprime ces étapes supplémentaires et simplifie le rendu pour offrir des performances plus fluides et réactives que X11.
Du point de vue de la sécurité, Wayland montre une nette amélioration de l’isolation au niveau de l’interface graphique. De par sa conception, Xorg ne permet pas cette fonctionnalité. Xorg suppose que tous les programmes ne sont pas nuisibles. Lors de l’exécution de plusieurs applications graphiques, Xorg ne les isole pas les unes des autres. L’entrée de commande a le potentiel d’enregistrer les frappes de touches, par exemple, des processus pour de nombreuses applications. Wayland restreint les interactions entre les applications, limitant la capacité des applications malveillantes à affecter d’autres processus ou à intercepter des données sensibles.
Enfin Wayland offre une meilleure prise en charge des périphériques d’entrée, tels que les claviers, souris et écrans tactiles, en les intégrant plus étroitement dans le système graphique.
En résumé, Xorg est un intermédiaire qui crée des étapes supplémentaires entre les applications, le compositeur et le matériel. Wayland rationalise ce processus en éliminant l’étape du serveur X pour fournir un protocole plus moderne et plus cohérent que X11.
Quelles sont les limites et les problèmes de Wayland
Il y a plusieurs raisons pour lesquelles Xorg reste la version par défaut de Linux. Xorg est familier, car il est utilisé depuis plus de 30 ans. Cette longévité s’accompagne d’un bagage, car le codage et les ajouts rendent X trop lourd. Cependant, comparé à Wayland, Xorg est mieux conçu pour ajouter de nouvelles capacités ou fonctionnalités.
Les jeux vidéo et les applications graphiquement intenses conçues pour X11 ont tendance à mieux fonctionner sur Xorg. Au-delà de ces deux exemples, de nombreuses applications natives encore utilisées ont été écrites pour Xorg. Même sur les systèmes les plus récents, X et Xorg restent l’application de fenêtrage par défaut, bien que Wayland soit installé sur de nombreux systèmes. En ce qui concerne les jeux, des problèmes de déchirure d’écran, d’artefacts ou de problème de rafraîchissement sont connus.
Ainsi, l’adoption de Wayland prend du temps car il faut aussi réécrire les applications. Pour minimiser cela, Xwayland a été créé. Il s’agit d’un composant du système graphique Wayland qui agit comme un pont de compatibilité en permettant aux applications conçues pour X11 (l’ancien système d’affichage) de s’exécuter sur un serveur Wayland. Il facilite la transition vers Wayland en offrant une compatibilité avec l’immense catalogue d’applications existantes pour X11.
L’utilisation de certains pilotes propriétaires comme NVIDIA peuvent aussi poser des problèmes. Il existe plusieurs domaines dans lesquels le pilote NVIDIA ne présente pas les mêmes caractéristiques que X11 et Wayland. Cela peut être dû à des limitations du pilote lui-même, du protocole Wayland ou du compositeur Wayland spécifique utilisé. Au fil du temps, cette liste devrait s’alléger au fur et à mesure que les fonctionnalités manquantes seront implémentées à la fois dans le pilote et dans les composants en amont, mais ce qui suit reflète la situation à la date de publication de cette version du pilote. Notez que cela suppose un compositeur avec un support raisonnablement complet pour les extensions du protocole Wayland liées au graphisme. La liste des limitations est fournie par NVIDIA dans ce lien : https://download.nvidia.com/XFree86/Linux-x86_64/515.65.01/README/wayland-issues.html
Wayland dans les distributions Linux
La prise en charge de Wayland peut varier en fonction de l’environnement de bureau et des pilotes graphiques utilisés. Certains environnements de bureau, comme KDE Plasma, prennent en charge Wayland, mais leur adoption peut être moins répandue que celle de GNOME. Il est possible souvent proposer en option lors de l’ouverture du bureau Linux mais pas forcément par défaut.
Ainsi, il en résulte que l’adoption de Wayland varie beaucoup selon la distribution Linux. Voici un tour d’horizon :
Fedora : Fedora a été l’une des premières distributions à adopter Wayland par défaut, notamment avec Fedora 25 et les versions ultérieures. GNOME, l’environnement de bureau par défaut de Fedora, fonctionne sur Wayland.
Ubuntu : Bien qu’Ubuntu utilise toujours Xorg par défaut dans ses versions stables, il offre la possibilité d’utiliser Wayland avec l’environnement de bureau GNOME. Ubuntu 17.10 utilise Wayland par défaut. Dans Ubuntu 24.04, Wayland est par défaut pour les utilisateurs des pilotes NVIDIA propriétaires
Arch Linux : Arch Linux propose Wayland dans ses dépôts officiels et prend en charge plusieurs environnements de bureau qui fonctionnent sur Wayland, tels que GNOME, KDE Plasma, et Sway (un gestionnaire de fenêtres Wayland inspiré de i3)
openSUSE : openSUSE propose une prise en charge de Wayland avec son environnement de bureau GNOME. Il est possible d’utiliser Wayland avec d’autres environnements de bureau également, mais GNOME est le plus largement pris en charge
Debian : Debian propose la prise en charge de Wayland dans ses dépôts officiels. Bien qu’il ne soit pas activé par défaut dans la version stable, il est disponible en tant qu’option pour les utilisateurs qui souhaitent l’utiliser avec des environnements de bureau tels que GNOME et KDE Plasma
Endless OS : Endless OS, une distribution Linux axée sur l’éducation et les pays en développement, utilise Wayland par défaut avec son propre environnement de bureau basé sur GNOME appelé EOS Shell
Wayland est est configuré par défaut pour la plupart des cas d’utilisation dans RHEL 8, suivi de la dépréciation du serveur Xorg dans RHEL 9, avec l’intention de son retrait dans une future version. Dans RHEL 10, le serveur Xorg et d’autres serveurs X (à l’exception de Xwayland) sont supprimés
Xorg et Wayland sont deux protocoles graphiques utilisés dans les systèmes d’exploitation Unix-like, principalement sur les distributions Linux, pour gérer l’affichage graphique et les interactions avec l’utilisateur.
La plupart des distributions Linux utilisent par défaut Xorg. Toutefois, lorsque vous installez les pilotes NVIDIA propriétaires ou pour différentes raisons, le gestionnaire de fenêtres peut être Xorg.
Voici comment passer de Xorg à Wayland notamment sur Ubuntu et Debian.
Comment passer sur Wayland dans Linux
Par défaut, Ubuntu utilise Wayland. Toutefois dans le cas où les pilotes propriétaires de NVIDIA sont installés sur Ubuntu, ce dernier repasse sous Xorg (X11). Cela fonctionne sur Ubuntu 22.04 ou Ubuntu 23.10. Veuillez noter que Ubuntu 24.04 LTS devrait être par défaut sur Wayland même si les pilotes NVIDIA propriétaires sont installés.
Voici comment activer Wayland avec les pilotes NVIDIA sur Linux :
Avant de passer sur Wayland, si vous avez une carte graphique NVIDIA, je vous conseille d’installer les pilotes version 550, cela règle beaucoup de problème. Suivez ce guide : Installer les pilotes NVIDIA sur Ubuntu (propriétaire)
Installez la librairies d’implémentation en cours d’une bibliothèque EGL (Embedded-System Graphics Library) pour la plate-forme externe pour Wayland :
sudo apt install libnvidia-egl-wayland1
Puis éditez le fichier de configuration GRUB :
sudo nano /etc/default/grub
Repérez la ligne GRUB_CMDLINE_LINUX et éditez pour ajouter la configuration suivante :
GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1"
Puis mettez à jour la configuration GRUB :
sudo update-grub
Pour que l’hibernation et mise en veille prolongée fonctionne correctement, il faut activer certaines options. Toutefois le fichier de configuration peut être différents d’une distribution Linux à l’autre
Sur Ubuntu, éditez le fichier /etc/modprobe.d/nvidia-graphics-drivers-kms.conf
Sur Debian, modifiez le fichier /etc/modprobe.d/nvidia-power-management.conf
options nvidia NVreg_PreserveVideoMemoryAllocations=1 NVreg_TemporaryFilePath=/tmp/tmp-nvidia options nvidia-drm modeset=1 'article sur les problèmes rencontrés options nvidia NVreg_UsePageAttributeTable=1 options nvidia NVreg_RegistryDwords="OverrideMaxPerf=0x1"
Redémarrez l’ordinateur pour prendre en compte les modifications
sudo reboot
Sur l’écran de verrouillage, cliquez sur l’utilisateur
Puis en bas à droite, cliquez sur l’icône roue crantée puis sélectionnez Wayland (ici il s’agit de l’écran de verrouillage d’Ubuntu)
Pour vérifier que le bureau de Linux est bien en Wayland :
echo $XDG_SESSION_TYPE
Si Wayland n’apparaît pas dans la liste, suivez le paragraphe suivant pour l’activer.
Le display manager de GNOME (GDM) donne la possibilité de choisir le gestionnaire de fenêtres que vous pouvez utiliser.Vous pouvez très bien activer ou désactiver Wayland dans GNOME. Voici comment faire :
Éditez le fichier de configuration de GDM :
sudo nano /etc/gdm3/custom.conf
Pour forcer l’activation de Wayland dans gnome, positionnez l’option suivante sur True
WaylandEnable=true
Pour forcer la désactivation de Wayland :
WaylandEnable=false
Puis relancez GDM :
sudo systemctl restart gdm3
Vous devriez pouvoir choisir Wayland au démarrage de la session GNOME
Pourquoi passer de X11 à Wayland
Plusieurs raisons peuvent vous pousser à utiliser Wayland à la place de Xorg. Premièrement, Xorg n’est plus maintenu et vous expose à des problèmes de sécurité. Ce dernier étant un projet de 1980. Wayland a été lancé afin de proposer un gestionnaire de fenêtre plus moderne, notamment Wayland élimine le modèle client-serveur et permet aux applications d’interagir directement avec le serveur d’affichage. De plus, Wayland est projet actif, il propose des fonctionnalités qui n’existent pas sur X11. Dans mon cas, les performances sont vraiment meilleures sur Wayland, l’affichage est beaucoup plus réactif. C’est aussi le cas dans les jeux.
Quels sont les problèmes connus entre Wayland et les pilotes propriétaires NVIDIA
Le support de Wayland n’est pas encore totale, de plus certaines technologies ne sont pas encore supportés. Ainsi, des bugs existent.
Les fenêtres en plein écran des jeux et applications rencontrent des problèmes d’affichage. Certaines parties de la fenêtre sont noires, contiennent des artefacts, clignotements ou encore des bandes horizontales passent de haut en bas révélant un problème de rafraîchissement. Il existe une discussion à ce sujet : https://gitlab.freedesktop.org/xorg/xserver/-/issues/1317 Vous pouvez tenter d’ajouter MUTTER_DEBUG_FORCE_EGL_STREAM=1 dans /etc/environment et relancez la session GNOME. Toutefois, il faut savoir que cela risque de poser des problèmes de chargement des jeux mais surtout provoquer des baisses de performances. Dans mon cas, la mise à jour des pilotes NVIDIA en 550 a réglé le problème.
De plus, j’ai rencontré des erreurs suivantes qui semblent être à l’origine de freez :
[drm:nv_drm_atomic_commit [nvidia_drm]] ERROR [nvidia-drm] [GPU ID 0x00000 100] Flip event timeout on head 0
D’où la désactivation de fbdev (framebuffer Device – toujours en expérimental) depuis /etc/modprobe.d/nvidia-graphics-drivers-kms.conf :
options nvidia-drm.fbdev=0
En outre, la fréquence adaptative de l’écran (VRR/GSync) n’est pas encore tout à fait disponible. Les pilotes NVIDIA propriétaires supportent la fonctionnalité depuis la version 545. Toutefois, ce n’est pas encore le cas des gestionnaire de fenêtres. Par exemple, Gsync est en expérimentale sur la version 46 de GNOME (disponible à partir d’Ubuntu 24.04). La documentation ArchLinux en parle : https://wiki.archlinux.org/title/Variable_refresh_rate#Limitations
Parmi les commandes basiques Linux, on trouve la commande more. Elle est principalement utilisée pour afficher le contenu d’un fichier page par page, ce qui permet de lire facilement des fichiers volumineux sans être submergé par un mur de texte. Elle dispose aussi de fonction de recherche.
Dans ce tutoriel, je vous montre comment utiliser la commande more sur Linux avec des exemples.
Quelle est la syntaxe de la commande more
Voici la syntaxe :
more [-options] [-num] [+/pattern] [+numligne] <nom fichier>
Et la liste des options
Option
Description
-c ou –no-color
Désactive le surlignage en couleur de la sortie.
-n ou –line-numbers
Afficher les numéros de ligne au début de chaque ligne.
-d
L’invite est “[Appuyez sur l’espace pour continuer, sur ‘q’ pour quitter.]”, et affiche “[Appuyez sur ‘h’ pour les instructions.]” au lieu de sonner la cloche lorsque l’on tente de faire défiler le fichier au-delà de la fin.
-l
Ignore le saut de page (^L).
-f
Compte les lignes logiques, plutôt que les lignes d’écran (c’est-à-dire que les lignes longues ne sont pas pliées).
-p
Fait défiler un écran complet.
-c
Efface l’écran avant d’afficher la page.
-s
Réduit le nombre de lignes vierges en une seule.
-u
Mode texte plein en supprimant la mise en forme gras et souligné.
Les options de la commande more
Comment utiliser la commande more sur Linux
Par défaut, plus de commandes sous Linux affichent le fichier une page à la fois.
Vous pouvez naviguer dans le fichier à l’aide de différentes commandes :
Commande
Action
ESPACE ou f
Afficher les x lignes de texte suivantes. La valeur par défaut est la taille actuelle de l’écran.
Entrée
Afficher les x lignes de texte suivantes. La valeur par défaut est 1. L’argument devient la nouvelle valeur par défaut.
d ou ^D
Défiler de x lignes. La valeur par défaut est la taille de défilement actuelle, initialement 11.
s
Sauter x lignes de texte. La valeur par défaut est 1.
f
Sauter x lignes de texte. La valeur par défaut est 1.
b ou ^B
Revenir à x lignes de texte vers l’arrière. La valeur par défaut est 1. Ne fonctionne qu’avec les fichiers, pas avec les pipes.
‘
Aller à l’endroit où la dernière recherche a commencé.
=
Affiche le numéro de la ligne en cours.
q ou Q
Quitter
Les raccourcis clavier pour naviguer dans la fenêtre more
Recherche dans un fichier
La commande more vous permet également de rechercher une chaîne de caractères spécifique dans un fichier. Cette fonction est particulièrement utile lorsque vous avez affaire à des fichiers volumineux et que vous recherchez des informations spécifiques. Pour ce faire, vous pouvez utiliser le ‘/’ suivi de la chaîne de caractères que vous recherchez.
Voici un exemple :
Dans cet exemple, la commande “more” affiche le contenu de monfichier.txt à partir de la première ligne contenant la “chaîne de recherche”.
more +/"chaîne de recherche" monfichier.txt
Vous pouvez également utiliser des expressions régulières avec l’option /pattern pour rechercher des motifs plus complexes. Par exemple, pour rechercher toutes les lignes commençant par le mot “error”, vous pouvez utiliser la commande suivante :
more /^error/ /var/log/syslog
Il ne s’agit là que de quelques exemples d’utilisations avancées de la commande ‘more’. Comme vous pouvez le constater, ‘more’ est un outil puissant pour visualiser et naviguer dans les fichiers sous Linux. Cependant, comme tout outil, il a ses avantages et ses inconvénients, et son utilisation dépend des exigences spécifiques de la tâche à accomplir.
Visualiser plusieurs fichiers
L’une des fonctions les plus puissantes de la commande more est la possibilité d’afficher plusieurs fichiers de manière séquentielle. Par exemple, si vous avez trois fichiers texte – fichier.txt, fichier2.txt et fichier3.txt – vous pouvez les afficher en séquence avec la commande suivante :
more fichier1.txt fichier2.txt fichier3.txt
Dans cet exemple, la commande “more” affiche d’abord le contenu du fichier1.txt. Lorsque vous aurez fini de visualiser le fichier1.txt, elle affichera le contenu du fichier2.txt, et ainsi de suite.
Pour passer au fichier suivant, appuyez sur :n. L’observateur se déplace alors au début du fichier suivant.
Pour reculer d’un fichier, appuyez sur :p. Cela permet de revenir au début du fichier précédent.
Vous pouvez bien entendu utiliser le caractère joker, par exemple pour visualiser tous les fichiers dictionnaires :
more /usr/share/dict/*
Afficher que X lignes par pages
Une autre option est utile est l’option -n suivi qui vous permet de définir le nombre de lignes à afficher par page. Par exemple pour n’afficher que 5 lignes par page d’un fichier :
more -n 5 fichier.txt
Ouvrir un fichier à la première occurrence d’une recherche
Pour ouvrir un fichier à un numéro de ligne, passez l’option + accompagnée d’un numéro de ligne. Par exemple pour ouvrir
Dans un tutoriel précédent, je présentais différentes commandes Linux (jobs, fg, …) afin de pouvoir exécuter des processus en arrière-plan. Mais à la fermeture du terminal, un signal SIGHUP (Signal Hang UP) est envoyé pour terminer tous les processus du shell. C’est là qu’intervient la commande disown qui permet de marquer un travail et donc un processus afin de ne pas lui envoyer ce SIGHUP pour qu’il puisse continuer à s’exécuter une fois le shell fermé. De plus, elle permet aussi de retirer chaque des travaux spécifiques de la table des tâches actives.
Dans ce tutoriel, je vous montre comment utiliser la commande disown de Linux.
Quelle est la syntaxe de la commande disown
Voici la syntaxe :
disown <options> <job-id>
Où :
<options> : Il existe plusieurs options, mais la plus courante est “-h”, qui indique au shell de ne pas envoyer de HUP (HangUP) lorsque le shell parent se termine.
<job-id> : L’identifiant du travail (job) que vous souhaitez dissocier du shell. Vous pouvez trouver l’identifiant du travail en utilisant la commande “jobs” dans le shell.
Comment utiliser la commande disown
Comment continuer à exécuter un travail après avoir quitté une invite shell en arrière-plan
Quelques rappels rapides concernant l’exécution de commandes sur Linux. Pour lancer une commande qui s’exécute en arrière plan, ajoutez le caractère & à la fin de la commande. Par exemple pour lancer le téléchargement d’un fichier avec wget en arrière-plan et l’ouverture d’un fichier avec vim :
Pour lister les travaux en cours, utilisez la commande jobs :
jobs -l
[1]- 226923 En cours d'exécution wget -O /dev/null -q http://bouygues.testdebit.info/10G.iso &
[2]+ 226940 Arrêté (via la sortie sur tty) vim /tmp/univers.txt
La commande wget est indiquée par “-“, ce qui signifie qu’elle deviendra la tâche active si la commande vim est interrompue
La commande vim est désignée par “+”, ce qui signifie qu’il s’agit d’une tâche active
Seulement, si vous fermez le terminal ou la session SSH, l’exécution de la commande s’arrête aussi car le système envoie un signal pour terminer toutes les commandes rattachées au shell. C’est là que la commande disown entre en jeu car elle permet de dissocier un processus du shell. Ainsi, si vous fermez le shell, son exécution continue.
Lorsque vous quittez le terminal de votre système, tous les travaux en cours sont automatiquement interrompus. Pour éviter cela, utilisez la commande disown avec l’option -h :
disown -h <%jobID>
Dans notre exemple, nous voulons que la commande wget continue à fonctionner en arrière-plan. Pour éviter qu’elle ne se termine à la sortie, utilisez la commande suivante :
disown -h %1
Tous les travaux pour lesquels vous avez utilisé la commande disown -h continueront de fonctionner.
Autre exemple, imaginons que vous souhaitez exécuter une mise à jour du système avec apt-get en root en arrière-plan et qui ne s’arrête pas si la session se termine. Voici les commandes à utiliser :
sudo -i # Pour devenir root apt-get upgrade &> /root/system.update.log & # Mise à jour du système avec redirection de la sortie dans un fichier disown -h # Marquer apt-get pour que SIGHUP ne soit pas envoyé à la sortie exit # On quitte le shell root
Supprimer tous les travaux en cours avec la commande disown
Sans aucune option, chaque jobID est supprimé de la table des jobs actifs, c’est-à-dire que l’interpréteur de commandes bash utilise sa notion du job en cours qui est affiché par le symbole + dans la commande jobs -l :
disown
Pour supprimer tous les travaux en cours d’exécution, utilisez l’option -r :
disown -r
Pour supprimer tous les travaux, utilisez l’option -a :
disown -a
Suppression de travaux spécifiques
Pour supprimer un travail spécifique du tableau des travaux, utilisez la commande disown avec l’identifiant de travail approprié. L’ID du travail est indiqué entre parenthèses dans le tableau des travaux :
Dans notre exemple, si nous voulons supprimer la commande vim, nous devons utiliser la commande disown sur le job 2 :
Le sous-système Windows pour Linux (WSL) de Microsoft change la donne en offrant une expérience Linux complète au sein de Windows. Lorsqu’on utilise une distribution WSL, on peut avoir besoin de transférer des fichiers entre Windows et Linux. Ne vous inquiétez pas, accéder aux fichiers Windows depuis WSL et inversement est relativement simple.
Dans ce tutoriel, je vous donne toutes les étapes pas à pas pour y parvenir.
Comment transférer facilement des fichiers de Windows vers le WSL à l’aide de l’Explorateur de fichiers
Voici comment accéder aux dossiers de la distributions WSL dans Windows afin de pouvoir transférer des fichiers.
Ouvrez l’explorateur de fichiers et, dans la barre d’adresse, tapez \\wsl$ puis appuyez sur Entrée.
Ouvrez la distribution Linux avec laquelle vous travaillez
Naviguez dans l’arborescence des dossiers jusqu’à ce que vous atteigniez votre dossier personnel /home/<nom-utilisateur>
Cliquez avec le bouton droit de la souris sur le dossier contenant votre nom d’utilisateur et cliquez sur Épingler à l’accès rapide. Vous disposez maintenant d’un moyen pratique de naviguer vers votre dossier d’accueil WSL sur votre panneau de gauche
A partir de là, vous pouvez copier des fichiers vers ce dossier ou encore créer de nouveaux fichiers
Comment accéder facilement aux fichiers Windows à partir du WSL
Par /mnt
Si vous souhaitez accéder facilement aux répertoires des utilisateurs Windows dans WSL, vous pouvez tirer parti des liens symboliques de Linux. Depuis WSL, vous pouvez accéder à l’arborescence de Windows via /mnt/c.
Pour simplifier l’accès à vos fichiers personnels, vous pouvez créer un lien symbolique dans votre répertoire home. Voici comment faire :
Assurez-vous d’être dans votre répertoire personnel.
cd
Créez un répertoire. Appelons-le “winhome”.
mkdir winhome
Créez un lien symbolique vers votre dossier utilisateur Windows qui mène à ce nouveau répertoire.
ln -s /mnt/c/Users/<nom-utilisateur>/ ~/winhome
N’oubliez pas de remplacer <nom-utilisateur> par votre nom d’utilisateur Windows. L’affichage du répertoire winhome devrait maintenant montrer un lien symbolique réussi.
Après cela, vous pouvez accéder au dossier ~/winhome/<nom-utilisateur> qui vous donne accès à vos fichiers personnels
Si nous lançons un gestionnaire de fichiers dans WSL, nous pouvons voir l’arborescence de notre répertoire Windows depuis l’environnement Linux.
Lorsque l’on quitte le shell d’un système Linux, tous les processus en cours sont généralement interrompus ou bloqués. C’est là que la commande nohup peut vous être utile. Tous les processus exécutés à l’aide de la commande nohup ignoreront le signal SIGHUP (Signal Hang UP), même après avoir quitté l’interpréteur de commandes. Cela permet donc d’exécuter des commandes en arrière-plan sans qu’il soit arrêter si vous fermez le terminal ou la session SSH.
Dans ce tutoriel, je vous explique comment utiliser la commande Nohup de Linux.
Comment utiliser la commande Nohup sur Linux
Démarrage d’un processus en arrière-plan à l’aide de Nohup
Dans ce premier exemple, vous souhaitez lancer en arrière-plan le téléchargement d’un fichier iso avec la commande wget.
nohup wget http://exemple.com/monfichier.iso &
Cette commande utilise nohup pour lancer un processus wget afin de télécharger un fichier volumineux. En ajoutant & à la fin, la commande s’exécute en arrière-plan, ce qui permet d’utiliser le terminal pour d’autres tâches. Le processus se poursuit même si l’utilisateur se déconnecte, ce qui garantit que le téléchargement s’effectue sans surveillance. La commande vous indique le numéro du travail entre crochet sui par le PID du processus :
[1] 33186
Vous pouvez lister les travaux en arrière-plan à l’aide de la commande jobs :
jobs -l
Si le script ou la commande ne produit aucune sortie standard, cette sortie est écrite dans nohup.out et non dans le terminal. Pour vérifier la sortie, nous pouvons utiliser tail pour suivre les mises à jour effectuées dans le fichier.
tail -f nohup.out
Vérifiez toujours le fichier ‘nohup.out’ pour toute sortie ou erreur de votre commande.
Arrêter le processus en arrière-plan
Si vous souhaitez arrêter ou tuer le processus en cours, utilisez la commande kill suivie de l’identifiant du processus, comme suit
kill 33186
Comment rediriger la sortie de la commande nohup
Imagions le cas où vous souhaitez exécuter un script en arrière-plan, tout en récupérant la sortie dans un fichier. Cela est possible grâce aux redirections de sortie Linux.
nohup ./script.sh > output.log 2>&1 &
Dans cette exemple, la commande nohup exécute un script personnalisé (script.sh). La redirection de la sortie est utilisée ici (> output.log 2>&1) pour capturer à la fois la sortie standard et l’erreur standard dans un fichier nommé output.log, garantissant ainsi que toute sortie du script est sauvegardée pour un examen ultérieur. Le & à la fin exécute le processus en arrière-plan.
Lorsque vous vous déconnectez d’une session Linux, le système envoie un signal HUP (hangup) à tous les processus actifs associés au terminal. Ce signal indique aux processus de se terminer. Mais lorsque l’on administre un système Linux, il peut parfois être nécessaire d’exécuter des commandes en arrière-plan. Par exemple, car on a besoin de libérer le terminal pour exécuter une seconde commande. Dans d’autres cas, lorsque l’on prend la main à distance par SSH, il peut être nécessaire que l’exécuter d’un script continue après la fermeture de la session.
Dans ce tutoriel, je vous donne plusieurs solutions pour lancer des commandes en arrière plan sur Linux.
Comment exécuter des commandes et processus en arrière-plan sur Linux
Avec le caractère &
Ajoutez l’esperluette à la fin d’une commande pour placer la commande en arrière-plan. Voici un exemple où on télécharger un fichier en arrière-plan avec wget :
Toutefois, cela ne suffit pas, si vous souhaitez que l’exécution du processus perdure après l’arrêt du terminal ou de la session. En d’autres termes, si vous vous déconnectez de votre terminal, tous les travaux en cours seront interrompus. Pour éviter cela, vous pouvez passer l’option -h à la commande disown. Cette option marque chaque jobID pour que le SIGHUP ne soit pas envoyé au job si l’interpréteur de commandes reçoit un SIGHUP. La syntaxe est la suivante :
disown -h <job-id>
Imaginons que vous souhaitez exécuter une mise à jour du système avec apt-get en root en arrière-plan et qui ne s’arrête pas si la session se termine. Voici les commandes à utiliser :
sudo -i # Pour devenir root apt-get upgrade &> /root/system.update.log & # Mise à jour du système avec redirection de la sortie dans un fichier disown -h # Marquer apt-get pour que SIGHUP ne soit pas envoyé à la sortie exit # On quitte le shell root
La commande nohup de Linux est un outil puissant qui vous permet d’exécuter vos processus en arrière-plan. Elle est extrêmement utile lorsque vous souhaitez exécuter un processus qui prend beaucoup de temps et que vous ne voulez pas occuper votre terminal ou votre session pendant toute cette durée.
La commande screen est un gestionnaire de fenêtres plein écran qui multiplexe un terminal physique entre plusieurs processus. Elle vous permet d’exécuter plusieurs sessions de terminal dans une même fenêtre et de passer de l’une à l’autre sans effort.
Voici comment démarrer une nouvelle session nommée ‘nom_session” avec la commande screen :
screen -S nom_session
Pour reprendre la session, utilisez l’option -r en indiquant le nom de la session :
Tmux, abréviation de “terminal multiplexer”, est une autre commande qui vous permet d’exécuter plusieurs sessions de terminal dans une seule fenêtre. Elle est similaire à screen, mais offre plus de fonctionnalités et une interface plus moderne.
tmux new -s ma_session
Dans cet exemple, nous démarrons une nouvelle session tmux nommée ‘ma_session’. La sortie “[detached (from session ma_session)]” indique que la session est en cours d’exécution en arrière-plan.
Pour s’attacher à la session, utilisez la commande attach :