{"id":23547,"library":"dissect-hypervisor","title":"Dissect Hypervisor","description":"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.","status":"active","version":"3.21","language":"python","source_language":"en","source_url":"https://github.com/fox-it/dissect.hypervisor","tags":["hypervisor","digital-forensics","dissect","vhdx","esx","qemu","virtualbox"],"install":[{"cmd":"pip install dissect-hypervisor","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Core dependency for structure parsing","package":"dissect.cstruct","optional":false},{"reason":"Used for disk volume handling","package":"dissect.volume","optional":false},{"reason":"Required for integration with Dissect target framework","package":"dissect.target","optional":true}],"imports":[{"note":"The package name uses underscores, but imports use dot notation under dissect.hypervisor","wrong":"from dissect_hypervisor import vhdx","symbol":"vhdx","correct":"from dissect.hypervisor import vhdx"},{"note":null,"wrong":null,"symbol":"esx","correct":"from dissect.hypervisor import esx"},{"note":null,"wrong":null,"symbol":"qemu","correct":"from dissect.hypervisor import qemu"},{"note":null,"wrong":null,"symbol":"vbox","correct":"from dissect.hypervisor import vbox"}],"quickstart":{"code":"from dissect.hypervisor import vhdx\n\n# Open a VHDX file\nwith open('disk.vhdx', 'rb') as f:\n    vhdx_file = vhdx.VHDX(f)\n    print('VHDX version:', vhdx_file.header.signature)\n    for stream in vhdx_file.streams():\n        print('Stream:', stream.type)","lang":"python","description":"Basic usage to open a VHDX file and list its streams."},"warnings":[{"fix":"Use the new dot notation: `from dissect.hypervisor import esx`.","message":"In 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.","severity":"breaking","affected_versions":">=3.0"},{"fix":"Ensure you open the file with `open(path, 'rb')` and handle parent VHDX files separately for differencing disks.","message":"The VHDX parser requires the file to be opened in 'rb' mode, and it does not handle compressed or differencing disks automatically.","severity":"gotcha","affected_versions":"all"},{"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.","message":"The `vhd` module (for legacy VHD files) is deprecated; use `vhdx` for newer formats.","severity":"deprecated","affected_versions":"<3.20"},{"fix":"Upgrade to Python 3.10 or higher.","message":"Python 3.9 and below are not supported. Requires Python >= 3.10.","severity":"breaking","affected_versions":">=3.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Install with `pip install dissect-hypervisor` and import using `from dissect.hypervisor import vhdx`","cause":"The package is not installed or the import path is wrong (e.g., using dissect_hypervisor).","error":"ModuleNotFoundError: No module named 'dissect.hypervisor'"},{"fix":"Use `from dissect.hypervisor import vhdx`","cause":"The import is incorrect; likely you imported the package but not the submodule.","error":"AttributeError: module 'dissect.hypervisor' has no attribute 'vhdx'"},{"fix":"Merge the differencing disk into a parent first using external tools, or locate the parent VHDX and parse independently.","cause":"The VHDX parser only handles fixed or dynamic disks, not differencing (parent-child) chains.","error":"dissect.hypervisor.vhdx.VHDX does not support differencing disks"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}