Cloner deux PC par le réseau

Ce document a été écrit depuis l’article de Gerrit Renker. http://www.linuxfocus.org/Francais/March2005/article370.shtml

Introduction

IL y a 2 méthodes :

  • Le meccano : il prend son tournevis, démonte ces PC met le disque destination sur le PC source. Enfin, en root
#dd if=/dev/sda of=/dev/sdb bs=4096

Brutale autant qu’inélégante, cette façon de faire est la plus longue. Pour 200 Go sur un PIV 3 GHz, prévoir une nuit. Les disques pata se dupliquent en remplaçant sda par hda. Les disques (ou partitions) doivent être de taille équivalente. Le disque de destination peut être plus gros, mais au final il aura la taille du disque source !!! eh ! eh !. Puis le titre c’est par le réseau na.

  • Le geek : live cd et dump / restore

Live cd = choisir votre préféré, mais il doit contenir ssh, dump et restore, et avoir les outils réseaux. Donc à ma connaissance ils sont tous bons.

dump = programme de vidage du «système de fichiers» dans un fichier
restore = programme inverse

Les plus : Vous n’éteignez (ni ne redémarrez) surtout pas votre machine source. En fait vous ne faites que la lire.
L’avantage du couple dump / restore : on copie les fichiers, et non la partition, autrement dit, un disque source de 4 tera qui contient 20 Go de données sera bien transféré sur un disque destination de 20 Go. Vous l’avez compris, il suffit que le disque destination soit plus grand (ou égal) que la somme des données des partitions. Et le swap ? On ne prend pas en compte le swap, d’ailleurs à quoi bon le recopier. Pensez à le créer, donc prévoir la partition ad-hoc.

Les moins : Il faut que votre système de fichiers supporte dump. Il n'y a pas de problème avec ext2 ou ext3, par contre Reiserfs ne fonctionne pas.
Le clonage des bases de données ouvertes ne fonctionne pas (idem avec « le meccano » qui n’a pas arrété sa base de données).
Vous suivez ! Les deux machines doivent être configurées avec des adresses IP sur le même réseau pour qu'elles puissent communiquer entre elles. Si simple et si facile que je n’en parle pas :o). On devra noter l’ adresse IP de la machine source et de la machine destination.

Préparation du disque destination

Démarrage sur le live cd, puis :

machine destination#ssh @source

Conserver cette liaison et su – ou sudo –s, voir sudo -i

machine source#fdisk –ul

Vous allez devoir recréer des partitions sur le disque destination. Fdisk, qtparted,… vous connaissez bien sûr. N’oubliez pas, c’est le moment rêvé pour redimensionner.

machine destination# fdisk /dev/hda

Recréer les partitions de taille telle qu’ aucune partition ne soit remplie à plus de 70%. N’oubliez pas, c’est le moment rêvé pour redimensionner.

Créez la swap telle que swap > 2 fois la mémoire Ram, si elle est inférieure a 4 Go ; sinon swap = mémoire Ram .
Puis sortie de fdisk en écrivant !

Vos partitions une fois créées, il faut créer les systèmes de fichiers.

machine destination#mke2fs -j -L <label> /dev/xxx

où xxx est le nom de la partition et <label> la chaîne de label. <label> sera / ou /usr ou /home , n'en oubliez pas.

machine destination#mkswap /dev/xxx

Vous ètes toujours là ? Il faut donc que j’aille jusqu'au bout…

Transfert des données

Premièrement, vous devez monter toutes les partitions nouvellement créées. Commençons par la racine (« / ») et montons les répertoires restants au cours de la procédure. Il est parfaitement possible de condenser deux partitions du PC source en une seule sur le PC destination, en fait c'est ce que nous allons faire avec /usr et /usr/share dans l'exemple ci-dessus.

« Prenez garde : certains live CD ne permettent pas le montage sur /mnt »

Montez donc votre futur système en entrant :

machine destination#mount /dev/xxx /mnt

Lors du clonage, il est nécessaire de faire un cd (ChangeDirectory) dans le répertoire cible.

machine destination#cd /mnt

Maintenant la partie réseau, sur le PC cible entrez :

machine destination#ssh sourcePC 'dump -0 -f - /' | restore -r -f -

où sourcePC est l'adresse IP du PC source. L'option « -0 » désigne backup complet, « -f - » indique d'utiliser stdin/stdout comme descripteurs de fichiers et « -r » indique à restore de re-créer le système copié à travers le réseau sur le PC destination.

Pour plus d'options,voir dump(8) et restore(8). Ci-dessous est présentée la sortie du transfert du système racine.

