{"id":1202,"date":"2026-07-18T12:23:56","date_gmt":"2026-07-18T09:23:56","guid":{"rendered":"https:\/\/itgen.itbumper.com\/?page_id=1202"},"modified":"2026-07-18T12:23:57","modified_gmt":"2026-07-18T09:23:57","slug":"0050_mobaxterm-macros-08-debian-virtualization_assessment","status":"publish","type":"page","link":"https:\/\/itgen.itbumper.com\/?page_id=1202","title":{"rendered":"0050_MobaXterm macros: 08.Debian-Virtualization_Assessment"},"content":{"rendered":"\n<p>8.1 Virtualization Detection (systemd-detect-virt &amp; virt-what Engine Diagnostics)<br>8.2 System \/ Hypervisor Identity (Low-Level DMI\/Hardware Profile)<br>8.3 KVM Host Capability (+ Kernel Modules Validation &amp; \/dev\/kvm Access)<br>8.4 QEMU Guest Agent (+ Packages, Virtio Channel &amp; Runtime Logs Loop)<br>8.5 Virtio Devices \/ Drivers (+ Memory Ballooning Evaluation)<br>8.6 VMware Tools \/ open-vm-tools (Services, Versions &amp; Specific Drivers)<br>8.7 Hyper-V Integration Services (+ Active VMBus Sysfs Inventory)<br>8.8 Libvirt \/ QEMU Host (Service Topologies &amp; virsh Domains Matrix)<br>8.9 Proxmox VE Information (Versions, Clusters, API Nodes, VMs, LXCs &amp; Storage Status)<br>8.10 Proxmox Backup Server (Client-Side Architecture &amp; Active Datastores)<br>8.11 LXC \/ systemd-nspawn Containers (Engine Profiles &amp; Core Management Tools)<br>8.12 Docker \/ Podman \/ containerd (Socket States, Runtimes &amp; Namespaces Auditing)8<br>.13 Cloud-init Integration (Deployment Status &amp; Cloud Data Sources Mapping)<br>8.14 Virtual Network Bridges (Topology Switches, Links &amp; Virtual Interface Footprints)<br>8.15 Guest \/ Container Workload Processes (Hypervisor Execution Engine Inspection)<\/p>\n\n\n\n<p><strong>Copy&#8211;>Past<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\necho &quot;==================== 08. VIRTUALIZATION ASSESSMENT ====================&quot;; printf &quot;\\n&quot;; echo &quot;8.1 VIRTUALIZATION DETECTION&quot;; echo &quot;--- systemd-detect-virt ---&quot;; if command -v systemd-detect-virt &gt;\/dev\/null 2&gt;&amp;1; then VIRT_TYPE=$(systemd-detect-virt 2&gt;\/dev\/null); if &#x5B; -n &quot;$VIRT_TYPE&quot; ] &amp;&amp; &#x5B; &quot;$VIRT_TYPE&quot; != &quot;none&quot; ]; then echo &quot;Virtualization type: $VIRT_TYPE&quot;; else echo &quot;No virtualization detected; system may be physical&quot;; fi; printf &quot;\\n&quot;; echo &quot;VM detection : $(systemd-detect-virt --vm 2&gt;\/dev\/null || echo none)&quot;; echo &quot;Container detection : $(systemd-detect-virt --container 2&gt;\/dev\/null || echo none)&quot;; else echo &quot;systemd-detect-virt not installed&quot;; fi; printf &quot;\\n&quot;; echo &quot;--- Additional Detection ---&quot;; if command -v virt-what &gt;\/dev\/null 2&gt;&amp;1; then virt-what 2&gt;\/dev\/null || echo &quot;virt-what did not detect virtualization&quot;; else echo &quot;virt-what not installed&quot;; fi; printf &quot;\\n&quot;; echo &quot;--- CPU Virtualization Features ---&quot;; lscpu 2&gt;\/dev\/null | grep -Ei 'Architecture|Vendor ID|Virtualization|Hypervisor vendor|Virtualization type' || echo &quot;No virtualization information exposed by lscpu&quot;; printf &quot;\\n%.0s&quot; {1..3}; echo &quot;8.2 SYSTEM \/ HYPERVISOR IDENTITY&quot;; for ITEM in sys_vendor product_name product_version board_vendor board_name bios_vendor bios_version; do FILE=&quot;\/sys\/class\/dmi\/id\/$ITEM&quot;; if &#x5B; -r &quot;$FILE&quot; ]; then printf &quot;%-18s: %s\\n&quot; &quot;$ITEM&quot; &quot;$(cat &quot;$FILE&quot; 2&gt;\/dev\/null)&quot;; fi; done; printf &quot;\\n%.0s&quot; {1..3}; echo &quot;8.3 KVM HOST CAPABILITY&quot;; echo &quot;--- KVM Kernel Modules ---&quot;; lsmod 2&gt;\/dev\/null | grep -E '^kvm|kvm_(intel|amd)' || echo &quot;KVM kernel modules are not loaded&quot;; printf &quot;\\n&quot;; echo &quot;--- Hardware Virtualization Flags ---&quot;; grep -Eom1 'vmx|svm' \/proc\/cpuinfo 2&gt;\/dev\/null || echo &quot;CPU virtualization flags not exposed&quot;; printf &quot;\\n&quot;; echo &quot;--- \/dev\/kvm ---&quot;; if &#x5B; -e \/dev\/kvm ]; then ls -l \/dev\/kvm; else echo &quot;\/dev\/kvm not present&quot;; fi; printf &quot;\\n&quot;; echo &quot;--- KVM Validation ---&quot;; if command -v kvm-ok &gt;\/dev\/null 2&gt;&amp;1; then kvm-ok 2&gt;\/dev\/null; else echo &quot;kvm-ok not installed&quot;; fi; printf &quot;\\n%.0s&quot; {1..3}; echo &quot;8.4 QEMU GUEST AGENT&quot;; echo &quot;qemu-guest-agent: $(systemctl is-active qemu-guest-agent 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; printf &quot;\\n&quot;; echo &quot;--- Guest Agent Package ---&quot;; if command -v dpkg-query &gt;\/dev\/null 2&gt;&amp;1; then dpkg-query -W -f='${Status} ${Version}\\n' qemu-guest-agent 2&gt;\/dev\/null || echo &quot;qemu-guest-agent package not installed&quot;; fi; printf &quot;\\n&quot;; echo &quot;--- Virtio Guest Agent Channel ---&quot;; if &#x5B; -c \/dev\/virtio-ports\/org.qemu.guest_agent.0 ]; then ls -l \/dev\/virtio-ports\/org.qemu.guest_agent.0; else echo &quot;QEMU Guest Agent virtio channel not detected&quot;; fi; printf &quot;\\n&quot;; echo &quot;--- Recent Guest Agent Logs ---&quot;; journalctl -u qemu-guest-agent -b -n 30 --no-pager 2&gt;\/dev\/null || echo &quot;QEMU Guest Agent journal unavailable&quot;; printf &quot;\\n%.0s&quot; {1..3}; echo &quot;8.5 VIRTIO DEVICES \/ DRIVERS&quot;; echo &quot;--- Virtio PCI Devices ---&quot;; lspci 2&gt;\/dev\/null | grep -Ei 'virtio|red hat' || echo &quot;No virtio PCI devices detected&quot;; printf &quot;\\n&quot;; echo &quot;--- Virtio Kernel Modules ---&quot;; lsmod 2&gt;\/dev\/null | grep -E 'virtio|9pnet_virtio' || echo &quot;No loaded virtio modules detected&quot;; printf &quot;\\n&quot;; echo &quot;--- Balloon Driver ---&quot;; lsmod 2&gt;\/dev\/null | grep -E 'virtio_balloon|vmw_balloon|hv_balloon' || echo &quot;No virtual memory balloon driver detected&quot;; printf &quot;\\n%.0s&quot; {1..3}; echo &quot;8.6 VMWARE TOOLS&quot;; echo &quot;open-vm-tools: $(systemctl is-active open-vm-tools 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; echo &quot;vmtoolsd : $(systemctl is-active vmtoolsd 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; printf &quot;\\n&quot;; echo &quot;--- VMware Tools Processes ---&quot;; pgrep -a vmtoolsd 2&gt;\/dev\/null || echo &quot;vmtoolsd process not running&quot;; printf &quot;\\n&quot;; echo &quot;--- VMware Tools Version ---&quot;; if command -v vmware-toolbox-cmd &gt;\/dev\/null 2&gt;&amp;1; then vmware-toolbox-cmd -v 2&gt;\/dev\/null || echo &quot;Unable to retrieve VMware Tools version&quot;; else echo &quot;vmware-toolbox-cmd not installed&quot;; fi; printf &quot;\\n&quot;; echo &quot;--- VMware Kernel Drivers ---&quot;; lsmod 2&gt;\/dev\/null | grep -E 'vmw_|vmxnet|vsock' || echo &quot;No VMware-specific modules detected&quot;; printf &quot;\\n%.0s&quot; {1..3}; echo &quot;8.7 HYPER-V INTEGRATION SERVICES&quot;; echo &quot;hv-kvp-daemon : $(systemctl is-active hv-kvp-daemon 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; echo &quot;hv-vss-daemon : $(systemctl is-active hv-vss-daemon 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; echo &quot;hv-fcopy-daemon: $(systemctl is-active hv-fcopy-daemon 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; printf &quot;\\n&quot;; echo &quot;--- Hyper-V Kernel Modules ---&quot;; lsmod 2&gt;\/dev\/null | grep -E '^hv_|hv_vmbus|hv_netvsc|hv_storvsc|hv_utils|hv_balloon' || echo &quot;No Hyper-V kernel modules detected&quot;; printf &quot;\\n&quot;; echo &quot;--- Hyper-V Devices ---&quot;; find \/sys\/bus\/vmbus\/devices -maxdepth 1 -mindepth 1 -type l 2&gt;\/dev\/null | head -30 || echo &quot;No VMBus devices detected&quot;; printf &quot;\\n%.0s&quot; {1..3}; echo &quot;8.8 LIBVIRT \/ QEMU HOST&quot;; echo &quot;libvirtd : $(systemctl is-active libvirtd 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; echo &quot;virtqemud : $(systemctl is-active virtqemud 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; echo &quot;virtlogd : $(systemctl is-active virtlogd 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; echo &quot;virtlockd : $(systemctl is-active virtlockd 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; printf &quot;\\n&quot;; if command -v virsh &gt;\/dev\/null 2&gt;&amp;1; then echo &quot;--- Libvirt Version ---&quot;; virsh version 2&gt;\/dev\/null || echo &quot;Unable to query libvirt version&quot;; printf &quot;\\n&quot;; echo &quot;--- Defined Virtual Machines ---&quot;; timeout 5 virsh list --all 2&gt;\/dev\/null || echo &quot;Unable to query libvirt domains&quot;; else echo &quot;virsh not installed&quot;; fi; printf &quot;\\n%.0s&quot; {1..3}; echo &quot;8.9 PROXMOX VE INFORMATION&quot;; if command -v pveversion &gt;\/dev\/null 2&gt;&amp;1; then echo &quot;--- Proxmox VE Version ---&quot;; pveversion -v 2&gt;\/dev\/null | head -40; printf &quot;\\n&quot;; echo &quot;--- Cluster Status ---&quot;; timeout 5 pvecm status 2&gt;\/dev\/null | head -40 || echo &quot;PVE cluster status unavailable or node is standalone&quot;; printf &quot;\\n&quot;; echo &quot;--- Node Status ---&quot;; timeout 5 pvesh get \/nodes --output-format yaml 2&gt;\/dev\/null | head -50 || echo &quot;PVE node API status unavailable&quot;; printf &quot;\\n&quot;; echo &quot;--- Virtual Machines ---&quot;; qm list 2&gt;\/dev\/null || echo &quot;No QEMU virtual machines or qm unavailable&quot;; printf &quot;\\n&quot;; echo &quot;--- LXC Containers ---&quot;; pct list 2&gt;\/dev\/null || echo &quot;No LXC containers or pct unavailable&quot;; printf &quot;\\n&quot;; echo &quot;--- PVE Storage ---&quot;; pvesm status 2&gt;\/dev\/null || echo &quot;PVE storage status unavailable&quot;; else echo &quot;Proxmox VE tools not detected&quot;; fi; printf &quot;\\n%.0s&quot; {1..3}; echo &quot;8.10 PROXMOX BACKUP SERVER&quot;; if command -v proxmox-backup-manager &gt;\/dev\/null 2&gt;&amp;1; then echo &quot;--- PBS Version ---&quot;; proxmox-backup-manager version 2&gt;\/dev\/null || dpkg-query -W 'proxmox-backup*' 2&gt;\/dev\/null; printf &quot;\\n&quot;; echo &quot;--- PBS Services ---&quot;; echo &quot;proxmox-backup : $(systemctl is-active proxmox-backup 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; echo &quot;proxmox-backup-proxy : $(systemctl is-active proxmox-backup-proxy 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; printf &quot;\\n&quot;; echo &quot;--- Datastores ---&quot;; proxmox-backup-manager datastore list 2&gt;\/dev\/null || echo &quot;PBS datastore information unavailable&quot;; else echo &quot;Proxmox Backup Server tools not detected&quot;; fi; printf &quot;\\n%.0s&quot; {1..3}; echo &quot;8.11 LXC \/ SYSTEMD-NSPAWN CONTAINERS&quot;; echo &quot;lxc : $(systemctl is-active lxc 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; echo &quot;lxcfs : $(systemctl is-active lxcfs 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; echo &quot;machines : $(systemctl is-active systemd-machined 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; printf &quot;\\n&quot;; if command -v lxc-ls &gt;\/dev\/null 2&gt;&amp;1; then echo &quot;--- LXC Containers ---&quot;; lxc-ls --fancy 2&gt;\/dev\/null || echo &quot;Unable to query LXC containers&quot;; fi; printf &quot;\\n&quot;; if command -v machinectl &gt;\/dev\/null 2&gt;&amp;1; then echo &quot;--- systemd Machines ---&quot;; machinectl list --no-pager 2&gt;\/dev\/null || echo &quot;No systemd-nspawn machines detected&quot;; fi; printf &quot;\\n%.0s&quot; {1..3}; echo &quot;8.12 DOCKER \/ PODMAN \/ CONTAINERD&quot;; echo &quot;docker: $(systemctl is-active docker 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; echo &quot;podman: $(systemctl is-active podman 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; echo &quot;containerd: $(systemctl is-active containerd 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; echo &quot;cri-o: $(systemctl is-active crio 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; printf &quot;\\n&quot;; if command -v docker &gt;\/dev\/null 2&gt;&amp;1; then echo &quot;--- Docker Containers ---&quot;; timeout 5 docker ps -a --format &quot;table {{.ID}}\\t{{.Names}}\\t{{.Status}}\\t{{.Image}}&quot; 2&gt;\/dev\/null | head -40 || echo &quot;Docker daemon unavailable or access denied&quot;; fi; printf &quot;\\n&quot;; if command -v podman &gt;\/dev\/null 2&gt;&amp;1; then echo &quot;--- Podman Containers ---&quot;; timeout 5 podman ps -a --format &quot;table {{.ID}}\\t{{.Names}}\\t{{.Status}}\\t{{.Image}}&quot; 2&gt;\/dev\/null | head -40 || echo &quot;Podman unavailable or access denied&quot;; fi; printf &quot;\\n&quot;; if command -v ctr &gt;\/dev\/null 2&gt;&amp;1; then echo &quot;--- containerd Namespaces ---&quot;; timeout 5 ctr namespaces list 2&gt;\/dev\/null || echo &quot;containerd socket unavailable or access denied&quot;; fi; printf &quot;\\n%.0s&quot; {1..3}; echo &quot;8.13 CLOUD-INIT&quot;; echo &quot;cloud-init: $(systemctl is-active cloud-init 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;; printf &quot;\\n&quot;; if command -v cloud-init &gt;\/dev\/null 2&gt;&amp;1; then echo &quot;--- Cloud-init Status ---&quot;; cloud-init status --long 2&gt;\/dev\/null || echo &quot;Unable to query cloud-init status&quot;; printf &quot;\\n&quot;; echo &quot;--- Cloud-init Data Source ---&quot;; grep -R 'DataSource' \/run\/cloud-init\/ 2&gt;\/dev\/null | head -20 || echo &quot;Cloud-init data source not detected&quot;; else echo &quot;cloud-init not installed&quot;; fi; printf &quot;\\n%.0s&quot; {1..3}; echo &quot;8.14 VIRTUAL NETWORK BRIDGES&quot;; echo &quot;--- Linux Bridges ---&quot;; ip -br link show type bridge 2&gt;\/dev\/null || echo &quot;No Linux bridge interfaces detected&quot;; printf &quot;\\n&quot;; echo &quot;--- Bridge Members ---&quot;; bridge link 2&gt;\/dev\/null || echo &quot;Bridge membership information unavailable&quot;; printf &quot;\\n&quot;; echo &quot;--- Common Virtual Interfaces ---&quot;; ip -br link 2&gt;\/dev\/null | grep -Ei 'vmbr|virbr|vnet|tap|fwbr|fwln|fwpr|docker|br-|cni|flannel|veth' || echo &quot;No common virtual interfaces detected&quot;; printf &quot;\\n%.0s&quot; {1..3}; echo &quot;8.15 GUEST \/ CONTAINER PROCESSES&quot;; ps -eo pid,ppid,user,%cpu,%mem,stat,etime,cmd 2&gt;\/dev\/null | grep -Ei 'qemu-system|kvm|qemu-kvm|lxc-start|lxc-monitor|vboxheadless|vmware-vmx|containerd-shim|dockerd|podman|conmon' | grep -v grep | head -60 || echo &quot;No active guest or container runtime processes detected&quot;\n<\/pre><\/div>\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n# ==================== 08. VIRTUALIZATION ASSESSMENT ====================\necho &quot;==================== 08. VIRTUALIZATION ASSESSMENT ====================&quot;\nprintf &quot;\\n&quot;\n\n# --- 8.1 VIRTUALIZATION DETECTION ---\necho &quot;8.1 VIRTUALIZATION DETECTION&quot;\necho &quot;--- systemd-detect-virt ---&quot;\nif command -v systemd-detect-virt &gt;\/dev\/null 2&gt;&amp;1; then\n    VIRT_TYPE=$(systemd-detect-virt 2&gt;\/dev\/null)\n    if &#x5B; -n &quot;$VIRT_TYPE&quot; ] &amp;&amp; &#x5B; &quot;$VIRT_TYPE&quot; != &quot;none&quot; ]; then\n        echo &quot;Virtualization type: $VIRT_TYPE&quot;\n    else\n        echo &quot;No virtualization detected; system may be physical&quot;\n    fi\n    printf &quot;\\n&quot;\n    echo &quot;VM detection        : $(systemd-detect-virt --vm 2&gt;\/dev\/null || echo none)&quot;\n    echo &quot;Container detection : $(systemd-detect-virt --container 2&gt;\/dev\/null || echo none)&quot;\nelse\n    echo &quot;systemd-detect-virt not installed&quot;\nfi\nprintf &quot;\\n&quot;\necho &quot;--- Additional Detection ---&quot;\nif command -v virt-what &gt;\/dev\/null 2&gt;&amp;1; then\n    virt-what 2&gt;\/dev\/null || echo &quot;virt-what did not detect virtualization&quot;\nelse\n    echo &quot;virt-what not installed&quot;\nfi\nprintf &quot;\\n&quot;\necho &quot;--- CPU Virtualization Features ---&quot;\nlscpu 2&gt;\/dev\/null | grep -Ei 'Architecture|Vendor ID|Virtualization|Hypervisor vendor|Virtualization type' || echo &quot;No virtualization information exposed by lscpu&quot;\nprintf &quot;\\n%.0s&quot; {1..3}\n\n# --- 8.2 SYSTEM \/ HYPERVISOR IDENTITY ---\necho &quot;8.2 SYSTEM \/ HYPERVISOR IDENTITY&quot;\nfor ITEM in sys_vendor product_name product_version board_vendor board_name bios_vendor bios_version; do\n    FILE=&quot;\/sys\/class\/dmi\/id\/$ITEM&quot;\n    if &#x5B; -r &quot;$FILE&quot; ]; then\n        printf &quot;%-18s: %s\\n&quot; &quot;$ITEM&quot; &quot;$(cat &quot;$FILE&quot; 2&gt;\/dev\/null)&quot;\n    fi\ndone\nprintf &quot;\\n%.0s&quot; {1..3}\n\n# --- 8.3 KVM HOST CAPABILITY ---\necho &quot;8.3 KVM HOST CAPABILITY&quot;\necho &quot;--- KVM Kernel Modules ---&quot;\nlsmod 2&gt;\/dev\/null | grep -E '^kvm|kvm_(intel|amd)' || echo &quot;KVM kernel modules are not loaded&quot;\nprintf &quot;\\n&quot;\necho &quot;--- Hardware Virtualization Flags ---&quot;\ngrep -Eom1 'vmx|svm' \/proc\/cpuinfo 2&gt;\/dev\/null || echo &quot;CPU virtualization flags not exposed&quot;\nprintf &quot;\\n&quot;\necho &quot;--- \/dev\/kvm ---&quot;\nif &#x5B; -e \/dev\/kvm ]; then\n    ls -l \/dev\/kvm\nelse\n    echo &quot;\/dev\/kvm not present&quot;\nfi\nprintf &quot;\\n&quot;\necho &quot;--- KVM Validation ---&quot;\nif command -v kvm-ok &gt;\/dev\/null 2&gt;&amp;1; then\n    kvm-ok 2&gt;\/dev\/null\nelse\n    echo &quot;kvm-ok not installed&quot;\nfi\nprintf &quot;\\n%.0s&quot; {1..3}\n\n# --- 8.4 QEMU GUEST AGENT ---\necho &quot;8.4 QEMU GUEST AGENT&quot;\necho &quot;qemu-guest-agent: $(systemctl is-active qemu-guest-agent 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\nprintf &quot;\\n&quot;\necho &quot;--- Guest Agent Package ---&quot;\nif command -v dpkg-query &gt;\/dev\/null 2&gt;&amp;1; then\n    dpkg-query -W -f='${Status} ${Version}\\n' qemu-guest-agent 2&gt;\/dev\/null || echo &quot;qemu-guest-agent package not installed&quot;\nfi\nprintf &quot;\\n&quot;\necho &quot;--- Virtio Guest Agent Channel ---&quot;\nif &#x5B; -c \/dev\/virtio-ports\/org.qemu.guest_agent.0 ]; then\n    ls -l \/dev\/virtio-ports\/org.qemu.guest_agent.0\nelse\n    echo &quot;QEMU Guest Agent virtio channel not detected&quot;\nfi\nprintf &quot;\\n&quot;\necho &quot;--- Recent Guest Agent Logs ---&quot;\njournalctl -u qemu-guest-agent -b -n 30 --no-pager 2&gt;\/dev\/null || echo &quot;QEMU Guest Agent journal unavailable&quot;\nprintf &quot;\\n%.0s&quot; {1..3}\n\n# --- 8.5 VIRTIO DEVICES \/ DRIVERS ---\necho &quot;8.5 VIRTIO DEVICES \/ DRIVERS&quot;\necho &quot;--- Virtio PCI Devices ---&quot;\nlspci 2&gt;\/dev\/null | grep -Ei 'virtio|red hat' || echo &quot;No virtio PCI devices detected&quot;\nprintf &quot;\\n&quot;\necho &quot;--- Virtio Kernel Modules ---&quot;\nlsmod 2&gt;\/dev\/null | grep -E 'virtio|9pnet_virtio' || echo &quot;No loaded virtio modules detected&quot;\nprintf &quot;\\n&quot;\necho &quot;--- Balloon Driver ---&quot;\nlsmod 2&gt;\/dev\/null | grep -E 'virtio_balloon|vmw_balloon|hv_balloon' || echo &quot;No virtual memory balloon driver detected&quot;\nprintf &quot;\\n%.0s&quot; {1..3}\n\n# --- 8.6 VMWARE TOOLS ---\necho &quot;8.6 VMWARE TOOLS&quot;\necho &quot;open-vm-tools: $(systemctl is-active open-vm-tools 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\necho &quot;vmtoolsd     : $(systemctl is-active vmtoolsd 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\nprintf &quot;\\n&quot;\necho &quot;--- VMware Tools Processes ---&quot;\npgrep -a vmtoolsd 2&gt;\/dev\/null || echo &quot;vmtoolsd process not running&quot;\nprintf &quot;\\n&quot;\necho &quot;--- VMware Tools Version ---&quot;\nif command -v vmware-toolbox-cmd &gt;\/dev\/null 2&gt;&amp;1; then\n    vmware-toolbox-cmd -v 2&gt;\/dev\/null || echo &quot;Unable to retrieve VMware Tools version&quot;\nelse\n    echo &quot;vmware-toolbox-cmd not installed&quot;\nfi\nprintf &quot;\\n&quot;\necho &quot;--- VMware Kernel Drivers ---&quot;\nlsmod 2&gt;\/dev\/null | grep -E 'vmw_|vmxnet|vsock' || echo &quot;No VMware-specific modules detected&quot;\nprintf &quot;\\n%.0s&quot; {1..3}\n\n# --- 8.7 HYPER-V INTEGRATION SERVICES ---\necho &quot;8.7 HYPER-V INTEGRATION SERVICES&quot;\necho &quot;hv-kvp-daemon  : $(systemctl is-active hv-kvp-daemon 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\necho &quot;hv-vss-daemon  : $(systemctl is-active hv-vss-daemon 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\necho &quot;hv-fcopy-daemon: $(systemctl is-active hv-fcopy-daemon 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\nprintf &quot;\\n&quot;\necho &quot;--- Hyper-V Kernel Modules ---&quot;\nlsmod 2&gt;\/dev\/null | grep -E '^hv_|hv_vmbus|hv_netvsc|hv_storvsc|hv_utils|hv_balloon' || echo &quot;No Hyper-V kernel modules detected&quot;\nprintf &quot;\\n&quot;\necho &quot;--- Hyper-V Devices ---&quot;\nfind \/sys\/bus\/vmbus\/devices -maxdepth 1 -mindepth 1 -type l 2&gt;\/dev\/null | head -30 || echo &quot;No VMBus devices detected&quot;\nprintf &quot;\\n%.0s&quot; {1..3}\n\n# --- 8.8 LIBVIRT \/ QEMU HOST ---\necho &quot;8.8 LIBVIRT \/ QEMU HOST&quot;\necho &quot;libvirtd  : $(systemctl is-active libvirtd 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\necho &quot;virtqemud : $(systemctl is-active virtqemud 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\necho &quot;virtlogd  : $(systemctl is-active virtlogd 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\necho &quot;virtlockd : $(systemctl is-active virtlockd 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\nprintf &quot;\\n&quot;\nif command -v virsh &gt;\/dev\/null 2&gt;&amp;1; then\n    echo &quot;--- Libvirt Version ---&quot;\n    virsh version 2&gt;\/dev\/null || echo &quot;Unable to query libvirt version&quot;\n    printf &quot;\\n&quot;\n    echo &quot;--- Defined Virtual Machines ---&quot;\n    timeout 5 virsh list --all 2&gt;\/dev\/null || echo &quot;Unable to query libvirt domains&quot;\nelse\n    echo &quot;virsh not installed&quot;\nfi\nprintf &quot;\\n%.0s&quot; {1..3}\n\n# --- 8.9 PROXMOX VE INFORMATION ---\necho &quot;8.9 PROXMOX VE INFORMATION&quot;\nif command -v pveversion &gt;\/dev\/null 2&gt;&amp;1; then\n    echo &quot;--- Proxmox VE Version ---&quot;\n    pveversion -v 2&gt;\/dev\/null | head -40\n    printf &quot;\\n&quot;\n    echo &quot;--- Cluster Status ---&quot;\n    timeout 5 pvecm status 2&gt;\/dev\/null | head -40 || echo &quot;PVE cluster status unavailable or node is standalone&quot;\n    printf &quot;\\n&quot;\n    echo &quot;--- Node Status ---&quot;\n    timeout 5 pvesh get \/nodes --output-format yaml 2&gt;\/dev\/null | head -50 || echo &quot;PVE node API status unavailable&quot;\n    printf &quot;\\n&quot;\n    echo &quot;--- Virtual Machines ---&quot;\n    qm list 2&gt;\/dev\/null || echo &quot;No QEMU virtual machines or qm unavailable&quot;\n    printf &quot;\\n&quot;\n    echo &quot;--- LXC Containers ---&quot;\n    pct list 2&gt;\/dev\/null || echo &quot;No LXC containers or pct unavailable&quot;\n    printf &quot;\\n&quot;\n    echo &quot;--- PVE Storage ---&quot;\n    pvesm status 2&gt;\/dev\/null || echo &quot;PVE storage status unavailable&quot;\nelse\n    echo &quot;Proxmox VE tools not detected&quot;\nfi\nprintf &quot;\\n%.0s&quot; {1..3}\n\n# --- 8.10 PROXMOX BACKUP SERVER ---\necho &quot;8.10 PROXMOX BACKUP SERVER&quot;\nif command -v proxmox-backup-manager &gt;\/dev\/null 2&gt;&amp;1; then\n    echo &quot;--- PBS Version ---&quot;\n    proxmox-backup-manager version 2&gt;\/dev\/null || dpkg-query -W 'proxmox-backup*' 2&gt;\/dev\/null\n    printf &quot;\\n&quot;\n    echo &quot;--- PBS Services ---&quot;\n    echo &quot;proxmox-backup       : $(systemctl is-active proxmox-backup 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\n    echo &quot;proxmox-backup-proxy : $(systemctl is-active proxmox-backup-proxy 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\n    printf &quot;\\n&quot;\n    echo &quot;--- Datastores ---&quot;\n    proxmox-backup-manager datastore list 2&gt;\/dev\/null || echo &quot;PBS datastore information unavailable&quot;\nelse\n    echo &quot;Proxmox Backup Server tools not detected&quot;\nfi\nprintf &quot;\\n%.0s&quot; {1..3}\n\n# --- 8.11 LXC \/ SYSTEMD-NSPAWN CONTAINERS ---\necho &quot;8.11 LXC \/ SYSTEMD-NSPAWN CONTAINERS&quot;\necho &quot;lxc      : $(systemctl is-active lxc 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\necho &quot;lxcfs    : $(systemctl is-active lxcfs 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\necho &quot;machines : $(systemctl is-active systemd-machined 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\nprintf &quot;\\n&quot;\nif command -v lxc-ls &gt;\/dev\/null 2&gt;&amp;1; then\n    echo &quot;--- LXC Containers ---&quot;\n    lxc-ls --fancy 2&gt;\/dev\/null || echo &quot;Unable to query LXC containers&quot;\nfi\nprintf &quot;\\n&quot;\nif command -v machinectl &gt;\/dev\/null 2&gt;&amp;1; then\n    echo &quot;--- systemd Machines ---&quot;\n    machinectl list --no-pager 2&gt;\/dev\/null || echo &quot;No systemd-nspawn machines detected&quot;\nfi\nprintf &quot;\\n%.0s&quot; {1..3}\n\n# --- 8.12 DOCKER \/ PODMAN \/ CONTAINERD ---\necho &quot;8.12 DOCKER \/ PODMAN \/ CONTAINERD&quot;\necho &quot;docker:     $(systemctl is-active docker 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\necho &quot;podman:     $(systemctl is-active podman 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\necho &quot;containerd: $(systemctl is-active containerd 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\necho &quot;cri-o:      $(systemctl is-active crio 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\nprintf &quot;\\n&quot;\nif command -v docker &gt;\/dev\/null 2&gt;&amp;1; then\n    echo &quot;--- Docker Containers ---&quot;\n    timeout 5 docker ps -a --format &quot;table {{.ID}}\\t{{.Names}}\\t{{.Status}}\\t{{.Image}}&quot; 2&gt;\/dev\/null | head -40 || echo &quot;Docker daemon unavailable or access denied&quot;\nfi\nprintf &quot;\\n&quot;\nif command -v podman &gt;\/dev\/null 2&gt;&amp;1; then\n    echo &quot;--- Podman Containers ---&quot;\n    timeout 5 podman ps -a --format &quot;table {{.ID}}\\t{{.Names}}\\t{{.Status}}\\t{{.Image}}&quot; 2&gt;\/dev\/null | head -40 || echo &quot;Podman unavailable or access denied&quot;\nfi\nprintf &quot;\\n&quot;\nif command -v ctr &gt;\/dev\/null 2&gt;&amp;1; then\n    echo &quot;--- containerd Namespaces ---&quot;\n    timeout 5 ctr namespaces list 2&gt;\/dev\/null || echo &quot;containerd socket unavailable or access denied&quot;\nfi\nprintf &quot;\\n%.0s&quot; {1..3}\n\n# --- 8.13 CLOUD-INIT ---\necho &quot;8.13 CLOUD-INIT&quot;\necho &quot;cloud-init: $(systemctl is-active cloud-init 2&gt;\/dev\/null || echo inactive\/not-installed)&quot;\nprintf &quot;\\n&quot;\nif command -v cloud-init &gt;\/dev\/null 2&gt;&amp;1; then\n    echo &quot;--- Cloud-init Status ---&quot;\n    cloud-init status --long 2&gt;\/dev\/null || echo &quot;Unable to query cloud-init status&quot;\n    printf &quot;\\n&quot;\n\necho &quot;--- Cloud-init Data Source ---&quot;\n\ngrep -R \\\n    'DataSource' \\\n    \/run\/cloud-init\/ \\\n    2&gt;\/dev\/null | \\\n    head -20 || \\\n    echo &quot;Cloud-init data source not detected&quot;\nelse\n    echo &quot;cloud-init not installed&quot;\nfi\n\nprintf &quot;\\n%.0s&quot; {1..3}\n\n# --- 8.14 VIRTUAL NETWORK BRIDGES ---\n\necho &quot;8.14 VIRTUAL NETWORK BRIDGES&quot;\n\necho &quot;--- Linux Bridges ---&quot;\n\nip -br link show type bridge 2&gt;\/dev\/null || \\\n    echo &quot;No Linux bridge interfaces detected&quot;\n\nprintf &quot;\\n&quot;\n\necho &quot;--- Bridge Members ---&quot;\n\nbridge link 2&gt;\/dev\/null || \\\n    echo &quot;Bridge membership information unavailable&quot;\n\nprintf &quot;\\n&quot;\n\necho &quot;--- Common Virtual Interfaces ---&quot;\n\nip -br link 2&gt;\/dev\/null | \\\n    grep -Ei \\\n        'vmbr|virbr|vnet|tap|fwbr|fwln|fwpr|docker|br-|cni|flannel|veth' || \\\n    echo &quot;No common virtual interfaces detected&quot;\n\nprintf &quot;\\n%.0s&quot; {1..3}\n\n# --- 8.15 GUEST \/ CONTAINER PROCESSES ---\n\necho &quot;8.15 GUEST \/ CONTAINER PROCESSES&quot;\n\nps -eo \\\n    pid,ppid,user,%cpu,%mem,stat,etime,cmd \\\n    2&gt;\/dev\/null | \\\n    grep -Ei \\\n        'qemu-system|kvm|qemu-kvm|lxc-start|lxc-monitor|vboxheadless|vmware-vmx|containerd-shim|dockerd|podman|conmon' | \\\n    grep -v grep | \\\n    head -60 || \\\n    echo &quot;No active guest or container runtime processes detected&quot;\n<\/pre><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"689\" height=\"1024\" src=\"https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-01-689x1024.png\" alt=\"\" class=\"wp-image-1203\" style=\"width:800px\" srcset=\"https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-01-689x1024.png 689w, https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-01-202x300.png 202w, https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-01.png 758w\" sizes=\"(max-width: 689px) 85vw, 689px\" \/><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"579\" height=\"1024\" src=\"https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-02-579x1024.png\" alt=\"\" class=\"wp-image-1204\" style=\"width:800px\" srcset=\"https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-02-579x1024.png 579w, https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-02-170x300.png 170w, https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-02.png 733w\" sizes=\"(max-width: 579px) 85vw, 579px\" \/><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"733\" height=\"1024\" src=\"https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-03-733x1024.png\" alt=\"\" class=\"wp-image-1205\" style=\"width:800px\" srcset=\"https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-03-733x1024.png 733w, https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-03-215x300.png 215w, https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-03-768x1073.png 768w, https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-03.png 938w\" sizes=\"(max-width: 733px) 85vw, 733px\" \/><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"692\" height=\"1024\" src=\"https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-04-692x1024.png\" alt=\"\" class=\"wp-image-1206\" style=\"width:800px\" srcset=\"https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-04-692x1024.png 692w, https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-04-203x300.png 203w, https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-04-768x1137.png 768w, https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-04.png 782w\" sizes=\"(max-width: 692px) 85vw, 692px\" \/><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1019\" height=\"856\" src=\"https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-05.png\" alt=\"\" class=\"wp-image-1207\" style=\"width:800px\" srcset=\"https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-05.png 1019w, https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-05-300x252.png 300w, https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-05-768x645.png 768w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"909\" height=\"523\" src=\"https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-06.png\" alt=\"\" class=\"wp-image-1208\" style=\"width:800px\" srcset=\"https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-06.png 909w, https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-06-300x173.png 300w, https:\/\/itgen.itbumper.com\/wp-content\/uploads\/2026\/07\/008_debian_virtialization-assessment-06-768x442.png 768w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure><\/div>","protected":false},"excerpt":{"rendered":"<p>8.1 Virtualization Detection (systemd-detect-virt &amp; virt-what Engine Diagnostics)8.2 System \/ Hypervisor Identity (Low-Level DMI\/Hardware Profile)8.3 KVM Host Capability (+ Kernel Modules Validation &amp; \/dev\/kvm Access)8.4 QEMU Guest Agent (+ Packages, Virtio Channel &amp; Runtime Logs Loop)8.5 Virtio Devices \/ Drivers (+ Memory Ballooning Evaluation)8.6 VMware Tools \/ open-vm-tools (Services, Versions &amp; Specific Drivers)8.7 Hyper-V Integration &hellip; <a href=\"https:\/\/itgen.itbumper.com\/?page_id=1202\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;0050_MobaXterm macros: 08.Debian-Virtualization_Assessment&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[21,26],"tags":[],"_links":{"self":[{"href":"https:\/\/itgen.itbumper.com\/index.php?rest_route=\/wp\/v2\/pages\/1202"}],"collection":[{"href":"https:\/\/itgen.itbumper.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/itgen.itbumper.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/itgen.itbumper.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/itgen.itbumper.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1202"}],"version-history":[{"count":1,"href":"https:\/\/itgen.itbumper.com\/index.php?rest_route=\/wp\/v2\/pages\/1202\/revisions"}],"predecessor-version":[{"id":1209,"href":"https:\/\/itgen.itbumper.com\/index.php?rest_route=\/wp\/v2\/pages\/1202\/revisions\/1209"}],"wp:attachment":[{"href":"https:\/\/itgen.itbumper.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1202"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itgen.itbumper.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1202"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itgen.itbumper.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}