{{Header}} {{hide_all_banners}} {{Title|title= Uninstall {{q_project_name_long}} }} {{#seo: |description=How to uninstall {{q_project_name_short}}. |image=Qubesunintall123123.png }} [[image:Qubesunintall123123.png|250px|thumb]] {{qubes_mininav}}
* [[Uninstall|Uninstall {{non_q_project_name_long}}]] * [[Qubes/Uninstall|Uninstall {{q_project_name_short}}]]
{{intro| How to uninstall {{q_project_name_short}}. }} = Introduction = This procedure of a complete uninstallation of {{project_name_long}} as documented on this page is useful before a complete re-installation of [[Qubes|{{q_project_name_short}}]]. Or if deciding not to use {{project_name_long}} at all. Alternatively, it is possible to [[Qubes/Reinstall|Reinstall {{q_project_name_short}} Templates]] without a complete a uninstallation. In any case, these procedures are [[unspecific|unspecific to {{project_name_short}}]]. * In some situations [https://dev.qubes-os.org/projects/core-admin-client/en/latest/manpages/qvm-template.html qvm-template] with the [https://dev.qubes-os.org/projects/core-admin-client/en/latest/manpages/qvm-template.html#purge purge] instead of the [https://dev.qubes-os.org/projects/core-admin-client/en/latest/manpages/qvm-template.html#remove remove] [https://dev.qubes-os.org/projects/core-admin-client/en/latest/manpages/qvm-template.html#subcommands subcommand] might be simpler. ** remove:
Remove installed templates.
** purge:
Remove installed templates and associated VMs.
Users can replace {{project_name_short}} version 16 with 17 or any other version number if that is the goal. = Purge = {{mbox | image = [[File:Ambox_warning_pn.svg.png|40px]] | text = Data loss possible if used wrong! Before proceeding with the qvm-template purge the user should carefully review the output of the qvm-template command before confirming. In doubt, a different method as document in other chapters should be used. }} Might not work due to Qubes issue [https://github.com/QubesOS/qubes-issues/issues/7285 qvm-template purge whonix-gw-16 results in ERROR: The dummy qube does not provide network]. '''1.''' Shutdown required App Qubes. Shutdown of all {{project_name_short}} App Qubes is required that are using {{project_name_gateway_template}} or {{project_name_workstation_template}} as a Template or Net Qube '''2.''' App Qubes Configuration If no App Qubes that the user intents to keep are using {{project_name_gateway_template}} or {{project_name_workstation_template}} as a Template or Net Qube, proceeding with qvm-template purge should be safe. '''3.''' Purge {{project_name_gateway_long}} {{CodeSelect|code= qvm-template purge whonix-gateway-{{VersionShort}} }} '''4.''' Review the output. Sample output:
This will completely remove the selected VM(s)... {{project_name_gateway_template}} sys-whonix anon-whonix {{whonix-ws-dvm}} custom-vm-using-{{project_name_workstation_template}}-template Are you sure? [y/N]
'''5.''' Confirm or abort. To proceed, a capital (big lettter) Y needs be be written and confirmed with enter. '''6.''' Purge {{project_name_workstation_long}} {{CodeSelect|code= qvm-template purge whonix-workstation-{{VersionShort}} }} = {{project_name_workstation_short}} Removal = == Remove {{project_name_workstation_short}} App Qubes == The {{project_name_workstation_vm}} {{project_name_workstation_short}} App Qube [https://www.qubes-os.org/doc/glossary/ Qubes glossary] documents TemplateBasedVM, TemplateBasedVMs and TemplateBasedHVM. So the spelling of TemplateBasedAppVMs and TemplateBasedProxyVMs should be correct. must be manually removed. Alternatively, you can [[#Stop using {{project_name_short}} Templates in VM Template Settings|Stop using {{project_name_short}} Templates in VM Template Settings]]. If {{project_name_workstation_vm}} was previously used, strongly consider backups of any important files before proceeding. {{Box|text= '''1.''' Remove {{project_name_workstation_vm}}. * Qube Managerright-click {{project_name_short}} App Qube {{project_name_workstation_vm}}Delete qube {{CodeSelect|code= qvm-remove {{project_name_workstation_vm}} }} '''2.''' Repeat the above step for any other App Qubes based on {{project_name_workstation_short}} Template {{project_name_workstation_template}} that were created earlier. Replace vm-name with the actual name of the VM. * Qube Managerright-click {{project_name_short}} App Qube vm-nameDelete qube {{CodeSelect|code= qvm-remove vm-name }} }} == Remove the {{project_name_workstation_short}} Disposable Template == The {{project_name_workstation_template}}-dvm domain must be manually removed. Alternatively, you can [[#Stop using {{project_name_short}} Templates in VM Template Settings|Stop using {{project_name_short}} Templates in VM Template Settings]]. In the case of a customized {{project_name_workstation_short}} Disposable Template, strongly consider backups of any important files before proceeding. {{Box|text= {{Qubes_Terminal}} '''1.''' Set the default Disposable for {{project_name_workstation_vm}} to "". This is only required if you chose to skip removal of {{project_name_workstation_vm}} as documented above. {{CodeSelect|code= qvm-prefs {{project_name_workstation_vm}} default_dispvm "" }} '''2.''' Repeat the above step for all other App Qubes that are based on {{project_name_workstation_short}} Template {{project_name_workstation_template}} that were created earlier. Replace vm-name with the actual name of the VM. {{CodeSelect|code= qvm-prefs vm-name default_dispvm "" }} '''3.''' Set the default Disposable for {{project_name_workstation_template}}-dvm to "". {{CodeSelect|code= qvm-prefs {{project_name_workstation_template}}-dvm default_dispvm "" }} '''4.''' Remove {{project_name_workstation_template}}-dvm. {{CodeSelect|code= qvm-remove {{project_name_workstation_template}}-dvm }} '''5.''' The process of removing {{project_name_workstation_template}}-dvm is now complete. }} = {{project_name_gateway_short}} Removal = == Stop using {{project_name_gateway_short}} as Qubes UpdateVM == Set Qubes dom0 UpdateVM to sys-firewall or any VM of your choice. Note: Upgrades will be no longer torified. This is only required if you previously elected to update dom0 through {{project_name_short}}. Regardless, it is a good idea to check the Qubes dom0 UpdateVM setting. * Qubes ManagerSystemGlobal SettingsDom0 UpdateVM: sys-firewallOK To revert this change, run. {{CodeSelect|code= qubes-prefs updatevm sys-firewall }} == Stop using {{project_name_gateway_short}} as NetVM for any VM == If you configured any VM to use {{project_name_gateway_vm}} as NetVM, this change must be undone. Note: The VM's traffic will be no longer torified. This is only required if you previously elected to torify a VM's network traffic through {{project_name_short}}. Regardless, it is a good idea to check the NetVM setting of Qubes VMs. {{Box|text= To set the NetVM of any VM to None, in other words, to disable networking. Qube Managerright-click vm-nameQube settingsNetVMNoneOK {{CodeSelect|code= qubes-prefs --set vm-name netvm "" }} Alternatively, you can set the NetVM to sys-firewall or another ProxyVM of your choice. However, traffic will not be torified (unless you are using cloned VMs). }} == Remove {{project_name_gateway_short}} ProxyVMs == The {{project_name_gateway_vm}} {{project_name_gateway_short}} ProxyVM must be manually removed. Alternatively, you could [[#Stop using {{project_name_short}} Templates in VM Template Settings|Stop using {{project_name_short}} Templates in VM Template Settings]]. In the case of a previously used {{project_name_gateway_vm}} ProxyVM, consider backups before proceeding. This might be a custom [[Tor]] configuration, [[Onion Services]] configuration, [[Bridges]] configuration or Tor data for persistent [[Tor Entry Guards]]. {{Box|text= '''1.''' Remove {{project_name_gateway_vm}}. * Qube Managerright-click {{project_name_gateway_vm}}Delete qube {{CodeSelect|code= qvm-remove {{project_name_gateway_vm}} }} '''2.''' Repeat the above step for any other ProxyVM based on {{project_name_gateway_short}} Template {{project_name_gateway_template}} that was created earlier. Replace vm-name with the actual name of the VM. * Qube Managerright-click vm-nameDelete qube {{CodeSelect|code= qvm-remove vm-name }} }} = Qubes Adjustments = == Stop using {{project_name_short}} Templates in VM Template Settings == If a {{project_name_short}} Template is set as the underlying Template for any VMs, the Template cannot be removed. Therefore, either delete the VM as documented above or unset the Template using Qube Manager. Or use the command line. The VMs can optionally be set to use a dummy template. The advantage of setting a dummy template as the underlying Template is the ability to retain any VMs, along with the user storage contents. {{Box|text= {{Box|text= '''1.''' {{Qubes_Dummy_Template}} }} '''2.''' Shut down the {{project_name_short}} Template if already running. * Qube Managerright-click {{project_name_short}} TemplateShutdown qube {{CodeSelect|code= qvm-shutdown vm-name }}
'''3.''' Set the dummy template as the Template. * right-click VMQube settingsTemplate: dummy {{CodeSelect|code= qvm-prefs --set vm-name template dummy }} The process of setting the dummy template as the VM's underlying Template is complete. }} == Stop using {{project_name_gateway_short}} for Torified Template Updates == {{mbox | type = notice | image = [[File:Ambox_notice.png|40px|alt=Info]] | text = Skip this chapter if you intend to [[Qubes/Install|Install {{q_project_name_short}}]] again. }} If you do not intend to use {{q_project_name_short}} again, apply the following steps. {{Box|text= In technical terms, stop using {{project_name_gateway_short}} as dom0 UpdatesProxy for any Templates. This is only required if you previously elected to update Qubes Templates through {{project_name_short}}. '''1.''' Open /etc/qubes-rpc/policy/qubes.UpdatesProxy with root rights. '''2.''' Search for. {{CodeSelect|code= $type:Template $default allow,target={{project_name_gateway_vm}} }} '''3.''' Comment out that line; add a hash (#) in front of it. {{CodeSelect|code= #$type:Template $default allow,target={{project_name_gateway_vm}} }} The entry {{CodeSelect|code= $tag:whonix-updatevm $default allow,target={{project_name_gateway_vm}} }} and {{CodeSelect|code= $tag:whonix-updatevm $anyvm deny }} can remain. These will not have any effect once Qubes Templates are removed since no VM has the tag whonix-updatevm. '''4.''' Save. '''5.''' The steps to remove {{project_name_gateway_short}} as dom0 UpdatesProxy are complete. }} = Uninstall {{project_name_short}} Templates = == Introduction == {{mbox | image = [[File:Ambox_warning_pn.svg.png|40px|alt={{project_name_short}} first time users warning]] | text =
* Note the root filesystem will be lost when uninstalling the Template. * In the case of customized Templates, strongly consider creating backups of anything important before proceeding. * {{project_name_short}} (or any) Template in Qubes cannot be removed if any other VM is still using them; see [[#Introduction|Introduction]]. }} == {{project_name_gateway_short}} == # Open a dom0 terminal: Qubes App Launcher (blue/grey "Q")System ToolsXfce Terminal # Uninstall all {{q_project_name_short}} {{project_name_gateway_short}} template packages matching qubes-template-whonix-g*: Note the matching syntax below and the effect of running qubes-template-whonix-g'''*''' or qubes-template-whonix-w**. Also note the asterisk * wildcard at the end. Depending on the {{project_name_short}} version, this leads to multiple template packages being uninstalled if they are present: * qubes-template-whonix-gw-15 (deprecated {{project_name_short}} release) * qubes-template-whonix-ws-15 (deprecated {{project_name_short}} release) * qubes-template-whonix-gw-16 (deprecated {{project_name_short}} release) * qubes-template-whonix-ws-16 (deprecated {{project_name_short}} release) * qubes-template-whonix-gateway-17 (stable {{project_name_short}} release) * qubes-template-whonix-workstation-17 (stable {{project_name_short}} release) * qubes-template-whonix-gateway-18 (future {{project_name_short}} release) * qubes-template-whonix-workstation-18 (future {{project_name_short}} release) Wildcards are used so these instructions are valid for all old and future versions of {{project_name_short}}. Alternatively, the asterisk * syntax could be replaced with a specific template package listed above. {{CodeSelect|code= sudo qvm-template remove qubes-template-whonix-g* }} Review the output of the command before confirming to proceed. == {{project_name_workstation_short}} == # Open a dom0 terminal: Qubes App Launcher (blue/grey "Q")System ToolsXfce Terminal # Uninstall all Qubes-{{project_name_workstation_short}} template packages matching qubes-template-whonix-w*: {{CodeSelect|code= sudo qvm-template remove qubes-template-whonix-w* }} Review the output of the command before confirming to proceed. == All {{project_name_short}} Template Packages == # Open a dom0 terminal: Qubes App Launcher (blue/grey "Q")System ToolsXfce Terminal # Uninstall all {{q_project_name_short}} template packages matching qubes-template-whonix*: {{CodeSelect|code= sudo qvm-template remove qubes-template-whonix* }} Review the output of the command before confirming to proceed. == Troubleshooting == If the following error appears when removing the Templates, a manual fix is required.
“ERROR: VM installed by package manager: template-vm-name”
For instruction on how to work around this issue, see: [https://www.qubes-os.org/doc/vm-troubleshooting/#can-not-uninstall-a-vm--error-vm-installed-by-package-manager-template-vm-name Remove VM Manually]. = Done = The process of uninstalling {{q_project_name_short}} is now complete. In order to use {{q_project_name_short}} again in the future, follow the [[Qubes/Install|Install {{q_project_name_short}}]] instructions. = Footnotes = {{reflist|close=1}} {{Footer}} [[Category:Documentation]]