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
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
|