Registry / database / dissect-hypervisor

dissect-hypervisor

JSON →
library3.21pypypi✓ verified 89d ago

A Dissect module implementing parsers for various hypervisor disk, backup and configuration files (e.g., ESX, Hyper-V, QEMU, VirtualBox). Current version: 3.21. Released as part of the Dissect ecosystem with regular updates.

pip install dissect-hypervisor
INSTALL
IMPORT
SIG · DISSECT-HYPERVISOR
D
dissect-hypervisor
databasepythonv3.21
Install
1.8s avg
Import
447ms
Disk
18MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.9–3.13
musl
3.9–3.13
Install & Compatibility
Where this runs
tested against v3.21 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.474s · 20.1MB
glibc
py 3.10–3.95 runs
installs and imports cleanly · install 1.8s · import 0.420s · 20MB
18MB installed
● package 18MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

vhdx
✓ from dissect.hypervisor import vhdx
✗ from dissect_hypervisor import vhdx
The package name uses underscores, but imports use dot notation under dissect.hypervisor
esx
✓ from dissect.hypervisor import esx
qemu
✓ from dissect.hypervisor import qemu
vbox
✓ from dissect.hypervisor import vbox

Basic usage to open a VHDX file and list its streams.

from dissect.hypervisor import vhdx # Open a VHDX file with open('disk.vhdx', 'rb') as f: vhdx_file = vhdx.VHDX(f) print('VHDX version:', vhdx_file.header.signature) for stream in vhdx_file.streams(): print('Stream:', stream.type)
dissect.hypervisor --version
Debug
Known issues
breakingIn dissect-hypervisor 3.0+, the import path changed from dissect.hypervisor to a flat module structure. Old imports like `from dissect_hypervisor import esx` will break.
fix
Use the new dot notation: `from dissect.hypervisor import esx`.
affects: >=3.0
gotchaThe VHDX parser requires the file to be opened in 'rb' mode, and it does not handle compressed or differencing disks automatically.
fix
Ensure you open the file with `open(path, 'rb')` and handle parent VHDX files separately for differencing disks.
affects: all
deprecatedThe `vhd` module (for legacy VHD files) is deprecated; use `vhdx` for newer formats.
fix
Migrate from `from dissect.hypervisor import vhd` to `from dissect.hypervisor import vhdx` for VHDX files. For old VHD, keep using `vhd` but expect removal.
affects: <3.20
breakingPython 3.9 and below are not supported. Requires Python >= 3.10.
fix
Upgrade to Python 3.10 or higher.
affects: >=3.0
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'dissect.hypervisor'
The package is not installed or the import path is wrong (e.g., using dissect_hypervisor).
fix
Install with `pip install dissect-hypervisor` and import using `from dissect.hypervisor import vhdx`
AttributeError: module 'dissect.hypervisor' has no attribute 'vhdx'
The import is incorrect; likely you imported the package but not the submodule.
fix
Use `from dissect.hypervisor import vhdx`
dissect.hypervisor.vhdx.VHDX does not support differencing disks
The VHDX parser only handles fixed or dynamic disks, not differencing (parent-child) chains.
fix
Merge the differencing disk into a parent first using external tools, or locate the parent VHDX and parse independently.
Upgrade
Version history
3.21latest on PyPI · released Feb 24, 2026
Audit
Dependencies
dissect.cstructrequiredCore dependency for structure parsing
dissect.volumerequiredUsed for disk volume handling
dissect.targetoptionalRequired for integration with Dissect target framework
Agent activity
11 hits · last 30 days
node
10
Resources
dissect-hypervisor — pip install dissect-hypervisor · libregistry