Linux Chargé en mémoire sans disque dur sans CD

Bonjour ,
Voila , je débute en linux , et je doit être amené à réussir à charger linux depuis un fichier RAM
qu’on appel " initrd "…
j’ai compilé le noyau (2.6.25.9), tout fonctionne bien…

Ci dessous un script permettant de monter en mémoire linux grace a ce fameux fichier " initrd " , dans le but de l’utiliser sur un Live CD et sans disque dur… ( avec l’intégration de l’outils busybox…) un sorte de système embarqué…
Ma question serait :
Comment faire pour installer des modules supplémentaires (carte réseaux par ex…)
Et aussi comment faire pour installer un outils supplémentaire du style sshfs et fuse…
Car en bootant avec grub , tout fonctionne mais en mode trés limité

Quelqu’un peut m’aider ?
Merci Bcp
Cdt

#!/bin/bash

Housekeeping…

rm -f /tmp/ramdisk.img
rm -f /tmp/ramdisk.img.gz

Ramdisk Constants

RDSIZE=4000
BLKSIZE=1024

Create an empty ramdisk image

dd if=/dev/zero of=/tmp/ramdisk.img bs=$BLKSIZE count=$RDSIZE

Make it an ext2 mountable file system

/sbin/mke2fs -F -m 0 -b $BLKSIZE /tmp/ramdisk.img $RDSIZE

Mount it so that we can populate

mount /tmp/ramdisk.img /mnt/initrd -t ext2 -o loop=/dev/loop0

Populate the filesystem (subdirectories)

mkdir /mnt/initrd/bin
mkdir /mnt/initrd/sys
mkdir /mnt/initrd/dev
mkdir /mnt/initrd/proc

Grab busybox and create the symbolic links

pushd /mnt/initrd/bin
cp /usr/local/src/busybox-1.10.3/busybox .
ln -s busybox ash
ln -s busybox mount
ln -s busybox echo
ln -s busybox ls
ln -s busybox cat
ln -s busybox ps
ln -s busybox dmesg
ln -s busybox sysctl
popd

Grab the necessary dev files

cp -a /dev/console /mnt/initrd/dev
cp -a /dev/ramdisk /mnt/initrd/dev
cp -a /dev/ram0 /mnt/initrd/dev
cp -a /dev/null /mnt/initrd/dev
cp -a /dev/tty1 /mnt/initrd/dev
cp -a /dev/tty2 /mnt/initrd/dev

Equate sbin with bin

pushd /mnt/initrd
ln -s bin sbin
popd

Create the init file

cat >> /mnt/initrd/linuxrc << EOF

#!/bin/ash
echo
echo "Simple initrd is active"
echo
mount -t proc /proc /proc
mount -t sysfs none /sys
/bin/ash --login
EOF

chmod +x /mnt/initrd/linuxrc

Finish up…

umount /mnt/initrd
gzip -9 /tmp/ramdisk.img
cp /tmp/ramdisk.img.gz /boot/ramdisk.img.gz

Bonjour,

Tu ne peux pas rajouter les exécutables qui t’intéressent dans ton ramdisk?

pl.

Ton fichier initrd est antédéluvien, utilisant le mke2fs donc un système à taille fixée réservant toute la RAM du disque. Tu as un tel exemple de système sans CD, sans disque dur ici
http://boisson.homeip.net/CDsecours.iso.gz
C’est un CD avec un initrd autonome boutant en RAM sans ressources extérieures, lançant quoi qu’il arrive un smalltelnet en root. Ça permet de réparer une machine sans clavier ni souris en boutant dessus. Le processus de l’initrd a encore changé avec les dernier noyaux, mais si pbm il y a c’est facile à changer sur cet initrd

Merci les gars !
Merci pleiades, j’aimerais justement rajouter des bniaires dans le scirpt du fichier ram

Quelqu’un peut m’aider
(prenont exemple du binaire sshfs )

Merci aussi à Fran.B , mais c’est pas vraiment ce que je souhaite faire…

Bon mais dans ce cas fais attention, ton ramdisk a une taille limité (4M) et tu ne peux pas y rajouter des choses de mainière infinie en conservant une répertoire /tmp minimal. Il va falloir que tu l’agrandisses en changeant ton paramètre RDSIZE et en rajoutant une ligne à ton chargeur.

Ok ok

Merci Fran.B

mais il faudra l’outils sshfs compilé en statique nan?

Oui avec également de quoi faire l’authentification. C’est pour ça que je m’étais bricolé un outil smalltelnetd sans authentification, statique de 16K