This guide explains how to make sys-net a non disposable qube, this can be helpful if you want sys-net to remember about network settings in a simple manner.
The plan is to delete sys-net qube to recreate it as a non disposable qube. As sys-net can not be stopped if sys-firewall is running, and sys-firewall can not be stopped as long as a qube using it as a netvm is up (every qubes doing network by default), so the process requires some work.
Setup
stop all qubes using networking
stop sys-firewall
stop sys-net
open Qubes Manager
set sys-firewall network to none
open sys-net settings, check the âdevicesâ tabs and write down the numbers of each lines in the right colums, this is the internal address of network devices attached to sys-net, it should look like hexadecimal numbers with 5 digits (i.e. 00:14.3 or 2e:00.4)
rename sys-net (in case you need to restore it)
create a new qube named sys-net
name: sys-net
type: AppVM
template: whatever you want to use
networking: none
check âlaunch settings after creationâ
click on âOKâ
in Advanced tab
on âmodeâ choose HVM
check âProvides networkâ
in âDevicesâ, add the network devices
in âServicesâ tab, add âclocksyncâ service
Sys-net usually includes âqubes-networkâ and ânetwork-managerâ services by default. Arenât they necessary? If not, why are they added by default?
The reply is asking for a certainly trivial knowledge: How to pass âdisposable:trueâ to the command? Iâm sure many people know how. I searched but could not find how.
Itâs not useless, but it is complicated for most users to follow, and
allows for significant error and confusion.
Whereas salting is a one liner - two if you want to change from
disposable to non-disposable, or vice versa.
I never presume to speak for the Qubes team.
When I comment in the Forum I speak for myself.
I totally agree. I will update the guide to explain how to reset sys-net to being disposable or not, explaining the process using the dom0 qube invoking salt.
Do you know if you need to stop sys-net and all the qubes with network when running this command?
Go into the settings for sys-firewall and change its net vm to none. You can do this without stopping any qubes. Of course every qube connected to the internet will now find its connection interrupted but it will be restored soon.
Then switch it back once the new sys-net is running.
I actually clone sys-net to sys-net-temp, then sys-firewallâs net qube to none, then shut down sys-net, then start sys-net-temp, then set sys-firewallâs net qube to sys-net-temp. I can then delete sys-net and build a new one, and reverse this process. (Actually I have to clone the whole âstackâ: template, appvm, and named disposable [if I have one], and delete all of them.)
Thatâs a complicated process but has to be done that way if I want almost uninterruped connectivity, since only one qube can access the networking hardware at a time (at least on my system). Alternatively if Iâm willing to have a long outage (which could happen if sys-net fails to build for some reason), I could do: set sys-firewallâs net qube to none, delete sys-net, rebuild sys-net, set sys-firewallâs net qube back to sys-net.
I think a safer and simpler approach is to just rename it. This keeps outage time minimal, and if the creation process fails, you can easily revert by renaming the original âsys-netâ back, no harm done.