#!/usr/bin/env bash set -eu synopsis() { cat << EOF Usage : `basename $0` [-h] EOF } help() { cat << EOF `basename $0` analyse les capacités de virtualisation de l'hôte. `synopsis` -h : affiche cette aide EOF } usage() { synopsis exit 1 } args() { local opt while getopts "h" opt; do case $opt in h) help; exit 0;; ?) usage;; esac done } # Programme principal VDN_PATH=$(readlink -f $(dirname $0)/..); . $VDN_PATH/bin/functions.sh args "$@" grep -Eq '(vmx|svm)' /proc/cpuinfo virtproc=$? [ -w /dev/kvm ] kvmwrite=$? lsmod | grep -q 'kvm_' kvmproc=$? lsmod | grep -q 'kvm[^_]' kvm=0 ret=1 if [ $virtproc -ne 0 ]; then echo "Votre processeur ne dispose pas d'instructions de virtualisation :-( !" fi if [ $virtproc -eq 0 -a $kvmwrite -ne 0 ]; then echo echo "Votre processeur dispose d'instructions de virtualisation." echo "Cependant vous ne pouvez pas les utiliser :-( !" echo if [ -e /dev/kvm ]; then msg=" Vous n'avez pas les droits de lecture/écriture sur /dev/kvm !\n L'administrateur (root) doit, au choix, effectuer les actions suivantes :\n 1. chmod 666 /dev/kvm.\n 2. Vous ajouter au groupe $(stat -c %G /dev/kvm).\n Si la deuxième solution est choisie, vous devrez vous déconnecter de votre\n session graphique et vous reconnecter." elif lsmod | grep -q kvm; then msg=" La virtualisation n'est pas activée dans votre BIOS/UEFI." else proc="intel" if cat /proc/cpuinfo | grep -i -q amd; then proc="amd" fi msg=" Le module noyau \"kvm-$proc\" n'est pas chargé !\n L'administrateur du système doit exécuter : modprobe kvm-$proc ." fi echo "Il semblerait que la raison soit :" echo -e "$msg" echo fi if [ $virtproc -eq 0 -a $kvmwrite -eq 0 ]; then echo "Instructions de virtualisation accessibles." ret=0 fi exit $ret