एक दिलचस्प सवाल। मैंने एक Linux (सबसे अधिक संभावना SuSE) होस्ट में लॉग इन किया है। क्या कोई तरीका है जो मैं प्रोग्रामेटिक रूप से बता सकता हूं कि मैं एक वीएम होस्ट हूं या नहीं?
यह भी मान लें कि vmtools स्थापित नहीं हैं।
एक दिलचस्प सवाल। मैंने एक Linux (सबसे अधिक संभावना SuSE) होस्ट में लॉग इन किया है। क्या कोई तरीका है जो मैं प्रोग्रामेटिक रूप से बता सकता हूं कि मैं एक वीएम होस्ट हूं या नहीं?
यह भी मान लें कि vmtools स्थापित नहीं हैं।
जवाबों:
सिस्टम पर हार्डवेयर का निरीक्षण करने के लिए मानक लिनक्स टूल का उपयोग करें।
cat /proc/scsi/scsi
या
ethtool -i eth0
या
dmidecode | grep -i vmware
यदि इन कमांड का आउटपुट "VMWare" के निर्माता के नाम के साथ हार्डवेयर दिखाता है, तो आप VMWare VM पर हैं। कई कमांड यहां दिए गए हैं क्योंकि सिस्टम कॉन्फ़िगरेशन और टूल अलग-अलग हैं।
cat /proc/scsi/scsi
यह अच्छा है क्योंकि यह हर जगह उपलब्ध है और नए सॉफ्टवेयर स्थापित करने या विशेषाधिकार प्राप्त अधिकारों के साथ चलाने की आवश्यकता नहीं है।
/proc/scsi/scsi
अपने डेबियन 7 बॉक्स पर नहीं दिखता ...
man virt-what
इस पता लगाने के उद्देश्य (रेडहैट / फेडोरा सिस्टम के लिए) के लिए निर्मित हेयुरिस्टिक लिपि को देखें और इसमें शामिल केवेट्स के लिए।
facter virtual
xenu
यह इंगित करता है कि यह एक वी.एम. यदि यह "भौतिक" लौटा है तो विपरीत सत्य है (वीएम नहीं), जैसे:
facter virtual
Physical
एक आसान ऐप है जो कि पुण्य-क्या कहलाता है । मैं VMWare के साथ इसका इस्तेमाल नहीं किया है, लेकिन यह Qemu के साथ अच्छी तरह से काम किया।
आप के आसपास देख कर प्राप्त करने और विचार करने में सक्षम हो सकता है /sys
। उदाहरण के लिए /sys/class/dmi/id/sys_vendor
मान है VMware, Inc.
।
यदि यह स्थापित है तो आप lshw का उपयोग कर सकते हैं । यह आदेश lshw -class system
मेरे सिस्टम पर लौटाता है:
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
कुछ आभासी वातावरण अपने कुछ आभासी उपकरणों को उन नामों के साथ नाम देते हैं जो थोड़ा सा बताए गए हैं, उदाहरण के लिए, वर्चुअलबॉक्स एक ग्राफिक्स कार्ड पेश करता है जो खुद को "वर्चुअलबॉक्स डिस्प्ले एडेप्टर" कहता है। लेकिन उन लोगों की तलाश में आप एक विशेष वीएम और संभवतः संस्करणों की एक संकीर्ण सीमा तक पहुंचते हैं।
आपके कोड के लिए यह देखना संभव हो सकता है कि यह किस तरह का वर्चुअलाइजेशन सेट कर सकता है। यदि वह पूरी तरह से विफल रहता है, तो आप एक वीएम में हो सकते हैं। लेकिन आप बस के रूप में आसानी से एक बॉक्स है कि किसी भी VM सक्षम हार्डवेयर नहीं है पर हो सकता है।
लिनक्स के लिए आप टाइप करें dmesg |grep DMI
:
[root @ myhost ~] # dmesg | grep DMI DMI 2.3 उपस्थित। DMI: Microsoft Corporation वर्चुअल मशीन / वर्चुअल मशीन, BIOS 090006 05/23/2012 [root @ myhost ~] # dmesg | grep -i वर्चुअल DMI: Microsoft Corporation वर्चुअल मशीन / वर्चुअल मशीन, BIOS 090006 05/23/2012 नंगे हार्डवेयर पर बूटिंग paravirtualized कर्नेल इनपुट: Macintosh माउस बटन एमुलेशन के रूप में / डिवाइसेस / वर्चुअल / इनपुट / इनपुट 1 scsi 0: 0: 0: 0: Direct-Access Msft वर्चुअल डिस्क 1.0 PQ: 0 ANSI: 4 इनपुट: Microsoft Vmbus HID- अनुरूप माउस / उपकरणों / आभासी / इनपुट / input4 के रूप में
[रूट @ backdev1 ~] # dmesg | grep DMI DMI 2.5 उपस्थित। DMI: IBM System x3650 M3 - [7945AC1] - / 90Y4784, BIOS - [D6E153AUS-1.12] - 06/30/2011
यदि आप एक वीएम में हैं या नहीं, यह पता लगाने के लिए बहुत सारे कोड हैं। लाल गोली से शुरू करें और वहाँ से खोजें। आपत्तिजनक कम्प्यूटिंग का यह पेपर भी एक अच्छा पढ़ा गया है।
अगर उन आसान काम से ऊपर कोई नहीं है :)
आप यहां अपने मैक पते के पहले भाग को भी खोज सकते हैं और देख सकते हैं कि क्या यह वर्चुअलाइजेशन कंपनियों में से किसी को सौंपा गया है।
मुझे इनमें से कोई भी समाधान पसंद नहीं आया, क्योंकि आमतौर पर VMware CDROM ड्राइवर या मेमोरी ड्राइवर स्थापित होता है इसलिए dmesg पुष्टि करता है या मेरे लिए जल्दी से इनकार करता है।
[सर्वर @ उपयोगकर्ता ~] $ dmesg | grep VMware hda: VMware वर्चुअल IDE CDROM ड्राइव, ATAPI CD / DVD-ROM ड्राइव विक्रेता: VMware मॉडल: वर्चुअल डिस्क Rev: 1.0 विक्रेता: VMware मॉडल: वर्चुअल डिस्क Rev: 1.0 विक्रेता: VMware मॉडल: वर्चुअल डिस्क Rev: 1.0 विक्रेता: VMware मॉडल: वर्चुअल डिस्क Rev: 1.0 विक्रेता: VMware मॉडल: वर्चुअल डिस्क Rev: 1.0 विक्रेता: VMware मॉडल: वर्चुअल डिस्क Rev: 1.0 विक्रेता: VMware मॉडल: वर्चुअल डिस्क Rev: 1.0 VMware मेमोरी कंट्रोल ड्राइवर को इनिशियलाइज़ किया गया
इसने मेरे लिए बेहतर काम किया क्योंकि यह मुझे निर्माता और उत्पाद के नाम के बारे में विशेष जानकारी देता है।
dmidecode -t system|grep 'Manufacturer\|Product'
डेल सर्वर पर आउटपुट:
Manufacturer: Dell Inc.
Product Name: PowerEdge C5220
वर्चुअलबॉक्स VM पर आउटपुट:
Manufacturer: innotek GmbH
Product Name: VirtualBox
KVM / QEMU पर आउटपुट:
Manufacturer: QEMU
Product Name: Standard PC (i440FX + PIIX, 1996)
यह उन लिपियों के लिए बहुत अच्छा है जो सर्वरों की बेहतर पहचान के लिए इन्हें बाहर निकाल सकती हैं ... लेकिन यदि आप अपने बुनियादी ढांचे में शेफ का उपयोग करते हैं, तो आप Virtualization -> system
शेफ सर्वर में नोड विशेषता की जांच कर सकते हैं ।
मुझे बहुत पसंद है:
hostnamectl status
या ठोस:
hostnamectl status | grep "Chassis:"
कैसे जांच करें कि क्या लिनक्स सिस्टम भौतिक या आभासी मशीन है
अगर लिनक्स सिस्टम भौतिक या आभासी मशीन है, तो जाँच करने के 16 तरीके