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: