[TUTO]
Installer Vmware Server 1.0.6 sur une Debian Lenny 2.6.26-1-amd64.
AVANT D'INSTALLER VMWARE
Avant d’installer VMWare Server, certains paquets doivent être installés sur la machine.
Ces paquets permettent de compiler les modules vmware sans erreur, et donc de faire tourner correctement VMWare Server.
Ces paquets sont :
· Make (permet de compiler les modules vmware)
· Gcc (compilateur c), doit être identique à la version du compilateur du noyau. Dans notre cas, la version était la 4.1.3 (version compatible 4.1). Si vous ne connaissez pas la version à utiliser, installez gcc, et lors de la configuration de vmware, celui-ci vous dira quelle est la version à utiliser.
· Linux-headers-2.6.26-1-amd64 si vous ne connaissez pas votre version de linux, faites un ‘uname –sr’ ensuite il suffira de récupérer les headers correspondants.
· Ia32-libs. Ces librairies sont nécessaires uniquement dans le cas d’un linux 64 bits, comme c’est le cas ici.
Voici les commandes réalisées :
aptitude install make
aptitude install gcc-4.1.
aptitude install linux-headers-2.6.26-1-amd64
aptitude install ia32-libs
|
Pour gcc-4.1 il s'agit de la version correspondante au compilateur de mon kernel linux. veuillez télécharger la version qui correspond à VOTRE kernel.
INSTALLATION BASIQUE
Afin d’installer VMWare server 1.0.6-91891, il faut tout d’abord le télécharger.
Il est disponible au lien suivant : http://download3.vmware.com/softwa [...] 891.tar.gz
Le placer dans un répertoire de travail. Dans notre cas, il à été placé dans le répertoire /home/virt/INSTALLVMWARE/
Voici les commandes à réaliser pour l’installation :
cd /home/virt/INSTALLVMWARE/ ; tar -zxvf VMware-server-1.0.6-91891.tar.gz
cd vmware-server-distrib/ ; ./vmware-install.pl
|
L’installation se lance et plusieurs questions sont posées. Dans notre cas, l’installation par défaut à été faite.
In which directory do you want to install the binary files?
[/usr/bin]
What is the directory that contains the init directories (rc0.d/ to rc6.d/)?
[/etc]
What is the directory that contains the init scripts?
[/etc/init.d]
In which directory do you want to install the daemon files?
[/usr/sbin]
In which directory do you want to install the library files?
[/usr/lib/vmware]
The path "/usr/lib/vmware" does not exist currently. This program is going to
create it, including needed parent directories. Is this what you want?
[yes]
In which directory do you want to install the manual files?
[/usr/share/man]
In which directory do you want to install the documentation files?
[/usr/share/doc/vmware]
The path "/usr/share/doc/vmware" does not exist currently. This program is
going to create it, including needed parent directories. Is this what you want?
[yes]
Before running VMware Server for the first time, you need to configure it by
invoking the following command: "/usr/bin/vmware-config.pl". Do you want this
program to invoke the command for you now? [yes] no
|
Il faut bien répondre ‘no’ à la dernière question de l’installation. Cela ne servirait à rien de répondre oui car la configuration planterait. Il faut avant patcher les modules vmmon et vmnet.
MISE A JOUR VMMON ET VMNET
Plusieurs solutions sont disponible sur Internet pour mettre à jour l’installation de VMWare Server et ainsi compiler sans erreur la configuration. Cependant elles ne fonctionnent pas toutes, notemment la solution d’utiliser les patchs update-any-any-xxx qui permettent de compiler correctement, mais qui empêchent de changer l’état d’une machine virtuelle. Ainsi on ne peut pas démarrer les machines virtuelles, donc rendent l’hyperviseur inutile. La solution trouvée a été de patcher vmmon et vmnet à la main. Pour ce faire, il faut d’abord récupérer les fichiers de patch disponibles aux liens suivants :
http://www.le-vert.net/divers/VMwa [...] 26-1.patch
http://www.le-vert.net/divers/VMwa [...] 26-1.patch
Une fois ces liens téléchargés il faut les placer dans un répertoire de travail. Dans notre cas, nous avons gardé le répertoire /home/virt/INSTALLVMWARE/.
Il faut ensuite récupérer les modules dans le répertoire source de vmware puis les patcher.
Voici les commandes à utiliser.
Copier les modules dans le répertoire de travail :
cd /home/virt/INSTALLVMWARE/
cp /usr/lib/vmware/modules/source/vm*.tar ./.
|
Cette commande est valable uniquement si vous avez placé les fichiers de librairie de vmware dans /usr/lib/vmware. Sinon il faudra spécifier le bon répertoire.
Ensuite il faut décompresser les modules puis les renommer en backup, afin d’avoir toujours un original au cas où :
tar xvf vmmon.tar; tar xvf vmnet.tar ; mv vmmon.tar vmmon.tar.backup;mv vmnet.tar vmnet.tar.backup |
Ensuite on peut patcher le module vmmon :
cd vmmon-only;patch -p1 <../VMware-server-vmmon-1.0.6-91891-2.6.26-1.patch ; cd .. |
Le résultat suivant devrait apparaitre :
Citation :
patching file linux/driver.c
|
Puis le module vmnet :
cd vmnet-only;patch -p1 < ../VMware-server-vmnet-1.0.6-91891-2.6.26-1.patch;cd .. |
Le résultat suivant devrait apparaitre :
Citation :
patching file bridge.c
patching file procfs.c
patching file vmnetInt.h
|
Une fois les deux modules patchés, il faut les recompresser au format tar puis les replacer dans le répertoire source de vmware server :
tar cvf vmmon.tar vmmon-only; tar cvf vmnet.tar vmnet-only ; cp -f *.tar /usr/lib/vmware/modules/source/ |
De la même manière, le repertoire des sources est dans notre cas celui par défaut. Il faut donc spécifier le bon répertoire dans le cas ou les sources sont installées dans un autre répertoire.
Les patchs sont maintenant appliqués, on peut donc lancer la configure de VMWare server.
CONFIGURATION DE VMWARE SERVER
Pour lancer la configuration il faut lancer la commande :
Tout d’abord, le configurateur demande d’accepter le texte de licence d’utilisateur final. il faut donc appuyer sur <enter> pour l’afficher.
Afin de gagner du temps, on peut taper ‘q’ pour quitter la lecture du document. Le configurateur demande alors si on accepte la licence. répondre ‘yes’.
Ensuite plusieurs questions sont posées. Dans notre cas, l’installation par défaut à été faite :
In which directory do you want to install the mime type icons?
[/usr/share/icons]
What directory contains your desktop menu entry files? These files have a
.desktop file extension. [/usr/share/applications]
In which directory do you want to install the application's icon?
[/usr/share/pixmaps] |
Lors de la configuration, VMWare va essayer de détecter un module précompilé, qui n’existe pas encore. Il va donc avoir besoin d’un compilateur pour en créer un. C’est à cet endroit que le package gcc est sollicité. Il faudra surement definir l’emplacement de gcc à la main.
Trying to find a suitable vmmon module for your running kernel.
None of the pre-built vmmon modules for VMware Server is suitable for your
running kernel. Do you want this program to try to build the vmmon module for
your system (you need to have a C compiler installed on your system)? [yes]
Setup is unable to find the "gcc" program on your machine. Please make sure it
is installed. Do you want to specify the location of this program by hand?
[yes]
What is the location of the "gcc" program on your machine? /usr/bin/gcc-4.1 |
Le configurateur demande ensuite les emplacement des librairies avant de pouvoir compiler :
What is the location of the directory of C header files that match your running
kernel? [/lib/modules/2.6.26-1-amd64/build/include] |
Le résultat suivant devrait apparaitre (compilation de vmmon) :
Citation :
Building the vmmon module.
Using 2.6.x kernel build system.
make: entrant dans le répertoire « /tmp/vmware-config0/vmmon-only »
make -C /lib/modules/2.6.26-1-amd64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. mod ules
make[1]: entrant dans le répertoire « /usr/src/linux-headers-2.6.26-1-amd64 »
CC [M] /tmp/vmware-config0/vmmon-only/linux/driver.o
CC [M] /tmp/vmware-config0/vmmon-only/linux/hostif.o
CC [M] /tmp/vmware-config0/vmmon-only/common/cpuid.o
CC [M] /tmp/vmware-config0/vmmon-only/common/hash.o
CC [M] /tmp/vmware-config0/vmmon-only/common/memtrack.o
CC [M] /tmp/vmware-config0/vmmon-only/common/phystrack.o
CC [M] /tmp/vmware-config0/vmmon-only/common/task.o
CC [M] /tmp/vmware-config0/vmmon-only/common/vmx86.o
CC [M] /tmp/vmware-config0/vmmon-only/vmcore/moduleloop.o
LD [M] /tmp/vmware-config0/vmmon-only/vmmon.o
Building modules, stage 2.
MODPOST 1 modules
WARNING: modpost: missing MODULE_LICENSE() in /tmp/vmware-config0/vmmon-only/vmmon.o
see include/linux/module.h for more information
CC /tmp/vmware-config0/vmmon-only/vmmon.mod.o
LD [M] /tmp/vmware-config0/vmmon-only/vmmon.ko
make[1]: quittant le répertoire « /usr/src/linux-headers-2.6.26-1-amd64 »
cp -f vmmon.ko ./../vmmon.o
make: quittant le répertoire « /tmp/vmware-config0/vmmon-only »
The module loads perfectly in the running kernel.
|
Après compilation, le configurateur demande des informations sur les machines virtuelles. La configuration à été faite par défaut :
Do you want networking for your virtual machines? (yes/no/help) [yes]
Configuring a bridged network for vmnet0.
Your computer has multiple ethernet network interfaces available: eth0, eth1.
Which one do you want to bridge to vmnet0? [eth0]
The following bridged networks have been defined:
. vmnet0 is bridged to eth0
Do you wish to configure another bridged network? (yes/no) [no]
Do you want to be able to use NAT networking in your virtual machines? (yes/no)
[yes]
Configuring a NAT network for vmnet8.
Do you want this program to probe for an unused private subnet? (yes/no/help)
[yes]
Probing for an unused private subnet (this can take some time)...
The subnet 172.16.83.0/255.255.255.0 appears to be unused.
The following NAT networks have been defined:
. vmnet8 is a NAT network on private subnet 172.16.83.0.
Do you wish to configure another NAT network? (yes/no) [no]
Do you want to be able to use host-only networking in your virtual machines?
[yes]
Configuring a host-only network for vmnet1.
Do you want this program to probe for an unused private subnet? (yes/no/help)
[yes]
Probing for an unused private subnet (this can take some time)...
The subnet 192.168.124.0/255.255.255.0 appears to be unused.
The following host-only networks have been defined:
. vmnet1 is a host-only network on private subnet 192.168.124.0.
Do you wish to configure another host-only network? (yes/no) [no]
|
Le résultat suivant devrait apparaitre (compilation de vmnet) :
Citation :
Extracting the sources of the vmnet module.
Building the vmnet module.
Using 2.6.x kernel build system.
make: entrant dans le répertoire « /tmp/vmware-config0/vmnet-only »
make -C /lib/modules/2.6.26-1-amd64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: entrant dans le répertoire « /usr/src/linux-headers-2.6.26-1-amd64 »
CC [M] /tmp/vmware-config0/vmnet-only/driver.o
CC [M] /tmp/vmware-config0/vmnet-only/hub.o
CC [M] /tmp/vmware-config0/vmnet-only/userif.o
CC [M] /tmp/vmware-config0/vmnet-only/netif.o
CC [M] /tmp/vmware-config0/vmnet-only/bridge.o
CC [M] /tmp/vmware-config0/vmnet-only/procfs.o
CC [M] /tmp/vmware-config0/vmnet-only/smac_compat.o
SHIPPED /tmp/vmware-config0/vmnet-only/smac_linux.x86_64.o
LD [M] /tmp/vmware-config0/vmnet-only/vmnet.o
Building modules, stage 2.
MODPOST 1 modules
WARNING: modpost: missing MODULE_LICENSE() in /tmp/vmware-config0/vmnet-only/vmnet.o
see include/linux/module.h for more information
CC /tmp/vmware-config0/vmnet-only/vmnet.mod.o
LD [M] /tmp/vmware-config0/vmnet-only/vmnet.ko
make[1]: quittant le répertoire « /usr/src/linux-headers-2.6.26-1-amd64 »
cp -f vmnet.ko ./../vmnet.o
make: quittant le répertoire « /tmp/vmware-config0/vmnet-only »
The module loads perfectly in the running kernel.
|
Après ça, le configurateur tente de configurer vmPerl, dont nous n’avons pas besoin.
néanmoins des questions sont posées :
Please specify a port for remote console connections to use [902] |
Le résultat suivant doit apparaitre :
Citation :
Configuring the VMware VmPerl Scripting API.
Building the VMware VmPerl Scripting API.
Using compiler "/usr/bin/gcc-4.1". Use environment variable CC to override.
Unable to compile the VMware VmPerl Scripting API.
********
The VMware VmPerl Scripting API was not installed. Errors encountered during
compilation and installation of the module can be found here:
/tmp/vmware-config0
You will not be able to use the "vmware-cmd" program.
Errors can be found in the log file:
'/tmp/vmware-config0/control-only/make.log'
********
Hit enter to continue.
|
Enfin, le configurateur pose encore quelques questions avant de se terminer :
In which directory do you want to keep your virtual machine files?
[/var/lib/vmware/Virtual Machines]
The path "/var/lib/vmware/Virtual Machines" does not exist currently. This
program is going to create it, including needed parent directories. Is this
what you want? [yes]
Please enter your 20-character serial number.
Type XXXXX-XXXXX-XXXXX-XXXXX or 'Enter' to cancel: |
Une fois la clé insérée, le résultat suivant apparait, puis le configurateur se termine :
Citation :
Starting VMware services:
Virtual machine monitor done
Virtual ethernet done
Bridged networking on /dev/vmnet0 done
Host-only networking on /dev/vmnet1 (background) done
Host-only networking on /dev/vmnet8 (background) done
NAT service on /dev/vmnet8 done
The configuration of VMware Server 1.0.6 build-91891 for Linux for this running
kernel completed successfully.
|
Ces résultats montrent que les services se sont bien lancés, et donc que VMWare Server est opérationnel.
Merci à M300A pour l'aide fournie.
En espérant que ce petit tuto vous aura satisfait (répondez au sondage ^^)
MESSAGE ORIGINAL
Bonjour,
J'ai installé un VMWare server sur un serveur Linux Debian lenny 2.6.26-1-amd64 :
voir sujet correspondant : Sujet créé précédemment
Aujourd'hui la version de vmware server est une 1.0.6-91891, et avant de lancer le script de config de vmware (vmware-config.pl) et ai suivi la procédure dispo sur netou
en gros :
- Install de vmware server sans lancer le fichier de config.
- Récupération de vmmon.tar et vmnet.tar depuis /usr/lib/vmware/modules/source/ dans un repertoire temp
- tar xvf vmmon.tar; tar xvf vmnet.tar
- Récupération des patchs depuis le site de paldo : Patch Vmmon pour kernel 2.6.26 et Patch Vmnet pour kernel 2.6.26
- application des patchs : patch -p1 < ../VMware-server-vmmon-1.0.6-91891-2.6.26-1.patch (j'ai eu tout bon)
- patch -p1 < ../VMware-server-vmnet-1.0.6-91891-2.6.26-1.patch et la j'ai eu des erreurs :
patching file bridge.c
Hunk #1 FAILED at 274.
1 out of 1 hunk FAILED -- saving rejects to file bridge.c.rej
patching file procfs.c
patching file vmnetInt.h
Hunk #1 FAILED at 63.
Hunk #2 FAILED at 89.
2 out of 2 hunks FAILED -- saving rejects to file vmnetInt.h.rej |
Du coup après recréation des archives, réinjection dans /usr/lib/vmware/modules/source/ et lancement du vmware-config.pl : j'ai le problème de compilation présent ici.
Donc j'ai appliqué le patch-any-any-117d ça compile tout bien, et je peux lancer VMWare Server. Sauf que :
Aujourd'hui j'ai créé une machine de test, elle se crée correctement, mais je ne peux pas changer l'état de la machine. Donc ne peux pas la démarrer.
voici le message d'erreur que j'ai :
Dans le doute je suis allé voir les logs, et voici l'erreur en question :
Sep 25 15:14:35: vmx| Log for VMware Server pid=6481 version=1.0.6 build=build-91891 option=Release
Sep 25 15:14:35: vmx| Command line: "/usr/lib/vmware/bin/vmware-vmx" "-C" "-@" """" "/tmp/test/Windows XP Professional.vmx"
Sep 25 15:14:35: vmx| vmxvmdb: Index name being generated from config file
Sep 25 15:14:35: vmx| VMXVmdbConnectServerd - Trying to discover serverd
Sep 25 15:14:35: vmx| MStat: Creating Stat system.cpuusage
Sep 25 15:14:35: vmx| MStat: Creating Stat system.ram
Sep 25 15:14:35: vmx| MStat: Creating Stat system.uptime
Sep 25 15:14:35: vmx| MStat: Creating Stat system.load
Sep 25 15:14:35: vmx| Msg_Post: Error
Sep 25 15:14:35: vmx| [msg.vmmonPosix.badVersion] Version mismatch with vmmon module: expecting 138.0, got 168.0.
Sep 25 15:14:35: vmx| [msg.vmmonPosix.badDriver] You have an incorrect version of the `vmmon' kernel module.
Sep 25 15:14:35: vmx| Try reinstalling VMware Server.
Sep 25 15:14:35: vmx| ----------------------------------------
Sep 25 15:14:35: vmx| POST(no connection): Version mismatch with vmmon module: expecting 138.0, got 168.0.
Sep 25 15:14:35: vmx| You have an incorrect version of the `vmmon' kernel module.
Sep 25 15:14:35: vmx| Try reinstalling VMware Server.
Sep 25 15:14:35: vmx|
Sep 25 15:14:35: vmx| Msg_Post: Error
Sep 25 15:14:35: vmx| [msg.vmmonPosix.initFailed] Failed to initialize monitor device.
Sep 25 15:14:35: vmx| ----------------------------------------
Sep 25 15:14:35: vmx| POST(no connection): Failed to initialize monitor device.
Sep 25 15:14:35: vmx|
Sep 25 15:14:35: vmx| Module VMMon initialization failed.
Sep 25 15:14:35: vmx| Flushing VMX VMDB connections
Sep 25 15:14:35: vmx| Failed to initialize VM.
|
Les lignes les plus intéressantes sont bien entendu :
[msg.vmmonPosix.badDriver] You have an incorrect version of the `vmmon' kernel module.
POST(no connection): Version mismatch with vmmon module: expecting 138.0, got 168.0.
You have an incorrect version of the `vmmon' kernel module.
|
Globalement c'est ce qui m'a permis de faire mes recherches avec google mon ami.
En cherchant sur gougueule les erreurs correspondantes, ça me ramène toujours à la solution tentée précédemment qui merde avec le vmnet.
Bref en règle générale il faut pas lancer le patch any any ça fait merder le truc.
Je suis donc toujours bloqué ...
Des idées ?
Cordialement,
Nicolas.
Message édité par nixnbk le 29-09-2008 à 11:11:33
---------------
I'll feed your skin snacks to my cockatiel!