Bonjour,
J'essaye actuellement de faire booter linux depuis une carte Flash.
Je suis parti d'un Linux From Scratch (LFS), noyau 2.6.22, installé au départ sur mon disque dur, sur lequel je boote sans problème.
J'utilise un lecteur multi-cartes en façade, et la carte est accessible via /dev/sdb1 depuis le système installé sur le disque dur.
J'ai copié les éléments du système sur la carte (/bin /usr /dev ...), qui est formatée en ext3, et sur laquelle j'ai installé Grub avec succès.
Jusque là tout va bien, je met la carte dans le lecteur, je démarre, puis Grub trouve bien mon noyau sur la carte, et entamme le boot.
Seulement, au moment de monter /dev/sdb1 sur /, j'ai droit à un kernel panic :
VFS: Cannot open root device "sdb1" or unknown-block(0,0)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Sur le coup celà ne m'a pas choqué, en effet j'avais constaté qu'en bootant LFS sur le disque dur, il mettait un certain temps à détecter mon lecteur multicarte.
En cherchant un peu (même intensément) sur google, j'ai pu trouver un patch à appliquer sur mon noyau, lui permettant d'attendre une seconde avant de réessayer de monter /, dans le but de lui laisser le temps de détecter le lecteur de cartes.
Le noyau attend donc 1 seconde 6 fois de suite, avant de faire son kernel panic.
Il se passe alors quelquechose que je ne comprend pas :
Le patch fonctionne comme prévu:
VFS: Cannot open root device "sdb1" or unknown-block(0,0)
Retrying in 1 second...VFS: Cannot open root device "sdb1" or unknown-block(0,0)
Retrying in 1 second...
etc, etc, jusqu'à ce qu'il détecte ma carte flash :
scsi 6:0:0:0: Direct-Access TEAC USB HS-CF Card 4.08 PQ: 0 ANSI: 0
sd 6:0:0:0: [sdb] 2001888 512-byte hardware sectors (1025 M
sd 6:0:0:0: [sdb] Write Protect is off
sd 6:0:0:0: [sdb] Assuming drive cache: write through
sd 6:0:0:0: [sdb] 2001888 512-byte hardware sectors (1025 M
sd 6:0:0:0: [sdb] Write Protect is off
sd 6:0:0:0: [sdb] Assuming drive cache: write through
sdb: sdb1
sd 6:0:0:0: [sdb] Attached SCSI removable disk
sd 6:0:0:0: Attached scsi generic sg2 type 0
La on voit bien qu'il a détecté ma carte en sdb1, or il continue à boucler jusqu'à ce qu'il revienne à son kernel panic...
Je ne comprend donc pas pourquoi il semble toujours chercher sdb1 alors qu'il m'affiche lui-même qu'il l'a détécté...
Voici le contenu de mon menu.lst dans Grub :
title LFS
root (hd0,0)
kernel /boot/lfskernel-2.6.22.5 root=/dev/sdb1
Aussi je pense avoir activé tous les modules nécessaires dans le noyau afin de permettre le boot sur SCSI et USB.
Au besoin je peux vous transmettre le .config.
Merci pour votre aide !