# [RAM] charger les lib en ram, risqué ou pas??

## penguin_totof

voila, apres avoir vu ca https://forums.gentoo.org/viewtopic-t-296892.html

(un lien figurant ds le topic [RAM] en acheter plus?)

ca me tente bien, mais quelques questions tout de meme

quelqu'un l'as t'il deja fait??

si oui, cela en vau-t'il vraiment la peine??

768 Mo de ram suffisent-t'il?

comment se comporte le systeme en cas de coupure de jus <== tres important pour moi car mon installation electrique est douteuse et j'essuye au moin une coupure sauvage par semaine.

merci d'avance

----------

## Enlight

J'avais juste testé avec les libs de firefox (solution à base de ldd vu que j'ai que 256 Mo) et ça torche pas mal, sinon dans la mesure où tu utilise des tarballs updatés, la seule crainte à avoir serait qu'en cas de hard reboot tes libs soient pas mise à jour si tu fais un upgrade.

Come je fais un peu joujou avec init en ce moment, je vais surement  me replonger dedans.

----------

## terreur

tiens quand je fais 

```

ldd /usr/bin/firefox 

```

J'obtiens : 

```

not a dynamic executable

```

Cela vient 'il tu fait que j'utilise prelink ??

----------

## Enlight

 *terreur wrote:*   

> tiens quand je fais 
> 
> ```
> 
> ldd /usr/bin/firefox 
> ...

 

non ça vient du fait que c'est un script qui en appele un autre, qui en appele un 3è qui lui lance le "vrai" firefox

----------

## cylgalad

Non :

```
 cat /usr/bin/firefox

#!/bin/sh

#

# Stub script to run mozilla-launcher.  We used to use a symlink here but

# OOo brokenness makes it necessary to use a stub instead:

# http://bugs.gentoo.org/show_bug.cgi?id=78890

export MOZILLA_LAUNCHER=firefox

exec /usr/libexec/mozilla-launcher "$@"

```

 :Very Happy: 

----------

## Enlight

 *cylgalad wrote:*   

> Non :
> 
> ```
>  cat /usr/bin/firefox
> 
> ...

 

m... je deviens vraiment un geek, je comprends le binaire   :Mr. Green: 

----------

## cylgalad

 *Enlight wrote:*   

> 
> 
> m... je deviens vraiment un geek, je comprends le binaire  

 

Tout le monde sait qu'il y a 10 sortes de personne, ceux qui comprennent le binaire et les autres  :Wink:  (elle n'est pas de moi mais ça fait toujours rire...)

----------

## Enlight

 *cylgalad wrote:*   

>  *Enlight wrote:*   
> 
> m... je deviens vraiment un geek, je comprends le binaire   
> 
> Tout le monde sait qu'il y a 10 sortes de personne, ceux qui comprennent le binaire et les autres  (elle n'est pas de moi mais ça fait toujours rire...)

 

le service info la pas comprise dans ma boite  :Confused: 

----------

## chrissou

Bon alors revenons a nos moutons ! 

moi aussi j'aimerais bien testé tout ca ! mais malheureusement je ne suis pas assez callé pour faire un tuto simple pour charger les lib en ram  :Sad: 

Donc j'attends qu'une ame charitable fasse un tuto beaucoup plus simple que notre confrère english  :Wink: 

----------

## penguin_totof

 *chrissou wrote:*   

> Bon alors revenons a nos moutons ! 
> 
> moi aussi j'aimerais bien testé tout ca ! mais malheureusement je ne suis pas assez callé pour faire un tuto simple pour charger les lib en ram 
> 
> Donc j'attends qu'une ame charitable fasse un tuto beaucoup plus simple que notre confrère english 

 

+1

----------

## geforce

Par simple curiosite c'est quoi le liens du tuto ?

----------

## terreur

 *geforce wrote:*   

> Par simple curiosite c'est quoi le liens du tuto ?

 

en haut de cette page .... https://forums.gentoo.org/viewtopic-t-296892.html

----------

## terreur

 *Enlight wrote:*   

> J'avais juste testé avec les libs de firefox (solution à base de ldd vu que j'ai que 256 Mo) et ça torche pas mal, sinon dans la mesure où tu utilise des tarballs updatés, la seule crainte à avoir serait qu'en cas de hard reboot tes libs soient pas mise à jour si tu fais un upgrade.
> 
> Come je fais un peu joujou avec init en ce moment, je vais surement  me replonger dedans.

 

tu as fait cette technique ci : 

```

##do this in advance

tar cpf /root/preload.tar /usr/bin/firefox /lib/and /lib/all /usr/lib/of /usr/lib/the /lib/raries/ it's/dependent /lib/on

##replace all the original bins and libraries with links to /preload/whatever

##Then put this in /etc/conf.d/local.start

mount -t tmpfs -o size=128m none /preload > /dev/null 2>&1

cd /preload && tar xfp /root/preload.tar

```

