<?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/1530"/>
  <link rel="self" type="application/atom+xml" href="http://artisan.karma-lab.net/node/1530/atom/feed"/>
  <id>http://artisan.karma-lab.net/node/1530/atom/feed</id>
  <updated>2008-05-01T14:16:27+02:00</updated>
  <entry>
    <title>Fabriquer un CD amorçable</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1530" />
    <id>http://artisan.karma-lab.net/node/1530</id>
    <published>2008-05-01T02:20:09+02:00</published>
    <updated>2008-05-01T14:16:27+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>
  L'objectif de ce tutoriel est de pouvoir re-créer une image ISO étendue (augmentée de fichiers, pilotes, etc) à partir d'une image ISO existant ou encore de créer une ISO amorçable à partir des seuls fichiers du CD d'origine. L'utilisation de cette technique est multiple mais pour l'exemple, nous allons l'appliquer à la création d'un CD windows amorçable à partir d'une archive du type de celles fournit par Microsoft et ne contenant que les fichiers d'installation.
</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>
  L'objectif de ce tutoriel est de pouvoir re-créer une image ISO étendue (augmentée de fichiers, pilotes, etc) à partir d'une image ISO existant ou encore de créer une ISO amorçable à partir des seuls fichiers du CD d'origine. L'utilisation de cette technique est multiple mais pour l'exemple, nous allons l'appliquer à la création d'un CD windows amorçable à partir d'une archive du type de celles fournit par Microsoft et ne contenant que les fichiers d'installation.
</p>
<!--break-->

	<a name='chapter_20'></a>
	<h2>Préparation des fichiers</h2>
	
<p>
   Pour commencer, il nous faut créer un dossier, disons <kbd>bootable</kbd> pour faire dans l'originalité. 
Dans ce dossier nous allons décompresser l'ensemble des fichiers présents dans l'archive d'installation. 
</p>
<p>
   Si l'objectif est de recréer un CD contenant plus de pilotes, ou des correctifs, la même recopie peut être faire à partir du CD original ou d'une image ISO de celui-ci que l'on aura monté par un <kbd>mount image.iso point_montage -o loop</kbd>.
</p>
<p>
  Les opérations de copie et de mis à jour terminée, nous pouvons passer à l'étude du point délicat de l'histoire, l'image d'amorçage du CD. 
</p>


	<a name='chapter_21'></a>
	<h2>Mâter le Torito</h2>
	

<p>
   Pour la petite histoire, l'extension de la norme ISO9660 du CD-ROM est étendue par un autre norme, nommée 
		  <a target='_blank' href='http://fr.wikipedia.org/wiki/El Torito'>
		  El Torito
		  </a> qui elle décrit la manière de démarrer sur le CD-ROM. Physiquement, cela correspond à un secteur du CD contenant les 2048 octets d'un programme d'amorçage. Ce programme est spécifique à l'OS que l'on cherche à utiliser et même parfois à sa version. 
</p>
<p>
  Pour créer notre image ISO, nous allons avoir besoin de ce programme sous la forme d'un fichier (une image). Pour Windows, vous pouvez récupéré cette image <a class='external' target='_blank' href='http://www.bellamyjc.org/fr/cdbootable.html' >ici</a>, cherchez dans la page le lien version un fichier <kbd>cdsector.bin</kbd>. Mais si cela ne fonctionne pas, vous pouvez toujours l'extraire à partir d'un CD original. 
</p>
<p>
   L'opération est un peu plus compliqué qu'il n'y parait car la position de ce secteur n'est pas fixe, elle se calcule. Du coup, pas possible d'utiliser simplement la commande <kbd>dd</kbd> sans l'avoir préalablement repéré. Heureusement, il existe un script perl qui fait cela très bien, disponible <a class='external' target='_blank' href='http://www.uni-koblenz.de/~krienke/ftp/noarch/geteltorito/geteltorito.pl' >ici</a>. Il s'utilise très simplement comme cela :
<div class='code-container-area'><div class='code-container'><div class="code"><ol><li class="li1"><div class="de1"><span class="kw2">wget</span> http:<span class="sy0">//</span>www.uni-koblenz.de<span class="sy0">/</span>~krienke<span class="sy0">/</span><span class="kw2">ftp</span><span class="sy0">/</span>noarch<span class="sy0">/</span>geteltorito<span class="sy0">/</span>geteltorito.pl</div></li>
<li class="li1"><div class="de1"><span class="kw2">chmod</span> +x geteltorito.pl</div></li>
<li class="li1"><div class="de1">.<span class="sy0">/</span>geteltorito.pl image.iso <span class="sy0">&gt;</span> bootable<span class="sy0">/</span>BOOT.IMG</div></li></ol></div></div></div>
</p>
<p>
  Si vous n'avez pas l'image ISO de votre cd, sachez qu'elle peut très facilement être extraire par la commande <kbd>dd</kbd> :
  <div class='code-container-area'><div class='code-container'><div class="code"><span class="kw2">dd</span> <span class="re2">if=</span><span class="sy0">/</span>dev<span class="sy0">/</span>hdc <span class="re2">of=</span>image.iso <span class="re2">bs=</span><span class="nu0">2048</span></div></div></div>
</p>
<p>
  Si tout c'est bien passé, nous avons notre image de démarrage qui fait très exactement 2048 octets, dans notre dossier <kbd>bootable</kbd>. Passons à la création de l'image ISO à proprement parler. 
</p>


	<a name='chapter_22'></a>
	<h2>Création de l'image ISO</h2>
	
<p>
  A ce stade, nous avons tous nos fichiers dans le dossier <kbd>bootable</kbd> et notre image el torito en <kbd>bootable/BOOT.IMG</kbd>.
</p>
<p>
  Nous allons maintenant utiliser l'indispensable <kbd>mkisofs</kbd> disponible dans toutes les distributions pour compiler notre dossier en une image ISO :
<div class='code-container-area'><div class='code-container'><div class="code">mkisofs -o image_finale.iso -b BOOT.IMG -boot-load-seg <span class="nu0">1984</span> -no-emul-boot -boot-load-size <span class="nu0">4</span> &nbsp;-iso-level <span class="nu0">2</span> -J -l -D -N -joliet-long -relaxed-filenames bootable</div></div></div>
</p>
<p>
  Au bout de peu de temps, mkisofs a compilé l'ensemble des fichiers en une image ISO amorçable que vous pouvez tester avec VirtualBox par exemple. 
</p>
<p>
  Une fois l'image validée, vous n'avez plus qu'à la graver :
<div class='code-container-area'><div class='code-container'><div class="code"><span class="kw2">cdrecord</span> <span class="re2">dev=</span><span class="sy0">/</span>dev<span class="sy0">/</span>hdc image_finale.iso</div></div></div>
</p>


    ]]></content>
  </entry>
</feed>
