<?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/1599"/>
  <link rel="self" type="application/atom+xml" href="http://artisan.karma-lab.net/node/1599/atom/feed"/>
  <id>http://artisan.karma-lab.net/node/1599/atom/feed</id>
  <updated>2008-10-25T16:06:10+02:00</updated>
  <entry>
    <title>Démarrer GNU/Linux sur un média amovible</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1599" />
    <id>http://artisan.karma-lab.net/node/1599</id>
    <published>2008-10-25T02:16:48+02:00</published>
    <updated>2008-10-25T16:06:10+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="kernel" />
    <category term="OK" />
    <category term="Planet Libre" />
    <category term="Tutoriel" />
    <summary type="html"><![CDATA[<p>
   Le but est ici de démarrer notre GNU/Linux préfére sur des médias "exotiques", en l'occurence CD-ROM, Carte Compact Flash et clef USB. Les cas d'utilisation sont multiples allant de la transformation d'un live CD en disque USB bootable au démarrage d'une machine sur le réseau via NFS. 
</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>
   Le but est ici de démarrer notre GNU/Linux préfére sur des médias "exotiques", en l'occurence CD-ROM, Carte Compact Flash et clef USB. Les cas d'utilisation sont multiples allant de la transformation d'un live CD en disque USB bootable au démarrage d'une machine sur le réseau via NFS. 
</p>
<!--break-->

	<a name='chapter_1'></a>
  <h2>La source</h2>
	
<p>
  La source que vous utilisez dépendent des usages. Il peut s'agir d'un petit kernel monolithique qui ne connait que NFS pour démarrer sur un partage réseau, un live CD que l'on veut transformer en clef USB, ou encore un clef ou un CD d'installation <a class='external' target='_blank' href='http://www.rodhia.net/blog/installer-mandriva-20090-par-internet' >par internet</a>. 
</p>
<p>
  Pour faire simple nous allons utiliser ce <a class='external' target='_blank' href='/node/1055' >tutoriel</a> pour créer un dossier contenant un linux complet. Ce dossier va service de source à notre média, car une fois qu'il saura booter, il faut bien lancer quelque chose. Dans ce qui suit, ce dossier sera <kbd>~/faux_linux</kbd>.
</p>


	<a name='chapter_2'></a>
  <h2>Utilisation du CD-ROM</h2>
	
<p>
  Pour créer un CD-ROM bootable, nous allons utiliser <a class='external' target='_blank' href='http://syslinux.zytor.com/iso.php' >ISOLinux</a> disponible en installant le paquet <kbd>syslinux</kbd>. Cette boite à outil va nous permettre de créer l'image iso à graver.
</p>
<p>
  Commençons par fabriquer notre dossier "à graver" :

  <div class='code-block code-block-traces'>
  <div class='container'>
  <div class='command'><span class='prompt'>root#</span>mkdir -p ~/bootstrap/isolinux</div><div class='command'><span class='prompt'>root#</span>cd ~/bootstrap/isolinux</div><div class='result'>&nbsp;</div><div class='co0'># copie du nouveau kernel</div><div class='command'><span class='prompt'>root#</span>cp ~/faux_linux/* bootstrap/isolinux/</div><div class='result'>&nbsp;</div><div class='co0'># copie du bin d'isolinux</div><div class='command'><span class='prompt'>root#</span>cp /usr/lib/syslinux/isolinux.bin bootstrap/isolinux</div><div class='command'><span class='prompt'>root#</span><span class='cursor'>&nbsp;</span></div>
  </div>
  
  </div> 
</p>
<p>
  Ensuite il faut créer le fichier de configuration du bootloader <kbd>bootstrap/isolinux/isolinux.cfg</kbd>

  <div class='code-block code-block-fragment'>
  <div class='container'>
  bootstrap/isolinux/isolinux.cfg&quot; nolines=&quot;true&quot;&gt;<br />
&nbsp; default linux<br />
&nbsp; prompt 0<br />
<br />
&nbsp; label linux<br />
&nbsp; KERNEL boot/vmlinuz-2.6.27<br />
&nbsp; append initrd=boot/initrd-2.6.27 vga=788
  </div>
  
  </div>
</p>  
<div class='inline-box note'>
 en spécifiant les options <kbd>root=/dev/nfs  rw ip=dhcp nfsroot=IP_SERVEUR:/machine_lointaine</kbd> et en utilisant un kernel <a class='external' target='_blank' href='/node/18' >monolithique</a>, il est possible de démarrer sur un epartage NFS qui serait par exemple le dossier <kbd>~/faux_linux</kbd>.
</div>

<p>
 Ensuite ne reste plus qu'à générer l'ISO et graver le tout :

  <div class='code-block code-block-traces'>
  <div class='container'>
  <div class='command'><span class='prompt'>root#</span>mkisofs -o ~/mon_micro_linux.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table  bootstrap</div><div class='command'><span class='prompt'>root#</span>cdrecord -driveropts=burnfree ~/mon_micro_linux.iso</div><div class='command'><span class='prompt'>root#</span><span class='cursor'>&nbsp;</span></div>
  </div>
  
  </div>
</p>
<p>
  Lorsque cdrecord a terminé, le CD est prêt à booter. Pensez à utilisez un CD réinscriptible car ça va sûrement pas marcher du premier coup <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>
</p>

<h2>Compact-Flash ou clef USB</h3>
<p>
  Cette approche peut se révéler pratique si vous utilisez la machine comme lecteur multimédia. Cela évite de faire le grille-pain avec un CD de démarrage. Il nous faut du coup un adaptateur CompactFlash/IDE et une carte de très petite capacité, ou une simple clef USB.
</p>
<p>
   La première étape consiste à utiliser <kbd>fdisk</kbd> ou <kbd>parted</kbd> pour supprimer les partitions existantes et en créer une nouvelle, positionné en FAT16 et <b>avec le fanion de démarrage</b>. 
</p>
<p>
  Ceci fait il faut formater en FAT16 avec <kbd>mkdosfs</kbd>. A noter que j'ai eu pas mal d'essais infructueux en FAT32. 
  
  <div class='code-block code-block-traces'>
  <div class='container'>
  <div class='command'><span class='prompt'>root#</span>mkdosfs -F 16 /dev/sdb1</div><div class='command'><span class='prompt'>root#</span><span class='cursor'>&nbsp;</span></div>
  </div>
  
  </div>
</p>
<p>
   Notre disque ayant été correctement préparée, partitionnée, reste à lui coller un MBR. Le bon outil que j'ai trouvé pour cette tâche est <a class='external' target='_blank' href='http://ms-sys.sourceforge.net' >ms-sys</a>. Pour l'utiliser, procédez comme suit :
  
  <div class='code-block code-block-traces'>
  <div class='container'>
  <div class='command'><span class='prompt'>root#</span>tar -zxvf ms-sys-2.1.0.tgz</div><div class='command'><span class='prompt'>root#</span>cd ms-sys-2.1.0</div><div class='command'><span class='prompt'>root#</span>make</div><div class='command'><span class='prompt'>root#</span>cd bin</div><div class='command'><span class='prompt'>root#</span>./ms-sys -d /dev/sdb</div><div class='result'>DOS/Windows NT master boot record successfully written to /dev/sda</div><div class='result'>&nbsp;</div><div class='command'><span class='prompt'>root#</span>./ms-sys /dev/sdb</div><div class='result'>/dev/sdd has an x86 boot sector,</div><div class='result'>it is a Microsoft DOS/NT/95A master boot record, like the one this</div><div class='result'>program creates with the switch -d on a hard disk device.</div><div class='result'>&nbsp;</div><div class='command'><span class='prompt'>root#</span>sync</div><div class='command'><span class='prompt'>root#</span><span class='cursor'>&nbsp;</span></div>
  </div>
  
  </div>
</p>  

<p>
 Voilà, le disque est correctement préparé, nous devons encore installer SYSLinux :
  
  <div class='code-block code-block-fragment'>
  <div class='container'>
  syslinux <span class="sy0">/</span>dev<span class="sy0">/</span>sdb1
  </div>
  
  </div>
</p>
<p>
  Dernière étape, il nous faut recopier les fichiers de <kbd>~/faux_linux</kbd> et créer à la racine un fichier <kbd>syslinux.cfg</kbD>, le même que pour le CD-ROM. 
</p>
<p>
  Voilà, c'est terminé, il ne reste plus qu'à redémarrer pour vérifier que tout se passe sans problèmes. 
</p>


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