Différences entre versions de « UserModeLinux »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
imported>SylvainBeucler
m (lien)
imported>SylvainBeucler
m
Ligne 27 : Ligne 27 :
  
 
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é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 <code>tap0</code>, 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 ===
 +
 +
Pour utiliser tuntap, il faut créer à l'avance (et en mode root) une interface tap0:
 +
 +
# tunctl -u sylvain
 +
Set 'tap0' persistent and owned by uid 1000
 +
  
 
== Liens ==
 
== Liens ==

Version du 17 septembre 2006 à 22:32

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

Pour utiliser tuntap, il faut créer à l'avance (et en mode root) une interface tap0:

# tunctl -u sylvain
Set 'tap0' persistent and owned by uid 1000


Liens

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.