Aller au contenu

Faire un linux minimaliste sur une clef USB


bvivi57

Messages recommandés

Bonjour à tous.

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

:transpi: Préparez votre clé USB

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

Lien vers le commentaire
Partager sur d’autres sites

Rapidement :

fdisk /dev/sdb (dépend des distributions et du nombre de périphérique disque (sda, sdc….)

Pour le /dev, non tu ne peux pas copier juste comme ça, pas plus que /proc. Il te faut utiliser makedev pour le peupler (udev peut peut être le remplacer).

Pour plus d'informations sur la façon de créer une distrib from scratch, je te conseille d'aller voir la documentation de linuxfromscratch et dans une moindre mesure, celle de gentoo.

Lien vers le commentaire
Partager sur d’autres sites

Si tu veux, il y a un chouette script, qui permet de faire des live-usb et customiser à partir de lives-cd, dont:

ubuntu-8.04.1-desktop-i386.iso, kubuntu-kde4-8.04.1-desktop-i386.iso, kubuntu-8.04.1-desktop-i386.iso, xubuntu-8.04.1-desktop-i386.iso, minibuntu-8.04-i386.iso, mythbuntu-8.04-rc-desktop-i386.iso, ubuntu-8.04-desktop-i386.iso, kubuntu-kde4-8.04-desktop-i386.iso, kubuntu-8.04-desktop-i386.iso, xubuntu-8.04-desktop-i386.iso, eeexubuntu-7.10.3-desktop-i386, 64studio-live_2.0_i386, bubuntu-fr-7.10b, Ubuntu_Gusty, Xubuntu_Gusty, Edubuntu_Gusty, Kubuntu_Gusty, debian-live-etch-i386-gnome-desktop.iso

Personnalisable, permettant de supprimer tout les paquets inutiles.

http://liveusb.info/liveusb/live_custom.sh

Lien vers le commentaire
Partager sur d’autres sites

Si tu veux, il y a un chouette script, qui permet de faire des live-usb et customiser à partir de lives-cd, dont:

ubuntu-8.04.1-desktop-i386.iso, kubuntu-kde4-8.04.1-desktop-i386.iso, kubuntu-8.04.1-desktop-i386.iso, xubuntu-8.04.1-desktop-i386.iso, minibuntu-8.04-i386.iso, mythbuntu-8.04-rc-desktop-i386.iso, ubuntu-8.04-desktop-i386.iso, kubuntu-kde4-8.04-desktop-i386.iso, kubuntu-8.04-desktop-i386.iso, xubuntu-8.04-desktop-i386.iso, eeexubuntu-7.10.3-desktop-i386, 64studio-live_2.0_i386, bubuntu-fr-7.10b, Ubuntu_Gusty, Xubuntu_Gusty, Edubuntu_Gusty, Kubuntu_Gusty, debian-live-etch-i386-gnome-desktop.iso

Personnalisable, permettant de supprimer tout les paquets inutiles.

http://liveusb.info/liveusb/live_custom.sh

Merci, mais je dois faire la manip à partir d'un noyau provenant de kernel.org et me détacher le plus possible des distributions existantes.

Mais je le garde sous la main, ne serait que pour regarder comment il est fait.

Merci

Lien vers le commentaire
Partager sur d’autres sites

le top sur ta ligne qui boot le kernel ce serait de pas avoir une reference dur du device qui represente ta clef usb. Parceque le but d'une clef usb c'est de se brancher sur n'importe quel pc

Donc kernel /boot/kernel/ root=/dev/sda1 deviendrait kernel /boot/kernel/ root=LABEL=MACLEFUSB (exemple)

LABEL ou UUID mais je sais pas si c'est possible sur un noyau 2.4.

Enfin bon je fais booter ma fedora 9 avec ça sur une clef usb sur un thin client, c'est un peu lourd le noyau officiel (en 2.6) mais ça semble marcher.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...