GNOME Boxes spice/share problem

Hi.
First post here.
I don’t know if this is the right forum, but “Homelab” was the closest I could think of.

I have used GNOME Boxes for many years. it’s a great tool instead of distrohopping if you just want to test a distro.
(if I want to do something more advanced, I would probably use QEMU/KVM or Proxmox)

Now I want to do something little more advanced, but it should still be within GNOME Boxes capability.
As I saw LearnLinuxTVs video about GNOME boxes, released a couple of weeks ago, I thought this would be the right place to ask questions.

I have used Linux for a couple of years at home. I’m not a beginner, but neither an expert. Let’s say that I’m a intremediate user.
The system i have problem with is:
A computer with Fedora 41, running GNOME Boxes 47, with 2 VMs: Ubuntu 25.10 Desktop & Ubuntu 25.10 Server.
What I try to is to rebuild the server so it will be a lightweight desktop with the same functionality as the common Ubuntu Desktop (installing Vanilla GNOME, etc).
If I succeed in the VM, I will install Ubuntu server 25.04 on bare metal (not VM), instead of Ubuntu Desktop.

To do this it would be nice to do:
apt list -installed
on both VMs.
Then export both lists to the host and compare the lists, so I know what packages Ubuntu Desktop has, that Server doesn’t.

This should be easy according to the video mentioned above.
Just install spice and send files back and forth between the VMs and the host.
Problem is, it doesn’t work.

I have named the two VMs u2410deskVM & u2410servVM.
In GNOME Boxes I went to Preferences for the VMs > Devices and Shares, then shared “Documents” on the host machine.
In both VMs I have fixed so that they have the packages spice-vdagent & spice-webdavd installed.

I start a VM, open file manager (Nautilus), go to Network, and there’s a Spice Client Folder - but it seems to be wrong.

The Spice Client Folder is named:
dev+sd://Spice%20Client%20folder_webdav_tcp.local
(yes, I know that %20 is space)

When I try to open the folder I get the error message:
Could not connect to u2410deskVM.local invalid argument

I understand what happens: the VM can’t communicate with the host.
But I don’t under stand why, and I don’t know how to fix it.
I tried to google , but didn’t get any relevant answers, so I ask here.

Welcome to the forum!

I don’t get it. All you want is to apt list --installed on the 2 VMs and dump the info in the host? Then ssh from the host to each VM and run the command.

[user@host ~]$ ssh user@vm1 "sudo apt list --installed" >> apt-list-vm1.txt
[user@host ~]$ ssh user@vm2 "sudo apt list --installed" >> apt-list-vm2.txt

If you want to rebuild your host, you can just dump your gnome boxes vm disks to an external storage, then wipe your host, install whatever and when reconfiguring gnome boxes VMs, slap your old vm disks in place.

If it was me, I wouldn’t bother with reinstalling every package. I’d take a backup of the user data (scripts + whatever the server is doing, like web server www sites, maybe a DB dump if it runs a DB) and install fresh VMs. Instead of outright wiping out the VMs, try to back up your data, shut them down, then try to recreate them in a new VM, taking notes as you go. If everything works, wipe the host and redo the process with your backed up data.

Hi ThatGuyB.
Thnx for the answer, but I think you missed my point:

What is it I want to do?
I want to learn how to build Ubuntu Server so I can use it as a desktop (not necessarily exactly like Ubuntu Deskop), just as a Desktop.
It’s NOT enough to just install vanilla GNOME, because I can’t look at videos, can’t play Steam games etc.

Why do I want to transform the Server to a Desktop?
Because I want to learn how to do.
It’s fun to learn new things.

How do I manage to do this?
One way is to compare and analyze installed packages between the server and the desktop.
Then I need to export apt list --installed from the VMs to the host, so I can compare them.

How can I export the lists?
I can think of at least half a dozen diffent solutions.

  • I can use SSH.
  • I can upload the list as a file on my own site, then download it to my host.
  • I can use one of the cloud solutions I use.
  • I can mail the file from the VM to the host.
  • I can probably use Linux Mint Varpinator to transfer files between computers.
  • I can use spice and open a share between the VMs and the Host.

Of all the different methods, why would I use a share?
Because I have never used that method before (even if I have used GNOME boxes for many years).
Because I want to learn how to do.
It’s fun to learn new things.

So please:
Why do I get an error message, when Jay doesn’t in his video?
What does the error message mean?
How do I fix it?

I never used GNOME Boxes and neither webdav, so I can’t help with that. I can only guess that the problem here might be because the VM is behind NAT and probably Jay might have been using a bridge (I didn’t watch that video, I don’t have the patience for that). A bridge would bring the VMs in the same subnet as the host hypervisor, but NAT would put them under their own network.

Technically, the host should be able to connect to them, but I’ve seen many times that this won’t work (when using NAT in virt-manager and in virtualbox long ago).

If you want to learn something, maybe instead of going into things that nobody uses in the datacenter, try deploying samba or nfs-server on your host and have your VMs connect to that to dump their data into. They should connect over to the NAT IP (basically the default gateway as seen in the VMs’ ip a command).

If you haven’t figured by now, I have very biased opinions on how I believe things should be done (and that is imitating the datacenter to a big degree, as far as software stack is concerned).

If you really want to fix this, I’d look into trying to mount that webdav folder by hand in a terminal, with higher verbosity and checking the output of mount. I’d also look into renaming the spice folder to exclude spaces.

If that doesn’t work, try the even more basics, like ping the host from inside the VM on the default gateway IP. Then try telnet or netcat to a port, see if that’s allowed or if it’s filtered by a firewall on the host or something.