[Solved?] Fedora-32-dvm is started when I try to start a DispVM

Hi,

update Nov 22nd: after a reboot DispVMs are starting as usual. Hope this is a good sign.

today I noticed that instead of a DispVM fedora-32-dvm is started every time I try to start a DispVM from the menu.

I’m running Q4.0.3. dom0 is fully updated (today) to security- testing. fedora-32-dvm is based on a freshly installed and fully updated fedora-32 template. I’ve (tried to) set fedora-32-dvm as the default for dispvms in dom0 (qvm-prefs fedora-32-dvm template_for_dispvms).

If I try to start a terminal in a DispVM from dom0 via “qvm-run --dispvm=dvm-template --service qubes.StartApp+xterm” I get “Got empty response from qubesd.”

Journalctl reports "permission denied for call b’admin.vm.CreateDisposable’+b. for every attempt to start a terminal in the way described above.

Can anyone help / advice how to fix the situation.

Hi @Micha. Welcome to the forum!

First of all, just in case other people are reading this, what you are trying to accomplish is a bit advanced. No regular user will have to start virtual machines from the terminal. It call all be done just by clicking buttons.

I don’t get what you mean. Is this not expected? When clicking from the menu it should open a dispVM based on that.

I think I know what the issue is here. You were reading the instructions and tried to copy this command from the documentation. The thing is you need to replace dvm-template with an actual DVM template that you have installed like fedora-32-dvm or debian-10-dvm.

@adw bringing this to your attention. How can we make it more evident on the documentation that the command needs to be customized to the specific user need?

My suggestion would be to put [ ] around the things that need be customized in order for the command to work. And then saying something along the lines of:

qvm-run --dispvm=[dvm-template] --service qubes.StartApp+xterm

Where [dvm-template] is the name of a disposableVM template like fedora-32-dvm.

What do you think @adw? and @Micha if this did solve your issue, do you think this explanation on the docs would have helped?

This is a common mistake for new doc authors. We have to syntactically distinguish variables in commands. A common convention, which we use in the documentation, is to surround the variable with angled brackets (< >) and use underscores (_) to separate words. In this case, it would be:

$ qvm-run --dispvm=<dvm_template> --service qubes.StartApp+xterm

There’s no right or wrong, since it’s just a convention, but I would prefer to stick with just one convention to make it more recognizable and comprehensible. Also, square brackets might be interpreted as representing an optional argument.

One other common convention is to capitalize variables, which make it even clearer (e.g., <DVM_TEMPLATE>). Perhaps we should start doing this.

1 Like

Updated doc guidelines:

1 Like

Updated the DisposableVM page:

1 Like

Thanks a lot! That’s exactly the kind of guidance I was looking for (but had not come across yet).