web-dev-qa-db-fra.com

BTRFS, démarrage du bloc d'arbre défectueux

Tout d'abord quelques informations sur ma configuration. J'ai 7 disques durs dans un RAID 5 (je sais, passer à RAID 6, mais pas la question ici). En plus de cela, je lance LVM, avec une partition pour btrfs. BTRFS est à la version 3.1245. Le noyau est 3.13.0-53-generic. J'utilise Ubuntu 14.04.2 LTS

Je viens juste de terminer la migration de ces données depuis ext4 via une série de lvextend/reduction des partitions EXT4 aux partitions btrfs. J'utilisais un lecteur temporaire dans LVM pour me donner l'espace nécessaire pour déplacer les données entre les deux partitions en morceaux plus volumineux.

Au cours du week-end, il a finalement fini et j'étais prêt à supprimer la partition EXT4 et à supprimer le lecteur temporaire.

J'ai réduit la taille de btrfs en utilisant la commande deux fois (pour être sûr d'avoir suffisamment d'espace vierge à la fin):

btrfs filesystem resize -950G

Dans ma hâte (hâte faite beaucoup de déchets ...), j'ai tapé la commande:

lvreduce -L 950G /dev/bigdisk/btrfs

au lieu de

lvreduce -L -950G /dev/bigdisk/btrfs

Quand j'ai essayé de monter le système de fichiers, j'ai eu:

wrong fs type, bad option, bad superblock on /dev/mapper/bigdisk-btrfs...

dmesg m'a donné:

btrfs bad tree block start 12460867831478107890 3823471755264
btrfs bad tree block start 13567085538622844823 3823471755264
btrfs bad tree block start 12460867831478107890 3823471755264
btrfs bad tree block start 13567085538622844823 3823471755264
btrfs: failed to recover balance
btrfs: open_ctree failed

Dans ma panique quand j'ai réalisé qu'il ne monterait pas, j'ai couru:

lvextend -l +100%FREE /dev/bigdisk/btrfs

qui n'a rien arrangé. Googler (j'aurais dû le faire en premier), amenez-moi à la commande vgcfgrestore, que j'ai exécutée, a trouvé la sauvegarde antérieure à ma vis 950G et restaurée:

vgcfgrestore -f [Filename here] -v /dev/bigdisk

toujours pas d'amour, mêmes messages d'erreur.

J'ai essayé de monter avec l'option de récupération:

mount -orecovery,ro /dev/bigdisk/btrfs

mêmes erreurs

J'ai couru:

btrfs rescue super-recover -v /dev/bigdisk/btrfs

qui retourne tout bon, pas mal. "Tous les supers sont valables, pas besoin de récupérer"

J'ai lancé la récupération de morceaux la nuit dernière avec espoir, ce que je viens de vider de mon écran en préparant ce message :(, mais il a été trouvé qu'il avait trouvé un tas de bons morceaux, mais ne pouvait pas réparer. Je le relancerai et postez la sortie ici dès qu'elle se termine. J'ai lancé: btrfs rescue chunk-recover -v/dev/bigdisk/btrfs

Y at-il autre chose que je puisse faire? J'ai des sauvegardes de mes fichiers importants, mais cette matrice incluait des extraits de mes DVD/Blurays, que nous avons assez souvent. L'idée de les racheter me rend très triste, cela prendra des mois. La grappe de disques est assez grande et il est donc peu pratique d'effectuer une sauvegarde complète du disque (la taille de la partition est d'environ 12 To).

1
Ben

Pour ceux qui trouveraient cela plus tard, il s'est avéré que la mise à jour du noyau à la version 3.19 corrigeait tout. J'ai mis à niveau, redémarré et le disque monté au démarrage sans erreurs. La vérification de BTRFS est revenue, de même que le gommage.

2
Ben