昨天提到了VM中的逃逸问题,要想逃逸,首先要检测当前操作系统是否为VM,下面提供几个LINUX下的检查方法:

第一,首推facter virtual ,权限为普通用户,约定,普通用户命令提示符用$表示,root用户命令提示符用#表示,第一组为实体机的返回,第二组为虚拟机的返回:

$facter virtual

physical

$facter virtual 
vmware

第二,cat /proc/scsi/scsi,需要分析Vendor中的内容:

$cat /proc/scsi/scsi
Attached devices:
Host: scsi6 Channel: 03 Id: 00 Lun: 00
  Vendor: HP       Model: P410             Rev: 5.14
  Type:   RAID                             ANSI  SCSI revision: 05
Host: scsi6 Channel: 00 Id: 00 Lun: 00
  Vendor: HP       Model: LOGICAL VOLUME   Rev: 5.14
  Type:   Direct-Access

$cat /proc/scsi/scsi
Attached devices:
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: NECVMWar Model: VMware IDE CDR10 Rev: 1.00
  Type:   CD-ROM                           ANSI  SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: VMware   Model: Virtual disk     Rev: 1.0
  Type:   Direct-Access

由于我当前使用的测试环境为vmware,下面以它为例

第三,lspci | grep -i vmware:

$ lspci | grep -i vmware

实体机上无返回结果

$ lspci | grep -i vmware
00:07.7 System peripheral: VMware Virtual Machine Communication Interface (rev 10)
00:0f.0 VGA compatible controller: VMware SVGA II Adapter
00:11.0 PCI bridge: VMware PCI bridge (rev 02)
00:15.0 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.1 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.2 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.3 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.4 PCI bridge: VMware PCI Express Root Port (rev 01)

第四,grep -i vmware /proc/scsi/scsi /proc/ide/*/model

$grep -i vmware /proc/scsi/scsi /proc/ide/*/model
grep: /proc/ide/*/model: No such file or directory

$ grep -i vmware /proc/scsi/scsi /proc/ide/*/model
/proc/scsi/scsi:  Vendor: NECVMWar Model: VMware IDE CDR10 Rev: 1.00
/proc/scsi/scsi:  Vendor: VMware   Model: Virtual disk     Rev: 1.0


第五,需要root权限,dmidecode | grep -i vmware

#dmidecode | grep -i vmware

实体机无返回

# dmidecode | grep -i vmware

Manufacturer: VMware, Inc.
        Product Name: VMware Virtual Platform
        Serial Number: VMware-56 4d 29 65 6c ac 42 33-33 7f 89 2c d0 36 a3 25
        Description: VMware SVGA II

几个检查当前运行的LINUX是在VM还是在实体机中的方法的更多相关文章

  1. Linux:检查当前运行级别的五种方法

    运行级就是Linux操作系统当前正在运行的功能级别.存在七个运行级别,编号从0到6.系统可以引导到任何给定的运行级别.运行级别由数字标识. 每个运行级别指定不同的系统配置,并允许访问不同的进程组合.默 ...

  2. Hyper-V上运行的Linux虚拟机验证是否安装了集成服务

    Hyper-V上运行的Linux虚拟机验证是否安装了集成服务 ps aux|grep "hv"root       311  0.0  0.0      0     0 ?     ...

  3. .NET跨平台之旅:在生产环境中上线第一个运行于Linux上的ASP.NET Core站点

    2016年7月10日,我们在生产环境中上线了第一个运行于Linux上的ASP.NET Core站点,这是一个简单的提供后端服务的ASP.NET Core Web API站点. 项目是在Windows上 ...

  4. windows下运行的linux服务器批量管理工具(带UI界面)

    产生背景: 由于做服务器运维方面的工作,需要一人对近千台LINUX服务器进行统一集中的管理,如同时批量对LINUX服务器执行相关的指令.同时批量对LINUX服务器upload程序包.同时批量对LINU ...

  5. 如何在 Docker 容器中运行 Kali Linux 2.0

    https://linux.cn/article-6103-1.html Kali Linux 是一个对于安全测试人员和白帽的一个知名操作系统.它带有大量安全相关的程序,这让它很容易用于渗透测试.最近 ...

  6. Win10 Ubuntu子系统运行32bit Linux原生程序

    本文主要描述的是:解决  Win10 Ubuntu子系统中运行  32bit Linux原生程序 报错  Exec format error . 问题来源于  在 Win10 Ubuntu子系统中运行 ...

  7. IT 运行在云端,而云运行在 Linux 上

    导读 IT 正在逐渐迁移到云端.那又是什么驱动了云呢?答案是 Linux. 当连微软的 Azure 都开始拥抱 Linux 时,你就应该知道这一切都已经改变了.不管你接不接受, 云正在接管 IT 已经 ...

  8. telint---切换当前正在运行的Linux系统的运行等级

    telint命令用于切换当前正在运行的Linux系统的运行等级 Send control commands to the init daemon. --help Show this help --no ...

  9. halt---关闭正在运行的Linux操作系统。

    halt命令用来关闭正在运行的Linux操作系统.halt命令会先检测系统的runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统. 语法 halt(选项) 选 ...

随机推荐

  1. 配置linux中文

    1.~/.bash_profile文件添加一下内容并执行source  ~/.bash_profile export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK 2./etc ...

  2. 给linux设置grub密码

    一.明文加密:vim /etc/grub.conf在hiddemenu下面新增一行,输入:password 密文然后:wq保存退出 在开机出现退数菜单的时候,按任意键,就会出现启动选择菜单,这时下面的 ...

  3. (转)Javascript面向对象编程(二):构造函数的继承(作者:阮一峰)

    对象之间的"继承"的五种方法. 比如,现在有一个"动物"对象的构造函数. function Animal(){ this.species = "动物& ...

  4. mac中遇到的mysql编码问题

    由于项目有需要支持表情包输入数据库,自己做了一下技术测试,修改了my.cnf的权限为777.结果就操蛋了.编码错误.... 直到我无意地输入mysql -h,提示我/etc/my.cnf被忽略的一段话 ...

  5. hdu4006 优先队列

    A - 签到 Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:65768KB     64bit I ...

  6. javascript的prototype原理理解

    prototype是函数的内置属性,每一个function都拥有这样一个属性,在js的面向对象编程上,prototype发挥着强大的作用. 某天,春哥问我你知道prototype的原理吗?我突然懵了, ...

  7. 关于String s = new String("xyz"); 创建几个对象的问题

    引用自这位朋友:http://blog.sina.com.cn/s/blog_6a6b14100100zn6r.html 你知道在java中除了8中基本类型外,其他的都是类对象以及其引用.所以 &qu ...

  8. 迷宫问题python实现(靠右手摸墙)

    大家好,我是小鸭酱,博客地址为:http://www.cnblogs.com/xiaoyajiang 这是大二时候的数学模型毕业课程设计,我选择了自己研究盲人穿越迷宫的问题.当然后来再在网上查了这个问 ...

  9. Canvas Path 绘制柱体

    public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceS ...

  10. 【转】Linux下tar.xz结尾的文件的解压方法--不错

    原文网址:http://blog.csdn.net/silvervi/article/details/6325698 今天尝试编译内核,下载到了一份tar.xz结尾的压缩文件,网上解决方法比较少,不过 ...