Is it possible to have a Proxmox VM image? Yeah, you can import a prebuilt VM image directly into Proxmox using qm importdisk — it’s not as straightforward as it should be, but it works. I’m using the Nextcloud VM appliance as an example because that’s what people actually search for.

Why the hell would you want this?
Sometimes you don’t want to build a VM from scratch. Maybe there’s an official appliance that’s pre-configured, or you’re migrating from another hypervisor. Proxmox doesn’t have a nice “import OVA” button in the GUI, but the command line gets it done.
Step-by-step: import that VM image
First, download your appliance. For Nextcloud, you can grab the official VM image from their site. It’ll be a .ova or .qcow2 file.
If it’s an OVA, you don’t have to take it apart by hand at all — qm importovf reads the manifest and builds the VM for you, memory and NICs included:
tar -xvf Nextcloud_VM.ova # OVA is just a tarball
qm importovf 100 Nextcloud_VM.ovf local-lvm
That’s the short road, and it’s the one to try first. The rest of this post is the manual route, which is what you need when you’ve got a bare .qcow2 or .vmdk with no manifest, or when the OVF has something in it Proxmox chokes on.
That’ll spit out a disk image, probably .vmdk or .qcow2. Now create a blank VM in Proxmox without any disks. Give it a VM ID, say 100, and set the OS type to Linux 5.x or whatever matches.
qm create 100 --name nextcloud --memory 2048 --net0 virtio,bridge=vmbr0
Now the key part: import that disk image into the VM’s storage. The command is qm disk import — you’ll see qm importdisk all over old forum posts, and it still works as an alias, but the current form is the two-word one.
qm disk import 100 Nextcloud_VM-disk1.vmdk local-lvm
It takes --format (qcow2, raw, vmdk) if you want to convert on the way in, and --target-disk if you’d rather it land on scsi0 directly instead of showing up as an unused disk you have to attach yourself.
This converts the disk to raw format and attaches it as an unused disk. You’ll see it in the hardware tab. Attach it as a SCSI or VirtIO disk, then set the boot order in Options.

It won’t boot? Of course it won’t
This is the part that trips everyone up. The imported disk might have UEFI or BIOS boot settings that don’t match your VM. If you get a black screen, try switching the BIOS from SeaBIOS to OVMF (UEFI) or vice versa. Also, the disk controller type matters — if the appliance expects IDE and you gave it VirtIO, it’ll just sit there. Switch it to IDE to test, then install VirtIO drivers later if you care about performance.
Another gotcha: network interfaces. The imported VM might have its network config tied to a specific interface name like ens18. If Proxmox gives it a different name, you’ll have no network. Console in and edit /etc/network/interfaces to match.
My take: just use a container if you can
Honestly, for something like Nextcloud, I’d rather run it in an LXC container. It’s lighter and you can bind-mount storage from TrueNAS without the VM overhead. I’ve written about sharing TrueNAS datasets with LXC containers before. But if you need a full VM, this import method works. It’s just more of a pain than it should be.
Proxmox could make this easier with a GUI option, but until then, qm importovf and qm disk import are your friends.
Part of Proxmox in a homelab — the backup and storage section.