2 votes

Impossible d'obtenir une image de bonne taille avec la commande DD

J'ai besoin de faire une image disque de mon DD. Il s'agit d'un disque dur de 4 To avec 2 partitions (total utilisé : 1,7 To). Comment obtenir une image correcte de 1,7 TO avec la commande dd ?

État du disque avec fdisk

Utilisé :

dd if=/dev/sdq count=2399842303 of=/tmp/imagedisk.img bs=4096 status=progress

Mais cela ne fonctionne pas La tâche se poursuivra sur 2,3,4 TO.

Quelqu'un peut-il me donner la commande correcte ?

1voto

Tom Yan Points 635

Tout d'abord, veuillez noter que si vous effectuez une disque (ou même une image partition image), on ne peut pas se contenter de cloner la quantité utilisée sur les système de fichiers (c'est-à-dire Used comme indiqué dans df ).

En outre, même si par "utilisé" vous faites référence à la taille de la ou des partition(s), si vous ne faites pas une image complète du disque, vous devriez probablement faire des images de la ou des partition(s) à la place (et éventuellement sauvegarder la table de partition / MBR dans un fichier séparé, en particulier dans le cas de GPT -- il y a sgdisk ).

Si vous ne pouvez vraiment pas vous permettre de créer des images de disque/partition en raison d'un manque d'espace de stockage, vous pouvez envisager de le faire :

  • faire un "clone de système de fichiers", avec un outil comme partclone ou l'approche amont / officielle pour certains types de systèmes de fichiers, tels que btrfs send .
  • dd con conv=sparse qui pourrait éviter des blocs (de la taille de bs= , je crois) qui sont totalement absents de l'espace qu'ils occupent (Voir cette pour plus de détails).
  • réduisez le(s) système(s) de fichiers autant que possible afin de pouvoir redimensionner la(les) partition(s) avant le clonage. Certains types de systèmes de fichiers ne prennent cependant pas en charge la réduction.

Je n'ai pas d'expérience en matière de conv=sparse btw. L'efficacité de ce système peut également dépendre de plusieurs facteurs, tels que le type de système de fichiers sur lequel les images sont écrites / stockées, et/ou si le disque source est un SSD qui est au moins partiellement RZAT ("read zero after trim"), etc.

Enfin, pour parler de dd , il y a iflag=count_bytes ce qui vous permettrait d'utiliser count= pour déterminer le nombre de octets (au lieu de blocs dans la taille de (i)bs= ) pour cloner.

bs=4k est souvent suffisamment bonne / la meilleure à utiliser, non pas parce qu'elle pourrait la taille physique des blocs du disque dur, mais parce qu'il s'agit de la taille typique d'un bloc de données, il est possible d'obtenir des informations sur la taille d'un bloc. [taille de la page](https://en.wikipedia.org/wiki/Page(computermemory)) . Bien qu'une taille de 128k ou 512k puisse fonctionner encore mieux lors de la lecture à partir de certains dispositifs de stockage à mémoire flash.

0voto

Gerrit Points 1297

Bs=512 devrait faire l'affaire. Les secteurs logiques affichés dans les colonnes de début et de fin sont des secteurs de 512 octets.

0voto

Ter3ry Points 1

dd if=/dev/sdq of=/tmp/imagedisk.img bs=1MB count=1700000

bs=1MB définit une taille de bloc de 1 mégaoctet (1000000 octets), tandis que count=1700000 le multiplie, ce qui donne l'échelle du téraoctet.

Si vous voulez vraiment vous en tenir à des blocs de 4Kb, vous devez faire le calcul : 1.700.000.000.000/4096 = 415039062,5 ~ 415039063 qui en résulte :

dd if=/dev/sdq of=/tmp/imagedisk.img bs=4k count=415039062 (4k = 4096).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X