web-dev-qa-db-fra.com

Comment utiliser DD pour migrer des données d'un ancien lecteur vers un nouveau lecteur?

Je mettant à niveau le disque dur SATA interne sur mon ordinateur portable à partir d'un lecteur de 40g à un lecteur de 160g. J'ai un bureau Linux/Ubuntu qui a une carte SATA. Je voudrais réellement faire la même chose pour quelques cordes Centos & FreeBSD au travail, et il semble que cela aurait la même solution.

J'ai entendu dire que je peux utiliser DD Pour refléter la partition 40G au lecteur de 160g, ou que je peux sauvegarder la partition 40g comme une image sur mon local système, puis copiez cette image 40g sur le lecteur de 160g.

Quelqu'un peut-il décrire comment je peux faire cela? Ai-je besoin d'autres utilitaires, tels que GParted

30
Stefan Lasiewski

Votre première tâche serait de connecter les deux disques à un système Linux existant ou de connecter le nouveau disque au système d'origine.

Vous devez être très Attention car il est très simple de copier le disque vide en haut du bon disque!

Pour finir avec les secteurs de démarrage et tout, vous feriez quelque chose comme:

dd if=/dev/hdx of=/dev/hdy

hdx est votre disque 40g et hdy est votre disque 160g. Vous remarquerez qu'il n'y a pas de numéros de partition comme /dev/hdx1. Ceci copie l'ensemble du disque, des informations de partition et de tous.

Votre nouveau disque va tout juste comme l'ancien disque, alloué 40g. Il devrait démarrer jusqu'à ce qu'il soit placé dans votre ordinateur portable. J'espère que vous avez utilisé LVM? Sinon, j'espère que vous n'avez pas utilisé toutes les partitions? Avoir passé ce point nécessite beaucoup plus d'informations.

Une autre solution consiste à vider chaque partition individuelle. Cela nécessite beaucoup plus de sensibilisation à la situation, car vous aurez besoin de recréer les informations de démarrage.

Tout cela est mieux utilisé pour le clonage des ordinateurs, ne pas améliorer les disques durs. Il est beaucoup préférable de restaurer une nouvelle installation à l'aide de vos sauvegardes.

6
Stephen Jazdzewski

Normalement, je suggérerais une solution telle que "raccorder le 2e disque dur à l'aide d'une enceinte externe, démarrer à partir d'un CD Linux, puis utilisez une commande telle que dd if=/dev/sda of=/dev/sdb bs=1G, mais puisque vous voulez utiliser la même technique pour le travail, j'ai ce qui peut être une meilleure solution.

Tous mes serveurs et ordinateurs portables sont imagorés au travail en utilisant Clonezilla . Il existe deux façons de l'utiliser ... l'une d'entre elles utilise un serveur dédié et est probablement surkill pour vous et un autre qui utilise un CD de démarrage et un disque dur externe.

L'idée est que vous démarrez avec le CD de clonezilla et que vous avez un lecteur USB externe (plus grand que le lecteur source). Clonezilla vous promène en faisant une image du lecteur existant, après quoi vous éteintez la machine, remplacez le lecteur, puis démarrez dans la clonezilla et vous vous promenez grâce à la restauration des données.

Cela vous donne la possibilité d'a) mettre l'image sur un plus grand lecteur, et b) conserver une sauvegarde des données.

17
Matt Simmons

Pendant que vous CAN Utilisez DD pour copier un disque comme celui-ci, ce faisant un certain nombre d'inconvénients:

  1. La destination doit être exactement la même taille ou plus grande que la source
  2. Après la copie, vous devrez redimensionner les partitions pour utiliser tout espace supplémentaire.
  3. Vous allez perdre du temps à copier un espace libre
  4. Toute fragmentation présente dans l'ancien disque est préservée

L'utilisation d'un programme d'imagerie comme Ghost4Linux, PartcLone ou Clonezilla au moins s'occupe des numéros 2 et 3. Vous pouvez également formater simplement le nouveau disque, le monter et copier tous les fichiers avec cp -ax (en tant que root), puis réinstallez le chargeur de démarrage sur le nouveau lecteur. Cette méthode ne souffre pas d'aucun des inconvénients ci-dessus.

5
psusi

Vous avez demandé comment le faire avec DD, mais j'ai eu une meilleure réussite de la sortie de dans Restaurer . Compte tenu de la source ad1s1a et la cible ad2s1a :

$ mount /dev/ad2s1a /target
$ cd /target
$ dump -0Lauf - /dev/ad1s1a  | restore -rf -

J'ai essayé ceci sur FreeBSD, en fait, je l'ai trouvé sur le Forum FreeBSD

2
zvolkov

Un exemple simple est-ce:

dd if=/dev/sda of=/dev/sdb

Mais si vous avez des besoins particuliers, vous devriez vraiment lire le MANPAGE (Man DD) ou la recherche sur Google.

Une autre idée pourrait être l'utilisation de rsync (N'oubliez pas de définir les bonnes options, comme -az [Packages les fichiers au lieu de copier un fichier après un autre] ou --Numeric-IDS [utilise le UID/GID au lieu de noms comme "racine"] et peut-être d'autres). Le lien contient de nombreux exemples.

Si le nouveau disque dur n'a pas de partitions, vous pouvez utiliser GParted ou Palimpset.

Lorsque vous n'êtes pas sûr, je formaterais le disque dur, puis synchronisez les données avec RSYNC.

1
fwaechter

Eh bien, j'ai fait des migrations similaires à celles-ci en démarrant avec les deux disques attachées et un CD Live.

  1. Vous recréez les informations de partition du premier disque dans le second, produisant éventuellement des partitions plus grandes pour utiliser l'espace supplémentaire, etc.
  2. Ensuite, supposons que vous ayez/dev/dev/sda {1,2,3,4} et souhaitez-vous les copier sur/dev/sdb {1,2,3,4}, vous mkdir/mnt/sd {A, B} {1 , 2,3,4} et monter chaque partition dans chaque Dir (ou si vous voulez le faire un à un, vous pouvez faire un/mnt/origine/mnt/destination et montage/monte chaque paire)
  3. Ensuite, vous faites un cp -avr/mnt/origine /./MNT/DESTINATION/(ou un CP -AVR/MNT/SDA1 /./MNT/SDB1 /
  4. Attendez pendant que vous parcourez le web :)
  5. Rappelez-vous de vous de réinstaller Grub, Lilo ou tout ce que vous utilisez BootManager.

Ce faisant de cette façon, vous défragmenter les fichiers tels qu'ils sont copiés, vous pouvez également modifier les systèmes de fichiers dans les partitions (migrer de reiserfs ou ext3 à ext4, etc.), mais s'il vous plaît, n'oubliez pas de modifier/etc/fstab après avoir été copié la nouvelle situation.

1
Jorge Nerín