<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Artisan Numérique</title>
  <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1584"/>
  <link rel="self" type="application/atom+xml" href="http://artisan.karma-lab.net/node/1584/atom/feed"/>
  <id>http://artisan.karma-lab.net/node/1584/atom/feed</id>
  <updated>2008-06-30T01:21:50+02:00</updated>
  <entry>
    <title>Recopier une partition</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1584" />
    <id>http://artisan.karma-lab.net/node/1584</id>
    <published>2008-06-28T15:55:20+02:00</published>
    <updated>2008-06-30T01:21:50+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Systèmes de fichier" />
    <category term="OK" />
    <category term="Planet Libre" />
    <category term="Tutoriel" />
    <summary type="html"><![CDATA[<p>
   Dans la série des problématiques classiques lorsque l'on change de disque, arrive rapidement celle du "comment diantre vais-je transférer la partition du MauditOS sans repasser deux heures à tout ré-installer" !! Pas si compliqué en réalité... si c'est fait sous Unix <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>
</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>
   Dans la série des problématiques classiques lorsque l'on change de disque, arrive rapidement celle du "comment diantre vais-je transférer la partition du MauditOS sans repasser deux heures à tout ré-installer" !! Pas si compliqué en réalité... si c'est fait sous Unix <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>
</p>
<!--break-->

	<a name='chapter_1'></a>
  <h2>Préambule</h2>
	
<p>
   Pour fixer le cadre, prenons donc deux disques durs de marque et de taille évidemment différentes, avec cependant assez de place pour transférer les données d'un côté vers l'autre. Le second disque est considéré comme vide. Ce n'est pas obligatoire mais dans le cas contraire, c'est à vos risques et périls si chemin faisant vous perdez de précieuses données...
</p>
<p>
  Sur le premier disque nous avons une partition primaire contenant VilainOS. Le but va donc être de créer une partition de même taille sur l'autre disque, d'y recopier notre partition d'origine, et de garder l'espace restant  pour une utilisation plus sérieuse. Au final, nous aurons un nouveau disque qui s'amorcera comme l'ancien. 
</p>
<p>
  Pour faire tout cela, nous allons utiliser un simple adaptateur USB/IDE. Ainsi le disque sera toujours <kbd>/dev/sdb</kbd> et la partition source ou cible <kbd>/dev/sdb1<kbd>.    
</p>


	<a name='chapter_2'></a>
  <h2>Sauvegarder la partition originale</h2>
	
<p>
  Malic et Dab (qui interviennent souvent ici) m'avaient parlé de trois outils libres répondant au besoin : <a class='external' target='_blank' href='http://www.clonezilla.org/' >CloneZilla</a>, <a class='external' target='_blank' href='http://ping.windowsdream.com/' >Partimage Is Not Ghost ou plus simplement PING</a>, et justement puisqu'on en parle, <a class='external' target='_blank' href='http://www.partimage.org/Index.fr.html' >PartImage</a>. 
</p>
<p>
  Alors certes, comme le sous-entend <kbd>PING</kbd> <kbd>partImage</kbd> n'est pas <a class='external' target='_blank' href='http://www.symantec.com/driveimage/' >Ghost</a>, mais comparé aux deux autres, pour une utilisation ultra épisodique, il a l'avantage de ne pas non plus être une usine à gaz...
</p>
<p>
<image id="1"/>
  <kbd>partImage</kbd> s'utilise soit en ligne de commande, soit par une petite interface semi-graphique en nCurse. Le plus simple est de le lancer d'abord la ligne de commande avec les paramètres de base, puis ensuite d'affiner les options avec l'interface.</p>
<p>
   Pour ce faire, il suffit de l'invoquer comme suit :

  <div class='code-block code-block-fragment'>
  <div class='container'>
  partimage -z1 save <span class="sy0">/</span>dev<span class="sy0">/</span>sdb1
  </div>
  
  </div>
</p>

<p>
 Cela a pour effet de demander à <kbd>partImage</kbd> de créer dans le dossier courant une copie des données de la partition <kbd>/dev/sdb1</kbd> en activant au passage une compression GZIP.
</p>

<p>
 L'interface graphique s'affiche alors et vous pouvez affiner vos besoins en augmentant ou supprimant le taux de  compression, en ajoutant ou pas une description, bref tout ce que vous voulez jusqu'au moment où, fin prêt, vous pressez la touche <kbd>F5</kbd> pour démarrer la sauvegarde...
</p>
<p>
  Pour cette opération nous aurions pu utiliser la commande <kbd>dd</kbd> avec peu ou prou le même résultat. Mais l'avantage de <kbd>partImage</kbd> est qu'il ne sauve que l'espace disque utilisé entraînant un très appréciable gain de temps quant la partition n'est pas pleine. Pour une partition de 10Go pleine à 60%, en USB 2.0, cela m'a pris 10 minutes tout rond. L'astuce par rapport à <kbd>dd</kbd> est que <kbd>partImage</kbd> connaît le système de fichier que vous cherchez à copier, et sait donc où celui-ci s'arrête. Attention cependant, le support NTFS est plus faible que celui des autres systèmes. Tout cela ne marchera donc bien qu'avec une partition peu fragmentée. Le cas échéant, vous n'avez plus qu'à utiliser.. <kbd>dd</kbd>...
</p>


	<a name='chapter_3'></a>
  <h2>Création de la partition cible</h2>
	
<p>
  L'étape suivante est de recopier les paramètres de notre partition. Le bon outil pour cela est encore <kbd>parted</kbd> que nous avions vu pour <a class='external' target='_blank' href='/node/1572' >la transformation d'une machine physique en machine virtuelle</a>. Là il va juste nous servir à récupérer la taille et la position de notre partition d'origine :
<div id="code_0" class="code-container-area"><div class="code-container"><div class="code">
# <b>parted /dev/hda</b><br/>
(parted)<b> unit s</b><br/>
(parted)<b> print</b><br/>
&nbsp;&nbsp;Model: IBM-DTTA-351010 (ide)<br/>
&nbsp;&nbsp;Disque /dev/hda : 19541088s<br/>
&nbsp;&nbsp;Taille des secteurs (logiques/physiques): 512B/512B<br/>
&nbsp;&nbsp;Table de partition : msdos<br/>
&nbsp;&nbsp;Numéro  Début  Fin        Taille     Type     Système de fichiers  Fanions  <br/>
&nbsp;&nbsp; 1      <span style="color:green;font-weight:bold;">63</span>s    <span style="color:red;font-weight:bold;">19519919</span>s  19519857s  primary  ntfs                 démarrage<br/>
(parted)<b> quit</b><br/>
</div></div></div>
</p>
<p>
Avant de débrancher définitivement notre vieux disque, nous allons lui faucher son amorce. En effet, il ne vous aura pas échappé que notre partition ne démarre qu'au 64ième secteur, ce qui implique un espace de 63 secteur qui précède la partition, soit 512x63=31ko représentant l'amorce du disque. Et vu que c'est une amorce pour PasBeauOS, nous allons devoir la sauvegarder en vue d'une transplantation sur le nouveau disque

  <div class='code-block code-block-fragment'>
  <div class='container'>
  <a target="blank" href="http://pwet.fr/man/linux/commandes/dd"><span class="kw2">dd</span></a> <span class="re2">if=</span><span class="sy0">/</span>dev<span class="sy0">/</span>sdb1 <span class="re2">of=</span>amorce.image <span class="re2">count=</span><span class="nu0">63</span> <span class="re2">bs=</span><span class="nu0">512</span>
  </div>
  
  </div>
</p>
<div class='inline-box note'>Pour info, lorsque vous démarrez sur disque et que vous avez comme seul résultat une infamante liste du style <kbd>L99 99 99 99 99 99 99...etc.</kbd>, c'est généralement que l'amorce est quelque peu vrillée...
</div>

<p>
  Bon, il est maintenant possible de débrancher ce disque de l'adaptateur IDE-USB pour le remplacer par notre nouveau support. 
</p>
<p>
  La première chose à faire est de détruire les partitions existantes. Cela se fait très simplement avec <kbd>parted</kbd> en les listant d'abord avec la commande <kbd>print</kbd>, puis en les supprimant une à une avec la commande <kbd>rm NUMERO</kbd>. 
</p>
<p>
  Ensuite, lorsque le disque est vide de partition, il nous faut recréer celle du disque d'origine en s'aidant du chiffre que nous avons noté en rouge :
<div id="code_0" class="code-container-area"><div class="code-container"><div class="code">
# <b>parted /dev/hda</b><br/>
(parted)<b> unit s</b><br/>
(parted)<b> mkpart primary  <span style="color:green;font-weight:bold;">63</span>  <span style="color:red;font-weight:bold;">19519919</span></b><br/>
(parted)<b> quit</b><br/>
</div></div></div>
</p>
<p>
  Voilà, nous avons maintenant une partition identique sur le second disque. 
</p>


	<a name='chapter_4'></a>
  <h2>Recopie des données</h2>
	
<p>
<image id="2"/>
Maintenant, pour recopier les données que nous avons précédemment sauvegardé avec <kbd>partImage</kbd>, il suffit de l'invoquer dans l'autre sens :

  <div class='code-block code-block-fragment'>
  <div class='container'>
  partimage restore <span class="sy0">/</span>dev<span class="sy0">/</span>sdb1 native.image<span class="nu0">.000</span>
  </div>
  
  </div>
</p>

<p>
  Là, c'est fini en 5 minutes.... Dernière étape, insérer la fameuse amorce que nous avons chipé sur le vieux disque. 

  <div class='code-block code-block-fragment'>
  <div class='container'>
  <a target="blank" href="http://pwet.fr/man/linux/commandes/dd"><span class="kw2">dd</span></a> <span class="re2">if=</span>amorce.image <span class="re2">of=</span><span class="sy0">/</span>dev<span class="sy0">/</span>sdb <span class="re2">bs=</span><span class="nu0">512</span> <span class="re2">count=</span><span class="nu0">63</span><br />
<a target="blank" href="http://pwet.fr/man/linux/commandes/sync"><span class="kw2">sync</span></a>
  </div>
  
  </div>
</p>
<p>
  Et voilà, le nouveaux disque et sa nouvelle partition sont prêts, et le tout est amorçable comme avant. 
</p>


	<a name='chapter_5'></a>
  <h2>Conclusion</h2>
	
<p>
  Les outils spécialisés de clonnage permettent sûrement de faire tout cela plus rapidement pour peu que l'on ait le temps d'apprendre à les utiliser.. Disons que pour l'usage d'un néophyte, <kbd>partImage</kbd> est un vrai plaisir <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/smile.gif" title="Smiling" alt="Smiling" class="smiley-content"/>
</p>    ]]></content>
  </entry>
</feed>
