J'ai parcouru les listes de diffusion et j'ai finalement fini sur la btrfs
page d'Ubuntu , et j'ai le sentiment qu'il n'a btrfs
toujours pas d'utilitaire de correction complet (comme indiqué sur leur page d'accueil ). Même s'il y a des mois, il était prévu d'être la valeur par défaut pour Linux d'Oracle et est inclus dans de nombreuses distributions.
Donc, au lieu de cela, y a-t-il un guide de dépannage quelque part sur la façon de réparer btrfs
?
À défaut, la copie de mes sauvegardes par-dessus mon FS réparera-t-elle les choses? (Lors de la suppression d'instantanés si nécessaire pour l'espace? Ou pour supprimer la corruption?) Dois-je plutôt essayer de revenir à un instantané précédent, puis restaurer les fichiers manquants à partir de la sauvegarde? Ou restaurer les fichiers manquants de mes instantanés @ et @home?
Remarque : Il s'agit d'une question générale. J'ai délibérément omis mes problèmes exacts de FS (pour le moment); Je veux trouver un flux de travail général / canonique et un guide de dépannage.
(Ok, ok - voici quelques plus de détails;)) :
Je me suis éteint lors d'un arrêt bloqué et j'ai donc été confronté à une instabilité du système. Le système démarre et s'exécute pendant un certain temps jusqu'à ce qu'il écrit suffisamment de données et se fige. La dernière fois, je venais d'ouvrir Thunderbird. Ceux-ci nécessitent des réinitialisations plus dures et vraisemblablement plus de corruption.
sudo btrfsck /dev/sda1
oscille entre quelques erreurs - souvent la première fois du formulaire
root 338 inode 7861227 errors 1000
root 338 inode 7904568 errors 1000
root 338 inode 7955174 errors 400
found 46242054144 bytes used err is 1
total csum bytes: 43112400
total tree bytes: 2074640384
total fs tree bytes: 1889853440
btree space waste bytes: 547680627
file data blocks allocated: 110756974592
referenced 68393684992
Btrfs Btrfs v0.19
oooo, maintenant c'est vraiment vraiment fruité (je m'attendais seulement à voir parent transid verify failed
ici ...)
parent transid verify failed on 14266105856 wanted 464223 found 464221
parent transid verify failed on 14266105856 wanted 464223 found 464221
Extent back ref already exists for 14261530624 parent 0 root 256
leaf parent key incorrect 14261751808
bad block 14261751808
Extent back ref already exists for 66455355392 parent 0 root 2
Extent back ref already exists for 66455257088 parent 0 root 2
Extent back ref already exists for 14257274880 parent 0 root 2
block 14262571008 rec extent_item_refs 2, passed 2
block 14262575104 rec extent_item_refs 1, passed 1
block 14262579200 rec extent_item_refs 1, passed 1
Extent back ref already exists for 14262579200 parent 0 root 257
leaf 14263906304 items 50 free space 132 generation 464224 owner 2
fs uuid 7d049403-cf6e-4b52-a624-32051e1f5b2a
chunk uuid be6f8f93-320c-4465-85d6-f53907698c32
item 0 key (14263341056 EXTENT_ITEM 4096) itemoff 3944 itemsize 51
extent refs 1 gen 464168 flags 2
tree block key (8332576 1 0) level 0
tree block backref root 257
item 1 key (14263345152 EXTENT_ITEM 4096) itemoff 3893 itemsize 51
extent refs 1 gen 464168 flags 2
tree block key (8332586 c 8332543) level 0
tree block backref root 257
failed to find block number 14263525376
(Tous bien résumés bien sûr; je n'ai jamais voulu vous submerger de ces détails :))
Et maintenant, ma dernière exécution me laisse avec le familier:
parent transid verify failed on 14265458688 wanted 464230 found 464221
parent transid verify failed on 14265458688 wanted 464230 found 464221
parent transid verify failed on 14265458688 wanted 464230 found 464223
btrfsck: root-tree.c:46: btrfs_find_last_root: Assertion `!(path->slots[0] == 0)' failed.
, y compris l'erreur aléatoire facultative à la fin. Oh joie heureuse. Notez que ceux-ci verify failed
changent à mesure que les données sont écrites sur le lecteur.
Une autre erreur aléatoire:
btrfsck: disk-io.c:412: find_and_setup_root: Assertion `!(!root->node)' failed.