I redid my storage setup two days ago and moved the pool I use for my system dataset and apps. I knew it wouldn’t move my LXC over so I downloaded the config of the Unifi controller I was running on it and changed my system pool.
After removing the old drive from the system it broke the instances tab for me and I got the error: virt.global.setup. Trying to go in to the global settings in the Incus menu and changing it from the old now removed pool to the new pool i am replacing it with also errors out with this:
It looks like it’s still trying to access the now removed pool for incus storage even if I try changing it to another pool on my system.
I also tried plugging in one of the old drives I used for the mirror my incus storage was located on that still had data on it to try to get instances to work but the GUI for truenas just wont start until that drive is removed. But this could also be related to the fact that my new boot drive was part of a mirror with that drive before.
When i put one of my old SSD from that mirror in with a USB adapter i could import the pool and incus started like normal. It will continue to work even if i export and disconnect the drive from my NAS as the LXC is installed on one of my new drives. So incus is looking for a storage pool its not even using for any data anymore for some reason.
I also tested changing the global settings again to use my new pool with the old mirror pool plugged in and it let me save the config without any errors this time but it still gives me the same issues above after the drive is removed.
I am having the same issue essentially, Virtual: pool is not available for incus storage & Virtualization: pool is not available for incus storage. i have never had a pool named virtualization or Virtual, i created one named Virt in the hopes of overcoming the upstream incus bug as my main pool has a space in the name so it isn’t visible. but i can not import previous VM’s and i can not create new ones because of this issue. perhaps this shouldn’t have been released until it was at least functional in some way, and yes i am aware of the “experimental” blah blah blah however i really did expect better from IX on this.
has anyone managed to find a solution to make incus forget about old pools (or possibly system created ones?) and let incus access pools so we can perhaps run a VM?
I wonder if you could put the old pool back in place, set the Incus Storage pool to [Disabled], then remove the old pool, and finally set the location to the new pool.
Or even try just setting to disabled before setting the new pool. I would expect Disabled should make Incus forget about any previously set pools. But it’s also possible the old location needs to be in place for some reason, before it can be disabled.
Same problem here!
I have found a workaround that at least worked for me:
Download the TrueNas config file edit the table “virt_global” with a sqlite editor (db browser in my case) delete the row with the entry of the old pool
save changes in config-database und upload the edited config file back to your system.
After this, i was able to choose my new pool and could create new VMs without problems.
I hope this could work for you too and … TrueNas will solve this issue
You shouldn’t do that. It’s a terrible idea to delete database rows like that where backend is unaware of it.
midclt call virt.global.update '{"pool": null, "storage_pools": []}' -j would probably have the desired effect without potenitally breaking the server.
Hi, I’ve tried this command and now my instances is unconfigured but when I try to select the pool I renamed I get the following error:
[EFAULT] The configured incus storage pool for the ZFS pool tank is NAS, which should match the ZFS pool name. This mismatch may indicate that the TrueNAS ix-virt dataset was not initially created on this ZFS pool
That error message means that for some reason your ix-virt dataset was created on a pool named NAS, but is now on a pool named tank. This typically means that you have moved it around via shell (either replicated to a different pool, or renamed your pool via shell) and the incus configuration references are therefore broken.