-
-
Save allenyllee/0a4c02952bf695470860b27369bbb60d to your computer and use it in GitHub Desktop.
#!/bin/bash | |
# install qemu utils | |
sudo apt install qemu-utils | |
# install nbd client | |
sudo apt install nbd-client |
#!/bin/bash | |
VHDX_IMG="$1" | |
MOUNT_POINT="$2" | |
# [ubuntu] How do you mount a VHD image | |
# https://ubuntuforums.org/showthread.php?t=2299701 | |
# | |
# 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" | |
#!/bin/bash | |
MOUNT_POINT="$1" | |
#unmount & remove nbd module | |
sudo umount "$MOUNT_POINT" && sudo qemu-nbd -d /dev/nbd0 && sudo rmmod nbd | |
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
)
Thank you very much! @allenyllee ! Is it also possible with VHDX configured with Bitlocker encryption?
Anyway to resize the image please @allenyllee
On 64-bit Slackware 15.0 I didn't have to specify max_part=16
(default). Using qemu-nbd -r
both *.vhd
and *.vhdx
works without partprobe
and I didn't even need nbd-client
from the nbd
package and I didn't have to reload the nbd
kernel module after each try. BTW, I run modprobe -r nbd
instead of rmmod nbd
for the final cleanup.
Ty! Awesome script 👌
Thank you. This allowed me to mount WSL2 partitions from native linux after running into errors with libguestfs.