Je veux faire une sauvegarde de toute la partition disposition d'un disque dur, y compris les lecteurs logiques, afin que je puisse restaurer cette disposition sur un autre disque. Je ne le fais pas souhaitez copier le contenu des partitions, uniquement la mise en page. Pour les partitions principales et étendues, c'est simple :
dd if=/dev/sda of=partitiontable.bin bs=1 skip=446 count=64 # backup
dd if=partitiontable.bin of=/dev/sda bs=1 seek=446 count=64 # restore
Mais en ce qui concerne la disposition des partitions logiques, je me demande s'il existe parmi les outils standard une manière similaire de sauvegarder la disposition ? Je suppose que le principal problème est de trouver les décalages vers les emplacements des EBR, car avec cela, dd
fera le reste. Gardez à l'esprit que je dois pouvoir tout remettre sur un disque (éventuellement) vierge et ainsi restaurer la même disposition. Utiliser des outils de partitionnement comme fdisk
ou parted
c'est bien, mais je dois pouvoir automatiser leur utilisation (script) et ils ne doivent dépendre d'aucun paquet lié à X - ligne de commande uniquement.
Mon plan de sauvegarde le fait manuellement dans un petit script python en utilisant le module struct, mais j'espérais plutôt qu'il y avait un moyen plus simple.
Réponse acceptée :
Vous pouvez utiliser sfdisk pour cette tâche même dans les disques partitionnés GPT*.
Enregistrer :
sfdisk -d /dev/sdX > part_table
Restauration en conservant les mêmes ID de disque et de partition** :
sfdisk /dev/sdX < part_table
Restaurer en générant de nouveaux ID de disque et de partition** :
grep -v ^label-id part_table | sed -e 's/, *uuid=[0-9A-F-]*//' | sfdisk /dev/sdY
Remarques
* :Pour les tables de partition GPT , cela nécessite sfdisk
depuis util-linux 2.26 ou ultérieur. Il a été réécrit à partir de zéro sur libfdisk.
** :par défaut sfdisk
copiera les ID de disque et de partition inchangés, plutôt que d'en générer de nouveaux. Ainsi, le nouveau disque sera un clone de l'original, pas simplement un autre disque avec la même disposition. Notez que /dev/disk/by-uuid/
de Linux regarde les UUID du système de fichiers, cependant, pas les UUID dans la table de partition. sfdisk
générera de nouveaux UUID si vous supprimez les références aux identifiants de partitions (, uuid=...
) et la référence à l'identifiant du disque (label-id: ...
) à partir du vidage .