----------

## Enlight

yep, mais je voulais la retenter avec squashfs au lieu de tar + tmpfs, je regarde ça si j'ai un peu de temps demain.

----------

## terreur

ok tiens nous au courant.

----------

## chrissou

j'ai tenté le topic english pour monter les libs en ram ... 

malheureusement je suis bloqué bien rapidement au moment de monter le /dev/loop0 voici :

```

I9300 zobi # losetup /dev/loop0 /boot/initrd 

/dev/loop0: Aucun périphérique ou adresse

```

quelqu'un a t il une idée la dessus ?

Merci d'avance

----------

## Enlight

 *Quote:*   

> grep -i loop /usr/src/linux/.config
> 
> CONFIG_CC_ALIGN_LOOPS=0
> 
> CONFIG_BLK_DEV_LOOP=y
> ...

 [/b]

----------

## chrissou

Bien vu  :Wink: 

je recompil tout ca et je test merci :p

----------

## chrissou

un autre petit soucis maintenant  :Sad: 

j'ai donc suivi toute la procédure a la lettre mais au boot mon laptop n'arrive pas a voir le root=/dev/ram0 effectivement si je regarde dans le rep /dev/ je n'ai pas de device ram ....  :Sad:  Je pense que ceci doit être lié a udev ou quelque chose du genre ?

qu'en pensez vous ?

----------

## Enlight

 *Quote:*   

> grep -i init /usr/src/linux/.config
> 
> CONFIG_BLK_DEV_INITRD=y
> 
> CONFIG_INITRAMFS_SOURCE=""
> ...

 

looool

----------

## chrissou

LOL décidément j'ai du mal avec la config de mon kernel moi ! 

Encore un autre soucis et je pense bientot le dernier avec recompil du kernel une seconde fois au reboot me voici avec nouveau message d'erreur :

"no init found try to pass init= option to kernel"

hors mon grub.bonf est configuré ainsi :

```

default 0

timeout 8

splashimage=(hd0,0)/boot/grub/lfs-splash.xpm

title=Gentoo 2.6.11 r9 passage ram

kernel /boot/kernel-2.6.11-gentoo-r9 root=/dev/ram0 rw init=linuxrc udev

initrd /boot/initrd

title=Gentoo 2.6.11 r9 via DD

kernel /boot/kernel-2.6.11-gentoo-r9 root=/dev/sda1 udev

```

et j'ai bien un fichier linuxrc dans mon /mnt/initrd comme indiqué dans le tuto ...

Des idées la dessus ??

----------

## chrissou

Un petit up mr Enlight pas d'idées cette fois ?

----------

## Enlight

Sorry j'étais pas là, je pense que c'est ton losetup qui a foiré, losetup sert à associer un périphérique loop avec un fichier ou un périphérique de block.

