Multidrive – Sauvegardes, clones, effacements

Multidrive

Aujourd’hui petit tuto sous forme de TP – Aujourd’hui on va faire la connaissance d’un nouvel outil qui semble très intéressant sur le papier – gratuit (mais pas open source !) et conçu par des pros. Je vais vous présenter Multidrive. Il s’agir d’un utilitaire (windows) pour gérer vos disques durs. Et quand je dis gérer, c’est pas juste classer deux trois babioles. Au programme, clonage, sauvegarde et même effacement sécurisé, le tout fait par des une entreprise qui a deux décennies de métier en expertise et récupération de disques. L’interface est claire, pas de publicités ou de boutons inutiles, on se repère de suite.

Si vous devez changer votre SSD devenu trop petit par exemple et que vous ne voulez pas réinstaller Windows et tout les logiciels/paramètres, vous aurez besoin de ce logiciel qui va copier tout votre disque et surtout le disque boot. Si vous devez jeter un disque, ou le revendre, vous aurez besoin d’effacer le disque de façon à ce qu’aucun logiciel puissent venir retrouver vos données confidentiels. En entreprise on ne va pas laisser les donnés de la boite avant de retourner un pc au fabricant! Il faut un effacement sécurisé HEX. Multidrive propose ces fonctionnalités. Vous me dirai « Oui mais il n’est pas le seul ». Effectivement, mais je vais vous donner un dernier vrai plus, qu’aucun gratuit ne propose: Un mode CLI via mdcli. Et toc! 😲

Grace à Multidrive vous allez pouvoir programmer des sauvegardes via un script tout simple et laisser faire. De plus il est possible d’en faire tourner plusieurs en même temps. Vous pouvez créé plusieurs clone en même temps. Si le disque a des secteurs défectueux, le logiciel est capable de les ignorer et va continuer sa tache.

Pour l’installer

  • via Winget
PowerShell
winget install multidrive

#installation silencieuse pour les admins ;)
MultiDriveSetup.exe /s /d=c:\MonDossier

A noter que comble du luxe pour notre clef USB, une version portable est proposée.

Les commandes de base

Voici les commandes de base à connaitre pour gérer des sauvegardes via le mode CLI

PowerShell
# Lister les disques connectés
mdcli list

# Sauvegarder un disque boot en ZIP compressé
mdcli backup d1 C:\MonDossier\backup.zip

# Cloner un disque vers un autre avec checksum SHA1
mdcli clone d3 d4 -q SHA1

# Effacer un disque avec un pattern HEX perso
mdcli erase d2 -p BADA

# Restaurer un disque depuis un backup ZIP
mdcli restore C:\MonDossier\backup.zip d3

Euh… Et le TP monsieur,

OK, maintenant que je vous ai présenter le logiciel nous allons l’utiliser pour mettre en place une solution de sauvegarde complète d’une machine (imaginons un serveur FTP). L’objectif n’est pas de copier des fichiers vers un espace de sauvegarde, mais de faire un backup du système complet. En cas de crash, la machine doit être restauré le plus vite possible. Nous allons programmer une sauvegarde complète (avec le système de boot) sur un disque réseaux et compresser cette sauvegarde, il faudra aussi faire un checksum de cette sauvegarde pour bien être sûr de son intégrité. Cette tache devra se lancer toutes les semaines en dehors des heures de travail. Nous allons utiliser le mode CLI et le planificateurs de taches. Vous allez voir c’est un jeu d’enfant.

Le script PowerShell qui fait le job

Puisque nous sommes sous Windows, nous allons encapsuler notre commande mdcli dans un petit script PowerShell. L’avantage ? On va pouvoir générer un nom de fichier dynamique avec la date du jour et utiliser les outils intégrés à Windows pour calculer notre fameux checksum SHA1 une fois la sauvegarde terminée.

Ouvrez votre éditeur préféré (ou juste le bloc-notes, on ne juge pas), créez un fichier nommé Backup_FTP.ps1 (par exemple dans un dossier C:\Scripts\), et collez-y ce code :

PowerShell
# --- Configuration des variables ---
$Date = Get-Date -Format "yyyy-MM-dd"
# Remplacez le chemin par celui de votre lecteur réseau ou NAS et pour les logs votre dossier
$Destination = "\\ServeurNAS\Backups\FTP_System_Backup_$Date.zip"
$LogFile = "C:\Scripts\backup_log.txt"

Add-Content -Path $LogFile -Value "====================================="
Add-Content -Path $LogFile -Value "Début de la sauvegarde : $(Get-Date)"

# --- Lancement de la sauvegarde avec mdcli ---
# On cible le disque d1 (le disque système dans notre exemple)
Add-Content -Path $LogFile -Value "Lancement de mdcli..."
mdcli backup d1 $Destination

# --- Vérification de l'intégrité (Checksum SHA1) ---
Add-Content -Path $LogFile -Value "Calcul du checksum SHA1 de l'archive..."
$Hash = Get-FileHash -Path $Destination -Algorithm SHA1

Add-Content -Path $LogFile -Value "Checksum généré : $($Hash.Hash)"
Add-Content -Path $LogFile -Value "Fin de la sauvegarde : $(Get-Date)"
Add-Content -Path $LogFile -Value "====================================="

