Comment monter l'image DD de l'océan numérique?

8

J'ai créé une ddimage de / en dev/vdautilisant la commande suivante:

ssh [email protected] "dd if = / dev / vda" | jj de = / home / backup / vda.img

et je ne peux pas le monter sur mon serveur Ubuntu local où je l'ai transféré.

Je reçois ceci dans dmesg | tail:

[763158.222159] EXT4-fs error (device loop0): ext4_map_blocks:504: inode #8:block 10541546: comm mount: lblock 23018 mapped to illegal pblock (length 1)
[763158.222299] jbd2_journal_bmap: journal block not found at offset 23018 on loop0-8
[763158.222367] JBD2: bad block at offset 23018
[763158.222581] JBD2: recovery failed
[763158.222588] EXT4-fs (loop0): error loading journal

Si j'essaye de le vérifier avec filej'obtiens:

vda.img: données

Avez-vous des idées de ce que ça pourrait être?

En utilisant kpartx comme Sven l'a suggéré, j'obtiens:

kpartx -l /home/backup/vda.img
boucle supprimée: / dev / loop0

J'ai redémarré le système et essayé à nouveau la commande:

kpartx -lv /home/backup/vda.img
ioctl: LOOP_CLR_FD: le périphérique ou la ressource occupée
ne peut pas supprimer la boucle: / dev / loop0

Et à dmesg | queue je reçois

[73.445903] mappeur de périphériques: uevent: version 1.0.3
[73.446574] mappeur de périphériques: ioctl: 4.22.0-ioctl (2011-10-19) initialisé: [email protected]

Debrian
la source
C'est une chose amusante si nous apprenons à utiliser hexedit ... la vérification des octets réels d'un disque est très utile dans des situations similaires.
peterh
Comment avez-vous créé cette image exactement?
Michael Hampton
@MichaelHampton ajouter la commande dans la question
Debrian
@Debrian: il ddest très peu probable qu'un disque en direct aboutisse à quelque chose d'utile, cela ne fonctionne que de manière fiable sur des disques non montés (ou à tout le moins montés sur ro).
Sven
@Sven Comment proposeriez-vous alors de faire une telle image sur une gouttelette d'océan numérique?
Debrian

Réponses:

6

Vous devrez probablement monter des partitions à l'intérieur du fichier image. Cela peut être fait avec kpartx.

kpartx -l /path/to/image

listera les partitions à l'intérieur du fichier et

kpartx -a /path/to/image

les ajoutera à /dev/mapper/loopXpY(où Xet Yvarie), d'où vous pouvez les monter mount.

Voir man kpartxpour plus d'informations.

Sven
la source
J'obtiens la sortie suivante lorsque j'essaie de les répertorier: kpartx -l /home/backup/vda.img loop supprimé: / dev / loop0
Debrian
@Debrian: Modifiez n'importe quelle sortie dans votre question, ne la postez pas comme commentaire.
Sven
1

J'ai réussi à résoudre le problème de la manière suivante:

J'ai vérifié la taille de la partition que je souhaitais copier, puis j'ai créé un fichier local avec cette taille sur le serveur de sauvegarde et créé la partition à l'intérieur en utilisant les commandes suivantes:

fallocate -l 85899345920 vda.img
fdisk -H 16 vda.img
kpartx -a vda.img
mount / dev / mapper / loop1p1 / mnt / test / -t ext4

Ensuite, j'ai utilisé dd pour copier les données du serveur vers la partition de sauvegarde.

Vérifié tout autour et tout semble bien.

Debrian
la source