Outils pour utilisateurs

Outils du site


mint_customization_20_3

Checklist d'installation de Linux Mint 20.3 Mate

Cette page est une checklist personnelle et rapide pour l'installation de Linux Mint Mate 20.3. Objectifs:

  • Être rapidement opérationnel.
  • Avoir tout ce qu'il faut pour travailler.
  • Être en sécurité.
  • Avoir un système optimisé.

Notez qu'il s'agit d'une configuration du système qui est:

  • particulière à mon usage:
    • en l'occurrence desktop et non serveur
    • certaines choix sont bien spécifiques (comme l'utilisation de btrfs au lieu d'ext4)
  • rapide (contrairement à mes checklist précédentes, certains choix ne seront pas expliqués).
  • envisagée pour la réinstallation complète du système (pas d'une migration) (Je réinstalle généralement tout le système en gardant mon /home)

Copie d'écran du bureau Linux Mint 20.3 Mate en thème sombre.

Linux Mint 20.3 Mate ("Una") est dérivée d'Ubuntu 20.04 ("Focal Fossa", une LTS1) dont les mises à jour de sécurité sont assurées jusqu'en avril 2025). J'ai choisi la variante "Mate" de Linux Mint car je préfère le bureau MATE à Cinnanmon ou Xfce.

Pourquoi Linux Mint et plus Ubuntu Mate ? Parce que je trouve que les réglages par défaut du système et du bureau sont meilleurs dans Mint, ainsi que diverses autres choses (pas de snaps, RedShift installé par défaut…). Ce point développé en bas de cette page.

PS: J'installe cette version de Linux sur un Asus TUFA15 2021.


Partitionnement et installation

