<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.bonz.org/tech/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>ZenTech - initramfs</title>
  <link>http://www.bonz.org/tech/</link>
  <description>Om Mani Padme Hum</description>
  <language>fr</language>
  <pubDate>Tue, 16 Dec 2008 23:57:46 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Un peu d'ordre dans la maison</title>
    <link>http://www.bonz.org/tech/post/2007/09/16/Un-peu-dordre-dans-la-maison</link>
    <guid isPermaLink="false">urn:md5:bd42dd60504167574cc12fc371bbec7c</guid>
    <pubDate>Tue, 18 Sep 2007 19:22:00 +0200</pubDate>
    <dc:creator>hr</dc:creator>
        <category>système</category>
        <category>areca</category><category>debian</category><category>etch</category><category>initramfs</category><category>kernel</category><category>sata</category><category>v2.6</category>    
    <description>&lt;p&gt;Je viens d'installer un serveur avec plein de SATA dans le ventre, la bête a 30To de disques répartis sur 2 controleurs Areca ARC-1280ML. L'installation d'une &lt;a href=&quot;http://www.debian.org/&quot;&gt;Debian/etch&lt;/a&gt; se passe sans problème, noyau 2.6.18-5-686. Après avoir installé le système sur 2 disques connectés à la carte mère (contrôleur ICH5R sur pilote &lt;code&gt;ata_piix&lt;/code&gt;), des volumes RAID5 sont créés sur les cartes Areca (pilote &lt;code&gt;arcmsr&lt;/code&gt;). Le démarrage s'arrête sur une invite de commande &lt;code&gt;initramfs&lt;/code&gt;, la partition racine est introuvable.&lt;/p&gt;    &lt;pre&gt;
Begin: Waiting for root file system... ...
Done.
        Check root= bootarg cat /proc/cmdline
        or missing modules, devices: cat /proc/modules ls /dev
ALERT! /dev/sda1 does not exist. Dropping to a shell!


Busybox v1.1.3 (Debian 1:1.1.1-4) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

/bin/sh: can't access tty; job control turned off
(initramfs)
&lt;/pre&gt;


&lt;p&gt;Mais qu'est-ce qu'il nous arrive madame Michu&amp;nbsp;? Tout simplement, les nouveaux volumes sont détectés par le noyau avant le disque sur lequel est installé le système. Résultat, le système n'est plus sur &lt;code&gt;/dev/sda&lt;/code&gt; mais sur &lt;code&gt;/dev/sdc&lt;/code&gt;. Et le plus drôle c'est qu'il est parfois sur &lt;code&gt;/dev/sdb&lt;/code&gt; parce que les controleurs Areca mettent du temps à se déclarer.&lt;/p&gt;


&lt;p&gt;Comment laver l'affront que nous impose ce petit impudent&amp;nbsp;? En jouant avec la partition RAM d'initialisation, j'ai nommé &lt;code&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Initramfs&quot;&gt;initramfs&lt;/a&gt;&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;C'est extrêmement simple, on va demander à la partition de démarrage en RAM de charger les modules sata dans l'ordre qu'on souhaite. Dans notre cas, le pilote &lt;code&gt;ata_piix&lt;/code&gt; avant &lt;code&gt;arcmsr&lt;/code&gt;. Les outils Debian permettent de faire ça de façon très simple, il suffit d'ajouter les modules qu'on souhaite voir chargés lors du démarrage dans le fichier &lt;code&gt;/etc/initramfs-tools/modules&lt;/code&gt;. Les modules doivent être listés, un par ligne dans l'ordre de chargement souhaité. Dans notre cas, il suffit de préciser le module qui prend en charge le disque de démarrage.&lt;/p&gt;
&lt;pre&gt;
# cat /etc/initramfs-tools/modules
[...]
ata_piix
&lt;/pre&gt;

&lt;p&gt;Il faut maintenant mettre à jour l'image en RAM pour propager ces modifications.&lt;/p&gt;
&lt;pre&gt;
# update-initramfs -v -k 2.6.18-5-686 -t -u
Keeping /boot/initrd.img-2.6.18-5-686.dpkg-bak
update-initramfs: Generating /boot/initrd.img-2.6.18-5-686
Adding module /lib/modules/2.6.18-5-686/kernel/drivers/scsi/scsi_mod.ko
Adding module /lib/modules/2.6.18-5-686/kernel/drivers/scsi/scsi_transport_spi.ko
Adding module /lib/modules/2.6.18-5-686/kernel/drivers/scsi/aic7xxx/aic7xxx.ko
[...]
Adding binary /sbin/mdrun
Building cpio /boot/initrd.img-2.6.18-5-686 initramfs
Backup /boot/initrd.img-2.6.18-5-686.bak
&lt;/pre&gt;

&lt;p&gt;Un petit redémarrage et tout est revenu en ordre. Et le plus beau, c'est que lorsque vous devrez mettre à jour votre noyau, le nouveau noyau fera automatiquement la reconstruction de l'image RAM d'initialisation.&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>