2013-01-24 232 views
1

有沒有辦法找出我登錄的(linux)系統是主機還是虛擬機?我可以通過shell或VM的其他實用程序查看任何症狀嗎?虛擬機或主機?

+1

通過一個足夠好的虛擬機的定義應該是沒有辦法找出.... –

+0

如果你真的依靠一個發現的方法,你可能會發現虛擬機將發展到模糊你的方式來檢測它們... –

回答

1

如果腳本可用,那麼會有一個數字,用於檢測虛擬化的存在。 例如virt-what,但我想你的問題沒有通用的解決方案。

1

您可以檢查驅動程序已經加載完整的虛擬化環境,例如VMware。使用lspci,lsmod等...或者你可以使用dmesg來獲得這種信息。

+1

謝謝。 dmesg | grep「Linux版本」在一個案例中爲我工作。 (內核信息)在另一種情況下不適用於我。我想沒有辦法。 – Chinmay

0

你可以使用Perl模塊Sys系統::檢測::虛擬化here

use Sys::Detect::Virtualization; 

my $detector = eval { Sys::Detect::Virtualization->new() }; 
if([email protected]) { 
    print "Detector may not be supported for your platform. Error was: [email protected]\n"; 
} 

my @found = $detector->detect(); 
if(@found) { 
    print "Possible virtualized system. May be running under:\n"; 
    print "\t$_\n" for @found; 
} 
+0

請做更多解釋。見[回答]? – mtk