Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
user_mode_linux_uml [Le 04/07/2007, 16:43]
placisfos
user_mode_linux_uml [Le 11/09/2022, 11:39] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
 +{{tag>​kernel linux système}}
 +----
 +
 ====== User Mode Linux ( UML ) ====== ====== User Mode Linux ( UML ) ======
-\\  
-\\  
-User Mode Linux ou UML est un noyau Linux compilé qui peut être exécuté dans l'​espace utilisateur comme un simple programme. Il permet donc d'​avoir plusieurs systèmes d'​exploitation virtuels sur une seule machine physique hôte exécutant Linux. 
-\\  
-\\  
-\\  
  
-===== Utiliser des machines virtuelles avec User Mode Linux =====+== Pour Ubuntu Feisty ​==
  
 +« User Mode Linux » (ou UML) est un noyau Linux compilé qui peut être exécuté dans l'​espace utilisateur comme un simple programme. Il permet donc d'​avoir plusieurs systèmes d'​exploitation virtuels (systèmes nommés « invités ») sur une seule machine physique GNU/Linux (système nommé « hôte »).
  
  
-Pour faire fonctionner UML, il faut récupérer trois choses :\\  
-  * un noyau linux spécifique\\ ​   
-  * l’image d’un système de fichiers\\ ​ 
-  * des utilitaires\\ ​ 
  
  
-On installe les utilitaires : +===== Utiliser des machines virtuelles avec User Mode Linux ===== 
 + 
 +Pour faire fonctionner UML, il faut récupérer trois choses : 
 +  * un noyau Linux spécifique ​  
 +  * l'​image d'un système de fichiers 
 +  * des utilitaires 
 + 
 +==== Installer les utilitaires ==== 
 + 
 +On installe les utilitaires :
 <​code>​ <​code>​
 sudo apt-get install uml-utilities bridge-utils sudo apt-get install uml-utilities bridge-utils
-</​code>​\\ +</​code>​ 
 +==== Noyau Linux spécifique et système de fichiers à utiliser ====
  
-Si votre système hôte est une distribution serveur, il se peut que vous ayez le patch skas disponible dans les dépotsCe patch permet de gagner en performances sur votre machine virtuelle. +=== Les récupérer... ===
-<​code>​sudo apt-get install linux-patch-skas</​code>​\\ ​+
  
 +Vous pouvez récupérer le noyau et le système de fichiers sur ce site : http://​uml.devloop.org.uk/​http://​fs.devloop.org.uk/​
  
-Vous pouvez récupérer ​le noyau et le système de fichier sur ce site :\\  http://​uml.nagafix.co.uk/+Faites bien attention de prendre la bonne version selon votre processeur, 32-bit ou 64-bit. Dans notre exemple nous allons utiliser ​le noyau **kernel32-2.6.16.43-bs2** ​et le système de fichiers **Ubuntu-FeistyFawn-i386-root_fs.bz2** .
  
-Faites bien attention de prendre la bonne version selon votre processeur, 32-bit ou 64-bitDans mon exemple je vais utiliser le noyau **kernel32-2.6.16.43-bs2** et le système de fichiers **Ubuntu-FeistyFawn-i386-root_fs**.+=== Les mettre en œuvre... ===
  
-===Ensuite, il faut donner des droits ​particulier ​à ces deux fichiers.===+Ensuite, il faut donner des droits ​particuliers ​à ces deux fichiers.
  
 Pour le noyau, il faut le rendre exécutable : Pour le noyau, il faut le rendre exécutable :
Ligne 37: Ligne 41:
 </​code>​ </​code>​
  
-Pour le système de fichier, il faut lui donner les droits d'​écriture :+Pour le système de fichiers, il faut le décompresser : 
 +<​code>​ 
 +bzip2 -d Ubuntu-FeistyFawn-i386-root_fs.bz2 
 +</​code>​ 
 + 
 +puis lui donner les droits d'​écriture :
 <​code>​ <​code>​
 chmod 666 Ubuntu-FeistyFawn-i386-root_fs chmod 666 Ubuntu-FeistyFawn-i386-root_fs
 </​code>​ </​code>​
  
-puis lancer la commande ​:+puis vérifier l'​intégrité du système de fichiers ​:
 <​code>​ <​code>​
 e2fsck Ubuntu-FeistyFawn-i386-root_fs e2fsck Ubuntu-FeistyFawn-i386-root_fs
 </​code>​ </​code>​
  
-On peut ensuite lancer la machine virtuelle : +On peut ensuite lancer la machine virtuelle :
 <​code>​ <​code>​
 ./​kernel32-2.6.16.43-bs2 ubd0=Ubuntu-FeistyFawn-i386-root_fs ./​kernel32-2.6.16.43-bs2 ubd0=Ubuntu-FeistyFawn-i386-root_fs
 </​code>​ </​code>​
  
