Comment récupérer (récupérer) un fichier supprimé sur une partition btrfs?
Je n'ai pas encore pris d'instantané, je ne peux donc pas utiliser cette fonctionnalité. Je sais qu'il existe des outils pour d'autres systèmes de fichiers Linux, mais google n'a rien trouvé de spécifique à btrfs. Je suis tombé sur une vague mention que btrfs inclut un outil de suppression, mais je ne le trouve pas. Avant d'essayer des outils pour un autre système de fichiers, je demande ici.
Plus d'informations:
- Les (deux) fichiers supprimés ont été supprimés par une
rsync
commande à distance qui a mal tourné. - Il s'agissait de petits fichiers en texte brut.
- Je connais les noms des fichiers.
- Je pourrais peut-être me souvenir de certaines chaînes dans les fichiers.
- Le disque est un disque dur ordinaire, mais il est volumineux (2 To).
- J'utilise Kubuntu 12.04 (beta2) avec toutes les dernières mises à jour.
- Je n'ai pas écrit de nouvelles données sur la partition à partir de laquelle les fichiers ont été supprimés.
- Je n'ai pas d'instantané ni de sauvegarde de ces fichiers. (La dernière sauvegarde a juste quelques heures de plus que ces fichiers.)
- Étrangement, un système de fichiers COW semble avoir moins d'options de suppression de fichiers que ext3 / 4 ...
la source
Si votre lecteur btrfs a des sous-volumes, vous devez passer l'
-r <subvol-id>
option supplémentaire àbtrfs restore
. Malheureusement, les scripts, comme celui publié par user414471 ( http://oelkers.de/tips/undeleteBtrfs.sh ), n'ont pas d'option pour le faire, mais ils peuvent probablement être adaptés à cela.Si vous voulez le faire à la main, vous devez obtenir le bon sous-id de vol, soit avec:
ou bien avec:
Ensuite, vous utilisez
btrfs-find-root
pour obtenir le numéro de bloc auquel vous souhaitez revenir (généralement celui juste avant le maximum qui est la racine actuelle). Pour cela, vous devez d'abord définir le sous-volume par défaut sur celui à partir duquel vous souhaitez rétablir les fichiers (et annuler cette modification par la suite):Vous pouvez enfin utiliser
btrfs restore
avec-r <subvol-id>
pour la récupération (initialement avec l'--dry-run
argument si vous le souhaitez):Plus d'informations sur tout cela ici: https://btrfs.wiki.kernel.org/index.php/Restore
la source
btrfs-find-root
étape ne se termine jamais (c'est-à-dire qu'elle fonctionne à 100% CPU pendant 3 heures sur un FS <250 Go). Voir aussi une histoire similaire spinics.net/lists/linux-btrfs/msg61361.html .