Requirements
- telnet
- qemu
- samba
Command to install the requirements:
apt-get update && \
apt-get install -y \
qemu-system-x86 libvirt-clients \
libvirt-daemon qemu-kvm samba telnet
Lets do it
Assuming that our terminal is open at /opt/vm create the folder that will be shared with the VM:
mkdir -p shared-resources
Considering that the VM is located in /opt/vm/system-image/windows-11 create the snapshot image /opt/vm/snapshot:
qemu-img create -b /opt/vm/system-image/windows-11 -f qcow2 -F qcow2 /opt/vm/snapshot
Now, run the VM using the previously created snapshot image file and enable the monitor via telnet:
qemu-system-x86_64 -enable-kvm \
-machine q35 -m 4096 -smp 2 \
-usb -device usb-kbd -device usb-tablet -rtc base=localtime \
-device virtio-net-pci,netdev=net0 \
-netdev user,id=net0,hostfwd=tcp::3000-:3389,hostfwd=tcp::2222-:22,smb=/opt/vm/shared-resources \
-drive file=snapshot,media=disk,if=virtio \
-monitor telnet:0.0.0.0:1234,server,nowait \
-nographic -serial mon:stdio
To save the vm snapshot its recommended to wait for the desired system state before "taking a picture" of it.
Considering that the VM is in the expected state, let's save it:
telnet localhost 1234
savevm state
To close the telnet session press
ctrl
+[
and typeq
and ENTER.
With the snapshot saved, now it is possible to boot the VM and load our saved snapshot:
qemu-system-x86_64 -enable-kvm \
-machine q35 -m 4096 -smp 2 \
-usb -device usb-kbd -device usb-tablet -rtc base=localtime \
-device virtio-net-pci,netdev=net0 \
-netdev user,id=net0,hostfwd=tcp::3000-:3389,hostfwd=tcp::2222-:22,smb=/opt/vm/shared-resources \
-drive file=/opt/vm/snapshot,media=disk,if=virtio \
-loadvm state \
-nographic -serial mon:stdio
Inside the VM (connected remotely with RDP) you can access the shared folder using the following address: 10.0.2.4/qemu
Top comments (0)