$ ssh 10.42.3.42 'dump -0 -f - /' | restore -r -f -
DUMP: Date of this level 0 dump: Tue Feb 22 15:50:12 2005
DUMP: Dumping /dev/hda3 (/) to standard output
DUMP: Label: debian
DUMP: Writing 10 Kilobyte records
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 547312 blocks.
DUMP: Volume 1 started with block 1 at: Tue Feb 22 15:50:14 2005
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: Volume 1 completed at: Tue Feb 22 15:51:43 2005
DUMP: Volume 1 546590 blocks (533.78MB)
DUMP: Volume 1 took 0:01:29
DUMP: Volume 1 transfer rate: 6141 kB/s
DUMP: 546590 blocks (533.78MB)
DUMP: finished in 89 seconds, throughput 6141 kBytes/sec
DUMP: Date of this level 0 dump: Tue Feb 22 15:50:12 2005
DUMP: Date this dump completed: Tue Feb 22 15:51:43 2005
DUMP: Average transfer rate: 6141 kB/s
DUMP: DUMP IS DONE

Restore crée toujours un fichier restoresymtable, qui peut être supprimé une fois que vous avez vérifié qu'aucune erreur n'est intervenue lors de la restauration du système. Une fois le système racine copié, procédons maintenant à chaque sous-système monté, en commençant par /usr (supposant que votre répertoire courant est la racine du futur système de fichiers).

mount /dev/xxx ./usr

cd ./usr

ssh targetPC 'dump -0 -f - /usr' | restore -r -f -

L'opération mount-cd-dump/restore est à répéter pour tous les répertoires que vous pouvez avoir. Pour ce qui est de /usr/share (qui avait sa propre partition sur le PC source), vous pouvez, après l'étape précédente, faire un cd (ChangeDirectory) vers ./usr/share (notez le « . »), et ensuite répéter

ssh targetPC 'dump -0 -f - /usr/share' | restore -r -f -

Restore se plaint uniquement si des fichiers existent déjà dans le système à restaurer, donc si vous mettez deux partitions différentes (sur le PC source) en une seule (sur le PC destination), il n'y a pas de problème. Cloner un PC entier prend à peine une heure avec ssh et des cartes réseaux 100MB.

Note: Pour réaliser le dump d'un système, il n'est pas nécessaire qu'il soit monté. Vous pouvez aussi passer le nom de la partition , tel que /dev/hda6, en lieu et place du nom de répertoire de la partition montée.

Configuration du PC destination

Faire le ménage, car il reste plusieurs étapes. Comme tout vient d’être copié, vous avez une machine clone, donc des doublons, adresse IP, nom machine…. Si vous conservez la machine source en fonction, il convient de supprimer les doublons.
D'autre part le disque destination n’a pas de secteur de boot. Le gestionnaire de boot (lilo/grub) est à configurer. La carte écran (si différente) est aussi à configurer. Le fichier etc/fstab est à mettre à jour en fonction des numéros et regroupements de partition.

Félicitations, si vous êtes arrivés jusqu'ici, vous avez cloné votre système.

Maintenant il est temps de rendre cette machine utilisable.

La première chose à faire est de mettre à jour /etc/fstab avec les nouveaux réglages, sinon vous ne pourrez pas utiliser les partitions clonées. Si l'adresse IP change, celle-ci doit aussi être mise à jour (/etc/hosts, /etc/network/interfaces sous debian).

La prochaine étape importante concerne la configuration du démarrage, qu'il sera pratiquement toujours impératif de mettre à jour.

Avec lilo, éditez /etc/lilo.conf (en particulier l'option root=…) puis exécutez lilo -v.

Sous grub, éditez /boot/grub/menu.lst (ou /boot/grub/grub.conf, tout dépend sur lequel pointe le lien symbolique) puis entrez grub :
grub> root (hd0,xxx)

… filesystem is …

grub> setup (hd0)

… lots of output here

grub> quit

ou lancez grub-install /dev/xxx où xxx est votre disque dur. Ici, vérifiez les réglages pour root (hdn,xx) et root=/dev/xxx.
Dans le cas probable où vous avez un matériel plus récent dans votre PC cloné, vous pouvez mettre à jour les réglages pour votre noyau personnalisé.

Si vous utilisez des systèmes qui proposent de nombreux modules pré-configurés (tels que RedHat, SuSE, Mandriva, Fedora…), ne vous inquiétez pas, il est fort probable qu'il existe un module correspondant. Sinon, lspci -vv et compilation du noyau habituel tel que décrit ailleurs vous permettront d'arriver à vos fins.

Si votre carte graphique est différente, mettez à jour /etc/X11/XF86Config-4 (ou xorg.conf sous RH/Fedora) pour le prendre en compte, sinon vous n'obtiendrez aucun signal. Si vous savez des cartes vidéo différentes, mettez 3 comme runlevel (d'habitude 5) dans le fichier /etc/inittab .

La suite...

Bon, maintenant il faut que je remanie, ou crée et teste une troisième façon : le modèle avec partition LVM !!!!

 
clonage_de_pc.txt · Dernière modification: 2017/02/21 15:10 (édition externe)
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki