Ciekawe pytanie. Zalogowałem się na hoście Linux (najprawdopodobniej SuSE). Czy jest jakiś sposób, że mogę programowo powiedzieć, że jestem hostem VM, czy nie?
Załóżmy również, że vmtools nie są zainstalowane.
linux
virtualization
mdpc
źródło
źródło
Odpowiedzi:
Użyj standardowych narzędzi systemu Linux, aby sprawdzić sprzęt w systemie.
lub
lub
Jeśli dane wyjściowe tych poleceń pokazują sprzęt o nazwie producenta „VMWare”, oznacza to, że masz maszynę wirtualną VMWare. Udostępniono tutaj wiele poleceń, ponieważ konfiguracje systemu i narzędzia różnią się.
źródło
cat /proc/scsi/scsi
jest fajny, ponieważ wydaje się, że jest dostępny wszędzie i nie wymaga instalowania nowego oprogramowania ani uruchamiania z uprawnieniami uprzywilejowanymi./proc/scsi/scsi
na moim pudełku Debiana 7 ...man virt-what
skrypt heurystyczny zbudowany dla tego celu wykrywania (dla systemów RedHat / Fedora) i związane z tym zastrzeżenia.wskazuje, że jest to maszyna wirtualna. Jeśli zwrócił „fizyczny”, to prawda jest odwrotna (nie VM), np .:
źródło
Jest przydatna aplikacja, która może pomóc o nazwie virt-what . Nie korzystałem z niego z VMWare, ale działało ładnie z Qemu.
źródło
Być może uda ci się zdobyć pomysł i rozejrzeć się po okolicy
/sys
. Na przykład/sys/class/dmi/id/sys_vendor
ma wartośćVMware, Inc.
.Jeśli jest zainstalowany, możesz użyć lshw . Polecenie
lshw -class system
zwraca to w moim systemie:źródło
Niektóre środowiska wirtualne nazywają niektóre ze swoich urządzeń wirtualnych nazwami, które są nieco wymowne, na przykład VirtualBox przedstawia kartę graficzną, która nazywa się „VirtualBox Display Adapter”. Ale szukanie tych łączy Cię z konkretną maszyną wirtualną i być może z wąską gamą wersji.
Kod może zobaczyć, jaki rodzaj wirtualizacji może skonfigurować. Jeśli to się nie powiedzie całkowicie, możesz być na maszynie wirtualnej. Ale równie łatwo możesz znaleźć się w pudełku, które nie ma sprzętu obsługującego maszyny wirtualne.
źródło
W systemie Linux piszesz
dmesg |grep DMI
:WIRTUALNE WYJŚCIE HOSTA
NA PRZYKŁAD FIZYCZNY
źródło
Istnieje wiele kodów do wykrycia, czy jesteś na maszynie wirtualnej, czy nie. Zacznij od czerwonej pigułki i szukaj stamtąd. Ten artykuł w Offensive Computing jest również dobrą lekturą.
Tak, jeśli żaden z tych łatwych powyżej nie działa :)
źródło
Możesz również przeszukać pierwszą część adresu mac tutaj i sprawdzić, czy jest wymieniony jako przypisany do dowolnej firmy zajmującej się wirtualizacją.
źródło
Urządzenia wirtualne zostaną również ujawnione przez lspci i / lub informacje o urządzeniu dyskowym w / proc:
źródło
W systemie Linux informacje o systemie są ujawniane w / sys / devices / virtual / dmi / id /. Zobacz moją odpowiedź tutaj, aby znaleźć przydatny skrypt pokazujący wszystkie dostępne informacje.
root nie jest wymagany.
źródło
Nie podobało mi się żadne z tych rozwiązań, ponieważ zwykle jest zainstalowany sterownik CD-ROM VMware lub sterownik pamięci, więc dmesg szybko mi to potwierdza lub zaprzecza.
źródło
To działało dla mnie lepiej, ponieważ daje mi szczegółowe informacje o producencie i nazwie produktu.
Dane wyjściowe na serwerze Dell:
Dane wyjściowe na maszynie wirtualnej Virtualbox:
Dane wyjściowe na KVM / QEMU:
Jest to świetne w przypadku skryptów, które mogą je analizować w celu lepszej identyfikacji serwerów ... ale jeśli używasz Chef w swojej infrastrukturze, możesz sprawdzić atrybut węzła
Virtualization -> system
na serwerze szefa kuchni.źródło
Bardzo lubię:
lub beton:
Jak sprawdzić, czy system Linux jest maszyną fizyczną czy wirtualną
16 metod sprawdzania, czy system Linux jest maszyną fizyczną czy wirtualną
źródło