Vraag VMware Linux Server - hoe weet u of u een VM of echte hardware bent?


Een interessante vraag. Ik heb me aangemeld bij een Linux-host (waarschijnlijk SuSE). Is er een manier die ik programmatisch kan vertellen dat ik een VM-host ben of niet?

Ga er ook van uit dat de vmtools niet zijn geïnstalleerd.


44
2017-09-15 23:21


oorsprong


Controleer ook dit antwoord: unix.stackexchange.com/a/32605/103980 - Muhamed Huseinbašić


antwoorden:


Gebruik standaard Linux-hulpmiddelen om de hardware op het systeem te inspecteren.

cat /proc/scsi/scsi

of

ethtool -i eth0

of

dmidecode | grep -i vmware

Als de uitvoer van deze opdrachten hardware toont met de naam van een fabrikant van "VMWare", bevindt u zich op een VMWare VM. Meerdere opdrachten worden hier gegeven omdat systeemconfiguraties en hulpprogramma's verschillen.


28
2018-06-10 19:24



Kun je uitleggen wat deze commando's doen, in plaats van alleen vage commando's te geven? - Stefan Lasiewski
Bedankt. cat /proc/scsi/scsiis leuk omdat het overal beschikbaar lijkt te zijn en het niet vereist om nieuwe software te installeren of met geprivilegieerde rechten te werken. - tiktak
@tiktak Ik zie het niet /proc/scsi/scsi op mijn Debian 7-doos ... - Kyle Strand
Merk op dat dit niet 100% betrouwbaar is. AWS-boxen lijken bijvoorbeeld geen VM's te zijn. Zien man virt-what voor het heuristische script dat is gebouwd voor dit detectiedoel (voor RedHat / Fedora-systemen) en voor de betreffende restricties. - Wildcard


facter virtual 
xenu

geeft aan dat het een VM is. Als het 'fysiek' is teruggekeerd, is het tegenovergestelde waar (geen VM), bijvoorbeeld:

facter virtual
Physical

13
2018-01-22 19:14



Dit is echter een niet-standaard speciaal pakket .... maar ik vind het leuk. - mdpc
@mdpc Het moet aanwezig zijn op elk systeem dat pop gebruikt. - Michael Hampton♦


Er is een handige app die kan helpen bellen virt-what. Ik heb het niet met VMWare gebruikt, maar het werkte wel goed met Qemu.


11
2017-09-16 00:34



Helaas heeft de binaire RPM twee dependances dmidecode en util-linux-ng wanneer deze op SuSE-commercial worden geprobeerd. - mdpc


Je zou kunnen krijgen en idee door rond te kijken /sys. Bijvoorbeeld /sys/class/dmi/id/sys_vendor heeft de waarde van VMware, Inc..

Als het is geïnstalleerd, kunt u gebruiken lshw. Het bevel lshw -class system geeft dit op mijn systeem terug:

server1
    description: Computer
    product: VMware Virtual Platform
    vendor: VMware, Inc.
    version: None
    serial: VMware-...
    width: 64 bits
    capabilities: smbios-2.4 dmi-2.4 vsyscall64 vsyscall32

10
2017-09-15 23:37



In de SuSE-instanties bestaat geen toegang tot lshw. Verder bestaat de / sys / class / dmi / ... niet. - mdpc


Sommige virtuele omgevingen noemen een aantal van hun virtuele apparaten met namen die een beetje vertellen, bijvoorbeeld VirtualBox die een grafische kaart presenteert die zichzelf "VirtualBox-beeldschermadapter" noemt. Maar als u op zoek bent naar die banden, krijgt u een bepaalde VM en mogelijk een beperkt aantal versies.

Het is mogelijk dat uw code ziet wat voor soort virtualisatie het zou kunnen instellen. Als dat helemaal niet lukt, zit je misschien in een VM. Maar u kunt net zo gemakkelijk op een doos zitten die geen VM-geschikte hardware heeft.


6
2017-09-15 23:38



Je eerste antwoord was de juiste. Controleer de namen van stuurprogramma's. - Izzy


Voor Linux typt u dmesg |grep DMI:

VIRTUAL HOST OUTPUT

[root @ myhost ~] # dmesg | grep DMI
DMI 2.3 aanwezig.
DMI: Microsoft Corporation virtuele machine / virtuele machine, BIOS 090006 05/23/2012

[root @ myhost ~] # dmesg | grep -i virtueel
DMI: Microsoft Corporation virtuele machine / virtuele machine, BIOS 090006 05/23/2012
Het opstarten van paravirtualized kernel op blote hardware
invoer: Macintosh-emulatie van muisknoppen als / devices / virtual / input / input1
scsi 0: 0: 0: 0: Direct-Access Msft Virtual Disk 1.0 PQ: 0 ANSI: 4
input: Microsoft Vmbus HID-compliant Mouse as / devices / virtual / input / input4

VOOR VOORZIENINGEN VOOR EEN FYSIEK GASTHEER

[root @ backdev1 ~] # dmesg | grep DMI
DMI 2.5 aanwezig.
DMI: IBM System x3650 M3 - [7945AC1] - / 90Y4784, BIOS - [D6E153AUS-1.12] - 30/06/2011

4
2018-04-10 18:43



een groot probleem met uw oplossing is dat dmesg de kernel-buffer leest en het heeft een beperkte omvang. Als er veel berichten zijn of een beetje tijd sinds het systeem opnieuw is opgestart, is deze informatie niet beschikbaar. - mdpc


Er is veel code om te ontdekken of je in een VM zit of niet. Beginnen met rode pil en zoek vanaf daar. Dit artikel bij Offensive Computing is ook goed gelezen.

Dat is als geen van die makkelijke die boven werken :)


4
2017-09-18 20:25



De eerste link is verbroken. De tweede is kapot of traag. - Wildcard
Je hebt gelijk. Het zand van de tijd heeft ze opgegeten ... Ik zal kijken of ik alternatieve links kan verzinnen. - Bill Weiss
Het is een schande; "rode pil" klonk interessant. :) - Wildcard
Bijgewerkt met links naar archive.org. - Bill Weiss


U kunt ook het eerste deel van uw mac-adres doorzoeken hier en kijk of het wordt vermeld als toegewezen aan een van de virtualisatiebedrijven.


3
2017-09-16 00:18



Interessant idee ... Ik denk dat dat werkt (zolang een netwerkapparaat is opgenomen in de VM ;-)) - mdpc
Zal niet betrouwbaar zijn. In veel gevallen kan de mac op een willekeurige waarde worden ingesteld. Dit om het klonen van de mac van de originele machine bij het converteren naar VM mogelijk te maken. Sommige software koppelt zijn licentie aan de Mac en vaak is het onmogelijk om een ​​nieuwe licentie te krijgen (de verkoper is failliet gegaan of de kosten zijn onbetaalbaar). - Tonny