-vous pouvez vous logguer ​avec "root"+vous pouvez ​ensuite ​vous connecter ​avec le compte **root** (sans mot de passe).\\
  
-==== Configuration de l'​interface réseau de la machine virtuelle ==== 
  
-Ajouter ​votre utilisateur dans le groupe "​uml-net"​+===== Configuration de l'​interface réseau pour la machine virtuelle ===== 
 + 
 +==== Ajout de l'​utilisateur dans le groupe "​uml-net"​ ==== 
 + 
 +Ajoutez ​votre utilisateur dans le groupe "​uml-net" ​:
 <​code>​ <​code>​
-sudo vi /etc/group+sudo vim /etc/group
 </​code>​ </​code>​
  
-il faut donner ​les droits à l'interface tun : +<note tip> 
-<​code>​chmod 0666 /dev/net/tun</​code>​+Pour ce faire, vous pouvez aussi utiliser la commande suivante. Attention, remplacez <​user>​ (sans les <>) par l'identifiant (login) réel ! 
 +<​code>​sudo usermod -a -G uml-net <​user>​</code
 +</note>
  
-Il faut créer ​un bridge ​dans /​etc/​network/​interfaces,​ pour ce faire : +==== Création d'un bridge ​====
-<​code>​sudo vi /​etc/​network/​interfaces</​code>​+
  
-Votre interface eth0 est probablement déjà configurée avec un truc du genre+Il faut créer ​un bridge dans le fichier /​etc/​network/​interfaces ; pour ce faire : 
 +<​code>​sudo vim /​etc/​network/​interfaces</​code>​
  
-<​code>​auto eth0 iface eth0 inet DHCP</​code>​+Votre interface eth0 est probablement déjà configurée avec un truc du genre : 
 + 
 +<​code>​ 
 +auto eth0  
 +iface eth0 inet dhcp 
 +</​code>​
  
 ou ou
  
-<​code>​auto eth0 iface eth0 inet static+<​code>​ 
 +auto eth0 iface eth0 inet static
         address xxx.xxx.xxx.xxx         address xxx.xxx.xxx.xxx
         netmask xxx.xxx.xxx.xxx         netmask xxx.xxx.xxx.xxx
         broadcast xxx.xxx.xxx.xxx         broadcast xxx.xxx.xxx.xxx
-        gateway xxx.xxx.xxx.xxx</​code>​+        gateway xxx.xxx.xxx.xxx 
 +</​code>​
  
-ceci n'est plus nécessaire ... commentez ​ces lignes (#)+Ceci n'est plus nécessaire... ​Commentez ​ces lignes (#)
  
-Il faut d'​abord créer deux interfaces, une réelle (eth0) et une virtuelle (tap1), puis les bridger (bridge0), pour cela, ajouter ​:+Il faut d'​abord créer deux interfaces, une réelle (eth0) et une virtuelle (tap1), puis les bridger (bridge0), pour cela, ajoutez ​:
  
-<​code>​auto eth0 +<​code>​ 
-iface eth0 inet manual</​code>​+auto eth0 
 +iface eth0 inet manual 
 +</​code>​
  
 et et
  
-<​code>​auto tap1+<​code>​ 
 +auto tap1
 iface tap1 inet manual iface tap1 inet manual
-        tunctl_user <​user></​code>​ +        tunctl_user <​user>​ 
-où <​user>​ (sans les <>) correspond exactement ​au user déclaré dans le groupe ​vboxusers+</​code>​ 
 + 
 +où <​user>​ (sans les <>) correspond exactement ​à l'​utilisateur précédemment ​déclaré dans le groupe ​uml-net.
  
-Maintenant, le bridge. Il y a plusieurs solutions : soit l'OS Host est en client DHCP (ce qui n'est pas pratique si vous voulez en faire un smb server pour partager des fichiers et des imprimantes avec le Guest), soit il est configuré en IP fixe. On choisira l'une ou l'​autre des solutions ci-dessous. Evidemment, ceci rend impossible une configuration future avec les outils ​gnome.+Maintenant, le bridge... Il y a plusieurs solutions : soit l'​OS ​hôte (Hostest en client DHCP (ce qui n'est pas pratique si vous voulez en faire un smb server pour partager des fichiers et des imprimantes avec l'OS invité (Guest)), soit il est configuré en IP fixe. On choisira l'une ou l'​autre des solutions ci-dessous. Evidemment, ceci rend impossible une configuration future avec les outils ​Gnome.
  
 === IP fixe === === IP fixe ===
