Différences entre versions de « UserModeLinux »
imported>SylvainBeucler m |
imported>SylvainBeucler m (→Réseau) |
||
Ligne 42 : | Ligne 42 : | ||
uml# ifconfig eth0 192.168.1.201 | uml# ifconfig eth0 192.168.1.201 | ||
− | === | + | === Mode utilisateur avec tuntap === |
− | Pour utiliser tuntap, il faut créer à l'avance (et en mode root) une interface tap0 | + | Pour utiliser tuntap, il faut créer à l'avance (et en mode root) une interface tap0 et lui assigner une adresse IP. |
# tunctl -u sylvain | # tunctl -u sylvain | ||
Set 'tap0' persistent and owned by uid 1000 | Set 'tap0' persistent and owned by uid 1000 | ||
+ | Puis il faut donner des droits aux utilisateurs non-privilégiés d'utiliser tuntap (en mode root aussi): | ||
+ | |||
+ | chmod 666 /dev/net/tun | ||
+ | |||
+ | C'est une solution efficace mais qui nécessite plusieurs étapes de préconfiguration en mode root, accompagné de permissions lâches sur tuntap. | ||
+ | |||
+ | === Mode utilisateur avec slirp === | ||
+ | |||
+ | Lancer UML avec une interface slirp, en utilisant le binaire 'fullbolt' (qui s'affranchit de la limitation débit de 10ko/s dans slirp 'classique'): | ||
+ | |||
+ | host# /usr/src/linux ubda=sarge-debootstrap umid=deb eth0=slirp,,/usr/bin/slirp-fullbolt | ||
+ | |||
+ | Dans UML, configurer l'interface sur 10.2.0.15: | ||
+ | |||
+ | uml# ifconfig eth0 10.2.0.15 | ||
+ | |||
+ | 10.0.2.3 sert de DNS et redirige les requêtes vers les DNS de la machine hôtes: | ||
+ | |||
+ | uml# echo "10.0.2.3" > /etc/resolv.conf | ||
+ | |||
+ | Il faut enfin ajouter une route par défaut vers eth0: | ||
+ | |||
+ | uml# route add default dev eth0 | ||
== Liens == | == Liens == |
Version du 18 septembre 2006 à 13:34
Compilation du noyau utilisateur
C'est très simple: on compile le noyau Linux avec le paramètre ARCH=um
pour chaque commande.
wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.13.tar.bz2 tar xjf linux-2.6.17.13.tar.bz2 cd linux-2.6.17.13
make defconfig ARCH=um make xconfig ARCH=um # facultatif; pensez à activer HOSTFS si besoin make ARCH=um strip linux
Cf. Building from source chez UML.
Tentative 1
On se propose de construire et de lancer un système UML sans aucun accès root.
Construction du système de base
La dernière version de debootstrap propose une variante fakechroot qui permet de l'utiliser sans accès root:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:$PATH # pour trouver la commande 'chroot' fakechroot /usr/sbin/debootstrap --variant=fakechroot sarge sarge-uml/ http://localhost/mirrors/debian /usr/src/linux-2.6.17.13/linux root=/dev/root rootflags=/home/sylvain/tests/uml/debian/sarge-uml/ rootfstype=hostfs
Résultat: cela ne fonctionne pas, à mon avis parce que dans ce cas précis sarge-uml/dev est un lien symbolique vers /dev.
Réseau
Imaginez un câble virtuel qui relie la machine hôte et la machine UML, une carte carte réseau virtuelle à chaque bout. Chaque carte a une adresse IP, mais comme sur un réseau classique, les deux cartes ne doivent pas avoir la même adresse.
mode root
host# sudo /usr/src/linux ubda=sarge-debootstrap eth0=tuntap,,,192.168.1.101
Notez les messages d'UML indiquant la mise en place d'une interface tuntap tap0
, une route pour accéder à la machine virtuelle, et un partage de connexion pour que la machine virtuelle puisse accéder au réseau extérieur.
Puis dans UML:
uml# ifconfig eth0 192.168.1.201
Mode utilisateur avec tuntap
Pour utiliser tuntap, il faut créer à l'avance (et en mode root) une interface tap0 et lui assigner une adresse IP.
# tunctl -u sylvain Set 'tap0' persistent and owned by uid 1000
Puis il faut donner des droits aux utilisateurs non-privilégiés d'utiliser tuntap (en mode root aussi):
chmod 666 /dev/net/tun
C'est une solution efficace mais qui nécessite plusieurs étapes de préconfiguration en mode root, accompagné de permissions lâches sur tuntap.
Mode utilisateur avec slirp
Lancer UML avec une interface slirp, en utilisant le binaire 'fullbolt' (qui s'affranchit de la limitation débit de 10ko/s dans slirp 'classique'):
host# /usr/src/linux ubda=sarge-debootstrap umid=deb eth0=slirp,,/usr/bin/slirp-fullbolt
Dans UML, configurer l'interface sur 10.2.0.15:
uml# ifconfig eth0 10.2.0.15
10.0.2.3 sert de DNS et redirige les requêtes vers les DNS de la machine hôtes:
uml# echo "10.0.2.3" > /etc/resolv.conf
Il faut enfin ajouter une route par défaut vers eth0:
uml# route add default dev eth0
Liens
- The User-mode Linux Kernel Home Page: lien direct vers la nouvelle version du site - on s'y retrouve mieux
- Running Debian inside of Debian with User-Mode Linux
- [Tutoriel User Mode Linux http://www.metz.supelec.fr/metz/personnel/galtier/PagesPerso/TutorielUML/index.html]: couvre SKAS et réseau
Dépannage
Kernel panic - not syncing: start_userspace : expected SIGSTOP, got status = 256
Cf. http://www.mail-archive.com/user-mode-linux-devel@lists.sourceforge.net/msg03414.html
Votre noyau (hôte) est, si j'ai bien compris, mal configuré. Recompilez-le ou utilisez-en un autre.