Sommige Linux-distributies waarschuwen je als je de distributie in VirtualBox draait en geven je de suggestie om de VirtualBox gastuitbreidingen te installeren voor een betere integratie met de gastheer. En een Linux-distributie zoals The Amnesic Incognito Live System, die bedoeld is om anoniem te kunnen internetten, waarschuwt je wanneer je de distributie in een virtuele machine draait, omdat je anonimiteit en privacy dan niet gegarandeerd kan worden: zowel de hypervisor als de gastheer kunnen je in principe afluisteren. Detecteren of je in een virtuele machine draait, wordt in heel wat programma’s gebruikt zodat de gebruiker er gepast op kan reageren.

Je kunt eenvoudig zelf je eigen manieren bedenken om verschillende hypervisors te detecteren, maar je hoeft het wiel helemaal niet opnieuw uit te vinden. Richard Jones van Red Hat heeft het kleine maar heel handige script virt-what gemaakt, dat een breed gamma aan hypervisors herkent, waaronder OpenVZ, Parallels, KVM, Qemu, User-Mode Linux, VirtualBox, Microsoft VirtualPC en Hyper-V, VMware, Xen, enzovoort.

Eenvoudig gebruik

U voert gewoon virt-what uit (als root), en als het als exit-code 0 teruggeeft, kijkt u naar de uitvoer van het programma. Toont het niets, dan betekent dit dat het script ofwel bare metal draait, ofwel in een hypervisor die het niet herkent. Als het merkt dat het in een hypervisor draait, geeft het deze hypervisor als uitvoer, bijvoorbeeld voor KVM:

# virt-what

kvm

Voor Xen geeft het zelfs meer informatie:

# virt-what

xen

xen-domU

Met xen-domU geeft virt-what aan dat het in een geparavirtualiseerd gastdomein draait, met xen-hvm dat het in een volledig gevirtualiseerd domein draait, en met xen-dom0 dat het in een geprivilegieerd domein draait. Wil je alleen de aanwezigheid van Xen detecteren, dan kun je in je scriptje op de aanwezigheid van de regel 'xen' in de uitvoer van virt-what testen.

Overigens waarschuwt de man-pagina van virt-what ervoor dat je in veel gevallen beter kunt testen op de aanwezigheid van specifieke functies van de hypervisor die je nodig hebt, in plaats van op de aanwezigheid van de hypervisor zelf. Virt-what is beschikbaar als pakket in recente versies van Fedora (13+), Red Hat Enterprise Linux (5.7+ en 6.1+), Debian, Ubuntu, Arch Linux en Gentoo.