Sauvegarde Disque Dur avec DD

J’ai pris l’habitude de faire une copie des disque dur sur lesquels je travail. Au cas ou, on ne sait jamais. Pour faire cette sauvegarde j’utilise l’application dd. Pour faire la sauvegarde du disque dur il faut savoir comment le retrouver pour ce faire j’utilise l’application lsblk

lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda           8:0    0   1,8T  0 disk 
└─sda1        8:1    0   1,8T  0 part /mnt/34CEBD1CCEBCD6F8
...
nvme1n1     259:1    0 931,5G  0 disk 
├─nvme1n1p1 259:2    0   100M  0 part /boot/efi
├─nvme1n1p2 259:3    0    16M  0 part 
├─nvme1n1p3 259:5    0 930,6G  0 part 
└─nvme1n1p4 259:6    0   862M  0 part

voici un exemple du retour de lsblk on y retrouve le nom des périphériques dont celui qu’on veut sauvegarder sda

Faire la sauvegarde

Avant toute opération nous allons démonter le disque pour s’assurer qu’aucune interaction du système arrive durant la copie avec la commande umount [nom du point de montage] puis nous allons utiliser la commande dd pipé à la commande gzip pour l’écrire dans un fichier .gz

umount /mnt/34CEBD1CCEBCD6F8  
sudo dd if=/dev/sda bs=2k conv=noerror,sync status=progress | gzip -c > /tmp/hdd.gz

La commande doit obligatoirement s’éxécuter avec sudo et va prendre comme argument

  • if=FILE: renseigne le fichier qui doit être copié dans notre exemple notre disque sda, se trouvant dans le dossier /dev/
  • bs=BYTES: taille des paquet lu et écris par defaut c’est 512 nous montons jusqu’a 2k
  • conv=CONVS: utilsation de paramètre de convertion, nous allons utiliser les paramètres noerror (continue apres la lecture d’un bloc en erreur) sync (pour tout copier meme les méta données)
  • status=LEVEL renseigne ce qui doit etre afficher a l’ecran durant la sauvegarde, nous voulons la progression progress
  • gzip -c: ecrire la sortie de la commande dans la sortie standard
  • > /tmp/hdd.gz: écrire le retour de la commande gzip dans le fichier /tmp/hdd.gz

C’est un processus qui est long, je suis toujours en train de chercher une solution qui est aussi sécurisé que celle-ci (copie uniquement les fichiers sans faire un dd avec mon script CopyMedia)

Faire la restauration

C’est bien beau de faire la sauvegarde, mais il faut être également capable de faire la restauration de cette sauvegarde. Il faut également s’assurer que le disque n’est plus monté.

umount /mnt/34CEBD1CCEBCD6F8  
gzip -d -c /mnt/hdd.gz | sudo dd of=/dev/sda bs=2k conv=noerror,sync status=progress

la commande gzip permettra de décompresser le fichier pipé à dd pour envoyer sur le disque, les paramètres suivant pour gzip

  • d: pour décompresser
  • c: pour pour envoyer le résultat sur la sortie standard stdout.
  • /mnt/hdd.gz c’est le fichier correspondant à la sauvegarde

Les paramètres pour dd

  • of: renseigner le fichier de destination
  • bs: 2k pour la taille des packets
  • conv=noerror,sync: ne s’arrete pas si il rencontre une erreur et sync pour la copie des metat données
  • status=progress: pour permettre l’affichage de la progression

Il suffit de remonter la/les partition(s) qui ont étés restaurée(s)

Peertube

FreshRss

https://freshrss.org/index.html

Rester informé est une chose importante dans le monde de l’informatique. Il y a une multitude d’outils permettant de faire le suivie de votre veille technologique. Un outils qui est pour moi indispensable est un aggregateur de flux RSS. Celui que j’utilise est la plateforme FreshRss en auto-hérgement sur un Raspberrypi

RSS késako?

https://fr.wikipedia.org/wiki/RSS

