3 votes

Erreurs dans les en-têtes eCryptfs

J'obtiens l'erreur suivante sur un serveur où une partition est cryptée par ecryptfs.

[3440851.003561] Valid eCryptfs headers not found in file header region or xattr region, inode 22545087
[3440830.026081] Valid eCryptfs headers not found in file header region or xattr region, inode 22553905

Après avoir démonté la partition cryptée et la partition ext4 ci-dessous, j'ai effectué un fsck qui m'a donné le résultat suivant :

fsck from util-linux 2.20.1
e2fsck 1.42.9 (4-Feb-2014)
/dev/sda3: clean, 65092/72302592 files, 54219978/289200384 blocks

Je ne comprends pas très bien ce qui s'est passé. Nous utilisons la même configuration sur plusieurs instances, et nous observons ce phénomène sur une seule d'entre elles.

La solution pourrait être de changer les disques sous-jacents ! Mais j'aimerais comprendre ce qui s'est passé, afin de pouvoir éventuellement détecter et prévenir ce genre d'incident.

2voto

martin Points 49

J'ai vu cela se produire lorsque le système n'avait pas été arrêté proprement. En particulier, j'ai vu cela se produire lorsque les données cryptées étaient stockées sur un périphérique USB et que la connexion entre l'hôte et le périphérique USB n'était pas très fiable. Mais je pense que d'autres arrêts non nettoyés pendant que des fichiers sont en cours d'écriture peuvent également être à l'origine de ce problème.

Recherche par inode comme suggéré dans le répondre por Giovanni peut en effet être utilisé pour trouver le fichier problématique. Comme ecryptfs préserve les numéros d'inode du système de fichiers sous-jacent, cette commande peut être utilisée pour trouver à la fois le chemin crypté et non crypté vers le fichier.

La recherche du fichier dans le système de fichiers sous-jacent de cette manière est nettement plus rapide que la recherche dans le système de fichiers ecryptfs. Mes mesures sur un système ont montré un ralentissement d'un facteur 8 entre les deux avec des caches froids et une différence d'un facteur 350 avec des caches chauds.

En raison de cette surcharge, je vous suggère de trouver d'abord le fichier crypté dans le système de fichiers sous-jacent. Par exemple, dans la configuration par défaut d'un système Ubuntu, la commande suivante pourrait être utilisée :

find /home/.ecryptfs -inum 22545087

Cela devrait permettre de trouver le chemin d'accès au fichier crypté, qui comprend le nom du répertoire personnel dans lequel il a été trouvé. Lors de la recherche du nom du fichier non crypté, vous pouvez alors immédiatement limiter la recherche à un seul répertoire personnel :

find /home/username -inum 22545087

Si l'utilisateur a tellement de fichiers que cela est trop lent, vous pouvez tirer parti des numéros d'inode pour consulter un niveau de répertoire à la fois. Par exemple, si le nom du fichier crypté est

/home/.ecryptfs/username/.Private/ECRYPTFS_FNEK_ENCRYPTED.AAAAAA/ECRYPTFS_FNEK_ENCRYPTED.BBBBBB/ECRYPTFS_FNEK_ENCRYPTED.CCCCCC

Vous pouvez d'abord lancer

ls -i /home/.ecryptfs/username/.Private/ECRYPTFS_FNEK_ENCRYPTED.AAAAAA

Vous obtiendrez ainsi le numéro d'inode du répertoire le plus éloigné. Vous pouvez alors rechercher la version non cryptée du nom de ce répertoire :

ls -i /home/username | grep $INODE_NUMBER_FROM_LS

Vous pouvez répéter cette opération pour chaque niveau de la hiérarchie des répertoires afin d'obtenir le chemin d'accès non chiffré sans avoir à utiliser autant de temps CPU que nécessaire pour déchiffrer chaque nom de fichier dans ce répertoire personnel.

1voto

Giovanni Toraldo Points 2537

Découvrez quel fichier est à l'origine de ce via :

find / -inum <inode number>

Vous trouverez probablement un fichier tronqué, et c'est la raison pour laquelle ecryptfs émet cet avertissement.

Essayez de lire le fichier avec cat, et rm pour corriger l'avertissement.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X