[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

unionfs et initrd/linuxrc



Bonjour, 

Pour continuer le projet ClefAgreg (http://boisson.homeip.net/clef/ClefAgreg.
html), j'ai compilé unionfs pour  un noyau 2.6.23 le tout sur une debian etch.
Par ailleurs, j'ai dessus un module cloop version 2.622

L'idée consiste à réunir une image compressée (à 37% en moyenne) 
avec cloop en ro avec un disque en ram (un peu comme SLAX). Cela marche bien 
mais j'ai une difficulté que je ne comprends pas: Je boute en initrd, charge
les modules nécessaires et veut termenier le linuxrc par

**********
cd /
mount -t unionfs unionsfs /ROOT -o dirs=/ramdisk=rw:/AGREG=ro
# le pivot root
mkdir /ROOT/oldroot
cd /ROOT
pivot_root . oldroot
exec chroot . sh -c 'exec /sbin/init' <dev/console >dev/console 2>&1
**********
Refus: mount ne reconnait pas l'option dirs=/ramdisk=rw:/AGREG=ro. J'ai 
vérifié que c'est le bon mount appelé et que les modules sont correctement
chargés. 

Si je fais init=/etc/init dans les options de boute puis que je termine
linuxrc par 
************
echo "Initialisation du système"
mkdir /ROOT
cd /
echo "Starting init process."
rm -f /linuxrc
exit 0
************

et que /etc/init est
**************
#!/bin/bash
PATH=/sbin:/usr/sbin:/bin:/usr/bin
cd /
mv /dev /ramdisk
mount -t unionfs unionsfs /ROOT -o dirs=/ramdisk=rw:/AGREG=ro
mkdir /ROOT/oldroot
if [ ! -d /ROOT/proc ] ; then
    mkdir /ROOT/proc
fi
if [ ! -d /ROOT/sys ] ; then
    mkdir /ROOT/sys
fi
chroot /ROOT mount /proc
chroot /ROOT mount /sys
umount /proc
umount /sys
cd /ROOT
pivot_root . oldroot
# exec /bin/bash
exec chroot . sh -c 'exec /sbin/init' <dev/console >dev/console 2>&1
******************

Là, ça marche. Très bien. Mais je ne comprends pas pourquoi il faut 
sortir du linuxrc pour faire la réunion des systèmes de fichiers. Si quelqu'un 
a  une explication, je suis preneur.


Merci

François Boisson


Reply to: