web-dev-qa-db-fra.com

Devrais-je répondre oui à "cloner des blocs réclamés multiples <y>?" En cours d'exécution E2FSCK?

Lors de l'exécution E2FSCK -CCK/DEV/MAPPER/XXX, je suis invité à

   has 487 multiply-claimed block(s), shared with 84 file(s): 
    ... (inode #221446306, mod time Tue Feb 20 19:48:38 2018) 
    ... (inode #221446305, mod time Tue Feb 20 19:48:32 2018) 
    ... (inode #221446304, mod time Tue Feb 20 19:48:38 2018) 
    ... (inode #221446303, mod time Tue Feb 20 19:48:12 2018) 
    ... (inode #221446302, mod time Tue Feb 20 19:59:04 2018) 
    ... (inode #221446300, mod time Tue Feb 20 19:47:52 2018) 
Clone multiply-claimed blocks<y>?

Quelle sera la conséquence possible de continuer avec oui. Y aura-t-il une perte de données complète? Quel est le résultat si continue avec non?

10
john test

Les blocs de multiplication multiples sont des blocs utilisés par plusieurs fichiers, quand ils ne devraient pas être. Une conséquence de cela est que cela modifie l'un de ces fichiers, dans l'un des blocs concernés, apparaîtra également comme des modifications apportées aux fichiers qui partagent les blocs, ce qui n'est pas ce que vous voulez. (Les liens difficiles sont un scénario différent, qui ne se présente pas ici.)

S'il y a une perte de données ici, celle-ci s'est déjà produite , et elle ne sera pas facilement réversible; Mais cela pourrait être aggravé ...

Si vous répondez "non" à la question fsck, le système de fichiers restera dans un état incohérent. Si vous répondez "oui", alors fsck _ Copiera les blocs partagés afin qu'ils puissent être réaffectés à un seul fichier - avec les 84 fichiers impliqués ici, chaque bloc serait copié 83 fois. Cela évitera la perte de données future, car les modifications apportées aux fichiers seront limitées à chaque fichier individuel, comme vous l'attendez. Toutefois Clonage Les blocs pourraient impliquer une écrasement des données dans d'autres blocs, qui semblent actuellement inutilisées, mais peuvent contenir des données que vous souhaitez conserver.

Donc, le conseil traditionnel de récupération de données s'applique: Si vous pensez que vous devez récupérer des données à partir du système de fichiers, ne le touchez pas; Faites-en une copie sur un autre disque et travaillez à ce sujet pour récupérer les données. Le scénario ici où cela pourrait être souhaitable est le suivant. Les fichiers A et B utilisés pour être séparés, mais en suivant une certaine corruption quelque part, le fichier B partage maintenant des blocs avec le fichier A. Si rien ne dispose de vieux blocs de fichier B de fichier écrasé, mais il n'est plus accessible. Tant que rien n'écrit ces blocs, ils peuvent être récupérés (avec une bonne quantité d'effort). Mais une fois écrasé, ils sont partis; Et ici, clonant les blocs partagés du fichier A pourrait écraser les anciennes données ...

En résumé, si vous avez des sauvegardes, ou si vous savez que les données peuvent être récupérées facilement, répondez "oui". Sinon, arrêtez fsck, copiez le système de fichiers ailleurs, et si vous avez besoin du système de sauvegarde et d'exécution du système, exécutez fsck à nouveau et répondez "Oui" (et récupérez les données de la copie) . Si les données sont importantes et doivent être récupérées, copiez le système de fichiers ailleurs, mais laissez l'original seul - si vous avez besoin du système de sauvegarde et d'exécution, effectuez une autre copie et exécutez le système de cela, après avoir exécuté fsck dessus.

11
Stephen Kitt