Garuda-health: The Garuda Linux system health check tool

Heya, I made a Garuda Linux “health check” tool that will automatically assess some key facts about the user’s system and tell the user how their system is doing in general and what issues might need manual fixing.

For now I’ve got:

  • Core packages missing [“base”, “chaotic-keyring”, “chaotic-mirrorlist”]
  • Important packages missing [“garuda-common-settings”, “garuda-hotfixes”, “garuda-update”, “garuda-libs”]
  • Optional packages missing [“garuda-rani”, “garuda-hardware-tool”, “garuda-system-maintenance”]
  • Pacman config is missing repos (for example, wrongly merged .pacnew files)
  • Nvidia drivers not installed
  • Nvidia kernel module not loaded
  • Storage space: Less than 10gb (low) free, less than 3gb (high) free
  • BTRFS maintenance timers off
  • Not using dracut? Not using garuda-dracut-support?
  • Not using pipewire? Not using pipewire-support?
  • Partial upgrade?
  • Outdated system (14 days)
  • Pending reboot? (system update applied without reboot)
  • Failed systemd services
  • Old BTRFS snapshots exist
  • High CPU temperature (intel only)

The --fix parameter can fix some issues too:

  • Enable systemd services (btrfs)
  • Restore pacman.conf to a supported state
  • Install nvidia drivers
  • Install dracut
  • Install pipewire
  • Update system
  • Remove old btrfs snapshots

Here’s where I need you:
I need ideas for more checks. I’d like to cover as broad and deep as possible. This is supposed to be a diagnostic tool that will probably add its output to garuda-inxi as well when the time comes, so to the forum helpers: Give me all the most common issues you help people with.

usage: garuda-health [-h] [--fix] [--json] [--debug]

A flexible Linux system health checking tool.

options:
-h, --help  show this help message and exit
--fix       Attempt to fix issues and re-run checks.
--json      Output in JSON. Incompatible with --fix.
--debug     Enable debug output.
20 Likes

From what I’ve seen, the system automatically checks for the partial-upgrades part. I can’t say for the other options, but this could be a cool project. Maybe a health-restoring option for f’d up systems too?

1 Like

I know, I coded that :stuck_out_tongue:
The intent is to have everything in one place and that includes partial upgrades too.

5 Likes

Just a few ideas…:

  • check pacman.conf contains our important repos and maybe also multilib, if we can determine that the user has 32bit packages. If there are known problematic repos, maybe notify it.
  • check for orphans. All or at least the most common old electron crxp…
  • maybe available disk space <= a certain threshold
  • maybe errors in locale (those shown at the begging of the garuda-inxi output)
  • other minor staff: the suggested reboot, the system not updated for a while (for sure this was already considered…)
11 Likes

Maybe check for the core pkgs that keep the system running.
Also maybe a panel with garuda current announcements. Like for when garuda-update is getting a hotfix for like dracut or kde with x11

1 Like

This will be a terminal application, so there will be no panels. I do not plan on adding a news section either.

1 Like

I see some potentially duplicated functionality here :thinking:

Why not make this part of Garuda system maintainance or Rani?

5 Likes

Could throw in a simple date check on the BIOS.
Example: when the BIOS is 6 months out of date say something like “your BIOS version is at least 6 months old and we recommend you check with your motherboard manufacture’s website to see if there is an update”.
(6 months being just an example. I don’t think there is a standardized central database for this kind of check with version information, so I thought this might be the next best idea by going with a date check.)

4 Likes
  1. Neither is a terminal tool
  2. Rani can execute it and display the content to the user via xterm.js if needed
  3. GUI might not be available depending on the issues at play
  4. GUIs can not be attached to a garuda-inxi output
  5. I can see myself adding integration for this new tool to Garuda System Maintenance in the future.
5 Likes

I like that but what if your Motherboard is old or on the lower end where they stop putting out patches or its like a dell or hp where they put out those updates via a windows only app. though since it would be a cli tool it might exclude those that find the terminal scary or to much. So the new linux users would skip it.

TNE
Maybe a space left check. Something like XGB free so that you have enough to update the system. but that might be hard to determine. Maybe tells the user to use rani/file manager to clear caches

First thought is failed services and timers (as in garuda-inxi). I think it would be cool to see a rebuild check thrown along any other health checks, though very arguably more appropriate only as a pacman hook:

Maybe a summary of the space used for snapshots and paccache too, with a reminder to optionally enable the paccache timer if it isn’t.

3 Likes

Oh, that’s so cool!

I have another check that could be a “nice to have”: a default list of packages with repositories

eg: dracut is installed explicitly instead of being a dependency of garuda-dracut-support for example

I myself messed up my system by trying one of those fishy hyprland-dots install scripts. my system is stable and I did correct MOST things, but poor old starship was never the same :frowning:

I see that some of the problems that users are reporting are related to extremely high or out-of-range temperatures of CPU, GPU, etc. and these users don’t even notice it. It would be interesting if this could be reported.

2 Likes

I released an initial version of this. Update and try it out! Run garuda-health in terminal and in just a moment you should get a result. More checks are definitely needed, but I don’t know which yet, soooo! Tell me what you wanna see!

For now I’ve got:

  • Core packages missing [“base”, “chaotic-keyring”, “chaotic-mirrorlist”]
  • Important packages missing [“garuda-common-settings”, “garuda-hotfixes”, “garuda-update”, “garuda-libs”]
  • Optional packages missing [“garuda-rani”, “garuda-hardware-tool”, “garuda-system-maintenance”]
  • Pacman config is missing repos (for example, wrongly merged .pacnew files)
  • Nvidia drivers not installed
  • Nvidia kernel module not loaded
  • Storage space: Less than 10gb (low) free, less than 3gb (high) free
  • BTRFS maintenance timers off
  • Not using dracut? Not using garuda-dracut-support?
  • Not using pipewire? Not using pipewire-support?
  • Partial upgrade?
  • Outdated system (14 days)
  • Pending reboot? (system update applied without reboot)
  • Failed systemd services
  • Old BTRFS snapshots exist
  • High CPU temperature (intel only)