Notez que le bootloader (grub) est désormais installé dans une partition séparée. Et comme je suis en btrfs et que je vais aussi ajouter une partition VeraCrypt, je choisis donc le partitionnement suivant (le partitionnement sera réalisé par l'installeur de Linux Mint):

Partition Type Taille Utilisation
/dev/sda1 FAT32 64 Mo Partition EFI pour le démarrage. Obligatoire sur toutes les machines récentes. Cette partition doit avoir les flags boot et esp.
/dev/sda2 inconnu 64 Mo Le bootloader GRUB est installé dans cette partition. Elle apparaît comme type "inconnu" dans GParted. Elle doit avoir le flag bios_grub.
/dev/sda3 swap 8 Go Parcequ'il faut toujours une partition de swap (même si dans la pratique l'installation de zram fait qu'elle ne sera pratiquement jamais utilisée.). Je préfère une partition de swap plutôt que le fichier de swap qu'Ubuntu créé par défaut. Note: Je n'utilise jamais l'hibernation, je n'ai donc pas besoin que cette partition soit aussi grande que ma quantité de mémoire vive.
/dev/sda4 300 Go Cette partition abritera une partition chiffrée VeraCrypt. On la laisse vide et non formatée à l'installation.
/dev/sda5 btrfs Le reste Partition btrfs dans laquelle l'installeur de Linux Mint créé automatiquement 2 volumes btrfs: @ (monté sur /) et @home (monté sur /home)

Dans l'installeur, au moment de choisir le type d'installation:

  • Choisir "Autre chose"
  • Bouton "Nouvelle table de partition…" > Confirmer.
  • Bouton "+" pour créer chaque partition dans l'espace libre:
    • /dev/sda1 : 64 Mo de type "Partition système EFI"
    • /dev/sda2 : 64 Mo de type "Zone réservée pour le chargeur d'amorçage BIOS"
    • /dev/sda3 : 8192 Mo de type "espace d'échange («swap»)"
    • /dev/sda4 : 300 000 Mo, type "Ne pas utiliser la partition" (Je l'utiliserai avec VeraCrypt)
    • /dev/sda5 : Le reste, de type "système de fichier journalisé btrfs", Point de montage:"/"
  • "Zone où sera installé le programme de démarrage" : Choisir la partition biosgrub (ici: /dev/sda2)

Ce qui donne:

Dans la partition btrfs (/dev/sda5), l'installeur de Linux Mint créera automatiquement deux volumes btrfs:

  • @ qui sera monté sur /
  • @home qui sera monté sur /home

Notes concernant le partitionnement:

  • La seule particularité dans mon partitionnement, c'est la partition VeraCrypt (/dev/sda4). Vous pouvez l'ignorer et appliquer le reste.
  • La partition de swap est optionnelle. Si vous n'en créez pas, l'installeur crééera un fichier de swap dans la partition système (/). (Il est possible de supprimer ou retailler ce fichier de swap par la suite. Cela évite de retoucher au partitionnement.)
  • Si vous installez en btrfs, gardez les partitions EFI, biosgrub et btrfs (/). Votre / et /home seront tous les deux installés dans la partition btrfs.
  • Si vous installez en ext4, gardez les partitions EFI, biosgrub, mais vous devrez faire 2 partitions ext4 (une pour / et une pour /home) si vous voulez garder votre /home séparé.

Après installation, redémarrer.


Configuration après redémarrage

  • Décocher l'écran de bienvenue pour qu'il ne s'affiche plus.
  • Modification des options de montage (pour réduire les écritures disque):
    • Dans /etc/fstab (sudo xed /etc/fstab):
      • ajout des options noatime,nodiratime,compress=zstd aux deux points de montage btrfs (/ et /home)
      • ajout de:
        tmpfs /tmp tmpfs defaults,mode=1777,nosuid,size=4196M 0 0
        tmpfs /var/tmp tmpfs defaults,mode=1777,nosuid,size=4196M 0 0
    • Réduction de la propension à swapper:
      sudo bash -c 'echo "vm.swappiness=1" >> /etc/sysctl.conf'
    • Changer le délai d'attente de GRUB à 3 secondes au lieu de 30: Dans /etc/default/grub, ajouter la ligne GRUB_RECORDFAIL_TIMEOUT=3 puis faire sudo update-grub.
    • Rebooter pour prise en compte.
  • Compresser tous les fichiers qui ne sont pas compressés:
    sudo btrfs filesystem defragment -r -v -czstd /
  • Mises à jour et version du noyau:
    • Cliquer sur le gestionnaire de mises à jour (bouclier dans la barre de status):
      • Écran de bienvenue : Valider
      • Souhaitez-vous utiliser un miroir de dépôt local ? : répondre Non.
      • Basculement sur le noyau 5.13 (par défaut, Linux Mint est installé avec un noyau 5.4):
        • Menu Vue > Noyaux Linux : Un avertissement s'affiche.
        • Cocher "Ne plus afficher ce message" > Continuer.
        • Cliquer sur le noyau 5.13 le plus récent et cliquer "Installer".
    • Rebooter pour basculer sur le nouveau noyau.
    • Ré-ouvrir le gestionnaire de mise à jour:
      • Message "Une nouvelle version du gestionnaire de mises à jour est disponible" : Cliquer sur "Appliquer la mise à jour"
      • Cliquer sur le bouton Actualiser puis Installer les mises à jour
      • Menu Édition > Préférence > cocher "Ne montrer une icône dans la barre des tâches qu'en cas d'erreurs ou de mises à jour disponibles."
  • Mise en place des snapshots système: Menu > Tout les applications > Outils système > Timeshift
    • Type d'instantanné: BTRFS
    • Garder la partition par défaut > Suivant
    • Cocher Hebdomadaire, en garder 4
    • Garder Quotidien coché, en garder 7
    • Cliquer Suivant > Suivant > Terminer
    • Cliquer Créer pour créer un premier snapshot.
    • En cas de problème, dans l'écran de grub choisir "Options avancées…" > …(recovery mode) > "root (Passer sur une console administrateur)" et une fois dans la console taper timeshift --restore pour restaurer un ancien snapshot système.
  • Prise en charge des canaux Wifi français (sinon vous risquez d'avoir du mal avec les canaux 11/12/13): Dans le fichier /etc/default/crda: Modifier le paramètre: REGDOMAIN:
    REGDOMAIN=FR
  • Pour un Wifi plus stable, désactiver l'économie d'énergie du Wifi : Dans le fichier /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf changer wifi.powersave = 3 en wifi.powersave = 2 (source)
    • Vérification: Après redémarrage, sur batteries la commande iwconfig doit indiquer: Power Management:off
  • Installation/mise à jour optionnelle de pilotes propriétaires: Menu > Administration > Gestionnaire de pilotes > attendre et installer les pilotes marqués [Recommandé].
  • Pas besoin d'attendre que le réseau soit dispo pour afficher la fenêtre de login (fait gagner un peu de temps au démarrage):
    sudo systemctl disable NetworkManager-wait-online.service
  • Installer le script hosts-update de mise à jour de la liste de blocage DNS (blocage trackers/publicité) dans /etc/cron.weekly (voir Listes de blocage DNS):
    sudo curl "https://sebsauvage.net/wiki/doku.php?do=export_code&id=dns-blocklist&codeblock=0" -o /etc/cron.weekly/hosts-update
    sudo chmod +x /etc/cron.weekly/hosts-update
    sudo /etc/cron.weekly/hosts-update
  • Installation d'unbound en résolveur cache DNS local (Concrètement: Plus de 80% des requêtes DNS sont traitées en local par Unbound au lieu de sortir sur internet).
  • Apparence:
    • Menu > Préférences > Apparence
      • thème Mint-Y-Dark-Orange
    • Clic-droit sur la barre des tâches > Ajouter au tableau de bord :
      • Moniteur système (pour voir la charge CPU et occupation mémoire)
        • Clic-droit > Préférences ; Cocher Processeur et Mémoire ; Largeur du moniteur système:30 pixels ; Onglet Mémoire: Tampons et Caché en couleurs plus sombre.
      • Moniteur de changements de fréquence du processeur
      • Moniteur réseau (pour voir les débits réseau)
      • Hardware Sensors Monitor (pour voir la température de la machine et vitesse du ventilo)
        • Clic-droit > Preferences > onglet Capteurs > choisir les capteurs.
    • Clic-droit sur le menu dans la barre des tâches > Préférences > section Système > cocher Hauteur personnalisée et mettre 500.
    • Menu > Préférences > Paramètres du bureau > section Bureau : décocher Ordinateur et Dossier personnel
    • Terminal sur fond noir: Lancer un terminal.
      • Menu > Édition > Préférences du profil > onglet Couleurs > décocher Utiliser les couleurs du thème système > pour Palettes prédéfinies choisir Blanc sur noir.
    • Je suis sous Mate donc j'utilise une majorité d'applications Gtk, mais il m'arrive d'utiliser des application Qt. Pour avoir un look cohérent: Menu > Préférences > Paramètres de Qt5:
      • Onglet Apparence:
        • Style : Gtk2
        • Standard dialogs : Gtk2
      • Onglet Polices:
        • Général : Ubuntu Regular 12
        • Largeur fixe : Ubuntu Mono Regular 12
      • Onglet Thème des icônes : Mint-Y-Dark-Orange
  • Navigateur de fichiers : Menu > Outils système > Navigateur de fichiers
    • Onglet Vues : Afficher les nouveaux dossiers en utilisant: Vue en liste
    • Onglet Aperçu : Afficher les vignettes: Uniquement fichiers locaux
    • Onglet Supports : cocher Ne jamais demander ou démarrer des programmes à l'insertion d'un support
  • Limitation de charge de la batterie (Spécifique à mon Asus) : Comme l'ordinateur reste la plupart du temps branché sur secteur, je rallonge la durée de vie de la batterie en limitant sa charge à 60% :
    • Je créé le fichier /usr/local/bin/limit-battery-60 contenant:
      limit-battery-60
      #!/bin/bash
      sleep 10
      sudo bash -c "echo '60' > /sys/class/power_supply/BAT1/charge_control_end_threshold"
    • Lancement du script au démarrage du système: sudo crontab -e et j'ajoute la ligne:
      @reboot /usr/local/bin/limit-battery-60
    • Vérification:
      • 10 secondes après redémarrage, cat /sys/class/power_supply/BAT1/charge_control_end_threshold doit renvoyer 60.
      • Quand la batterie est en charge (<60%), la diode de batterie est en orange et cat /sys/class/power_supply/BAT1/status renvoie "Charging".
      • Quand la batterie ne charge plus(>=60%), la diode de batterie est en blanc et cat /sys/class/power_supply/BAT1/status renvoie "Unknown".
  • CPU Governor : Il existe plusieurs algorithmes pour faire varier la fréquence du processeur en fonction des besoins. Par défaut c'est le "ondemand" qui est utilisé (cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor), mais schedutil est plus efficace: Il monte plus vite en fréquence dès qu'il y a un besoin de puissance CPU, et il redescend aussi plus vite.
    • Créer le fichier /usr/local/bin/schedutil.sh contenant:
      #!/bin/bash
      sleep 10
      echo "schedutil" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
    • sudo chmod a+x /usr/local/bin/schedutil.sh
    • Il doit être lancé au démarrage: sudo crontab -e et ajouter:
      @reboot /usr/local/bin/schedutil.sh
  • Je ne veux pas que la machine se mette en veille quand l'écran est rabattu (sinon quand la machine redémarre écran rabattu cela met en veille le réseau et je ne peux plus m'y connecter à distance). Donc je créé le fichier /etc/systemd/logind.conf.d/do-not-suspend.conf contenant:
    HandleLidSwitch=lock
    HandleLidSwitchExternalPower=lock
    • Pour plus d'informations, faire man logind.conf
    • Note: Vous avez aussi des réglages d'économie d'énergie par utilisateur, mais ces réglages n'entrent en vigueur qu'après que vous vous soyez connecté⋅e. La modification de logind.conf permet de forcer ces réglages au niveau système.
  • NumLock actif sur l'écran de connexion: sudo apt install numlockx puis Menu Administration > Écran de connexion > onglet Options > cocher Activer le verrouillage du pavé numérique.
  • Éviter l'activation intempestive du touchpad pendant qu'on frappe: Menu > Préférences > Souris > onglet Pavé tactile > cocher Désactiver le pavé tactile lors de la frappe au clavier.
  • Non détaillé dans cette page: Les configurations spécifiques utilisateur (par exemple, configuration de Firefox).
  • Installation de mes scripts utilisateur Caja dans ~/.config/caja/scripts
  • Ajout de mes alias dans ~/.bash_aliases

Installation de logiciels depuis les dépôts

sudo apt install zram-config vlc ffmpeg geany geany-plugins htop btrfs-compsize pigz progress ncdu gparted gpart mtools udftools firejail secure-delete sshfs sshpass rclone-browser iotop nethogs kazam x2goclient x2goserver p7zip-rar zstd ttf-mscorefonts-installer fonts-larabie-* gimp gimp-data-extras gimp-plugin-registry gimp-texturize gimp-help-fr inkscape filezilla pngnq optipng libjpeg-turbo-progs qbittorrent doublecmd-gtk meld font-manager
  • zram-config : segments de mémoire compressés, réduisant à néant les écritures dans le swap disque.
  • vlc bien sûr, l'un des meilleurs lecteurs audio/vidéo.
  • ffmpeg : le couteau suisse de la conversion d'audio/vidéo
  • geany geany-plugins : Un éditeur de texte sympa avec un certain nombre de plugins.
  • htop : gestionnaire de tâche en terminal.
  • btrfs-compsize : Un outils btrfs pour voir l'état de compression et déduplication d'un dossier.
  • pigz : outils de compression rapide (pigz=gzip multicœurs)
  • progress : pour voir la progression des longs travaux sur les fichiers (progress -M)
  • ncdu : l'excellent outils en ligne de commande pour voir la taille des répertoires.
  • gparted gpart mtools udftools : bon outils de partitionnement de disques.
  • firejail : pour lancer des applications de manière isolée du système et de mon /home.
  • secure-delete : pour effacer certains supports.
  • sshfs : pour monter des répertoires distants.
  • sshpass : pour entrer automatiquement le mot de passe pour des sessions ssh.
  • rclone-browser : une GUI pour RClone. (RClone lui-même sera installé séparément)
  • iotop : pour voir quelles applications sont en train de faire plein d'accès disque.
  • nethogs: pour voir quelle application est en train de me bouffer la bande passante.
  • kazam : bon logiciel pour capturer l'écran sous forme de vidéo. (On peut aussi utiliser ffmpeg, VLC ou OBS Studio)
  • x2goclient x2goserver : excellent pour prendre la main sur une machine en LAN, ou ouvrir une session graphique à distance (passe par la connexion ssh).
  • p7zip-rar : pour gérer les fichiers rar (non installé par défaut).
  • zstd : Support des archives zst/zstd.
  • ttf-mscorefonts-installer : polices Microsoft (Arial, Times, etc.) pour faciliter l'échange de documents avec le monde Microsoft.
  • fonts-larabie-* : Polices de caractères nombreuses et amusantes.
  • gimp gimp-data-extras gimp-plugin-registry gimp-texturize gimp-help-fr : Car pour la retouche d'images Gimp n'est plus installé par défaut.
  • inkscape : Excellent logiciel de dessin vectoriel.
  • filezilla : le bon vieux client ftp/sftp qui s'accroche comme une teigne pour transférer.
  • pngnq optipng libjpeg-turbo-progs : outils d'optimisation des png et jpg (libjpeg-turbo-progs est déjà installé par défaut).
  • qbittorrent : Comme client BitTorrent, je préfère qBitTorrent à Transmission.
  • doublecmd-gtk : un gestionnaire de fichiers double-panneau pratique dans certains cas.
  • meld : Outil graphique de comparaisons de fichiers ou répertoires.
  • font-manager : Pratique pour explorer et essayer les polices de caractères installées.

Installation des pilotes d'imprimantes

Par défaut, il manque un certain nombre de pilotes d'imprimantes. En ajoutant ceci, vous pourrez imprimer directement sur la plupart des modèles:

sudo apt install --install-recommends printer-driver-all printer-driver-oki
  • Si votre imprimante est à la norme Mopria (voir la liste des modèles), vous n'aurez probablement rien à installer et configurer. Il vous suffira d'allumer votre imprimante et elle aparaîtra dans la liste des imprimantes.
  • Sinon pour ajouter une imprimante, Menu > Administration > Imprimantes > Ajouter > Imprimante réseau > dépliez Rechercher une imprimante et votre imprimante devrait apparaître au bout de quelques secondes. Il n'y a plus qu'à faire ajouter > Suivant/suivant/suivant…
    • Si Linux ne trouve pas le modèle de votre imprimante, allez chercher le fichier .ppd de cette imprimante sur le site du constructeur. Linux saura se débrouiller avec ce fichier.

Installation de Wine

Les dépôts de Linux Mint n'ont qu'une ancienne version, je préfère suivre les versions staging. Nous allons ajouter les dépôts de WineHQ:

sudo apt purge wine*
wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key
sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main'
sudo apt update
sudo apt install --install-recommends winehq-staging winetricks
WINEPREFIX=~/.wine WINEARCH=win32 wineboot    # Préparation du préfixe 32 bits
WINEPREFIX=~/.wine64 WINEARCH=win64 wineboot  # Préparation du préfixe 64 bits
  • De temps en temps, mise à jour de winetricks:
    sudo winetricks --self-update
  • et mise à jour de dxvk:
    winetricks -f dxvk

Voir aussi ma page sur Wine pour plus d'explications.

Suppression de logiciels

sudo apt purge transmission-gtk
  • transmission-gtk : Comme client BitTorrent, je préfère qBitTorrent.

Installation de logiciels hors dépôts

J'installe certains logiciels hors dépôts quand ils ne sont pas disponibles dans les dépôts ou quand la version dans les dépôts est trop ancienne. Inconvénient : Ils ne seront pas mis à jour automatiquement.

  • Ulauncher : un lanceur d'application pratique (que je trouve plus sympa que Kupfer):
  • Shutter, un bon petit logiciel de capture d'écran avec retouche (oui le projet est à nouveau vivant):
    sudo add-apt-repository ppa:shutter/ppa
    sudo apt-get update
    sudo apt install shutter
  • BorgBackup: Excellent logiciel de backup (voir cette page).
    sudo curl -L https://github.com/borgbackup/borg/releases/latest/download/borg-linux64 -o /usr/local/bin/borg
    sudo chmod a+rx /usr/local/bin/borg
  • RClone: Excellent logiciel de synchronisation/transfer depuis/vers de multiples types de clouds (y compris NextCloud).
  • jdupes pour faire de la déduplication btrfs.
    • Télécharger la release la plus récente (Source code .tar.gz) sur https://github.com/jbruchon/jdupes/releases et décompresser
    • Dans le répertoire, lancer: make CFLAGS_EXTRA=-DENABLE_DEDUPE (ce flag active la compilation avec l'option déduplication, utile pour l'option -B avec btrfs).
    • puis:
      sudo cp jdupes /usr/local/bin/jdupes
      sudo chmod a+rx /usr/local/bin/jdupes
  • czkawka, le logiciel de recherche de fichiers en double, images similaires (et autres) le plus rapide au monde.
    • sudo curl -L https://github.com/qarmin/czkawka/releases/latest/download/linux_czkawka_gui -o /usr/local/bin/cz
      sudo chmod a+rx /usr/local/bin/cz
    • Lancement par cz (et éventuellement ajout dans le menu : clic-droit > Éditer le menu)
  • yt-dlp (successeur de youtube-dl, pour télécharger des vidéos de centaines de sites web):
    sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
    sudo chmod a+rx /usr/local/bin/yt-dlp
    • Pour le mettre à jour, faire de temps en temps:
      sudo yt-dlp -U

Installations/configurations complémentaires

Installation et configuration du serveur ssh et fail2ban

  • sudo apt install openssh-server fail2ban
  • Changement du port par défaut (22) du serveur ssh:
    sudo bash -c 'echo "Port 57222" >> /etc/ssh/sshd_config.d/custom.conf'
  • Redémarrer le service:
    sudo service ssh restart
  • Protection du serveur ssh contre les attaques brute-force: Créer le fichier /etc/fail2ban/jail.local:
    jail.local
    [sshd]
    enabled = true
    port = 57222
    filter = sshd
    logpath = %(sshd_log)s
    backend = %(sshd_backend)s
    maxretry = 4
    bantime = 86400
  • Redémarrage de fail2ban:
    sudo service fail2ban restart
    • Voir les IP bannies: sudo fail2ban-client status sshd
    • Débannir une IP: sudo fail2ban-client set sshd unbanip <adresseip>
  • Ouvrir le port dans le firewall:
    sudo ufw allow in 57222/tcp

Gaming

  • Steam:
    sudo apt install steam-installer
  • Lutris (Lanceur de jeux. Supporte Wine, GOG, HumbleBundle…):
    sudo add-apt-repository ppa:lutris-team/lutris
    sudo apt update
    sudo apt install lutris

Sécurisation

Pare-feu

  • Activation:
    sudo ufw enable
  • Blocage par défaut de toutes les connexions entrantes.
  • Configuration: gufw ou Menu > Préférences > Configuration du pare-feu
  • Ports à ouvrir (au choix):
    • Le port du serveur ssh : 57222/tcp ou autre.
    • Avahi (mdns) : 5353/udp (pour la résolution des noms en nomDeMachine.local sur le réseau local)
    • Minecraft : 25565/tcp
    • Microsoft Teams : 3478:3481/udp (ports 3478 à 3481)

BIOS/EFI

Afin d'empêcher le démarrage sur un périphérique externe (clé USB, etc.)

  • Protéger l'accès au BIOS/EFI par mot de passe.
  • Périphérique de démarrage par défaut: Disque interne seulement (retirer les USB, PXE, etc.).

Protection de GRUB par mot de passe

Afin d'empêcher la modification du menu grub ou des options de démarrage.

  • Générer un mot de passe grub: grub-mkpasswd-pbkdf2 (cela va générer une ligne grub.pbkdf2.sha512.10000.E87FA7E3D21…).
  • Ajouter à la fin de /etc/grub.d/40_custom :
    set superusers="adm"
    password_pbkdf2 adm grub.pbkdf2.sha512.10000.E87FA7E3D21...
  • Puis: sudo update-grub
  • Pour déprotéger la première entrée on ajoute juste --unrestricted :
    sudo mv /boot/grub/grub.cfg /boot/grub/grub.cfg.old
    sudo bash -c "sed '0,/--class ubuntu/s//--unrestricted --class ubuntu/' /boot/grub/grub.cfg.old > /boot/grub/grub.cfg"

    ( :!: cette action est à refaire après toute mise à jour de grub qui appelle update-grub, y compris lors de mises à jour système).

  • Lorsque le menu de Grub s'affiche, toute action autre que choisir la première entrée pour démarrer (sélectionner une autre entrée, ou utiliser E pour éditer une entrée) exigera login et mot de passe.
Attention: Ayez bien conscience qu'au moment de taper utilisateur et mot de passe dans Grub, vous serez en clavier QWERTY.

Il semblerait que l'option de masquage du menu Grub n'est pas possible quand il y a une partition btrfs. C'est fait à dessein.

DoH/DoT

Ce qui manque à cette checklist, c'est le basculement de l'ordinateur sur DNS-over-TCP ou DNS-over-HTTP. À faire.


Maintenance

  • Linux Mint vérifiera régulièrement la présence de mises à jour et vous les présentera le cas échéant. Pour forcer la vérification et l'installation immédiate des mises à jour:
    sudo apt update && sudo apt full-upgrade -y
  • Pour regagner un peu d'espace disque:
    • De temps en temps (1 fois par mois), lancer une déduplication btrfs des fichiers (Script à lancer le soir. Laissez tourner. À la fin vous récupérez de l'espace disque sans vous fatiguer. Aucun risque pour les données.):
      ulimit -n 600000
      sudo jdupes -r -B /etc /opt /root /var /usr
      sudo jdupes -r -B /home
    • Dé-installer les paquets inutiles:
      sudo apt autoremove --purge
    • Retirer du cache des paquets les paquets déinstallés ou qui ne sont plus installables:
      sudo apt autoclean
    • FIXME: vidage du cache d'impression.
  • Il est recommandé, de temps en temps, de lancer un 'scrub' btrfs pour vérifier les sommes de contrôle des données et méta-données.
    • Démarrer la vérification:
      sudo btrfs scrub start /
    • Voir où il en est:
      sudo btrfs scrub status /

Compléments d'information

La checklist ci-dessus est rapide, mais pour ceux que cela intéresse de comprendre certains choix techniques, voici les explications:

  • Anciennes checklists : Si vous souhaitez consulter mes anciennes checklists, elles sont dans cette page.
  • Garder /home dans une partition séparée:
    • C'est quelque chose que je vous recommande totalement. Cela vous permet de changer complètement de distribution Linux sans perdre le réglage de toutes vos applications. Le gain de temps est énorme. Cela vous permet également de tester des distributions et revenir en arrière si cela ne vous contient pas.
    • Petit bémol: Quand vous changez d'environnement de bureau, l'affichage peut parfois partir un peu en sucette et il faut réinitialiser, par exemple:
      • Sous bureau Gnome/Mate, réinitialisez une partie des réglages: dconf reset -f /org/gnome/
      • Si l'affichage des fenêtres n'est pas bon, c'est sans doute que vous utilisez un thème qui n'est plus installé. Sélectionnez un autre thème.
      • Vous devrez sans doute refaire votre toolbar (les composants et applets des bureaux ne sont pas forcément les mêmes d'un environnement de bureau à l'autre). C'est juste l'affaire de quelques clics dans la barre des tâches.
  • noatime,nodiratime:
    • Par défaut, les systèmes enregistrent la date d'accès aux fichiers. Donc toute lecture provoque une écriture. Vous conviendrez que c'est loin d'être optimal.
    • noatime,nodiratime dans les options de montage demandent au système de ne pas enregistrer la date d'accès (atime) des fichiers et des répertoires, évitant ainsi ces écritures.
    • Je sais, on ne devrait pas faire ça. Il paraît que ça pose problème. Mais en fait, non. Sauf si vous faites tourner un serveur de mail (les serveurs de mail ont besoin de connaître la date d'accès aux fichiers). Ce qui n'est pas mon cas.
    • Oui je connais relatime et lazytime qui permettent de garder une trace de l'accès aux fichiers en réduisant la quantité d'écritures. Mais noatime,nodiratime éliminent complètement ces écritures.
  • /tmp et /var/tmp en tmpfs
    • Ces deux répertoires sont très souvent utilisés par les programmes en cours d'exécution pour créer/supprimer de nombreux petits fichiers temporaires, ce qui provoque beaucoup d'écritures disque. Il n'y a pas vraiment de raison de les garder. En mettant ces 2 répertoires en mémoire vive (avec tmpfs), on évite beaucoup d'écritures disque (donc c'est plus rapide, et ça évite d'user les SSD pour rien).
    • Contrairement aux RAMDisk Windows, tmpfs ne consomme de la mémoire que quand on met des fichiers dedans. Un tmpfs de 4 Go ne consommera donc pas d'emblée 4 Go.
    • Il paraît qu'il ne faut pas non plus mettre /var/tmp en tmpfs. Dans la pratique, il n'y a vraiment aucun problème. (Légende urbaine ?)
  • zram:
    • zram fournit des segments de mémoire (block device) compressés. Toute donnée écrite dans un /dev/zram* est automatiquement compressée (tapez zramctl pour voir l'occupation des segments de mémoire).
    • Le paquet zram-config configure automatiquement le swap pour utiliser ces segments de mémoire en priorité sur le swap disque (Faite un cat /proc/swaps pour voir.)
    • Au lieu de swapper sur disque, les données sont compressées en mémoire. Les algos utilisés sont extrêmement rapide, plus rapide que de faire des I/O sur disque.
    • Dans la pratique, cela réduit à néant le swapping sur disque. Et donc cela réduit également l'usure des SSD.
    • Couplez à la modification du swappiness pour être encore plus efficace.
    • C'est bénéfique que vous ayez beaucoup de mémoire vive ou non. Sur un PC avec 4 Go de mémoire et 1,1 Go de swap utilisé, je n'avais pas un seul octet écrit dans le swap disque.
  • Bureau Mate: Mate est un fork de Gnome 2. Rien à faire, je suis allergique à Gnome3. J'ai essayé, je déteste. KDE est beau et efficace, mais il a trop de paramètres. Cinnamon est beau, mais overkill et un peu bling-bling (oui Compiz c'est rigolo, mais je m'en fous des fenêtres élastiques). Mate reste un environnement traditionnel dans lequel la plupart des utilisateurs retrouveront rapidement leurs marques. Et Mate reste léger et rapide, avec une consommation mémoire raisonnable. J'ai même constaté une consommation mémoire inférieure à Xfce.
  • Unbound en cache DNS local forcé:
    • La plupart des domaines ont un TTL absurdement bas (0 à 5 minutes), obligeant votre ordinateur à refaire une requête DNS sortante pour le moindre domaine au bout de 5 minutes. C'est une perte de temps totale.
    • Je configure donc unbound en forçant le TTL à 24 heures. Résultat:
      • Dans la pratique, j'ai 80% des requêtes DNS qui tombent dans le cache d'unbound. C'est 80% des requêtes DNS pas envoyées à l'extérieur.
      • Le cache d'unbound répond immédiatement, et donc beaucoup plus vite qu'un DNS externe (➡️affichage des pages web plus rapide).
    • Notez que le cache d'unbound n'est pas persisté. Il est donc réinitialisé au redémarrage.
  • Pourquoi VeraCrypt et pas LUKS ?
    • Parce que les changements de noyau peuvent casser LUKS et je ne veux pas risquer de perdre l'accès à mes données.
    • VeraCrypt est portable (pas limité à Linux).
    • Avec VeraCrypt je peux facilement utiliser une partition directement, ou un fichier-conteneur (même stocké sur un disque externe).
  • btrfs à la place d'ext4: btrfs offre beaucoup plus de souplesse qu'ext4:
    • Graĉe à la compression et à la déduplication, j'ai beaucoup plus d'espace libre. Je veux dire, vraiment beaucoup.
    • Bien que / et /home soient séparés chacun dans leur sous-volume, ils partagent l'espace libre. Fini le facepalm de "aaann j'aurais besoin de 20 Go dans mon /home, alors qu'il y a 20 Go de libre dans la partition système".
    • Mais le plus intéressant: Je peux faire des snapshots de mon / ou /home:
      • C'est une sorte de "photo" du système de fichiers à un instant T.
      • Ces snapshots sont instantannés (<1 seconde) et ne consomment pas d'espace disque au moment où ils sont fait (si si, je vous assure)
      • Je peux restaurer facilement un snapshot (je flingue tout mon /etc ou tout mon /usr ? Pas grave, en deux minutes c'est rétabli. J'ai même Timeshift qui me fait un snapshot quotidien de mon système).
      • Je peux jeter un coup d'oeil dans les anciens snapshot pour récupérer un fichier que j'aurais modifié ou effacé.
    • Je dispose de certaines fonctions de LVM (par exemple utiliser plusieurs disques physiques comme un seul disque logique).
    • Je peux dupliquer un dossier de 14 Go instantannément, et il ne prend pas plus de place sur disque. (Non je ne vous pipote pas, c'est la "magie" des systèmes de fichier Copy-on-Write.) Pratique pour tester une manipulation dangeureuse sur un ensemble de répertoires sans devoir prendre quelques minutes pour faire une archive avant.
    • Pour plus d'informations sur btrfs (comment fonctionne le "Copy-on-Write" (CoW), les snapshots et comment ça s'utilise), voir cette page.
    • Après, btrfs a aussi ses "gotchas" qu'il faut connaître (les conséquences du CoW sur certains types de fichiers particuliers (bases de données, images de VM), le fait qu'il ne faut pas accumuler abusivement les snapshots, ne pas utiliser btrfs sur des supports USB, etc.)
    • Justement un "gotcha" concernant la compression utilisée en même temps que la déduplication:
      • Si vous faites une compression forcée d'un répertoire avec un sudo btrfs filesystem defragment -r -v -czstd …, la recompression des fichiers peut casser les liens de déduplication, donc faire potentiellement augmenter la consommation d'espace disque. C'est pour cela que je vous recommande d'utiliser compress dans les options de montage de manière à ce que par défaut tout soit déjà écrit compressé sur disque. N'ayant plus besoin de compresser manuellement, vous ne risquez alors plus de casser des liens de déduplication. Vous pouvez tranquillement faire de temps en temps votre déduplication.
    • Oui il faut connaître un peut btrfs pour ne pas faire n'importe quoi, mais le gain pour moi a été phénoménal, aussi bien en terme d'espace disque, de gain de temps en manipulations ainsi qu'en sécurité (je peux bidouiller à mort mon système et revenir en arrière en cas de problème).
  • Déduplication avec jdupes:
    • btrfs - contrairement à ZFS - ne fait pas de déduplication en ligne (c'est à dire pas au fil de l'eau). Il faut lancer une opération de déduplication.
    • jdupes possède une option spécifique à btrfs (-B).
    • jdupes compare les fichiers et les soumet à btrfs pour déduplication. Mais aucun risque que les fichiers aient changé entre temps puisque derrière btrfs re-compare les fichiers avant de les dédupliquer.
    • J'ignore pourquoi, mais jdupes (qui travaille au niveau fichiers) m'a donné de meilleurs résultats que duperemove (qui fonctionne au niveau blocs). Ce n'est intuitivement pas logique, mais c'est le cas. Donc je continuer à utiliser jdupes.
    • On ne peut pas dédupliquer des fichiers situés sur des sous-volumes différents. Voilà pourquoi on a une commande pour le système, et une autre pour /home.
    • Amélioration possible: czkawka est beaucoup plus rapide que jdupes pour trouver les doublons de fichiers, mais ne sait pas "parler" à btrfs. Il faudrait voir pour prendre la sortie de czkawka pour faire directement la déduplication.
  • Linux Mint à la place d'Ubuntu: J'étais auparavant alternativement entre Ubuntu et Linux Mint, mais je reviens sur Linux Mint. Voici une partie des raisons:
    • Je suis adepte de l'environnement de bureau Mate, j'ai donc le choix entre Ubuntu Mate ou Linux Mint Mate.
    • Ubuntu utilise de plus en plus les snaps. En plus d'être un mécanisme complètement à côté du système de packaging Debian, il consomme beaucoup plus d'espace disque et occasionnellement une bande passante massive. Je n'aime pas trop. Linux Mint a fait le voeux de ne pas l'utiliser.
      • Ubuntu précise que certaines de ses applications seront désormais systématiquement fournies sous forme de snap, comme Firefox. Ce n'est pas le cas de Linux Mint qui justement vient de passer un accord avec Mozilla pour fournir une version proprement packagée et non modifié de Firefox.
    • Pire que ça, Ubuntu a mis des hooks sur apt pour déclencher des actions sur les snaps ><
    • Linux Mint utilise des flatpak, mais de manière modérée, et je trouve ces derniers moins problématiques.
    • Linux Mint a plus de logiciels utiles installés par défaut, par exemple RedShift, Timeshift ou Synaptic.
    • Tout comme la version d'Ubuntu sur laquelle il est basé, cette version de Linux Mint est basée sur un noyau 5.4, mais le système de mises à jour permet de basculer facilement sur un noyau plus récent (5.13).
1)
Long Term Support
mint_customization_20_3.txt · Dernière modification : 2023/04/07 16:26 de sebsauvage