j'ai du réaliser un live cd pendant un stage, et j'ai eu droit à la même problématique : changer le root device de l'initrd vers le cd.
Bon, le tout était avec un noyau 2.4, et je ne sais pas si ce que je vais te dire s'applique encore a un 2.6 (c'est toujours mieux que rien).
En fait tout se joue dans l'initrd, vers la fin de celui-ci tu dois utiliser la commande pivot_root avec les arguments qui vont bien pour faire basculer ta racine. Je te recommande de lire la page man de pivot_root et de chercher sur le net.
Je pense qu'il est plus simple que tu déportes ton système de fichiers racine dès le démarrage, et je ne crois pas que ce soit faisable trivialement une fois init démarré.
Je viens de regarder, les deux liens qui m'avaient donné un max d'info sur le sujet ne sont malheureusement plus en ligne.
En bonus, les quelques dernières lignes appelées dans mon linuxrc :
# A faire uniquement si /proc était monté
umount -n /proc >/dev/null 2>&1
mount -n -o ro -t iso9660 $CDROM $TMPMNT
cd $TMPMNT
pivot_root . mnt/initrd
exec chroot . sh -c 'mount -n -t devfs none /dev >/dev/null 2>&1;\
exec -a init.new /sbin/init 3'\
<dev/console >dev/console 2>&1
# pivot_root ?
Posté par eolyte . En réponse au journal Changement dynamique de rootdevice (attention, c'est long !). Évalué à 2.
j'ai du réaliser un live cd pendant un stage, et j'ai eu droit à la même problématique : changer le root device de l'initrd vers le cd.
Bon, le tout était avec un noyau 2.4, et je ne sais pas si ce que je vais te dire s'applique encore a un 2.6 (c'est toujours mieux que rien).
En fait tout se joue dans l'initrd, vers la fin de celui-ci tu dois utiliser la commande pivot_root avec les arguments qui vont bien pour faire basculer ta racine. Je te recommande de lire la page man de pivot_root et de chercher sur le net.
Je pense qu'il est plus simple que tu déportes ton système de fichiers racine dès le démarrage, et je ne crois pas que ce soit faisable trivialement une fois init démarré.
Je viens de regarder, les deux liens qui m'avaient donné un max d'info sur le sujet ne sont malheureusement plus en ligne.
En bonus, les quelques dernières lignes appelées dans mon linuxrc :
# A faire uniquement si /proc était monté
umount -n /proc >/dev/null 2>&1
mount -n -o ro -t iso9660 $CDROM $TMPMNT
cd $TMPMNT
pivot_root . mnt/initrd
exec chroot . sh -c 'mount -n -t devfs none /dev >/dev/null 2>&1;\
exec -a init.new /sbin/init 3'\
<dev/console >dev/console 2>&1