Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
mount vhdx in linux
# install qemu utils
sudo apt install qemu-utils
# install nbd client
sudo apt install nbd-client
# [ubuntu] How do you mount a VHD image
# Load the nbd kernel module.
sudo rmmod nbd;sudo modprobe nbd max_part=16
# mount block device
sudo qemu-nbd -c /dev/nbd0 "$VHDX_IMG"
# reload partition table
sudo partprobe /dev/nbd0
# mount partition
sudo mount -o rw,nouser /dev/nbd0p1 "$MOUNT_POINT"
#unmount & remove nbd module
sudo umount "$MOUNT_POINT" && sudo qemu-nbd -d /dev/nbd0 && sudo rmmod nbd
Copy link

balazsbotond commented Dec 7, 2020

This has just saved me. Thank you!

Copy link

balazsbotond commented Dec 10, 2020

On Arch and Manjaro, you will need the following packages:

  • qemu-headless
  • nbd

To install them:

sudo pacman -S qemu-headless nbd

Copy link

agentsars commented Apr 28, 2021

Thank you very much, worked perfectly on artix.
If you are mounting a win10 backup, be sure to select the good file and partiton (often nbd0p2), multiple vhdx are generated.

Copy link

stewSquared commented Oct 4, 2021

Thank you. This allowed me to mount WSL2 partitions from native linux after running into errors with libguestfs.

Copy link

GamerBene19 commented Apr 16, 2022

Simmilar to @stewSquared I mounted a WSL2 partion aswell. The only thing I had to change was the last command of the mount script, because in my case there were no partitions just /dev/nbd0 so I my command was:
sudo mount -o rw,nouser /dev/nbd0 "$MOUNT_POINT" (notice the missing p1)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment