中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
如何判斷 Linux 是否運行在虛擬機上 | vpsee.com

在 WebHostingTalk 論壇上有些國外奸商會把虛擬機當作獨立服務器賣,去年7月份的時候就有一位中國同胞上當受騙,并在 WHT 上發(fā)帖聲討,證據(jù)確鑿,甚至連服務商自己也承認,回帖達355篇。這家獨立服務器/VPS 提供商 HostATree.com 居然大膽的把 OpenVZ VPS 這種一看就知道是虛擬機的虛擬機當作獨立服務器賣,暈,至少也要弄個 VMWare/KVM/Xen HVM 吧(更難發(fā)現(xiàn)是虛擬機),用 OpenVZ 這種容器也太欺負人了:)昨天恰好收到網(wǎng)友一封郵件問到了如何判斷自己買的是獨立服務器還是虛擬機的問題。這里 VPSee 簡單介紹一下市面上常用虛擬技術(包括容器技術)的判別小技巧。

判斷 OpenVZ/Xen PV/UML

判斷 OpenVZ/Xen PV/UML 是最容易的,直接檢查 /proc 下的相關目錄和文件就可以知道,比如 OpenVZ VPS 上會有 /proc/vz 這個文件;Xen PV 虛擬機上會有 /proc/xen/ 這個目錄,并且目錄下有一些東西;UML 上打印 /proc/cpuinfo 會找到 UML 標志。寫了一個簡單的 Python 腳本來檢測:

#!/usr/bin/python# check if a linux system running on a virtual machine (openvz/xen pv/uml)# written by http://www.vpsee.comimport sys, osdef main():    if os.getuid() != 0:        print "must be run as root"        sys.exit(0)    # check OpenVZ/Virtuozzo    if os.path.exists("/proc/vz"):        if not os.path.exists("/proc/bc"):            print "openvz container"        else:            print "openvz node"    # check Xen    if os.path.exists("/proc/xen/capabilities"):        if (os.path.getsize("/proc/xen/capabilities") > 0):            print "xen dom0"        else:            print "xen domU"    # check User Mode Linux (UML)    f = open("/proc/cpuinfo", "r"); t = f.read(); f.close()    if (t.find("UML") > 0):        print "uml"if __name__=="__main__":    main()

判斷 VMware/Xen HVM/KVM

如果使用的是 VMware/Xen HVM/KVM 這樣的全虛擬就更難判斷一些,最準確的辦法是讀取 CPUID 來判斷,Xen 源代碼下面有一段檢測是否是 Xen 的 C 語言代碼 tools/misc/xen-detect.c,這段代碼提供了一個很好的例子,VPSee 重寫了代碼,用宏替代了函數(shù),增加了對 VMware 和 KVM 的識別,用 gcc 編譯后就可以運行:

/* * check if a linux system running on a virtual machine (vmware/xen hvm/kvm) * written by http://www.vpsee.com */#include stdio.h#include string.h#define HYPERVISOR_INFO 0x40000000#define CPUID(idx, eax, ebx, ecx, edx)     asm volatile (         "test %1,%1 ; jz 1f ; ud2a ; .ascii \"xen\" ; 1: cpuid"         : "=b" (*ebx), "=a" (*eax), "=c" (*ecx), "=d" (*edx)         : "0" (idx) );int main(void){        unsigned int eax, ebx, ecx, edx;        char string[13];        CPUID(HYPERVISOR_INFO, &eax, &ebx, &ecx, &edx);        *(unsigned int *)(string+0) = ebx;        *(unsigned int *)(string+4) = ecx;        *(unsigned int *)(string+8) = edx;        string[12] = 0;        if (strncmp(string, "XenVMMXenVMM", 12) == 0) {                printf("xen hvm\n");        } else if (strncmp(string, "VMwareVMware", 12) == 0) {                printf("vmware\n");        } else if (strncmp(string, "KVMKVMKVM", 12) == 0) {                printf("kvm\n");        } else                printf("bare hardware\n");        return 0;}

判斷 VirtualBox/Virtual PC

什么?這種家用桌面虛擬機自己裝的還會不知道?!如果不知道的話也有辦法,在 Linux 下運行 dmidecode 工具然后查找 Manufacturer: innotek GmbH, Manufacturer: Microsoft Corporation 關鍵字就能對應上 VirtualBox 和 Virtual PC.

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
科普:KVM與XEN虛擬化環(huán)境究竟有何不同?
網(wǎng)管員的最愛!細說經(jīng)典的虛擬化工具
適用于Linux的10款最佳虛擬化軟件
Linux有哪些虛擬機?
xen、vmware、openVZ三大vps主機系統(tǒng)比較,誰才是王者?
虛擬化技術概覽
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服