Uninstall Optimizations
Reverse any change made by the Automated or Customizable post-install scripts. ProxMenux keeps a registry of every optimization it applied and has a dedicated reversal function for each one — pick which to revert, and the host goes back.
Why this exists
/usr/local/share/proxmenux/installed_tools.json. That registry is what powers the uninstall flow — it shows you the list of optimizations currently applied, and a reversal function that restores the original state for each one (from backup files where possible, or by reinstalling the affected packages).How to open it
From ProxMenux's main menu, Settings post-install Proxmox → Uninstall optimizations. You will see a checklist of currently applied optimizations — items you have not applied don't show up.

How the reversal works
Registry and auto-detection
On first run, ProxMenux walks the host looking for fingerprint files (e.g. /etc/sysctl.d/99-memory.conf, /etc/apt/apt.conf.d/99-force-ipv4, haveged package installed, Log2RAM service active…). Anything found is added to the registry as reversible, even if it was applied by an older ProxMenux version that predates the registry.
This migration only runs once. After that, every apply/revert updates the registry directly.
Pick what to revert
The checklist shows a human-readable label per item (e.g. Memory Settings Optimization, IOMMU/VFIO PCI Passthrough, Log2RAM (SSD Protection)). Tick the ones you want to reverse. Nothing you don't tick will be touched.
Reversal runs
For each selected item, ProxMenux calls its matching uninstall function. Most reversals follow one of three patterns:
- Backup-based — restore a
.bakcaptured at apply time (bashrc, logrotate.conf, journald.conf, GRUB/kernel cmdline). - Delete-the-config — remove ProxMenux's
/etc/sysctl.d/99-*.conf,/etc/apt/apt.conf.d/99-*, or systemd unit, then reload. - Package reinstall — for UI changes like the subscription banner, reinstall the upstream packages with
--force-confnewto restore shipped configuration.
Each reversal logs its progress. Items that require a reboot (VFIO, persistent interface names) set a flag that triggers the reboot prompt at the end.
Reboot if needed
If any reversed item modified kernel parameters, kernel modules, or network naming, you'll be offered a reboot. Otherwise the changes are live immediately.
What is reversible
Every optimization the post-install scripts apply has a matching uninstaller. Grouped here by area:
Repositories & APT
- Subscription Banner Removal
- Reinstalls pve-manager, proxmox-widget-toolkit, libjs-extjs and libpve-http-server-perl with force-confnew to restore the original UI files. Also clears cached .js / .gz copies.
- APT Language Skip
- Removes /etc/apt/apt.conf.d/99-disable-translations. APT will download language packages again.
- APT IPv4 Force
- Removes /etc/apt/apt.conf.d/99-force-ipv4.
Kernel, memory and system limits
- Memory Settings
- Removes /etc/sysctl.d/99-memory.conf and reloads sysctl.
- Kernel Panic Configuration
- Removes /etc/sysctl.d/99-kernelpanic.conf.
- System Limits Increase
- Removes /etc/sysctl.d/99-maxwatches.conf, 99-maxkeys.conf, 99-swap.conf, 99-fs.conf and /etc/security/limits.d/99-limits.conf. Reverts PAM limits and systemd DefaultLimitNOFILE.
Networking
- Network Optimizations
- Removes /etc/sysctl.d/99-network.conf and the proxmenux-fwbr-tune.service unit. Reloads sysctl and systemd.
- Persistent Interface Names
- Removes every .link file from /etc/systemd/network/. Interface names return to systemd's default behaviour on next reboot.
Logging
- Journald Optimization
- Rewrites /etc/systemd/journald.conf with vanilla defaults and restarts systemd-journald.
- Logrotate Optimization
- Restores /etc/logrotate.conf from the .bak file captured before the change.
- Log2RAM
- Stops and disables the service and timer. Purges cron jobs, systemd units, binaries, config files and the /var/log.hdd directory. Also uninstalls the apt package if it was installed that way.
- ZFS autotrim
- Reads /usr/local/share/proxmenux/zfs_autotrim_pools (the list of pools ProxMenux actually changed) and runs zpool set autotrim=off on each one. Pools you set autotrim on manually before ProxMenux ran are not touched.
Shell & appearance
- Bashrc Customization
- Restores /root/.bashrc from the .bak backup. If no backup exists, removes the PMX_CORE_BASHRC block by markers.
- Fastfetch
- Removes the binary, config directory, update-motd hook and the bashrc block. Purges the apt package if installed.
- Figurine
- Removes the binary, profile.d entry and the alias block in bashrc/profile.
Hardware & virtualization
- IOMMU / VFIO
- Removes vfio modules from /etc/modules, the nouveau / radeon / nvidia blacklist entries, and intel_iommu=on / amd_iommu=on / iommu=pt / pcie_acs_override parameters from /etc/kernel/cmdline (ZFS) or GRUB. Rebuilds initramfs.
- AMD CPU fixes (Ryzen/EPYC)
- Removes idle=nomwait from kernel cmdline (ZFS) or GRUB, and the ignore_msrs / report_ignored_msrs options from /etc/modprobe.d/kvm.conf.
Services & extras
- Time Synchronization
- Sets timezone back to UTC (safe default) via timedatectl.
- Entropy Generation (haveged)
- Stops, disables and purges the haveged package.
- kexec (fast reboots)
- Disables kexec-pve.service, removes the unit file and the reboot-quick alias, purges kexec-tools.
Edge cases and caveats
Package reinstall touches live Proxmox packages
pve-manager, proxmox-widget-toolkit, libjs-extjs and libpve-http-server-perl with --force-confnew. This is generally safe but does touch the running web UI — refresh your browser afterwards, and expect a few seconds of reconnection. Don't run this in the middle of a migration or clone operation.Persistent names and VFIO need a reboot
.link files (Persistent Interface Names) and reverting IOMMU/VFIO do not affect the running system — they only matter after a reboot. ProxMenux sets the reboot flag automatically for these.You can revert one thing and keep the rest
Inspecting the registry manually
If you want to see what's tracked without opening the menu:
cat /usr/local/share/proxmenux/installed_tools.json | jqEach "tool": true entry corresponds to something ProxMenux applied and can reverse. Removing an entry manually is not recommended — always use the menu, which also runs the reversal function instead of just forgetting the change.
Reinstall after uninstall
Related
- Automated Post-Install — re-apply the sane-defaults baseline.
- Customizable Post-Install — pick a different subset.
- Uninstall ProxMenux — different operation: removes ProxMenux itself, not its applied optimizations.
- Post-Install overview.