Je cherche dans le cadre de mes étude à créer une clef USB sur laquelle je peux booter sur un noyau linux minimaliste et arriver simplement à utiliser quelques commandes bach. J'ai choisi d'utiliser le kernel 2.4 officiel (plus simple apparament à faire booter sur une clef USB que le 2.6). Je travaille depuis une distribution debian 4 etch.
Actuellement j'ai réussi à obtenir un noyau de 800k sur une clef USB avec grub an tant que lanceur. Mais je bloque sur le rootfs , j'ai un kernel panic VFS : Unable root_FS.
Sur différent forum, certaines personne utilise BusyBox et créer leur root FS mais j'ignore comment procéder. Si quelqu'un peut m'éclairer sur le root_fs et la façon de le créer sur la clef.
Voiçi le tuto que je rédige parralement ou je note tout ce que j'ai fait :
1) Près-requis : Disposer d’une machine sous linux avec les outils de compilations :
Ex : Linux Debian : aptitude install build-essential (d’autres paquets seront peut être nécessaires)
2) Récupérer la source complète du noyau le plus proche du noyau de votre distribution
Ex : 2.6.25.5 (Préférez un noyau 2.4)
3) Décompresser les sources du noyau dans /usr/src avec la commande tar –xjvf nomdukernel
(Pour une archive en gzip2)
4) Mettre à jour le lien symbolique : ln –s /usr/src/linux-nom-votre-noyau /usr/src/linux
5) Placer vous dans le répertoire /usr/src/linux et lancer le nettoyage des sources : make mrproper && make clean
6) Lancer la commande make menuconfig et sélectionnez dans le menu la configuration que vous souhaitez dans votre noyau. (config minimum à conserver : RAMDIsk, initrd, console, VGA, terminaux virtuels,zlib, binaires Elf, PCI, SCSI, USB,filesystem, (uniquement le filesystem que vous utiliserez sur la clef))
7) Lancer la compilation de votre noyau : make bzImage , le noyau compilé sera placé dans /usr/srv/linux/arch/i386(pour une architecture x86/boot/ et s’appel bzImage
9) - utilisez fdisk pour préparer votre partition sur votre clef USB
fdisk /dev/sdb (dépend des distributions et du nombre de périphérique disque (sda, sdc….)
• Sous fdisk, supprimer toutes partitions existantes avec la commande d
• Puis avec la commande n, créez une nouvelle partition, sélectionnez la totalité de votre clef
• Puis sélectionnez le type de votre partition avec la commande t (par défaut la partition est configurée en mode linux (type 83))
• Validez vos changements avec la commande w
10) Formatez votre clef USB
• mount /dev/sdb1 /mnt/usb (Monter votre clef USB (sdb1 est la partition créée précédemment, ici la partition est monté dans /mnt/usb, libre à vous de monter la clef à l’endroit que vous voulez)
• mk2fs /dev/sdb1 (Formate la clef USB en ext2)
• Créer l’architecture de base :
mkdir /mnt/usb/bin
mkdir /mnt/usb/sbin
mkdir /mnt/usb/etc
mkdir /mnt/usb/lib
mkdir /mnt/usb/boot
mkdir /mnt/usb/dev
11) Placez vous dans /mnt/usb/dev sur votre clef USB pour créer le « rootfs » et tapez les commandes suivantes :
mknod –m 600 console c 5 1
mknod –m 664 fd0 b 2 0
mknod –m 644 null c 1 3
mknod –m 640 ram b 1 1
mknod –m 666 tty c 5 0
mknod –m 600 tty0 c 4 0
mknod –m 666 zero c 1 5
12) Copiez votre noyau dans /mnt/usb/boot
cp /usr/src/linux/arch/i386/boot/bzImage /mnt/usb/boot/kernel
cp /usr/src/linux/System.map /mnt/usb/boot/kernel.map
13) Installer grub sur votre cle USB :
• Créer un répertoire grub dans le boot de votre clef USB /
mkdir /mnt/usb/boot/grub
• Copier les fichiers stage1 et stage2 de votre grub local vers votre clef USB
cp /boot/grub/stage* /mnt/usb/boot/grub/
• Copier le fichier de menu vers le grub de votre clef USB
cp /boot/grub/menu.lst /mnt/usb/boot/grub
• Editer le fichier menu.lst de votre clé USB :
title : Noyau Minimalise 2.4
root (hd0,0)
kernel /boot/kernel/ root=/dev/sda1
• Installer grub :
Root# grub
>grub root (hd1 ,0) //correspond a l’emplacement de votre cle USB
>grub setup (hd1)
J'ai essayé de copier directement mon rep /dev de mon debian sur la clef sans succès.
Merci
