我将为您提供几个不同脚本来检测系统虚拟化支持,这些脚本适用于 Linux 系统。

Bash 检测脚本
#!/bin/bash
# 系统虚拟化支持检测脚本
# 适用于 Linux 系统
echo "========================================="
echo " 系统虚拟化支持检测报告"
echo "========================================="
# 检测 CPU 虚拟化支持
echo -e "\n[1] CPU 虚拟化支持检查"
echo "------------------------"
# 检查 Intel VT-x (vmx) 或 AMD-V (svm)
if grep -E -c '(vmx|svm)' /proc/cpuinfo > /dev/null 2>&1; then
if grep -q 'vmx' /proc/cpuinfo; then
echo " ✓ Intel VT-x 技术: 支持"
fi
if grep -q 'svm' /proc/cpuinfo; then
echo " ✓ AMD-V 技术: 支持"
fi
else
echo " ✗ CPU 虚拟化: 不支持"
fi
# 显示 CPU 信息
echo -e "\n[2] CPU 详细信息"
echo "------------------------"
echo " CPU 型号: $(grep 'model name' /proc/cpuinfo | head -1 | cut -d':' -f2 | sed 's/^[ \t]*//')"
echo " CPU 核心数: $(nproc)"
echo " CPU 架构: $(uname -m)"
# 检查 KVM 支持
echo -e "\n[3] KVM 虚拟化检查"
echo "------------------------"
# 检查 KVM 模块是否加载
if lsmod | grep -q 'kvm'; then
echo " ✓ KVM 模块: 已加载"
# 检查 KVM 具体版本
if lsmod | grep -q 'kvm_intel'; then
echo " ✓ KVM 类型: Intel (kvm_intel)"
elif lsmod | grep -q 'kvm_amd'; then
echo " ✓ KVM 类型: AMD (kvm_amd)"
fi
else
echo " ✗ KVM 模块: 未加载"
fi
# 检查 /dev/kvm 设备
if [ -e /dev/kvm ]; then
echo " ✓ /dev/kvm 设备: 存在"
else
echo " ✗ /dev/kvm 设备: 不存在"
fi
# 检查嵌套虚拟化
echo -e "\n[4] 嵌套虚拟化支持"
echo "------------------------"
if [ -f /sys/module/kvm_intel/parameters/nested ]; then
nested_status=$(cat /sys/module/kvm_intel/parameters/nested)
echo " Intel 嵌套虚拟化: $nested_status"
elif [ -f /sys/module/kvm_amd/parameters/nested ]; then
nested_status=$(cat /sys/module/kvm_amd/parameters/nested)
echo " AMD 嵌套虚拟化: $nested_status"
else
echo " 无法检测嵌套虚拟化状态"
fi
# 检测是否在虚拟机中
echo -e "\n[5] 当前运行环境评估"
echo "------------------------"
# 多种方法检测是否在虚拟机中
if systemd-detect-virt > /dev/null 2>&1; then
virt_type=$(systemd-detect-virt)
if [ "$virt_type" = "none" ]; then
echo " ✓ 当前运行环境: 物理机"
else
echo " 当前运行环境: 虚拟机 ($virt_type)"
echo " 注意: 检测到的物理虚拟化可能受嵌套虚拟化影响"
fi
else
# 备用检测方法
if grep -qi 'hypervisor' /proc/cpuinfo; then
echo " 当前运行环境: 虚拟机"
else
echo " 当前运行环境: 物理机"
fi
fi
# 最终总结
echo -e "\n========================================="
echo " 检测完成"
echo "========================================="
Python 检测脚本
#!/usr/bin/env python3
import os
import subprocess
import sys
def check_virtualization_support():
"""检测系统虚拟化支持"""
print("=" * 50)
print(" 系统虚拟化支持检测报告")
print("=" * 50)
# 1. 检查 CPU 虚拟化支持
print("\n[1] CPU 虚拟化支持检查")
print("-" * 30)
try:
with open('/proc/cpuinfo', 'r') as f:
cpuinfo = f.read()
# 检查 Intel VT-x
if 'vmx' in cpuinfo:
print(" ✓ Intel VT-x 技术: 支持")
# 检查 AMD-V
if 'svm' in cpuinfo:
print(" ✓ AMD-V 技术: 支持")
if 'vmx' not in cpuinfo and 'svm' not in cpuinfo:
print(" ✗ CPU 虚拟化: 不支持")
except FileNotFoundError:
print(" 无法读取 CPU 信息")
# 2. 检查 KVM 支持
print("\n[2] KVM 虚拟化检查")
print("-" * 30)
# 检查 KVM 模块
try:
result = subprocess.run(['lsmod'], capture_output=True, text=True)
if 'kvm' in result.stdout:
print(" ✓ KVM 模块: 已加载")
if 'kvm_intel' in result.stdout:
print(" ✓ KVM 类型: Intel (kvm_intel)")
if 'kvm_amd' in result.stdout:
print(" ✓ KVM 类型: AMD (kvm_amd)")
else:
print(" ✗ KVM 模块: 未加载")
except Exception as e:
print(f" 检查 KVM 模块时出错: {e}")
# 检查 /dev/kvm 设备
if os.path.exists('/dev/kvm'):
print(" ✓ /dev/kvm 设备: 存在")
else:
print(" ✗ /dev/kvm 设备: 不存在")
# 3. 检查嵌套虚拟化
print("\n[3] 嵌套虚拟化支持")
print("-" * 30)
nest_intel_path = '/sys/module/kvm_intel/parameters/nested'
nest_amd_path = '/sys/module/kvm_amd/parameters/nested'
if os.path.exists(nest_intel_path):
with open(nest_intel_path, 'r') as f:
nested = f.read().strip()
print(f" Intel 嵌套虚拟化: {nested}")
elif os.path.exists(nest_amd_path):
with open(nest_amd_path, 'r') as f:
nested = f.read().strip()
print(f" AMD 嵌套虚拟化: {nested}")
else:
print(" 无法检测嵌套虚拟化状态")
# 4. 检测是否在虚拟机中
print("\n[4] 当前运行环境评估")
print("-" * 30)
try:
result = subprocess.run(['systemd-detect-virt'], capture_output=True, text=True)
virt_type = result.stdout.strip()
if virt_type == 'none':
print(" ✓ 当前运行环境: 物理机")
else:
print(f" 当前运行环境: 虚拟机 ({virt_type})")
print(" 注意: 检测到的虚拟化可能受嵌套虚拟化影响")
except FileNotFoundError:
# 备选检测方法
print(" 无法使用 systemd-detect-virt,使用备选方法检测")
if 'hypervisor' in cpuinfo.lower():
print(" 当前运行环境: 虚拟机")
else:
print(" 当前运行环境: 物理机")
print("\n" + "=" * 50)
print(" 检测完成")
print("=" * 50)
if __name__ == "__main__":
check_virtualization_support()
简单快捷版本
#!/bin/bash
# 快速检测虚拟化支持
echo "=== 快速虚拟化检测 ==="
# CPU 虚拟化支持
echo -n "CPU 虚拟化: "
if grep -q -E '(vmx|svm)' /proc/cpuinfo; then
echo "✓ 支持"
grep -q 'vmx' /proc/cpuinfo && echo " - Intel VT-x"
grep -q 'svm' /proc/cpuinfo && echo " - AMD-V"
else
echo "✗ 不支持"
fi
# KVM 支持
echo -n "KVM 支持: "
if [ -e /dev/kvm ]; then
echo "✓ 可用"
else
echo "✗ 不可用"
fi
# 运行环境
echo -n "运行环境: "
if systemd-detect-virt 2>/dev/null | grep -q 'none'; then
echo "物理机"
else
echo "虚拟机"
fi
使用方法
-
保存脚本:将上述脚本保存为文件(如
check_virt.sh) -
添加执行权限:
chmod +x check_virt.sh
-
运行脚本:
# Bash 版本 ./check_virt.sh
Python 版本
python3 check_virt.py
## 检测结果解读
- **VMX**:Intel CPU 支持硬件虚拟化(VT-x)
- **SVM**:AMD CPU 支持硬件虚拟化(AMD-V)
- **KVM 已加载**:系统支持 KVM 虚拟化
- **/dev/kvm 存在**:KVM 设备可用
- **嵌套虚拟化**:支持在虚拟机内运行虚拟机
这些脚本可以帮您全面了解系统的虚拟化支持情况。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播