-Insérer **après les interfaces ci-dessus** (copier/​coller les données IP de l'ex eth0 que vous avez commenté ​plus haut) : + 
-<​code>​auto bridge0+Insérer **après les interfaces ci-dessus** (copier/​coller les données IP de l'ex eth0 que vous avez commentées ​plus haut) : 
 + 
 +<​code>​ 
 +auto bridge0
 iface bridge0 inet static iface bridge0 inet static
-    ​post-up chmod ugo+rw /​dev/​net/​tun +        ​post-up chmod ugo+rw /​dev/​net/​tun 
-    address xxx.xxx.xxx.xxx +        address xxx.xxx.xxx.xxx 
-    netmask xxx.xxx.xxx.xxx +        netmask xxx.xxx.xxx.xxx 
-    broadcast xxx.xxx.xxx.xxx +        broadcast xxx.xxx.xxx.xxx 
-    gateway xxx.xxx.xxx.xxx +        gateway xxx.xxx.xxx.xxx 
-    bridge-ports eth0 tap1 +        bridge-ports eth0 tap1 
-    bridge-ageing 7200 +        bridge-ageing 7200 
-    bridge-fd 0+        bridge-fd 0
 </​code>​ </​code>​
 +
 === Client DHCP === === Client DHCP ===
 +
 Insérer **après les interfaces ci-dessus** : Insérer **après les interfaces ci-dessus** :
-<​code>​auto bridge0+ 
 +<​code>​ 
 +auto bridge0
 iface bridge0 inet dhcp iface bridge0 inet dhcp
-    ​post-up chmod ugo+rw /​dev/​net/​tun +        ​post-up chmod ugo+rw /​dev/​net/​tun 
-    bridge-ports eth0 tap1 +        bridge-ports eth0 tap1 
-    bridge-ageing 7200 +        bridge-ageing 7200 
-    bridge-fd 0+        bridge-fd 0
 </​code>​ </​code>​
  
-Un reboot du Host ne sera pas nécessaire,​ pour s'​assurer que les nouvelles configurations réseau sont bien prises en compte ​il suffira de lancer:+Un reboot du Host ne sera pas nécessaire,​ pour s'​assurer que les nouvelles configurations réseau sont bien prises en compte. Il suffira de lancer :
 <​code>​sudo /​etc/​init.d/​networking restart</​code>​ <​code>​sudo /​etc/​init.d/​networking restart</​code>​
-Payez attention aux erreurs dans l'​output du terminal ​s'il y en a.+Faites ​attention aux erreurs ​qui pourraient apparaitre ​dans le terminal.
  
 Vous avez maintenant un bridge qui met à disposition de l'OS Guest un accès complet au LAN. Vous avez maintenant un bridge qui met à disposition de l'OS Guest un accès complet au LAN.
  
-Dans les settings ​de l'OS Guest, il vous reste à configurer le "Host Interface Networking"​ avec <​tap1>​ comme interface (sans les <>​). ​+==== Configuration des OS hôte et invités ==== 
 + 
 +Dans les paramètres de configuration ​de l'OS Guest, il vous reste à configurer le "Host Interface Networking"​ avec <​tap1>​ comme interface (sans les <>).
  
 Si votre LAN dispose d'un serveur DHCP, vous pouvez configurer l'OS Guest en client DHCP, sinon, une adresse IP fixe fera l'​affaire (différente de celle du Host, bien sûr). Si votre LAN dispose d'un serveur DHCP, vous pouvez configurer l'OS Guest en client DHCP, sinon, une adresse IP fixe fera l'​affaire (différente de celle du Host, bien sûr).
  
 +==== Lancement de l'OS invité ====
  
-Une fois tout ceci configuré, il ne vous reste plus qu'à lancer votre machine virtuelle avec l'​interface réseau : +Une fois tout ceci configuré, il ne vous reste plus qu'à lancer votre machine virtuelle avec l'​interface réseau :
  
 <​code>​ <​code>​
 ./​kernel32-2.6.16.43-bs2 ubd0=Ubuntu-FeistyFawn-i386-root_fs eth0=tuntap,​tap1 ./​kernel32-2.6.16.43-bs2 ubd0=Ubuntu-FeistyFawn-i386-root_fs eth0=tuntap,​tap1
 </​code>​ </​code>​
 +
 +===== Options supplémentaires =====
 +
 +Par défaut la mémoire vive allouée à la machine virtuelle est 32 Mo. Si vous souhaitez lui allouer 256 Mo par exemple, il suffit de rajouter l'​option mem=256M :
 +
 +<​code>​
 +./​kernel32-2.6.16.43-bs2 ubd0=Ubuntu-FeistyFawn-i386-root_fs eth0=tuntap,​tap1 mem=256M
 +</​code>​
 +
 +
 +
 +
 +//Tuto réalisé par Yoann Vareille//
  • user_mode_linux_uml.1183560220.txt.gz
  • Dernière modification: Le 04/07/2007, 16:44
  • (modification externe)