Root partition taking up over 20GB


My root partition is using 21GB, as you can see below.

Filesystem      Size  Used Avail Use% Mounted on
dev             3,4G     0  3,4G   0% /dev
run             3,4G  1,6M  3,4G   1% /run
/dev/sda2        30G   21G  7,8G  73% /
tmpfs           3,4G  114M  3,3G   4% /dev/shm
tmpfs           4,0M     0  4,0M   0% /sys/fs/cgroup
tmpfs           3,4G   47M  3,4G   2% /tmp
/dev/sda3       690G  151G  504G  23% /home
/dev/sda1       512M  312K  512M   1% /boot/efi
tmpfs           692M  244K  692M   1% /run/user/1000

Running sudo du -md1 / | sort -n, I get the following:


Digging up a bit further with sudo du -md1 /usr | sort -n, I get the following:

1 /usr/libexec
1 /usr/src
2 /usr/local
238 /usr/include
387 /usr/lib32
683 /usr/bin
3940 /usr/share
4236 /usr/lib
9485 /usr

Does this really mean that the main issue is the program libraries? It looks odd to me because I haven’t even installed that many programs; I used more programs on other distros (including Arch) and the size of the root partition never exceeded 10-12GB. Could you tell me if there is something else that may actually be causing this?

If there is any other piece of information that could be of use to you, please let me know. Thank you for your time.

Looks perfectly normal to me… Your /usr/lib seems to have a lot there as well. 20 GB root partition is not uncommon for a normal desktop enviroment. But you can drill down more on the directories to see if there is something adding unnecessary things. I would not run a system with a root less than 50GB these days. Updates, caches etc will slowly increase the root drive size.

If for instance you decided to run Virtual Machine Manager, you will need to partition the /var to a separate drive because the VM’s are stored in /usr/lib .

You can use qdirstat to get a better perspective of what’s taking space. Looking at your output, I’d take a look at /var (pacman’s cache and logs) and /home (you may want to link some home directories to a different partition, if you can).

Regarding pacman’s cache, you can routinely delete old packages with paccache -rk#, # being the number of old versions you want to keep. You can also delete uninstalled packages with paccache -ruk0.

Regarding the logs, you can limit journalctl to 100 MB, for example, by editing /etc/systemd/journald.conf, un-commenting the line SystemMaxUse and changing it to SystemMaxUse=100M.

Regarding /home, this is user dependent. You need to first see what taking space and then decide how to reduce it.

Leave /usr alone. The best way to reduce this is to uninstall software.


As mbb already wrote, try QDirStat to find out where your disk space went.

In addition to the normal tree view, there is also a treemap where you can spot large files deep down in the hierarchy directly; the larger a rectangle, the larger a file there is.

And there is also the packages view that can show you the disk space by installed software packages.


Stefan Hundhammer (HuHa)
QDirStat author


Well, thank you very much. This is my cleaning tool :+1:

Problem solved, thank you all for your messages.

P.S. QDirStat seems to be an amazing tool; it’s a real shame that it’s not in the official repositories yet.

Be well