User Mode Linux
Ça y est, j'ai
enfin trouvé le temps d'installer et de configurer
User Mode Linux, le bidule qui permet de lancer un noyau Linux comme un processus, et donc d'avoir un sous-système Linux qui tourne dans votre machine, sans avoir de droits root. Ce mécanisme offre plein d'applications intéressantes : débuggage du kernel sans risques et avec plus de facilité, sécurisation de services, hébergement virtuel, et surtout bricolages en tous genres.
En fait, c'est pas complique :
- Vous récupérez un noyau classique (j'ai pris le 2.6.4)
- Vous appliquez le patch qui va bien sur le noyau
- Configuration avec make menuconfig ARCH=um puis compilation avec make linux ARCH=um
- Tout ça génère un éxécutable linux qu'il faut stripper, sinon il fait 20 Mo
- Ensuite, faut récupérer une image de système de fichiers, moi j'ai récupéré celle d'une Debian. Il faut la nommer root_fs
- Dans le même répertoire vous mettez le binaire Linux et le fichier root_fs. Et hop ./linux et c'est parti, le noyau boote !
Pour avoir le réseau, j'ai utilisé TUN/TAP. Faut compiler le support dans le noyau de la machine hôte. Ensuite, faut dire à ./linux de créer une interface tap0 sur la machine hôte (genre avec l'IP 192.168.2.1) et ensuite dans votre Linux dans le Linux, vous configurez eth0 avec l'adresse 192.168.2.2. Ça y est les 2 Linux communiquent.
En une heure tout était compilé et configuré. Franchement, ça marche nickel leur machin. J'ai plus qu'à ajouter un peu de NAT sur ma machine pour donner l'accès à Internet au Linux dans le Linux, et c'est parti, je vais pouvoir faire joujou sans rien casser.
Edit : ça y est, j'ai réussi à faire fonctionner le Net dans la boîte UML. Sur la machine hôte, un petit
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -i eth0 -j MASQUERADE a suffit, et dans la boîte UML, un
route add default gw 192.168.2.1, et voilà. Ensuite, j'ai voulu installer des packages, mais le système de fichiers était trop petit. Aucun problème, la
solution sans reformater existe. J'ai pu installer Apache et y accéder depuis la machine hôte. Excellent excellent. J'adooooooooore ;-)