Que fait ce script ? Il crée une archive nommée avec la date du jour directement sur votre partage réseau. Ensuite, il lit ce gros fichier ZIP pour en extraire l’empreinte SHA1 et logue tout ça dans un petit fichier texte. Si le serveur crashe, vous aurez non seulement la sauvegarde, mais aussi la certitude qu’elle est intègre.

Étape 2 : Automatiser pour dormir sur ses deux oreilles

Un script de sauvegarde qu’il faut lancer à la main, c’est la garantie d’oublier de le faire. Nous allons donc confier cette tâche au Planificateur de tâches Windows, pour que cela tourne en dehors des heures de travail (disons, tous les dimanches à 2h00 du matin).

Voici comment faire, étape par étape :

  1. Ouvrez le menu Démarrer, tapez Planificateur de tâches (ou taskschd.msc pour les puristes) et ouvrez-le.
  2. Dans le panneau de droite, cliquez sur Créer une tâche… (pas une tâche de base, on veut les options avancées).
  3. Onglet Général : Donnez un nom (ex: « Sauvegarde Hebdo FTP »). C’est ici qu’il y a une astuce cruciale : cochez la case « Exécuter avec les autorisations maximales ». Multidrive a besoin d’accéder au disque physique à bas niveau, il lui faut donc les droits administrateur.
  4. Onglet Déclencheurs : Cliquez sur Nouveau. Choisissez « Chaque semaine », cochez le Dimanche, et mettez l’heure à 02:00:00.
  5. Onglet Actions : Cliquez sur Nouvelle.
    • Dans « Programme/script », tapez : powershell.exe
    • Dans « Ajouter des arguments », tapez : -ExecutionPolicy Bypass -WindowStyle Hidden -File "C:\Scripts\Backup_FTP.ps1" (Cela permet au script de s’exécuter sans bloquer sur les stratégies de sécurité Windows et de manière invisible).
  6. Validez le tout par OK. Windows vous demandera peut-être votre mot de passe administrateur pour enregistrer la tâche.

Et voilà ! Vous venez de mettre en place une solution de sauvegarde de niveau professionnel, gratuite, automatisée et sécurisée. La prochaine fois que le disque du serveur FTP rendra l’âme, vous ne paniquerez pas : une simple commande mdcli restore avec une clé USB bootable, et la machine repartira comme si de rien n’était.

Le petit bonus du routard: Recevoir le rapport par Mail et sur Discord

C’est bien beau d’avoir une sauvegarde qui tourne toute seule la nuit, mais si vous devez vous connecter au serveur tous les lundis matins pour vérifier le fichier backup_log.txt, on perd un peu l’intérêt de l’automatisation, non ?

En bons feignants de l’IT (les meilleurs !), nous allons faire en sorte que le serveur vienne à nous pour nous dire que tout va bien. À la fin de notre script Backup_FTP.ps1, juste après la ligne Add-Content ... "=====================================", nous allons ajouter deux petits blocs de code.

Option 1 : La notification sur Discord (via Webhook)

Si vous avez un serveur Discord pour votre équipe IT ou votre homelab, c’est la méthode la plus cool.🤘

  1. Allez dans les paramètres de votre salon textuel Discord > Intégrations > Webhooks et créez-en un nouveau.
  2. Copiez l’URL du Webhook généré.
  3. Ajoutez ceci à votre script :
PowerShell
# --- Notification Discord ---
$WebhookUrl = "VOTRE_URL_WEBHOOK_ICI"
$Message = "✅ **Succès** : La sauvegarde complète du serveur FTP est terminée ! `Checksum: $($Hash.Hash)`"

$DiscordPayload = @{
    content = $Message
}
Invoke-RestMethod -Uri $WebhookUrl -Method Post -Body ($DiscordPayload | ConvertTo-Json) -ContentType "application/json"

Et boom ! À 2h05 du matin, vous recevrez une belle petite notif sur votre téléphone vous confirmant que le job est fait.

Option 2 : Le classique rapport par E-mail

Pour les environnements d’entreprise plus classiques, rien ne bat le bon vieux mail avec le fichier log complet. PowerShell permet d’envoyer des mails très facilement (Note pour les puristes : la commande Send-MailMessage est considérée comme obsolète dans les toutes dernières versions de PowerShell, mais elle fait toujours parfaitement le job sur 99% des serveurs Windows actuels).

Ajoutez ceci (en adaptant avec votre serveur SMTP, souvent fourni par votre FAI ou votre hébergeur) :

PowerShell
# --- Envoi du Log par E-mail ---
$SMTPServer = "smtp.votre-serveur.com"
$From = "serveur-ftp@votredomaine.com"
$To = "admin@votredomaine.com"
$Subject = "[Backup] Rapport de sauvegarde FTP - $Date"

# On récupère tout le contenu de notre fichier texte
$Body = Get-Content $LogFile -Raw 

Send-MailMessage -SmtpServer $SMTPServer -From $From -To $To -Subject $Subject -Body $Body -Encoding UTF8

Avec Multidrive en mode CLI, un petit script PowerShell et le planificateur de tâches, vous avez maintenant une solution de type « Set it and forget it » (Configure-le et oublie-le). C’est puissant, c’est gratuit, et ça vous sauvera la mise le jour où un disque décidera de rendre son dernier souffle.

N’hésitez pas à partager en commentaire vos propres astuces de sauvegarde ou comment vous utilisez les outils CLI dans votre quotidien !

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *


Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.