Need help migrating Container to VM prior to upgrading to 24.10

Prior to 24.10 being released, a post by HoneyBadger noted that there would be a path in 24.10 to migrate Containers back to VMs, so it did not need to be done manually. Now that 24.10 is out, it notes (noted in this post) that Containers need to be migrated manually as there is no automated way to do this. Given this change, I figured it would be bettter to migrate now, than update to 24.10 and then run into a problem.

Following the official documentation, it notes (emphasis mine):

The .ix-virt directory contains the zvols used in Instance VMs. Ignore the entries with the .block extension, and those not included in the .ix-virt directory.

When I run the command to get the listing, I only have .block items listed:

geoffrey@TrueNAS:~$ sudo zfs list -t volume -r -d 10 data
NAME                                                                                                  USED  AVAIL  REFER  MOUNTPOINT
data/.ix-virt/deleted/images/7d7e85dc2ee6694dd99c327a43999425f0eb12e757e7393830dfa2b6b9590030.block   829M  6.47T   829M  -
data/.ix-virt/virtual-machines/virtualmin.block                                                      97.2G  6.47T  40.1G  -
geoffrey@TrueNAS:~$

What is the best path forward, to migrate my Container to a VM, before upgrading to 24.10?

Also, if possible, I’d like to clone / copy the volume, not move it, in case there’s an issue and I need to revert. (I can always re-import it back into Incus, but it’d be better not to.)

The docs now have a migration section

I see that - my question is that my environment does not match what the docs say I should be seeing.

I’m trying to run down this issue. Can you give me a little more about the history of this VM? Was virtualmin migrated from 24.10 into 25.04 or created natively in 25.04?

I need to think back on this. I remember setting it up in Containers under 25.04, as it would not migrate cleanly from its previous incarnation as a VM under EE, and I had to rebuild from scratch.

A few months back, I set up a weekly CRON job to export the Virtualmin container to a backup file, so that if there was an issue with the container, I could whack it and re-import it. When VMs were re-introduced in Fangtooth, I tried to migrate the Container back to a VM, but it failed - the new VM would not launch. After seeing the note that there would be a path to migrate automatically under 25.10, I restored from the backup file using the command line to import it back into Incus. That is likely the twist that is causing this issue.

When I first tried to migrate from a VM to a Container, I ran into the issue that it moved the volume, and caused a LOT of pain because I could not revert back to a saved copy of the working VM (That is on me, I missed the Copy vs Move toggle when I was doing it). Since then, I’ve learned my lesson in that one should always copy instead of move when possible, and have a tested backup in place before doing a migration… although in this case, it seems that restoring from backup introduced a new issue.

This fits with what I’m thinking is happening with this and a few other users who have similar issues. I have a feeling that when this was documented it was done using a migrated VM and natively created VMs use a different storage layout. Once I can confirm the issue and validate the process still works with .block volumes, the doc will likely be updated.

Woohoo, I found a thing! :smile:

Thank you for your help with this matter!

1 Like

The updated procedure is being published now, but basically I believe you should be good to follow the original steps and commands, just use the *.block volume instead of the custom/default_*