You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

89 lines
1.8 KiB

#!/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