Cannot get VM's Zvol

Hello,

I tried to migrate my VMs from 24.10.2 to 25.04 but I don’t know why I can’t seem to have them work. I tried to roll back to 24.10 so I could have my VMs back but now I can’t get my Zvol back.

When I created my instance in 25.04 I did the “move” operation for my zvol.

When I do the zfs list command I can see my zvol :
poule/.ix-virt 21.1G 7.87T 128K legacy poule/.ix-virt/buckets 128K 7.87T 128K legacy poule/.ix-virt/containers 128K 7.87T 128K legacy poule/.ix-virt/custom 20.3G 7.87T 128K legacy poule/.ix-virt/custom/default_web-ge0nr7 20.3G 7.89T 3.34G - poule/.ix-virt/deleted 767K 7.87T 128K legacy poule/.ix-virt/deleted/buckets 128K 7.87T 128K legacy poule/.ix-virt/deleted/containers 128K 7.87T 128K legacy poule/.ix-virt/deleted/custom 128K 7.87T 128K legacy poule/.ix-virt/deleted/images 128K 7.87T 128K legacy poule/.ix-virt/deleted/virtual-machines 128K 7.87T 128K legacy poule/.ix-virt/images 798M 7.87T 128K legacy poule/.ix-virt/images/120331ba6abc32dfa9328a74fae78019130dbc888119ebda84cc19b529c6dd0d 149K 500M 139K legacy poule/.ix-virt/images/120331ba6abc32dfa9328a74fae78019130dbc888119ebda84cc19b529c6dd0d.block 798M 7.87T 798M - poule/.ix-virt/virtual-machines 128K 7.87T 128K legacy
but I can’t mount it and I don’t find the .ix-virt directory either.

Could you help me ?

There should have been two options: move or clone
The better option would have been clone, as this would have left your original zvol as is and clone it for incus to use.
since you’ve moved it into the hidden .ix-virt directory which afaik does not exist on 24.10 it’s now non-existent on 24.10.
You may have to boot back into 25.04 and manually clone the zvol from the hidden ix-virt directory back to a normal zvol.

How can I clone it ? I don’t find it…

Also I tried to rollback because I couldn’t get any output for my VM, maybe I’m doing something wrong when I recreate it?

I managed to get a VNC output but now my vm is stuck on the UEFI Shell and I can’t boot my OS which was on the disk

the second comment seems to have a solution for that.

I’ve managed to boot to my vm (by adding a boot entry to the bios) but I have 3 issues:

  1. I can’t remove the 5 GiB “Root Disk” which is useless for me since all of my data are on the zvol I imported.
  2. My VM has no IP, so I can’t access it via SSH, only via VNC.
  3. I still can’t find the ZVol on my truenas host
  1. you can’t remove it, its a limitation of the current icus implementation
  2. Depending on what os you use you may have to manually add a static vm
  3. can’t help you with that since do not use vms on truenas.

I’ve managed to get my zvol back!

What I did was :

  • zfs list -t volume to note down the name of the zvol I wanted to recover
  • zfs set volmode=dev zvol_name (here : poule/.ix-virt/custom/default_web-ge0nr7) → this will make the zvol appear under the /dev/zvol/ directory, this way you can access it.
    Optional : rename the zvol to its previous name:
  • zfs rename poule/.ix-virt/custom/default_web-ge0nr7 poule/VM/web-ge0nr7

Now in the truenas UI, I can restart my old VM without changing anything else (if you didn’t rename the zvol, you have to change the path under devices > Disk > Edit > Zvol)