donc en gros quen tu suis le how-to tu travailles dasn /mnt/chépukoi qui est est le fichier dans lequel loop0 est monté Mais comme loop0 a été associé à /boot/initrd, ça le "rempli" (c'est pas tout à fait exact mais bon c'est l'idée). je pense donc qu"en fait ton initrd ne renvoye pas sur loop0... :Sad: 

edit, en fait remonte loop0 sur un fichier, vérifies qu'il contient ce qu'il faut, et si c'est bon effectue juste le losetup ça devrait passer.

----------

## chrissou

j'ai donc vérifié le contenu de mon /mnt/initrd j'ai recommencé le losetup mais ca ne change rien  :Sad: 

j'ai regardé sur le post du howto apparament 2 personnes ont eu le meme cas que moi mais mon anglais n'est pas assez pointu pour trouver la solution  :Sad: 

----------

## Enlight

 *chrissou wrote:*   

> j'ai donc vérifié le contenu de mon /mnt/initrd j'ai recommencé le losetup mais ca ne change rien 

 

après avoir monté /dev/loop0 dessus (sur /mnt/initrd)?

 *Quote:*   

> 
> 
> j'ai regardé sur le post du howto apparament 2 personnes ont eu le meme cas que moi mais mon anglais n'est pas assez pointu pour trouver la solution 

 

je crois que le thread est long tu peux me les mp, avec un peu de chance je les verrai avant de partir.

ps : ton /boot était bien monté au moment du losetup???

----------

## chrissou

alors j'ai été obligé de losetup avant de monter sur /mnt/initrd (sinon il voulait pas la monter)

sinon beh mon /boot est intégré a mon / je n'ai pas de partition spécifique pour le boot ...

beh pour le post c'est le dernier post de la première page par exemple  :Wink: 

----------

## Enlight

Bon, re  :Very Happy: 

Le fameux post ne me semble pas en rapport avec ton problème, par contre depuis que tu m'as confessé ne pas avoir de /boot sur sa propre partition, je medemande si tu as bien le support ext2 dans ton noyau vu que le périph loop est formaté en ext2 dans le how-to.

----------

## penguin_totof

 *Enlight wrote:*   

> sinon dans la mesure où tu utilise des tarballs updatés, la seule crainte à avoir serait qu'en cas de hard reboot tes libs soient pas mise à jour si tu fais un upgrade.
> 
> 

 

et en gros, ca veut dire quoi? le probleme est-il contournable?

----------

## chrissou

 *Enlight wrote:*   

> Bon, re 
> 
> Le fameux post ne me semble pas en rapport avec ton problème, par contre depuis que tu m'as confessé ne pas avoir de /boot sur sa propre partition, je medemande si tu as bien le support ext2 dans ton noyau vu que le périph loop est formaté en ext2 dans le how-to.

 

et bien oui  :Sad: 

```

I9300 linux # grep -i EXT2 .config

CONFIG_EXT2_FS=y

# CONFIG_EXT2_FS_XATTR is not set

```

j'ai tenté de déplacé le fichier linurc de le mettre ds /bin et de mettre init=/bin/linurx mais ca ne fait rien  :Sad: 

par contre ne comprenant pas a quoi sert le init= et la ligne du dessous initrd /boot/initrd j'ai du mal a debugué  :Sad: 

pour penguin_totof je pense que tu dois pouvoir faire une tache cron qui balance toute les heures par exemple les libs mise à jour sur le disque dur ...

----------

## Enlight

 *chrissou wrote:*   

> 
> 
> title=Gentoo 2.6.11 r9 passage ram
> 
> kernel /boot/kernel-2.6.11-gentoo-r9 root=/dev/ram0 rw init=linuxrc udev
> ...

 

edit : grosse bêtise!Last edited by Enlight on Sun Jun 12, 2005 7:07 pm; edited 1 time in total

----------

## chrissou

y a un truc que je pige pas la quand même ...

dans le howto il crée le initrd dans /boot et pas dans /dev/ram0

par contre il crée le linuxrc dans /dev/ram0/

dans son grub il précise dev=/dev/ram0 init=linuxrc

initrd /initrd

ce qui suppose donc que linuxrc soit dans /dev/ram0 la je suis d'accord

mais aussi que initrd est dans /dev/ram0 mais la a aucun moment il est dit de créer le initrd dans /dev/ram0

je pige pas !

----------

## chrissou

bon alors j'ai du mieux enfin ....

j'ai viré la ligne init /initrd (je n'en vois pas l'utiliter)

maintenant quand je boot il arrive a lire mon linuxrc mais c'est après qu'il ne monte pas ma partition / et donc il ne lance pas les scripts init ...

Alors par contre dans le howto il disent de mettre /usr /root et /var dans des partoches différentes mais perso j'ai tout laissé dans une seule partition sauf mon repertoire /home je me demande si c'est pas pour ca que ca ne fonctionne pas  :Sad: 

----------

## Enlight

 *chrissou wrote:*   

> bon alors j'ai du mieux enfin ....
> 
> j'ai viré la ligne init /initrd (je n'en vois pas l'utiliter)
> 
> maintenant quand je boot il arrive a lire mon linuxrc mais c'est après qu'il ne monte pas ma partition / et donc il ne lance pas les scripts init ...
> ...

 

Mmmh bizarre j'ai relu vite fait en diagonale, il me semble que finalement si il faut bien laisser le /boot/initrd (lui ne le fait pas car son /boot est à part donc /boot/initrd = initrd)

Sinon bah pas très possible qu'il lance ton linuxrc car il est dans l initrd si tu as bien procédé.

Pour ce qui est des partoches... ben ça va swapper et du coup ralentir ta bête plus qu'autre chose.

edit : poste voir le contenu de /boot/initrd

ps l'initrd est ce qui va être chargé dans ram0, fais juste un grep -i RAM dans le .config du kernel parcequ'il me semble que lui prévoyes 8 Méga pour l'initrd, donc peut être que ton ram0 est trop petit.

----------

## chrissou

```

CONFIG_BLK_DEV_RAM=y

CONFIG_BLK_DEV_RAM_COUNT=16

CONFIG_BLK_DEV_RAM_SIZE=20000

CONFIG_INITRAMFS_SOURCE=""

CONFIG_NVRAM=m

CONFIG_FRAMEBUFFER_CONSOLE=y

CONFIG_RAMFS=y

```

j'ai mis le size a 20000 mais effectivement mount /dev/loop0 ne fait toujours que 8Mo et effectivement aussi je n'ai pas assez de place pour mettre mon initrd a l'intérieur  :Sad: 

----------

## Enlight

pour changer la taille du /dev/loop0, ça se passe au moment du dd, si tu regardes il mets 8 blocks de 1024ko d'où les 8Mo, à toi d'ajuster le count pour augmenter la taille, mais il faudra le reformater et remplir à nouveau.

edit : par contre 16 ramdisks de 20 000 ko tu me semble bien optimiste dans ta config.

----------

