E2image restaurer les métadonnées du système de fichiers

J'essaie de recréer les métadonnées du système de fichiers sur un disque virtuel. Je peux enregistrer ces métadonnées à l'aide d'e2image, et la page de manuel e2image me dit que je peux utiliser e2image -I pour restaurer le système de fichiers. Malheureusement, la page man ne fournit aucune information sur l'utilisation de cet argument. J'ai essayé ce qui suit (résultats de commande indentés pour faciliter la lecture):

 msk $ e2image /dev/nbd1 -I test.qcow2 e2image 1.42.5 (29-Jul-2012) e2image: Wrong magic number for Ext2 Image Header while trying to open test.qcow2 msk $ sudo e2image /dev/nbd1 -I test.qcow2 e2image 1.42.5 (29-Jul-2012) e2image: Wrong magic number for Ext2 Image Header while trying to open test.qcow2 msk $ sudo e2image test.qcow2 -I /dev/nbd1 e2image 1.42.5 (29-Jul-2012) e2image: Wrong magic number for Ext2 Image Header while trying to open /dev/nbd1 

Mon système de fichiers est en fait ext4, mais la page man indique ce qui suit:

 The e2image program will save critical ext2, ext3, or ext4 

J'ai utilisé la commande suivante pour créer l'image:

 sudo e2image -Q /dev/mapper/nbd0p1 test.qcow2 

E2image prend en charge trois formats différents; Par défaut, il crée un format de fichier e2image personnalisé "normal". Avec -r, il crée un grand fichier sparse avec des métadonnées aux décalages appropriés, et avec -Q, il crée un fichier au format qcow2. (L'option -Q a été ajoutée quelque peu récemment pour rendre les images plus grandes du système de fichiers plus portables).

Bien qu'il ne soit pas du tout clair à partir de la page de manuel, l'option -I n'est valable que pour un format de fichier e2image "normal" – c'est-à-dire une image créée sans -r ou -Q.

Puisque vous avez une image qcow2, vous pouvez utiliser qemu-img pour l'écrire à nouveau sur un périphérique de bloc:

 # qemu-img convert -O raw test.qcow2 /dev/nbd1 

Cependant , vous devez savoir que votre image générée par e2image contient uniquement des métadonnées , c'est-à-dire aucune donnée de fichier. Vous écrivez des métadonnées qui indiquent différents blocs sur / dev / nbd1 pour les données de fichier, et les fichiers contiendront donc toutes les données précédemment dans ces blocs sur / dev / nbd1.

Donc, je vous ai dit comment le faire, mais assurez-vous que c'est vraiment ce que vous voulez faire!

Il est possible de restaurer une image QCOW2 créée à l'aide d' e2image -Q utilisant e2image -r . Par exemple:

 # e2image -Q /dev/sdb1 image.qcow2 # e2image -r image.qcow2 /dev/sdb2 

Notez que j'ai testé ceci avec la version 1.42.12 de e2fsprogs.

À partir de >= 1.42.9 , e2image prend également en charge le -a drapeau qui vous permet d'inclure les données du système de fichiers en plus des métadonnées:

 # e2image -Qa /dev/sdb1 image-full.qcow2 # e2image -r image-full.qcow2 /dev/sdb2 

J'ai vérifié que, dans ce cas, e2image -r n'écrit que les blocs attribués à la cible, alors que qemu-img convert apparaît pour écrire l'intégralité du système de fichiers logique. Cela permet d'économiser beaucoup d'E / S pour les systèmes de fichiers partiellement utilisés.