كيف يمكنني معرفة ما إذا كنت أركض في جهاز VMware Virtual (من Linux)؟
سؤال
لدي خادم VMware ESX. لدي Redhat VMS يعمل على هذا الخادم. أحتاج إلى طريقة لاختبار برمجيا إذا كنت أركض في VM. من الناحية المثالية، أود أن أعرف كيفية القيام بذلك من بيرل.
المحلول
انظر الإجابة على "كشف نظام التشغيل الظاهري من تطبيق؟".
نصائح أخرى
يجب أن لا تعتمد 100٪ على أي طريقة، حيث إنها ميزات / أخطاء غير موثقة - أنها تعمل في بعض أشكال تشغيل مضيفة وبعض الحلول الافتراضية، ولكن لا يوجد أي ضمان سيستمرون في العمل؛ في الواقع، فإن النقطة الافتراضية بأكملها هي أن تكون غير قابلة للتمييز عن المعدن الحقيقي قدر الإمكان. مع هذا في الاعتبار، حبوب منع الحمل الزرقاء حبة (الذي هو مذكور في الإجابة المقبولة على هذا سؤال مماثل) يبدو أنه يعمل ... الآن.
برنامج VMware لديه زوجان من SDK، بما في ذلك SDK ل Perl..
أعتقد (اعتمادا على إصدار ESX) يمكنك التفتيش على عنوان MAC ل NIC. سيكون لدى VMS قيد التشغيل في VMware NIC سلسلة الشركة المصنعة المعينة إلى VMWare، لا Mac NIC Mac. (كنا نحاول محاكاة ساخرة نظام التشغيل Mac To VM، لن يسمح لك الإصدارات الأحدث بذلك بذلك.) أيضا، هذا لن يضمن أنك لا تعمل على صندوق بدني مع خداع NIC لتبدو وكأنها VMware، ولكن سيكون هذا أمرا غريبا في معظم الظروف على أي حال.
قم بتشغيل الأمر التالي:
lspci | grep VMware
يجب أن تظهر شيئا مثل هذا:
00: 0f.0 VGA وحدة تحكم متوافقة: VMware SVGA II محول
00: 11.0 PCI Bridge: VMWare PCI Bridge (Rev 02)
00: 15.0 PCI Bridge: VMWare PCI Express Port (Rev 01)