GNU/Linux >> Tutoriels Linux >  >> Linux

Comment copier la disposition des partitions d'un disque entier à l'aide d'outils standard ?

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 .


Linux
  1. Comment partitionner un disque sous Linux

  2. Comment cloner une partition de disque Linux sur le réseau à l'aide de dd

  3. Comment copier un fichier dans plusieurs répertoires à l'aide de la commande gnu cp

  4. À l'aide de la commande cp dans le shell Linux, comment copier un répertoire entier dans un autre répertoire ?

  5. Comment savoir ce qui utilise tout l'espace sur ma partition / ?

Comment créer et gérer des partitions Linux à l'aide de Parted

Comment chiffrer une partition sous Linux

Comment créer des partitions de disque sous Linux

Comment déterminer ce qui utilise le plus d'espace disque sur un serveur Linux ?

Comment créer une partition à l'aide de la commande "parted"

Comment créer des partitions de disque à l'aide de cfdisk