<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
 <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 <META NAME="GENERATOR" CONTENT="lfparser_2.52">
 <META NAME="LFCATEGORY" CONTENT="UNIXBasics">
 <link rel="icon" href="../../common/images/lf-16.png" type="image/png">
 <TITLE>lf370, UNIXBasics: LF Tip : Cloner compl&egrave;tement des PC par le r&eacute;seau</TITLE>
<style type="text/css">
<!--
 td.top {font-family: Arial,Geneva,Verdana,Helvetica,sans-serif; font-size:12 }
 pre { font-family:monospace,Courier }
 pre.code { font-family:monospace,Courier;background-color:#aedbe8; }
 p.cl { color:#EE9500 }
 table.left { margin-right:0.3cm }
 a.nodec { text-decoration:none }
 p.trans { font-size:8pt; text-align:right }
 p.clbox { width:50%; alignment:center; background-color:#FFD700; 
           border-style:none; border-width:medium; border-color:#FFD700; 
           padding:0.5cm;  text-align:center }
 p.code { width:80%; alignment:center; background-color:#aedbe8; 
          border-style:none; border-width:medium; border-color:#aedbe8; 
          padding:0.1cm;  text-align:left }
 p.foot { background-color:#AAAAAA; color:#FFFFFF; border-style:none; 
          border-width:medium; border-color:#AAAAAA; padding:0.5cm ; 
          margin-top:0.1cm; margin-right:1cm; margin-left:1cm; 
          text-align:center }
 div.tbbutton {
   background: #ddd;
   border-right: 1px solid #aaa;
   border-bottom: 1px solid #aaa;
   margin: 2px 5px 2px 5px;
   text-align: center;
   width: 20em;
   line-height: 1.2em;
   padding: 2px;
   font-size: 12px;
   white-space: nowrap;
   color: #555;
 }
 div.bbutton {
   background: #ddd;
   border-right: 1px solid #aaa;
   border-bottom: 1px solid #aaa;
   float: left;
   margin: 2px 5px 2px 5px;
   text-align: center;
   line-height: 1.2em;
   padding: 2px;
   font-size: 12px;
   white-space: nowrap;
   color: #555;
 }
-->
</style>
 
</HEAD>
<BODY bgcolor="#ffffff" text="#000000">
 <!-- this is generated html code. NEVER use this file for your
 translation work. Instead get the file with the same article number
 and .meta.shtml in its name. Translate this meta file and then
 use lfparser program to generate the final article -->
 <!-- lfparser can be obtained from http://main.linuxfocus.org/~guido/dev/lfparser.html -->

<!-- this is used by a number of tools:
 =LF=AUTHOR: Gerrit Renker
 =LF=CAT___: UNIXBasics
 =LF=TITLE_: LF Tip : Cloner compl&egrave;tement des PC par le r&eacute;seau
 =LF=NUMBER: 370
 =LF=ANAME_: article370.shtml
 =LF=PARSER: 2.52
 -->

<!-- 2pdaIgnoreStart -->

<!-- start navegation bar, current, style=2 -->
 <!-- top navegation bar -->
 <TABLE summary="topbar_1" cellspacing="0" cellpadding="0" border="0" align="center" width="90%">
   <TR bgcolor="#2e2292">
     <TD class="top"><TABLE summary="topbar_1_logo" cellspacing="0" cellpadding="0" border="0" width=
       "100%">
         <TR><TD width="319"><a href="../../index.shtml"><IMG src="../../common/images/logolftop_319x45.gif"
           alt="[LinuxFocus-icon]" width="319" height="45" align="left" 
           border="0"></a></TD>

           <TD class="top">
             <TABLE summary="topbar_1_links" width="100%">
               <TR align="right">
                 <TD class="top">
                 
                 <A class="nodec" href="../../index.shtml"><FONT color=
                 "#DDDDDD" size="2">&lt;--</FONT></A> &nbsp;| 
                 <A class="nodec" href="../map.html"><FONT color=
                 "#DDDDDD" size="2">Carte</FONT></A> &nbsp;| 
                 <A class="nodec" href="../indice.html"><FONT color=
                 "#DDDDDD" size="2">Index</FONT></A> &nbsp;| 
                 <A class="nodec" href="../Search/index.html"><FONT color=
                 "#DDDDDD" size="2">Recherche</FONT></A> </TD>
                 
               </TR>

               <TR align="right">
                 <TD class="top">
                   <HR width="100%" noshade size="1">
                 </TD>
               </TR>
             </TABLE>
           </TD>
         </TR>
       </TABLE>
     </TD>
   </TR>
 </TABLE>
 <!-- end top navegation bar -->
 <!-- blue bar -->
 <TABLE summary="topbar_2" cellspacing="0" cellpadding="0" border="0" align="center"
 width="90%">
   <TR bgcolor="#00ffff">
     <TD><IMG src="../../common/images/transpix.gif" width="1" height=
     "2" alt=""></TD>
   </TR>
 </TABLE>
 <!-- end blue bar -->
 <!-- bottom navegation bar -->
 <TABLE summary="topbar_3" cellspacing="0" cellpadding="0" border="0" align="center"
 width="94%">
   <TR bgcolor="#000000">
     <TD>
       <TABLE summary="topbar_3_links" cellspacing="0" cellpadding="1" border="0" width=
       "100%">
         <TR align="center">
           <TD WIDTH="20%"><A class="nodec" href="../News/index.shtml"><FONT color=
           "#FFFFFF">Nouvelles</FONT></A> </TD>
           <TD WIDTH="5%"><FONT color="#FFFFFF">|</FONT> </TD>
           <TD WIDTH="20%"><A class="nodec" href="../Archives/index.html"><FONT color=
           "#FFFFFF">Archives</FONT></A> </TD>
           <TD WIDTH="5%"><FONT color="#FFFFFF">|</FONT> </TD>
           <TD WIDTH="20%"><A class="nodec" href="../Links/index.html"><FONT color=
           "#FFFFFF">Liens</FONT></A> </TD>
           <TD WIDTH="5%"><FONT color="#FFFFFF">|</FONT> </TD>
           <TD WIDTH="20%"><A class="nodec" href="../aboutus.html"><FONT color=
           "#FFFFFF">A propos</FONT></A> </TD>
         </TR>
       </TABLE>
     </TD>
   </TR>
 </TABLE>
 <!-- end bottom navegation bar -->
<!-- stop navegation bar -->

<!-- SSI_INFO -->

<!-- tr_staticssi include virtual -->
<!-- tr_staticssi exec cmd -->
<!-- addedByLfdynahead ver 1.5 --><TABLE ALIGN="right" border=0><TR><TD ALIGN="right"><FONT SIZE="-1" FACE="Arial,Helvetica">Ce document est disponible en: <A href="../../English/March2005/article370.shtml">English</a> &nbsp;<A href="../../Castellano/March2005/article370.shtml">Castellano</a> &nbsp;<A href="../../ChineseGB/March2005/article370.shtml">ChineseGB</a> &nbsp;<A href="../../Francais/March2005/article370.shtml">Francais</a> &nbsp;<A href="../../Indonesian/March2005/article370.shtml">Indonesian</a> &nbsp;<A href="../../Turkce/March2005/article370.shtml">Turkce</a> &nbsp;</FONT></TD></TR></TABLE><br>
 


<!-- SSI_INFO STOP -->
<!-- 2pdaIgnoreStop -->

<!-- SHORT_BIO_ABOUT_THE_AUTHOR_AND_INDEX_START -->
<TABLE ALIGN="LEFT" BORDER="0" WIDTH="195" summary="about the author" class="left">
<TR>
<TD>

<img alt="this is me" src="../../common/images2/GerritRenker.jpg" width="175" height="213">
<BR>par  Gerrit Renker <br> <small>&lt;gerrit.renker(at)gmx.de&gt;</small>
<BR><BR>
<I>L&acute;auteur:</I><BR>
<!-- aboutauthor_start -->

L'auteur a obtenu un dipl&ocirc;me en Informatique en 2001.


<!-- aboutauthor_stop -->
<!-- TRANSLATED_TO fr -->
<BR><BR><I>Traduit en Français par:</I><BR>
Florent Morel <small>&lt;fleuh-(at)-free.fr&gt;</small>
<br>
<!--
 =LF=TRANSTO=fr: Florent Morel
-->
<!-- TRANSLATED_TO_STOP -->
<!-- INDEX_START -->
<BR><i>Sommaire</i>:
<UL>
  <LI><A HREF="#370lfindex0">Sc&eacute;nario</A></LI>
  <LI><A HREF="#370lfindex1">M&eacute;thodes possibles</A></LI>
  <LI><A HREF="#370lfindex2">Configurer ssh</A></LI>
  <LI><A HREF="#370lfindex3"> Cr&eacute;er un syst&egrave;me de fichiers sur le PC cible</A></LI>
  <LI><A HREF="#370lfindex4">Autres syst&egrave;mes</A></LI>
  <LI><A HREF="#370lfindex5">R&eacute;f&eacute;rences </A></LI>
  <LI><A HREF="http://cgi.linuxfocus.org/cgi-bin/lftalkback?anum=370">Talkback form for this article</A></LI>
</UL>

</TD></TR></TABLE>
<!-- INDEX_STOP -->
<!-- SHORT_BIO_ABOUT_THE_AUTHOR_AND_INDEX_STOP -->
<!-- HEAD_OF_THE_ARTICLE_START -->
<br>&nbsp;
<table border="0"><tr><td>
<!-- tr_staticssi include virtual -->
<!-- tr_staticssi exec cmd -->
<!-- addedByLfPdf ver 0.1 -->
<TABLE style="border-style:outset; border-width:1px" align="right" bgcolor="#ff9616" cellspacing="1"><TR><TD bgcolor="#ff9616">
        <a href="../Archives/lf-2005_03-0370.pdf"><small>PDF</small></a>
        </TD></TR></TABLE>
         

<H2>LF Tip : Cloner compl&egrave;tement des PC par le r&eacute;seau</H2>
 <img src="../../common/images2/article370.png" alt="[Illustration]" hspace="10"  width="136" height="150">
<!-- ABSTRACT OF THE ARTICLE -->
<P><i>R&eacute;sum&eacute;</i>:
<P>
<!-- articleabstract_start -->


Il arrive souvent que vous ayiez &agrave; dupliquer les donn&eacute;es d'un ordinateur sur un autre. Une m&eacute;thode s&ucirc;re, facile &agrave; mettre en oeuvre et efficace est d'utiliser le clonage &agrave; travers un r&eacute;seau tel que d&eacute;crit dans ce tutoriel.


<!-- articleabstract_stop -->

<br><!-- HR divider --><center><font color="#8282e0"><b>_________________ _________________ _________________</b></font></center><br>
</td></tr></table>
<!-- HEAD_OF_THE_ARTICLE_STOP -->
<!-- BODY_OF_THE_ARTICLE_START -->


<A NAME="370lfindex0">&nbsp;</A>
<H2>Sc&eacute;nario</H2>


Cloner des animaux ("Dolly la brebis") ou m&ecirc;me des embryons humains est &acirc;prement discut&eacute; et d'un avenir incertain. Cependant, il ne fait aucun doute que cloner des machines est non seulement moins dangereux (&agrave; condition de le faire correctement) mais aussi utile pour l'&eacute;volution de scripts de configuration et de r&eacute;glages &eacute;crits avec soin. Du fait de la loi de Moore et des rapides progr&egrave;s de l'industrie des composants informatiques, l'utilisateur d'une distribution est quasiment certain d'avoir &agrave; r&eacute;aliser un sc&eacute;nario de clonage au moins une fois. Par exemple lorsque le PC de la maison est remplac&eacute; par un ordinateur portable, ou simplement qu'un processeur plus rapide est disponible et que l'achat d'un nouvel ordinateur complet est trop on&eacute;reux. La t&acirc;che &agrave; r&eacute;aliser est de <i>r&eacute;cup&eacute;rer le syst&egrave;me de fichiers en entier</i> depuis une machine A et de le rendre op&eacute;rationnel sur une machine B.
<br><br>
Il y a deux mani&egrave;res de le faire ; celle qui n'est pas d&eacute;crite dans ce tutoriel est d'ouvrir l'ordinateur, transf&eacute;rer physiquement le disque dur vers la machine cible pour effectuer la copie localement. Cela n'est pas souvent possible - ouvrir le bo&icirc;tier entra&icirc;ne souvent l'annulation de la garantie - et pr&eacute;sente des risques, car une personne inexp&eacute;riment&eacute;e peut endommager le mat&eacute;riel, physiquement ou &eacute;lectriquement. Il m'est m&ecirc;me arriv&eacute; de perdre le contenu d'un disque &agrave; cause d'un logiciel de bas niveau bogu&eacute;. L'autre approche, qui n&eacute;cessite que les deux PC aient des cartes r&eacute;seaux (ce qui est le cas tr&egrave;s fr&eacute;quemment), est bien plus s&ucirc;re et d&eacute;crite ici.

<p>
L'id&eacute;e directrice de toutes les m&eacute;thodes d&eacute;crites ci-dessous est d'&eacute;tablir une connexion r&eacute;seau entre la machine ''<i>source</i>'' (celle qui doit &ecirc;tre clon&eacute;e) et la ''<i>cible</i>'' (le clone). Cette &eacute;tape est des plus simples si les deux machines sont branch&eacute;es sur un hub, sinon vous pouvez connecter les cartes r&eacute;seaux via un <i>c&acirc;ble crois&eacute;</i> (dans ce cas, les c&acirc;bles normaux - droits - ne peuvent &ecirc;tre utilis&eacute;s). Pour le PC cible, un Live-CD (tel que Knoppix ou LNX-BBC) ou une installation minimale est requise afin que la carte r&eacute;seau soit op&eacute;rationnelle et que <tt>ssh</tt> et/ou <tt>netcat</tt> puisse &ecirc;tre lanc&eacute;. Il y a m&ecirc;me des disquettes qui permettent cela (bien que dans mon cas <tt>tomsrtb</tt> plantait lors de l'initialisation de la carte r&eacute;seau). Si vous voulez installer une autre (nouvelle) distribution quoi qu'il arrive, c'est une alternative simple. Les deux machines doivent &ecirc;tre configur&eacute;es avec des adresses IP sur le m&ecirc;me r&eacute;seau pour qu'elles puissent communiquer entre elles, tel que d&eacute;crit sur l'image ci-dessus.
</p>


<A NAME="370lfindex1">&nbsp;</A>
<H2>M&eacute;thodes possibles</H2>


<p>
Consid&eacute;rant une configuration de base, il existe plusieurs fa&ccedil;ons de r&eacute;aliser un clonage :
</p>


<ul>
<li>copie binaire via <tt>dd</tt></li>
<li>pipes <tt>tar / cpio</tt></li>
<li><tt>rsync </tt> </li>
<li><tt>dump</tt> et <tt>restore</tt></li>
</ul>


La premi&egrave;re est compliqu&eacute;e sinon impossible si vos disques durs n'ont pas exactement les m&ecirc;mes types et g&eacute;om&eacute;tries. C'est une fa&ccedil;on excellente pour copier des images iso (<tt>dd if=/dev/cdrom of=image.iso</tt>) ou des disquettes -
<a href="../../common/src2/article370/diskcopy.txt">ici (shell script de copie de disque - diskcopy)</a> est un exemple de script <tt>diskcopy</tt> utilisant <tt>dd</tt>. L'autre inconv&eacute;nient de l'approche bas&eacute;e sur <tt>dd</tt> est que l'espace inoccup&eacute; est aussi copi&eacute;, prenant donc du temps inutilement. Les pipes <tt>tar</tt> et <tt>cpio</tt> prennent beaucoup de temps (jusqu'&agrave; plusieurs heures) et pr&eacute;sentent quelques probl&egrave;mes. Par exemple, il existe des restrictions sur les noms de fichiers et l'utilisation de liens symboliques, les fichiers dans <tt>/dev</tt>, etc. Je ne recommenderais g&eacute;n&eacute;ralement pas cette approche pour le clonage.
 <br><br>
Si vous avez des syst&egrave;mes de fichiers diff&eacute;rents sur la machine source et cible, <b><tt>rsync(1)</tt></b> est probablement le meilleur choix. Il n&eacute;cessite seulement <tt>ssh</tt> et transmet efficacement les fichiers gr&acirc;ce &agrave; un protocole des plus performants. Il a m&ecirc;me une option <tt>-D</tt> pour les fichiers device, ainsi que plusieurs options pour r&eacute;pondre &agrave; la plupart des sc&eacute;narii pratiques. C'est un outil tr&egrave;s utile pour les backups quotidiens, le mirroring et autres. La page de manuel contient de nombreux exemples et est une tr&egrave;s bonne source d'informations. Un exemple de clonage via <tt>rsync</tt> est pr&eacute;sent&eacute; dans [<a href="#key-2">1</a>].<br><br>
Ici nous utilisons la m&eacute;thode via <tt>dump</tt> et <tt>restore</tt> dans le but de re-cr&eacute;er le syst&egrave;me de fichiers entier. C'est rapide, efficace et d&eacute;livre le r&eacute;sultat attendu avec un minimum d'efforts, donc id&eacute;al pour le clonage.

 <br><br>
J'ai d&ucirc; r&eacute;aliser la proc&eacute;dure enti&egrave;re de clonage deux fois, car le PC cible a &eacute;t&eacute; rappel&eacute; et remplac&eacute;. Dans les deux cas, aucun probl&egrave;me n'apparut et le clonage mena &agrave; un clone fonctionnel, bootable en &agrave; peine une heure de copie des gigaoctets.
Cette approche requiert que la machine source et la machine cible poss&egrave;dent le m&ecirc;me syst&egrave;me de fichiers. Nous supposons que ce soit <tt>ext2</tt> ou <tt>ext3</tt>, puisque c'est actuellement le plus fr&eacute;quemment utilis&eacute; (voir notes <a href="#sec:Other-systems">ci-dessous</a>).

<A NAME="370lfindex2">&nbsp;</A>
<H2>Configurer ssh</H2>


Une fois que vous avez un syst&egrave;me minimal ou un Live-CD tournant sur la machine cible, la prochaine &eacute;tape est de configurer <tt>ssh</tt> (si vous n'utilisez pas <tt>netcat</tt> pour le transfert comme d&eacute;taill&eacute; plus loin). Ceci requiert que le PC source ait <tt>sshd</tt> (secure shell daemon) configur&eacute; et lanc&eacute;. V&eacute;rifiez <tt>/etc/init.d/</tt> si vous avez un doute. Sur le PC cible entrez (en tant que root) :

<pre class="code">ssh-keygen -t rsa</pre>

Pour faire simple, n'entrez pas de passphrase. La cl&eacute; publique est maintenant dans le fichier <tt>/root/.ssh/id_rsa.pub</tt>. Copiez ce fichier sur votre machine source via


<pre class="code">scp /root/.ssh/id_rsa   SourcePC:/tmp</pre>

o&ugrave; <tt>SourcePC</tt> est l'adresse IP de votre PC source. Lorsqu'on vous demande si vous &ecirc;tes s&ucirc;r, entrez « <tt>yes</tt> » (« <tt>y</tt> » tout seul ne fonctionne que rarement). On vous demande alors le mot de passe root du PC source. Ajoutez &agrave; pr&eacute;sent le PC cible en tant qu'h&ocirc;te de confiance sur le r&eacute;seau en entrant

<pre class="code">cat /tmp/id_rsa.pub &gt;&gt; /root/.ssh/authorized_keys</pre>


sur le PC source. Pour v&eacute;rifier si tout va bien, r&eacute;p&eacute;tez la commande de copie sur le PC cible. On ne devrait plus vous demander le mot de passe.

<A NAME="370lfindex3">&nbsp;</A>
<H2> Cr&eacute;er un syst&egrave;me de fichiers sur le PC cible</H2>


<p>
La premi&egrave;re &eacute;tape est toujours de partitionner le disque dur sur le syst&egrave;me cible et de cr&eacute;er le syst&egrave;me de fichiers <tt>ext2/ext3</tt>. Le second est une variante journalis&eacute;e du premier et est disponible simplement en ajoutant l'option <tt>-j</tt> (journalisation) dans <tt>mke2fs</tt> (n&eacute;cessite un noyau supportant <tt>ext3</tt>). Vous pouvez m&ecirc;me convertir un syst&egrave;me <tt>ext2</tt> en <tt>ext3</tt>, voir <b><tt>tune2fs(8)</tt></b>.
Supposons que sur le PC source nous ayons la configuration suivante :
</p>

<table align="center" bgcolor="#000000" border="0" cellpadding="2" cellspacing="2" width="56%">
  <tbody>
    <tr>
      <th bgcolor="#ffffff" valign="top">Filesystem</th>
      <th bgcolor="#ffffff" valign="top">Size</th>
      <th bgcolor="#ffffff" valign="top">Used</th>
      <th bgcolor="#ffffff" valign="top">Use%</th>
      <th bgcolor="#ffffff" valign="top">Mounted on</th>

    </tr>
    <tr>
      <td bgcolor="#ffffff" valign="top">/dev/hda3
      </td>
      <td bgcolor="#ffffff" valign="top">2.7G</td>
      <td bgcolor="#ffffff" valign="top">552M</td>
      <td bgcolor="#ffffff" valign="top">22%</td>
      <td bgcolor="#ffffff" valign="top">/</td>
    </tr>
    <tr>
      <td bgcolor="#ffffff" valign="top">/dev/hda5
      </td>
      <td bgcolor="#ffffff" valign="top">7.8G <br>
      </td>
      <td bgcolor="#ffffff" valign="top">1.6G</td>
      <td bgcolor="#ffffff" valign="top">22%</td>
      <td bgcolor="#ffffff" valign="top">/usr</td>
    </tr>
    <tr>
      <td bgcolor="#ffffff" valign="top">/dev/hda7
      </td>
      <td bgcolor="#ffffff" valign="top">6.3G</td>
      <td bgcolor="#ffffff" valign="top">1.7G</td>
      <td bgcolor="#ffffff" valign="top">28%</td>
      <td bgcolor="#ffffff" valign="top">/usr/share</td>
    </tr>
    <tr>
      <td bgcolor="#ffffff" valign="top">/dev/hda8
      </td>
      <td bgcolor="#ffffff" valign="top">3.4G</td>
      <td bgcolor="#ffffff" valign="top">601M</td>
      <td bgcolor="#ffffff" valign="top">19%</td>
      <td bgcolor="#ffffff" valign="top">/home</td>
    </tr>
    <tr>
      <td bgcolor="#ffffff" valign="top">/dev/hda12
      </td>
      <td bgcolor="#ffffff" valign="top">5.3G</td>
      <td bgcolor="#ffffff" valign="top">1.9G</td>
      <td bgcolor="#ffffff" valign="top">37%</td>
      <td bgcolor="#ffffff" valign="top"> /opt</td>
    </tr>
    <tr>
      <td bgcolor="#ffffff" valign="top">/dev/hda1
      </td>
      <td bgcolor="#ffffff" valign="top">587M</td>
      <td bgcolor="#ffffff" valign="top">70M</td>
      <td bgcolor="#ffffff" valign="top">13% <br>
      </td>
      <td bgcolor="#ffffff" valign="top">/var/backup</td>
    </tr>
  </tbody>
</table>


<p>
Je recommande de toujours effectuer un partitionnement. Sinon, un simple probl&egrave;me dans l'utilisation du syst&egrave;me ou un probl&egrave;me de disque dur concernant un nombre m&ecirc;me limit&eacute; de secteurs vous fera perdre <em>l'ensemble</em> de vos donn&eacute;es. Si on se reporte &agrave; la loi de Murphy, soyez certains que cela arrivera si vous ne prenez pas la pr&eacute;caution d'utiliser plusieurs partitions au lieu d'une seule monolithique. J'ai rencontr&eacute; cela avec un noyau &eacute;trange et si je n'avais pas partitionn&eacute; le disque, j'aurais perdu toutes mes donn&eacute;es en m&ecirc;me temps que le syst&egrave;me racine. Le tableau ci-dessus montre que <tt>/usr</tt> devenait trop volumineux, <tt>/usr/share</tt> a donc &eacute;t&eacute; ajout&eacute;. Il est temps d'acqu&eacute;rir un disque plus grand.
</p>

Sur le PC cible, lancez <tt>parted</tt> (recommand&eacute;) ou votre outil de partitionnement pr&eacute;f&eacute;r&eacute; (Qtparted est une variante graphique bien r&eacute;alis&eacute;e, dite clone de Partition Magic). Cr&eacute;ez les partitions au moins aussi grandes que celles du PC source. N'oubliez pas le swap. Apr&egrave;s avoir sauv&eacute; la table de partition, d&eacute;signez le syst&egrave;me de fichiers sur toutes les partitions nouvellement cr&eacute;&eacute;es en utilisant

<pre class="code">mke2fs -j -L &lt;label&gt; /dev/xxx</pre>

o&ugrave; <tt>xxx</tt> est le nom de la partition et <tt>&lt;label&gt;</tt> la cha&icirc;ne de label. J'utilise g&eacute;n&eacute;ralement des labels tels que « <tt>/usr</tt> » (vous verrez cela au moment du boot). Vous pouvez d&eacute;finir plusieurs points via <tt><b>tune2fs(8)</b></tt>, comme l'intervalle de v&eacute;rification du syst&egrave;me de fichiers.

<h1>Transfert du syst&egrave;me</h1>

Premi&egrave;rement vous devez monter toutes les partitions nouvellement cr&eacute;&eacute;es. Commen&ccedil;ons par la racine (« / ») et montons les r&eacute;pertoires restants au cours de la proc&eacute;dure. Il est parfaitement possible de condenser deux partitions du PC source en une seule sur le PC cible, en fait c'est ce que nous allons faire avec <tt>/usr</tt> et <tt>/usr/share</tt> dans l'exemple ci-dessus. Montez donc votre futur syst&egrave;me en entrant

<pre class="code">mount /dev/xxx   /mnt</pre>
Lors du clonage, il est n&eacute;cessaire de faire un chdir dans le r&eacute;pertoire cible
<pre class="code">cd /mnt</pre>
Maintenant la partie r&eacute;seau, sur le PC cible entrez
<pre class="code">ssh sourcePC 'dump -0 -f - /' | restore -r -f -</pre>
o&ugrave; <tt>sourcePC</tt> est l'adresse IP du PC source. L'option « <tt>-0</tt> » d&eacute;signe backup complet, « <tt>-f -</tt> » indique d'utiliser <tt>stdin</tt>/<tt>stdout</tt> comme descripteurs de fichier et « <tt>-r</tt> » indique &agrave; restore de re-cr&eacute;er le syst&egrave;me copi&eacute; &agrave; travers le r&eacute;seau sur le PC cible. Pour plus d'options voir <b><tt>dump(8)</tt></b> et <b><tt>restore(8)</tt></b>.
Ci-dessous est pr&eacute;sent&eacute;e la sortie du transfert du syst&egrave;me racine.<br>


<pre class="code">$ 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
</pre>

Restore cr&eacute;e toujours un fichier <tt>restoresymtable</tt> qui peut &ecirc;tre supprimer une fois que vous &ecirc;tes s&ucirc;r qu'aucune erreur n'est intervenue lors de la restauration du syst&egrave;me.

Une fois le syst&egrave;me racine copi&eacute;, proc&eacute;dons maintenant &agrave; chaque sous-syst&egrave;me mont&eacute;, en commen&ccedil;ant par <tt>/usr</tt> (supposant que votre r&eacute;pertoire courant est la racine du futur syst&egrave;me de fichiers).

<pre class="code">mount /dev/xxx  ./usr

cd ./usr

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

L'op&eacute;ration mount-cd-dump/restore est &agrave; r&eacute;p&eacute;ter pour tous les r&eacute;pertoires que vous pouvez avoir. Pour ce qui est de <tt>/usr/share</tt> (qui avait sa propre partition sur le PC source), vous pouvez, apr&egrave;s l'&eacute;tape pr&eacute;c&eacute;dente, faire un chdir vers <tt>./usr/share</tt> (notez le « . ») et ensuite r&eacute;p&eacute;ter
<pre class="code">ssh targetPC 'dump -0 -f - /usr/share' | restore -r -f -</pre>


Restore se plaint uniquement si des fichiers existent d&eacute;j&agrave; dans le syst&egrave;me &agrave; restaurer, donc si vous mettez deux partitions diff&eacute;rentes (sur le PC source) en une seule (sur le PC cible) il n'y a pas de probl&egrave;me. Cloner un PC entier prend &agrave; peine une heure avec ssh et des cartes r&eacute;seaux 100MB (un gain de performance est &agrave; noter avec un c&acirc;ble crois&eacute;).
<p>
<strong>Note: </strong>Pour r&eacute;aliser le dump d'un syst&egrave;me, il n'est pas n&eacute;cessaire qu'il soit mont&eacute;. Vous pouvez aussi passer <i>le nom de la partition </i>, tel que <big><tt>/dev/hda6</tt></big>, en lieu et place du nom de r&eacute;pertoire de la partition mont&eacute;e.
</p>

<h1>Alternative : &nbsp;<tt>netcat</tt> </h1>

<p>
Une alternative &agrave; ssh est d'utiliser <tt>netcat(1)</tt>, dont l'abbr&eacute;viation est nc. Netcat est un couteau suisse facile &agrave; mettre en oeuvre, fonctionnant en mode client-serveur sur TCP/IP qui permet de cr&eacute;er un tuyau &agrave; travers le r&eacute;seau. Les exemples pr&eacute;c&eacute;dents sont modifi&eacute;s comme suit. Disons que la partition mont&eacute;e sur <big><tt>/var/backup</tt></big> doit &ecirc;tre transf&eacute;r&eacute;e via <big><tt>dump/restore</tt></big> depuis le PC source vers le PC cible.
</p>

Sur la machine cible, cr&eacute;ez une instance de <tt>netcat</tt> qui &eacute;coute via <tt>-l</tt> et qui redirige sa sortie vers <tt>restore</tt>.

<pre class="code">nc -l -p 2000 -q 1 | restore -r -f -</pre>


Sur la machine source, cr&eacute;ez une autre instance de <tt>netcat</tt> qui r&eacute;cup&egrave;re l'entr&eacute;e depuis le pipe cr&eacute;&eacute; pr&eacute;c&eacute;demment o&ugrave; <tt>target-IP</tt> repr&eacute;sente l'adresse IP du PC cible.
<pre class="code">dump -0 -f - /var/backup | nc &lt;target-ip&gt;   2000</pre>

L'option <tt>-q</tt> est cens&eacute;e arr&ecirc;ter <tt>netcat</tt> apr&egrave;s avoir re&ccedil;u l'identifiant de fin de fichier, mais lors de mon essai, il m'a fallu le stopper manuellement. Je recommande d'utiliser <tt>ssh</tt> malgr&eacute; tout.

<h1> Faire le m&eacute;nage </h1>

F&eacute;licitations, si vous &ecirc;tes arriv&eacute;s jusqu'ici, vous avez clon&eacute; votre syst&egrave;me. Maintenant il est temps de rendre cette machine utilisable. La premi&egrave;re chose &agrave; faire est de mettre &agrave; jour <tt>/etc/fstab</tt> avec les nouveaux r&eacute;glages, sinon vous ne pourrez pas utiliser les partitions clon&eacute;es. Si l'adresse IP change, celle-ci doit aussi &ecirc;tre mise &agrave; jour (<tt>/etc/hosts</tt>,
<tt>/etc/network/interfaces</tt> sous debian). La prochaine &eacute;tape importante concerne la configuration du d&eacute;marrage qu'il sera pratiquement toujours imp&eacute;ratif de mettre &agrave; jour. Avec <tt>lilo</tt>, &eacute;ditez <tt>/etc/lilo.conf</tt> (en particulier l'option <tt>root=...</tt>) puis ex&eacute;cutez <tt>lilo -v</tt>. Sous grub, &eacute;ditez <tt>/boot/grub/menu.lst</tt> (ou <tt>/boot/grub/grub.conf</tt>, tout d&eacute;pend sur lequel pointe le lien symbolique) puis entrez <tt>grub</tt>,
<pre class="code">grub&gt; root (hd0,xxx)

... filesystem is ...

grub&gt; setup (hd0)

... lots of output here

grub&gt; quit
</pre>

ou lancez <tt>grub-install /dev/xxx</tt> o&ugrave; <tt>xxx</tt> est votre disque dur. Ici, v&eacute;rifiez les r&eacute;glages pour <tt>root (hdn,xx)</tt> et <tt>root=/dev/xxx</tt>.
<p>
Dans le cas probable o&ugrave; vous avez un mat&eacute;riel plus r&eacute;cent dans votre PC clon&eacute;, vous pouvez mettre &agrave; jour les <i>r&eacute;glages pour votre noyau personnalis&eacute;</i>. Si vous utilisez des syst&egrave;mes qui proposent de nombreux modules pr&eacute;-configur&eacute;s (tels que RedHat, SuSE, Mandrake, Fedora...) ne vous inqui&eacute;tez pas, il est fort probable qu'il existe un module correspondant. Sinon, <tt>lspci -vv</tt> et compilation du noyau habituels tels que d&eacute;crits ailleurs vous permettront d'arriver &agrave; vos fins. Si votre carte graphique est diff&eacute;rente, mettez &agrave; jour <tt>/etc/X11/XF86Config-4</tt> (ou <tt>xorg.conf</tt> sous RH/Fedora) pour le prendre en compte, sinon vous n'obtiendrez aucun signal. Si possible, utilisez des outils graphiques pour configurer X en d&eacute;marrant en niveau 3 si vous disposez de tels outils. Sous Debian, quelques investigations sont n&eacute;cessaires. Je fus chanceux de d&eacute;couvrir que le driver avait chang&eacute; de <tt>r128</tt> vers <tt>radeon</tt> et que cela fonctionnait.
</p>

<a name="sec:Other-systems"></a>
<A NAME="370lfindex4">&nbsp;</A>
<H2>Autres syst&egrave;mes</H2>



<p>
Ce tutoriel explique la proc&eacute;dure de clonage pour les syst&egrave;mes de fichiers <tt>ext2/ext3</tt>. Des commandes similaires conviennent pour de nombreux autres syst&egrave;mes Unix-like. Par exemple, plusieurs Unix tels que FreeBSD, HP-UX, IRIX disposent aussi des commandes <tt>dump/restore</tt> ; sous Solaris ce sont <tt>ufsdump/ufsrestore</tt>.
Il existe des syst&egrave;mes de fichiers qui n'offrent pas la fonctionnalit&eacute; « dump », c'est le cas de ReiserFS. Dans ce cas, il est conseill&eacute; d'utiliser <tt>rsync.</tt> Voir [<a href="#key-2">1</a>] pour un rapport concernant l'utilisation de <tt>rsync</tt> lors d'une proc&eacute;dure de clonage d'un syst&egrave;me Linux.
</p>

<A NAME="370lfindex5">&nbsp;</A>
<H2>R&eacute;f&eacute;rences </H2>


<dl compact="compact">
<dt><a name="key-2">[1]</a>
<i>''<a href="http://www.linuxgazette.com/issue83/okopnik.html">Replicating a Linux System - Yet Another Method</a></i>.'' Ben Okopnik, Linux Gazette Issue 83, October 2002.
</dt>
</dl>


<!-- vim: set sw=2 ts=2 et tw=74: -->


<!-- BODY_OF_THE_ARTICLE_STOP -->
<!-- 2pdaIgnoreStart -->
<A NAME="talkback">&nbsp;</a>
<h2>Talkback form for this article</h2>
Every article has its own talkback page. On this page you can submit a comment or look at comments from other readers:
<center>
    <table width="250" border=0><tr><td>
    <div class="tbbutton"><A class="nodec" href="http://cgi.linuxfocus.org/cgi-bin/lftalkback?anum=370">&nbsp;talkback page&nbsp;</a></div>
    </td></tr></table>
</center>

<br clear="all">
<HR size="2" noshade>
<table width="250" border=0><tr><td>
<div class="bbutton"><a class="nodec" href="../../index.shtml">&lt;--, LF Sommaire</a></div>
</td><td>
<div class="bbutton"><a class="nodec" href="index.shtml">Sommaire de ce num&eacute;ro</a></div>
</td></tr></table>
<br clear="all">
<HR size="2" noshade>
<!-- ARTICLE FOOT -->
<CENTER><TABLE WIDTH="98%" summary="footer">
<TR><TD ALIGN=CENTER BGCOLOR="#bdc6d5" WIDTH="50%">
<A HREF="../../common/lfteam.html">Site Web maintenu par l&acute;&eacute;quipe d&acute;&eacute;dition LinuxFocus</A>
<BR><FONT COLOR="#1111aa"><a href="../../common/copy.html">&copy; Gerrit Renker</a><br>&quot;some rights reserved&quot; see <a href="../../license/index.shtml">linuxfocus.org/license/</a><br><a href="http://www.linuxfocus.org">http://www.LinuxFocus.org</a></FONT>
</TD>
<TD BGCOLOR="#bdc6d5">
<!-- TRANSLATION INFO -->
<font size=2>Translation information:</font>
<TABLE summary="translators">
  <tr><td><font size="2">en --&gt; -- : Gerrit Renker <small>&lt;gerrit.renker(at)gmx.de&gt;</small></font></td></tr>
  <tr><td><font size="2">en --&gt; fr: Florent Morel &lt;fleuh-(at)-free.fr&gt;</font></td></tr>
</TABLE>
</TD>
</TR></TABLE></CENTER>
<p><font size=1>2005-04-09, generated by lfparser version 2.52</font></p>
<!-- 2pdaIgnoreStop -->
</BODY>
</HTML>