Le RSS est un format de donnée pour la syndication de contenue sur internet. La syndication de contenu est un nom barbare pour désigner le partage d’information entre plusieurs source. Le RSS est basé sur la technology XML. Nous n’allons pas rentrer dans le détail de cette norme. On le fera dans une application Python (enfin si je trouve le temps j’aimerai faire un client RSS qui support le protocole FreshRss). Beaucoup de site internet permet nativement de générer un flux RSS ou on retrouve une section RSS dans les menus du site. L’icône RSS est normalisé et plus ou moins respecté

Icône du flux rss

Installation de FreshRss

Pour l’installer je vais utiliser Docker. J’ai crée un fichier de docker-compose.yml sur mon Github. Sur un raspberry avec toutes les mises à jour et docker d’installé, créer un répertoire pour le docker file, pas trop d’originalité de ma part je crée le repertoire freshrss. Je télécharge ensuite le fichier docker-compose.yml avec la commande curl, vous pouvez également écrire le votre.

mkdir freshrss
curl --output docker-compose.yml https://raw.githubusercontent.com/bigpannard/Application_Dockers/refs/heads/main/freshrss/docker-compose.yaml

Nous allons découvrir le fichier yml

`name: freshrss     
services:
  freshrss:      
    image: freshrss/freshrss:latest   
    container_name: freshrss         
    restart: unless-stopped      
    ports:
      - 8080:80        
    environment:
      - CRON_MIN=*/5   
      - CRON_HOUR=*
      - CRON_DAY=*
      - CRON_MONTH=*
      - CRON_WEEKDAY=*
      - TZ=Europe/Brussels 
    volumes:
      - ./data:/var/www/FreshRSS/data            
      - ./config:/var/www/FreshRSS/config        
      - ./extensions:/var/www/FreshRSS/extensions

pour lancer notre service FreshRss nous allons faire un docker-compose up -d ou se trouve notre fichier docker-compose.yml.

vous de devriez pas avoir d’erreur. (l’erreur qui arrive souvent c’est que le port est déja utilisé). Si vous avez utilisé la même configuration que moi rendez-vous à l’adresse suivante: http://localhost:8080 pour finaliser l’installation de l’instance FreshRss

Premiere écran  pour l'installation de l'instance de freshrss

Premier écran utile pour sélectionner votre langue

Deuxième écran qui permet de faire une série de control que tout les composants soient correctement installés.

Troisième écran qui permet de choisir la base de données sur laquelle l’instance tournera, j’ai pour l’instant toujours utilisé le SQLite qui me semble bon pour le volume de flux RSS que j’utilise (+- 150 flux). A la demande je pourrai faire l’installation avec une base de données MariaDB, il faudra changer le docker-compose.yml.

Quatrième écran, nous allons faire la définition de l’utilisateur par défaut de l’instance, un nom d’utilisateur et un mot de passe fort.

Le dernier écran pour valider l’installation et on se retrouve sur l’écran de login

Copies de Media cp_media.sh

Je suis régulièrement confronté a devoir faire des sauvegardes de disque dur qu’on vient me donner avec la consigne « peux tu me retrouver mes photos, viedeos etc… »

J’ai crée un script Bash permettant en renseignant un dossier source (qui sera le point de montage du disque dur) de rechercher le type de média que l’ont veut copier dans un dossier destination. Ce script ce nomme cp_media.sh et je l’ai mis à disposition sur Github

Ce script permet de faire une comparaison sur le nom de fichier ainsi que sa taille, si il tombe sur 2 fichiers avec le meme nom, il compare la taille, si les fichiers ont la même taille le nouveau fichier ne sera pas copié et présenté dans le rapport de en fin de process. Si la taille du fichier est différente le fichier sera renommé Filename.ext en Filename_c1.ext (c2, c3, c4…. pour les fichiers suivant avec le meme nom mais pas la meme taille)

Le script se base sur le fichier mime type se trouvant /etc/mime.type reprenant les extension de fichier en fonction de leur utilisation commune. `cat /etc/mime.type` vous donnera le contenue de ce fichier.

image/x-epson-erf				erf
image/x-jg					art
image/x-jng					jng
image/x-nikon-nef				nef
image/x-olympus-orf				orf
image/x-portable-anymap				pnm
image/x-portable-bitmap				pbm
image/x-portable-graymap			pgm
image/x-portable-pixmap				ppm
image/x-rgb					rgb
image/x-xbitmap					xbm
image/x-xcf					xcf
image/x-xpixmap					xpm
image/x-xwindowdump				xwd

en fonction du paramètre passé `–images|–videos`, je vais chercher l’extension du fichier à passer à la commande find avec les paramètre -iname *.jpg -o -iname *.png ...

Paramètres

  • –source: renseigne le repertoire source ou se trouve les médias a copier
  • –destination: renseigne le repertoire ou doit être copié les médias, si ce répertoire n’existe pas il sera crée.
  • — images|–videos: selecteur permettant de choisir le type de média a copier. Si aucun paramètre est passé c’est image qui est utilisé.
  • –size: Permet de renseigner la taille minimum a utiliser nous renseignerons la taille en kilo octet k en méga octet M en Giga octet G (e.g --size +500k les fichiers faisant plus de 500 kilo octet)
  • –verbose: permet de montrer a l’écran tout ce qui se passe

Exemples

# Copie des images du repertoire home images vers le repertoire /var/tmp/Images
cp_media.sh --source ~/home/Images/ --destination /var/tmp/Images/ --images  --size +100k --verbose

Passe Cable mur placo

J’ai besoin de faire passer les cables dans mon bureau entre le local technique et mon bureau. J’ai donc décidé de me faire une impression 3d pour faire le travail

Design

2 pièces:

  • Une vise à tête carré percée pour faire passer les cables.
  • Un écrou pour serer la vis contre le mur

Défis

Premiere fois que je modélise une vis et un écrou a imprimer. Merci à la vidéo de JP Willm sur le sujet (Un excellent vulgarisateur de la modélisation 3d sur freecad). J’ai donc fait un pas de vis de forme ronde.

Point d’attention

Une fois le modèle correctement designé a mon gout, j’ai crée le STL avec l’atelier Mesh de Freecad. J’ai fait une création de maillage en mode Standard avec une déviation angulaire de 6° pour avoir une finition correct lors de l’impression des cercles.

Voici les fichiers STL :

Le fichier Freecad

Mise à jour Mint 22.2 Zara

Je suis passé depuis quelques mois sur mon ordinateur de bureau sur Linux Mint la version 22.1. Ce matin (04-09-2025) je recois une notification pour me renseigner la mise à disposition de la nouvelle version 22.2 de Linux Mint. Cette nouvelle version est LTS jusqu’en 2029. Voici un lien avec les modifications de cette version : https://www.linuxmint.com/rel_zara_whatsnew.php. J’ai effectué la mise à jour ce matin via l’interface graphique sans aucun soucis.

Dans le gestionnaire de mise à jour (mintupdate) nous retrouvons dans le menu « Edition » un item Mettre à jour vers Linux Mint 22.2 Zara

Après avoir suivis les différentes étapes l’installation c’est effectué dans problème.

  • Ne pas oublier de faire un instantané du système (timeshift)
  • Après le redémarrage de l’ordinateur de faire directement une mise à jour.

Bienvenue sur Linux Mint ZARA

Gestion App-Image

Les App-images sont une façon de packager une application, nous n’allons pas rentrer dans le détail de ce packaging mais de comment les utiliser et les installer rapidement sans autre application que la console

Je suis sur Linux Mint 22.1 Cinnamon et je veut tester l’application Acreom qui est une application de prise de note. Pour ce faire rendez-vous sur le site internet https://acreom.com/downloads. Pour Linux, il nous propose de télécharger une App-image

Pour l’utilisation de l’App-Image nous allons:

  • Télécharger l’App-Image
  • Déplacer dans un repertoire ad hoc
  • Rendre executable
  • Récupérer l’icône de l’application
  • Créer un lanceur desktop

Déplacer dans un repertoire ad hoc

Pour les App-images j’ai dans mon Dossier $HOME (remplacer le $HOME par votre répertoire personnel) un dossier App-image qui contient tout les applications que j’utilise dans ce format de packaging. Je vais partir du principe que rien n’existe et je vais donc créer deux dossier; un dossier AppImage et un dossier Acreom. Ensuite déplacer le fichier téléchargé dans ce nouveau repertoire et pour terminer nous positionner dans ce dossier Acreom

mkdir -p $HOME/AppImage/Acreom
mv $HOME/Téléchargement/acreom-1.20.3.AppImage $HOME/AppImage/Acreom
cd $HOME/AppImage/Acreom

Rendre exécutable ce App-image

La commande ls -lh dans le dossier Acreon nous retourne le résultat suivant :

Ce fichier n’est exécutable par personne. Nous allons modifier cela avec la commande suivante pour le rendre exécutable par tout le monde

chmod +x acreom-1.20.3.AppImage

Nous pouvons maintenant lancer cette application avec la commande ./acreom-1.20.3.AppImage. L’application doit se lancer sinon il faut vérifier si le droit d’exécution est bien renseigné : le ls -lh doit bien renseigner -rwxrwxr-x sur le fichier acreom..

Récupération de l’icône de l’application

Il est intéressant lors de la création du fichier .desktop de renseigner l’icône de l’application. Pour ce faire il faut l’extraire de l’App-Image avec la commande suivante:

./acreom-1.20.3.AppImage --appimage-extract

Un dossier squashfs-root est crée, dans ce répertoire nous retrouvons l’icone de l’application dans notre cas : acreom.png. Nous allons le copier dans a coté de notre AppImage.

cp squashfs-root/acreom.png acreom.png 

nous pouvons supprimer le dossier squashfs-root avec la commande suite

rm -r squashfs-root

Nous avons dons dans notre dossier Acreom, deux fichiers le fichier AppImage et le fichier .png

Création du lanceur .desktop

Pour permettre l’intégration de l’application dans le menu des applications, il nous faut créer un lanceur d’application. Un lanceur d’application est un fichier avec l’extension desktop et ayant la structure suivante :

[Desktop Entry]
Type=Application
Name=Nom de l'application
Categories=Catégories du programme à séparer avec un point-virgule 
Comment=Description du programme
Icon=Icône du programme 
Exec=commande qui permettrait d'ouvrir le programme par le terminal.
Terminal=false #indique s'il faut ouvrir ou non un terminal lors de l'exécution du programme (false ou true)

nous allons donc créer un fichier Acreom.desktop, copier la structure et l’adapter a notre application.

touch Acreom.desktop
nano Acreom.desktop
# Coller le modèle et l'adapter dans nano                                                                   
[Desktop Entry]
Type=Application
Name=Acreom
Categories=Bureautique
Comment=Application de prise de note
Icon=/home/manu/AppImage/Acreom/acreom.png
Exec=/home/manu/AppImage/Acreom/acreom.AppImage
Terminal=false   

Il faut faire ici attention a l’attribut EXEC, j’ai volontairement supprimer le numéro de version du nom de fichier de l’App-Image pour que lorsqu’il y aura une nouvelle version du fichier App Image il suffira de télécharger la nouvelle version la déplacer dans le dossier ad hoc, supprimer la version courante et renommer le fichier dans le numéro de version avec la commande suivante:

mv $HOME/AppImage/Acreom/acreom-1.20.3.AppImage $HOME/AppImage/Acreom/acreom.AppImage

Maintenant pour ajouter notre lanceur dans le menu des applications nous allons créer un lien symbolique dans le répertoire $HOME/.local/share/application

ln -s $HOME/AppImage/Acreom/Acreom.desktop $HOME/.local/share/applications/Acreom.desktop

Suppression d’une App-Image

Maintenant que notre App-Image est fonctionnel et accessible depuis le menu des applications il faut maintenant la désinstaller. Pour ce faire, suppression du lien symbolique et suppression du dossier contenant l’AppImage

rm $HOME/.local/share/applications/Acreom.desktop
rm -r $HOME/AppImage/Acreom/

mais il y a encore les données de l’application, ces données sont stockées en fonction de l’application dans notre elle se trouve dans : $HOME/.config/acreom/ pour une supression de toutes les données de Acreom supprimer également ce dossier

rm -r $HOME/.config/acreom/