Utiliser par2deep pour pallier les défaillances d'APFS
Pré-requis :
- python installé
- par2deep installé
(Suivre les articles concernant ces 2 installations)
Première partie : Installation initiale et utilisation de base
Procédure initiale :
1) Brancher le disque dur à protéger (nommé « HDD_Externe » pour l'exemple)
2) Ouvrir le Terminal en mode utilisateur (pas root)
3) Créer les fichiers de parité avec 10% de redondance, de façon récursive, sur l'ensemble du disque :
par2deep-cli -q -pc 10 -dir /Volumes/HDD_Externe
# -q : mode silencieux automatique. Créer/Vérifier/Réparer sans demander
# -pc 10 : 10% de redondance (10% du poids des données du disque en plus pour stocker les fichiers de parité)
L'opération prend plusieurs heures, voir jours suivant la taille du disque.
Il faut laisser tourner jusqu'à la fin.
L'opération va générer des fichiers .par2 un peu partout.
Il est souvent préférable de les cacher aux yeux des utilisateurs avec la commande suivante (qui n'impacte en rien le fonctionnement de par2deep).
find /Volumes/HDD_Externe -name "*.par2" -exec chflags hidden {} \;
Dernier point.
Si vous partagez le volume via SMB directement depuis MacOS, alors un client Mac ne verra pas non plus les fichiers de parité s'ils ont été cachés par l'hôte avec la commande ci-dessus.
Mais si le partage est hébergé sur un serveur d'un autre système (BSD/Linux/Unix), alors il faudra recourir à l'exclusion du pattern *.par2 dans la configuration de Samba (fichier smb.conf) pour que les utilisateurs ne puissent pas voir les fichiers de parité depuis leur client.
Voici ce qu'il faudrait ajouter à votre configuration Samba :
veto files = /*.par2/
4) Vérification ultérieure :
par2deep-cli -dir /Volumes/HDD_Externe
5) Si corruption détectée :
par2deep-cli -q -dir /Volumes/HDD_Externe
# -q répare tout automatiquement.
La vérification doit être faîte de façon périodique (1 fois par mois par exemple).
Deuxième partie : Gestion avancée et optimisation
Comprendre les durées d'exécution
Il est important de comprendre les différentes phases d'utilisation de par2deep et leur coût en temps :
- Génération initiale : C'est la phase la plus longue. Elle nécessite de scanner l'ensemble du disque, calculer les checksums, générer les fichiers de parité (10% du volume total) et les écrire sur le disque. Pour un disque de 15 To, cette opération peut prendre 24 à 30 heures.
- Vérification régulière : Plus rapide que la génération. Le système lit l'ensemble des données, recalcule les hashs et les compare, mais n'écrit quasiment rien. La durée correspond principalement au temps de lecture séquentielle du disque (15 à 20 heures pour 15 To).
- Réparation automatique : Très rapide s'il n'y a pas de corruption. Si des fichiers sont corrompus, le temps dépend du volume de données à reconstruire. Une corruption d'1 fichier de 20 Go se répare en quelques minutes.
Fréquence de vérification recommandée
Vérification trimestrielle : le meilleur compromis
Pour un disque d'archivage, une vérification tous les 3 mois est largement suffisante :
- Le bit rot se produit lentement et une détection dans un délai de 90 jours permet une correction sans perte
- Seulement 4 lectures complètes par an au lieu de 12 (vérification mensuelle)
- Usage du disque réduit : environ 60 To lus par an contre 180 To avec une vérification mensuelle
- La redondance de 10% permet de réparer jusqu'à 1,5 To de corruption, ce qui ne peut pas s'accumuler en 90 jours sauf défaillance majeure du disque
Note : Pour les archives froides, une vérification trimestrielle est considérée comme une pratique professionnelle. Une vérification mensuelle est excessive, une vérification annuelle est trop risquée.
Cas problématique : Ajout de nouvelles données
Le problème des fichiers corrompus non détectés
Lorsque vous ajoutez ou modifiez des données après la création initiale des fichiers de parité, un risque majeur existe : si un ancien fichier s'est corrompu silencieusement et que vous relancez immédiatement la génération de parité, par2deep va traiter ce fichier corrompu comme un "fichier modifié" et créer une nouvelle parité basée sur la version corrompue. Vous perdez alors définitivement la possibilité de réparer ce fichier.
Procédure stricte avant tout ajout de données :
- Étape 1 : Vérifier
Toujours commencer par une vérification complète avant toute modification - Étape 2 : Réparer si nécessaire
Si des corruptions sont détectées, les réparer immédiatement - Étape 3 : Ajouter/Modifier vos données
Une fois le disque entièrement sain, procéder aux modifications - Étape 4 : Regénérer la parité
Créer les nouveaux fichiers de parité pour les données ajoutées/modifiées - Étape 5 (optionnel) : Vérifier à nouveau
Une dernière vérification pour s'assurer que tout est correct
Commandes pour la procédure complète :
# Étape 1 : Vérification
par2deep-cli -q -dir /Volumes/HDD_Externe
# Étape 2 : Réparation (si corruption détectée)
par2deep-cli -q -repair -dir /Volumes/HDD_Externe
# Étape 3 : Copier/modifier vos données
# (effectuer vos opérations manuellement)
# Étape 4 : Regénération
par2deep-cli -q -pc 10 -dir /Volumes/HDD_Externe
# Étape 5 : Vérification finale
par2deep-cli -q -dir /Volumes/HDD_Externe
Solution optimale : Protection par sous-dossiers
Pourquoi protéger des sous-dossiers plutôt que le disque entier ?
Scanner 15 To de données pour vérifier l'ajout de quelques Mo est totalement inefficace. La solution consiste à créer des jeux de parité indépendants pour chaque grand dossier.
Avantages de la protection par sous-dossiers :
- Vérifications beaucoup plus rapides : Vérifier 300 Go prend 20 minutes au lieu de 4 heures pour 15 To
- Mises à jour incrémentales : Seul le dossier modifié est rescanné
- Usure réduite du disque : Moins de lectures inutiles
- Jeux de parité plus petits : Plus facile à gérer qu'un unique fichier de 1,5 To
Exemple de structure recommandée :
# Structure du disque
/HDD_Externe
/Photos
/Vidéos
/Projets
/Documents
/Logiciels
# Créer une protection par dossier
par2deep-cli -pc 10 -dir /Volumes/HDD_Externe/Photos
par2deep-cli -pc 10 -dir /Volumes/HDD_Externe/Vidéos
par2deep-cli -pc 10 -dir /Volumes/HDD_Externe/Projets
par2deep-cli -pc 10 -dir /Volumes/HDD_Externe/Documents
par2deep-cli -pc 10 -dir /Volumes/HDD_Externe/Logiciels
Avec cette structure, l'ajout de 3 Mo dans le dossier Projets (40 Go) ne nécessite que 3 minutes de scan au lieu de 4 heures pour rescanner les 15 To complets.
Commandes pour la gestion par sous-dossiers
Vérification d'un dossier spécifique :
par2deep-cli -q -dir /Volumes/HDD_Externe/Photos
Réparation d'un dossier spécifique :
par2deep-cli -q -repair -dir /Volumes/HDD_Externe/Photos
Mise à jour après ajout de données :
# 1. Vérifier avant modification
par2deep-cli -q -dir /Volumes/HDD_Externe/Photos
# 2. Réparer si nécessaire
par2deep-cli -q -repair -dir /Volumes/HDD_Externe/Photos
# 3. Ajouter vos nouveaux fichiers
# (copie manuelle)
# 4. Regénérer la parité uniquement pour ce dossier
par2deep-cli -q -pc 10 -dir /Volumes/HDD_Externe/Photos
Synthèse des bonnes pratiques
- Privilégier la protection par sous-dossiers plutôt qu'une protection globale du disque pour gagner un temps considérable
- Vérifier tous les 3 mois pour un disque d'archivage (compromis optimal entre sécurité et usure)
- Toujours vérifier AVANT d'ajouter de nouvelles données pour éviter de valider des fichiers corrompus
- Suivre la procédure stricte : Vérifier → Réparer → Modifier → Regénérer → Vérifier
- Ne jamais relancer la génération de parité sans vérification préalable si le disque a été utilisé depuis la dernière vérification
Cette approche permet de maintenir une protection efficace contre le bit rot tout en optimisant les temps de traitement et en limitant l'usure mécanique du disque.
↑ Haut de page