Backup de conteneur LUKS sur disque moribond

Bonjour à tous !

Petite panique en ce moment, mon NAS vient de lâcher et j’en appelle à votre expertise pour savoir ce que je peux sauver.
J’ai démonté le disque dur pour le mettre dans un boîtier et j’attends de recevoir mon nouveau disque pour faire une copie avant de tenter toute manipulation.

Contexte :
Mes données sont dans un conteneur LUKS sous forme de fichier.
Les systèmes de fichiers (contenant et contenu) sont en ext4.
Je connais la passe-phrase et j’ai une sauvegarde du header LUKS.

Problème :
Je pense que le disque commence à mourir, car le fichier ayant normalement une taille de 1.2To est aujourd’hui reconnu sous une taille de 1.2Go lorsque je le monte dans une boîtier externe. Du coup, impossible de monter le conteneur LUKS. De plus, le NAS ne démarre plus.

Questions :
Comment récupérer les données chiffrées ?
Est-ce que je peux lancer un fsck sur le système contenant le fichier, et espérer qu’il reconnaisse à nouveau la véritable taille du fichier ?
Sinon, est-ce que je peux forcer le système de fichier à reconnaître la véritable taille de mon fichier (sachant qu’il est contigu), éventuellement restaurer le header LUKS, monter le conteneur et récupérer les données, même si certaines sont corrompues ?

Merci d’avance pour vos retours !

Je suis pessimiste.

AMA ce n’était pas une excellente idée d’utiliser un fichier comme conteneur LUKS car cela ajoute une couche de complexité et en cas d’altération du système de fichiers sous-jacent l’accès au contenu chiffré devient problématique.

D’abord, il faudrait commencer par cloner le système de fichiers sur un support sain en deux exemplaires, une copie de sauvegarde et une copie de travail pour tenter la récupération. La copie de travail peut être refaite à partir de la copie de sauvegarde autant de fois que nécessaire.

fsck peut faire plus de mal que de bien dans le sens ou il va remettre le système de fichiers dans un état incohérent mais cela peut être au prix des fichiers qu’il détecte comme endommagés.

Si le fichier LUKS est vraiment contigu (comment en as-tu l’assurance ?), tu peux rechercher la position du premier bloc avec debugfs, puis créer un périphérique “loop” à partir du contenant du système de fichiers avec losetup en spécifiant l’offset de la position de début du fichier LUKS.

Je suis optimiste. :slightly_smiling_face:

C’était le plus simple pour garantir un peu de confidentialité sur un NAS du commerce pas très ouvert… Mais je suis d’accord que ce n’est pas l’idéal.

J’attends de recevoir mon nouveau disque dur pour effectivement travailler en toute sécurité sur une copie de copie.

Concernant la contiguïté, je me suis peut-être un peu trop avancé, effectivement. Je voulais dire que le fichier alloué est “non-sparse” (fallocate). Mais ce n’est pas suffisant pour affirmer la contiguïté d’un fichier de 1.7To sur une partition ext4 de 1.9To j’imagine ?

Merci beaucoup pour ta réponse !

J’en doute. Cela peut aider, mais sans garantie car cela repose sur la stratégie d’allocation du système de fichiers.