The --fix parameter can fix some issues too:

  • Enable systemd services (btrfs)
  • Restore pacman.conf to a supported state
  • Install nvidia drivers
  • Install dracut
  • Install pipewire
  • Update system
  • Remove old btrfs snapshots
usage: garuda-health [-h] [--fix] [--json] [--debug]

A flexible Linux system health checking tool.

options:
-h, --help  show this help message and exit
--fix       Attempt to fix issues and re-run checks.
--json      Output in JSON. Incompatible with --fix.
--debug     Enable debug output.
10 Likes

Will test now!

If there’s a chance of implementing what I said earlier:

I’d love to see it!

If there’s a link to the project I could give a hand one of these days, though I can’t promise that

I ran garuda-health and got the following results:

-– System Health Check —

— INFO —

  • Nvidia drivers are not installed (fix available)
  • A reboot is pending (update applied since last reboot)

however, if I run nvidia-smi:
Wed Aug 6 11:14:36 2025
±----------------------------------------------------------------------------------------+
| NVIDIA-SMI 575.64.05 Driver Version: 575.64.05 CUDA Version: 12.9 |
|-----------------------------------------±-----------------------±---------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 3090 Off | 00000000:01:00.0 On | N/A |
| 0% 48C P3 89W / 370W | 1477MiB / 24576MiB | 10% Default |
| | | N/A |
±----------------------------------------±-----------------------±---------------------+

I can see why this tool would say the drivers aren’t installed, as I’ve been having problems with nvidia-dkms not being able to remove old modules and having to reboot my system in order to use the driver again sometimes

garuda-health
--- System Health Check ---

--- CRITICAL ---
  - Core garuda linux packages are missing: base

--- INFO ---
  - Optional garuda linux utilities are missing: garuda-rani

 ╭─sgs@y7p in ~ as 🧙 took 0s
 🕙 15:54:21
[🔴] × pacman -Qi garuda-rani
Name                     : garuda-rani-git
Version                  : 3.1.4.r0.gcfcd583-1

Seems it did not find the git version?
And what I missing, base? :hugs:

upd
upd
:: Paketdatenbanken werden synchronisiert …
 garuda ist aktuell
 core ist aktuell
 extra                                                               7,8 MiB  3,70 MiB/s 00:02 [----] 100%
 multilib ist aktuell
 chaotic-aur ist aktuell
spawn pacman -Su --disable-download-timeout
:: Starting full system upgrade...
warning: nomacs: local (1:3.21.0-2.8) is newer than chaotic-aur (1:3.21.0-2)
 there is nothing to do

--> Updating AUR packages with paru..
:: Nach devel-Upgrades suchen...
 es gibt nichts zu tun

System updated! 🐧
garuda-health --fix
garuda-health --fix
--- System Health Check ---

--- CRITICAL ---
  - Core garuda linux packages are missing: base

--- INFO ---
  - Optional garuda linux utilities are missing: garuda-rani

--- Applying Fixes ---
No issues with available fixes were found.

--- Re-running checks after applying fixes ---
--- System Health Check ---

--- CRITICAL ---
  - Core garuda linux packages are missing: base

--- INFO ---
  - Optional garuda linux utilities are missing: garuda-rani

Tested it and I really like it, especially that you can run the fix so easily. Though, I’m not sure if it identified the “problem” correctly.

According to Health Check, the Nvidia drivers are not installed. But if I attempt to fix it, there are conflicting packages. I have garuda-hardware-profile-nvidia-closed-1.1.0-1, and Health wants to install garuda-hardware-profile-nvidia-1.1.0-1. This is probably fine, but I don’t want to fix something that isn’t broken.

The point of the previous wall of text is that Health seems to ignore proprietary Nvidia drivers.

sudo garuda-health --fix
[sudo] password for ******:
--- System Health Check ---

--- INFO ---
- Nvidia drivers are not installed (fix available)

--- Applying Fixes ---
Fixing "Nvidia drivers are not installed":
The following command will be executed:
garuda-hardware-tool --nonfree
Continue? [y/N]: y
Detecting hardware...
Detected GPU: Product: NVIDIA Corporation GA104 GeForce RTX 3060 Ti GDDR6X, PCI ID: 2d:00.0, Vendor ID: 10de
NVIDIA GPU detected, added: garuda-hardware-profile-nvidia.
Installing packages: garuda-hardware-profile-nvidia garuda-hardware-profile-standard-x11
resolving dependencies...
looking for conflicting packages...
:: garuda-hardware-profile-nvidia-1.1.0-1 and garuda-hardware-profile-nvidia-closed-1.1.0-1 are in conflict. Remove garuda-hardware-profile-nvidia-closed? [y/N] n
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
:: garuda-hardware-profile-nvidia-1.1.0-1 and garuda-hardware-profile-nvidia-closed-1.1.0-1 are in conflict
Failed to install nvidia drivers. Exit code: 1

--- Re-running checks after applying fixes ---
--- System Health Check ---

--- INFO ---
- Nvidia drivers are not installed (fix available)
2 Likes

The base package is a critical package you should install it!!

I will fix garuda-rani detection shortly!

3 Likes

I don’t think this behavior will change. This is only an info message, so not having the “correct” driver installed will keep being an info message.

I will make sure the rest of the Nvidia check keeps working even when you don’t have the correct Nvidia driver installed.

3 Likes