Outils pour utilisateurs

Outils du site


ubuntu2104

Checklist d'installation Ubuntu Mate 21.04

Cette page est une checklist personnelle et rapide pour l'installation d'Ubuntu Mate 21.04. Objectifs:

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

J'utilise la variante "Mate" d'Ubuntu 21.04 car elle est plus légère, et je n'aime pas le desktop par défaut d'Ubuntu.

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

  • particulière à mon usage (certaines choix sont bien spécifiques).
  • rapide (contrairement à mes checklist précédentes, certains choix ne seront pas expliqués).
  • envisagée pour l'installation d'une nouvelle machine (pas d'une migration).

Exemple de bureau Mate configuré

Pourquoi Ubuntu Mate et pas Linux Mint Mate ? Parce que je veux un noyau récent (5.11 dans Ubuntu 21.04, 5.4 dans Linux Mint 20). Mais ayant remarqué récemment qu'on peut facilement passer au noyau 5.11 dans Mint, je vais sans doute rebasculer dans le futur vers Mint, ce qui me permettra de me débarasser des snaps (dont je ne suis pas fan).

Installation et partitionnement

Depuis la 21.04, Ubuntu installe le bootloader (grub) 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 d'Ubuntu):

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.
/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 d'Ubuntu créé automatiquement 2 volumes: @ (monté sur /) et @home (monté sur /home)

Partitionnement pendant l'installation 1)

  1. Type d'installation: Choisir Autre chose
  2. Cliquer Nouvelle table de partition > Continuer
  3. Cliquer sur espace libre puis le bouton + pour créer une partition. Créer les partitions suivantes:
  4. Une partition de 64 Mo de type Partition système EFI:
  5. Une partition de 64 Mo de type Zone réservée pour le chargeur d'amorçage BIOS:
  6. Une partition de 8 Go de type Swap:
  7. Une partition de 300 Go laissée vide (Ne pas utiliser la partition):
  8. Le reste en btrfs:
  9. Périphérique où sera installé le programme de démarrage : Sélectionner la partition biosgrub (ici: /dev/sda2)

Dans le volume btrfs (/dev/sda5), l'installeur d'Ubuntu créera automatiquement deux volumes btrfs:

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

Configuration après redémarrage

  • Refuser l'envoi de la télémétrie.
  • Décocher l'écran de bienvenue pour qu'il ne s'affiche plus.
  • Dans /etc/fstab:
    • ajout des options noatime,nodiratime,compress-force=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=5" >> /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.
  • Activation du firewall:
    sudo ufw enable
    • Config par défaut: Bloque toutes les connexion entrantes. Configuration par gufw ou Menu > Préférences > Configuration du pare-feu
  • Redémarrer, et tout de suite compresser tout ce qui n'est pas déjà compressé (btrfs):
    sudo btrfs filesystem defragment -r -v -czstd /
  • Installation des mises à jour: Menu > Administration > Gestionnaire de mises à jour > installer toutes les mises à jour.
  • Configuration des mises à jour: Je n'aime pas qu'il télécharge et installe automatiquement les mises à jour de sécurité. Je préfère avoir le contrôle, donc: Menu > Administration > Logiciels et mises à jour:
    • Onglet Mises à jour:
      • Lorsqu'il y a des mises à jour de sécurité: Choisir Afficher immédiatement (au lieu de Télécharger et installer automatiquement)
      • Me prévenir lorsqu'une nouvelle version d'Ubuntu est disponible: Choisir Jamais.
    • Tant qu'on est là, onglet Pilotes additionnels: Installer les éventuels pilotes additionnels (version la plus récente des pilotes NVidia par exemple).
  • Mise à jour des firmwares ? Menu > Accessoires > Firmware
  • Installation des packs de langues: Menu > Préférences > Prise en charge des langues
    • Le système va vous prévenir que la prise en charger est incomplète: Cliquer sur le bouton Installer.
  • 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
  • Désactiver l'économie d'énergie du Wifi pour une connexion plus stable:
    • Créer le fichier /etc/tlp.d/10-wifi.conf contenant:
      WIFI_PWR_ON_AC=off
      WIFI_PWR_ON_BAT=off
    • Modifier le fichier /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf et 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
  • Limiter la charge de la batterie: Mon ordinateur restant branché une majeur partie du temps, je limite la charge de la batterie à 60% afin d'allonger sa durée de vie. Je créé le fichier /opt/scripts/limit-battery.sh dans lequel je met:
    #!/bin/bash
    sudo bash -c "echo '60' > /sys/class/power_supply/BAT1/charge_control_end_threshold"
    • Et je lance ce script au démarrage de la machine (sudo crontab -e):
      @reboot /opt/scripts/limit-battery.sh
    • Pour vérifier si la batterie charge ou non cat /sys/class/power_supply/BAT1/status affichera “Charging” si elle est en train de charger et “Unknown” sinon. À noter également que la diode de charge de l'Asus TUF A15 (la seconde en partant de la gauche) reflétera également cet état: Orange=en charge, Blanc=pas en charge.
    • Si j'ai besoin qu'il me charge entièrement la batterie (parce que je vais en avoir besoin), je tape:
      sudo bash -c "echo '100' > /sys/class/power_supply/BAT1/charge_control_end_threshold"
    • À noter qu'en principe tlp peut se charger aussi de cette limite de batterie, mais dans mon cas ça n'a pas marché (d'où le recours au script).
    • Notez que cette limite de charge de batterie est mémorisée par le TUF A15 et qu'il s'arrêtera bien au pourcentage souhaité même ordinateur éteint.
Cette astuce fonctionnait avec le BIOS vers 406. Elle ne marche plus avec le BIOS version 408. J'ai dû passer par https://github.com/leveson/bat (sudo ./bat -t 60 puis sudo ./bat --persist)
  • 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 dans /etc/cron.daily (Listes de blocage DNS). Ne pas oublier le chmod +x /etc/cron.daily/hosts-update
  • Menu > Préférences > Gestion de l'énergie:
    • onglet Sur secteur :
      • Quand l'écran est rabattu : Écran vide
    • onglet Sur batterie :
      • Quand l'écran est rabattu : Écran vide
      • Lorsque le niveau de batterie est critique : Éteindre
    • onglet Général :
      • Lorsque le bouton de mise sous tension est appuyé : Me demander
      • Lorsque le bouton de mise en veille est appuyé : Ne rien faire
  • Apparence : Menu > Préférences > Apparence :
    • onglet Thème : Yaru-MATE-Dark
      • Bouton Personnaliser… : onglet Bordures de fenêtres > Ambiant-MATE-Dark
  • Configuration des barres d'outils:
    • Clic-droit sur la barre du bas > Supprimer ce tableau de bord
    • Clic-droit sur la barre du haut > Ajouter au tableau de bord:
      • Liste des fenêtres
      • Moniteur système (graphe CPU/mémoire)
      • Moniteur réseau (pour voir le débit réseau)
      • Moniteur de fréquences (permet de réduire la fréquence du CPU pour économiser de la batterie)
      • Moniteur de capteurs matériel pour voir la température et la vitesse du ventilateur.
  • Menu > Préférences > MATE Tweak:
    • onglet Tableau de bord, cocher Activer le terminal déroulant (il s'appelle avec la touche F12 et peut passer en plein écran avec F11).
    • onglet Fenêtres > Position des boutons de fenêtre : À gauche
  • Menu > Préférences > Indicateurs :
    • onglet Date et heure : activer Le mois et la date et Le jour de la semaine
  • Le nouvel écran de connexion (Arctica Greeter) n'a pas encore d'interface de configuration, donc:
    • Pour retirer le son à l'affichage de l'écran de connexion, dans le fichier /usr/share/glib-2.0/schemas/30_ubuntu-mate.gschema.override je remplace play-ready-sound=true par play-ready-sound=false.
    • Pour changer le fond de l'écran de connexion, je change le paramètre background=… par une image de mon choix.
    • Puis faire: sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
  • 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 geany geany-plugins synaptic htop jdupes btrfs-compsize pigz progress ncdu gparted gpart mtools udftools firejail secure-delete sshfs sshpass borgbackup rclone rclone-browser iotop nethogs kazam x2goclient x2goserver p7zip-rar zstd ttf-mscorefonts-installer fonts-larabie-* gimp gimp-data-extras gimp-plugin-registry gimp-texturize inkscape timeshift smart-notifier gsmartcontrol filezilla pngnq optipng libjpeg-turbo-progs qbittorrent doublecmd-gtk meld exfat-utils
  • 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.
  • geany geany-plugins : Un éditeur de texte sympa avec un certain nombre de plugins.
  • synaptic : GUI pour recherche et installation de paquets dans les dépôts.
  • htop : gestionnaire de tâche en terminal.
  • jdupes : Pour faire de la déduplication de fichiers dans btrfs.
  • 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.
  • borgbackup : l'un des meilleurs logiciels de backup (voir cette page).
  • rclone : excellent logiciel de synchronisation multi-clouds (supporte ftp/ssh/webdav/NextCloud/etc.). Éventuellement aller chercher la version sur le site officiel si le dépôt est à la traîne.
  • rclone-browser : une GUI pour RClone.
  • 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 : Car pour la retouche d'images Gimp n'est plus installé par défaut.
  • inkscape : Excellent logiciel de dessin vectoriel.
  • timeshift : Fait des snapshots du système (en utilisant btrfs) afin de pouvoir revenir en arrière en cas de problème lors d'une mise à jour ou d'un bidouillage du système.
  • smart-notifier gsmartcontrol : outils pour surveillance santé des disques.
  • 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.
  • 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.
  • exfat-utils : Pour lire/écrire/formater les disques en exFAT.

Ajout depuis la “Boutique de logiciels”:

  • ulauncher : un lanceur rapide (Ctrl+Espace) dans le genre de kupfer.

Installation des pilotes d'imprimantes

sudo apt install --install-recommends printer-driver-all
  • printer-driver-all : Pilotes d'imprimante. Car par défaut, par exemple, printer-driver-escpr (pilotes pour toutes les imprimantes Epson) n'est pas installé. Il manque donc un gros paquets de pilotes d'imprimantes. Une fois installé, le système reconnaît automatiquement beaucoup plus d'imprimante.
    • 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…

Installation de Wine

Les dépôts Ubuntu 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/ hirsute main'
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

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

Suppression de logiciels

sudo apt remove ubuntu-report transmission-gtk
sudo apt autoremove
  • ubuntu-report : Envoi de statistiques à Canonical.
  • transmission-gtk : Comme client BitTorrent, je préfère qBitTorrent.

Installation de logiciels hors dépôts

  • youtube-dl: La version dans les dépôts étant toujours à la traîne:
    • Installation:
      sudo apt remove youtube-dl
      sudo wget https://yt-dl.org/latest/youtube-dl -O /usr/local/bin/youtube-dl
      sudo chmod a+x /usr/local/bin/youtube-dl
      sudo apt install python # la mise à jour de youtube-dl nécessite Python 2
    • De temps en temps, mise à jour:
      sudo youtube-dl -U
  • VeraCrypt, logiciel de chiffrement de disque : https://www.veracrypt.fr/en/Downloads.html
  • XNView MP, le meilleur gestionnaire d'images que je connaisse (capable de faire des traitements par lots, etc.): https://www.xnview.com/fr/xnviewmp/#downloads
  • Installation de fortunes-fr.
  • czkawka, le logiciel de recherche de fichiers en double, images similaires (et autres) le plus rapide au monde (GitHub, téléchargement).
    sudo mkdir -p /opt/czkawka
    sudo wget https://github.com/qarmin/czkawka/releases/download/3.1.0/linux_czkawka_gui -O /opt/czkawka/linux_czkawka_gui
    sudo wget https://github.com/qarmin/czkawka/releases/download/3.1.0/linux_czkawka_cli -O /opt/czkawka/linux_czkawka_cli
    sudo chmod a+x /opt/czkawka/linux_czkawka_*
    sudo ln -s /opt/czkawka/linux_czkawka_cli /usr/local/bin/cz
    sudo ln -s /opt/czkawka/linux_czkawka_gui /usr/local/bin/czgui
    • Je peux donc le lancer en tapant czgui.
    • J'ajoute une entrée dans le menu (clic-droit sur le menu > Éditer les menus…)

Installations/configurations complémentaires

Configuration de Timeshift

  • Si ce n'est pas déjà fait:
    sudo apt install timeshift
  • Menu > Outils système > Timeshift
  • Lancer l'Assistant s'il ne le fait pas au premier démarrage.
  • Type d'instantanné: btrfs
  • Laisser sur le disque par défaut (la partition btrfs)
  • Quotidienne: 8
  • Suivant > Suivant > Terminer

Installation et configuration du serveur ssh et fail2ban

  • sudo apt install openssh-server fail2ban
  • Changement du port par défaut (22) du serveur ssh: Créer le fichier /etc/ssh/sshd_config.d/custom.conf et mettre dedans:
    Port 57222
  • 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

  • Menu > Administration > Boutique de logiciels
  • Rechercher Steam, Lutris > bouton Installer
  • Cliquer sur la file d'attente > Appliquer les changements

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

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.

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.

Maintenance

  • 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 /usr /etc /opt /root /snap /var /home
    • Dé-installer les paquets inutiles:
      sudo apt autoremove
    • Retirer du cache des paquets les paquets déinstallés ou qui ne sont plus installables:
      sudo apt autoclean
  • 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 /
  • Faites des backups !

Notes

  • Contrairement aux versions précédentes d'Ubuntu, Timeshift n'est plus installé par défaut.
  • Timeshift s'occupe des snapshots du système (/), mais si je veux faire temporairement un snapshot de mon /home:
    sudo mkdir -p /mnt/btrfs              # Créer le point de montage
    sudo mount /dev/nvme1n1p4 /mnt/btrfs  # Y monter la partition btrfs.
    cd /mnt/btrfs
    sudo btrfs subvolume snapshot @home @home-2020-05-26  # Faire un snapshot de mon @home sous le nom "@home-2020-05-26"
  • L'écran de connexion, anciennement lightdm-greeter a été remplacé par Arctica Greeter qui ne possède pas encore de GUI de configuration.
    • Voir comment remplacer Arctica Greeter et remplacer par lightdm-greeter.
  • RedShift semble avoir encore avec des problèmes d'intégration (double lancement, etc.). Je l'ai donc désactivé pour le moment.
  • Pour changer le cpu-governor en ligne de command:
    mate-cpufreq-selector <mode>

    avec l'un des modes suivants: conservative, ondemand, performance, powersave ou schedutil. De manière générale, schedutil est recommandé car le plus efficace: Il monte vite en fréquence dès qu'un processus le demande, mais il redescend vite aussi. Il est donc économique. Le mode powersave est à utiliser pour économiser un maximum de batterie en restant à la fréquence minimum.

  • Applications à tester:
    • ULauncher à la place de Synapse ou Kupfer.
  • Il est fort possible que je repasse d'Ubuntu Mate à Linux Mint Mate, car même si Linux Mint 20 est par défaut avec le noyau 5.4, on peut facilement passer au noyau 5.11, et surtout Linux Mint n'a pas snap activé par défaut, ce qui allège bien le système.
1)
Les tailles dans les captures d'écran ne concordent pas car je le fais dans une VM.
ubuntu2104.txt · Dernière modification: 2021/09/09 13:14 de sebsauvage