Disk space refuses to free up after uninstallations

Hi all, I’m new to Manjaro having only installed it after Windows 10’s EoS date hit. I’m not new to Linux (been toying with it for ~3 years now), just to Manjaro, and I have a small bit of experience with Arch due to an Arch basics course I took.

I had gone on a game installation spree after getting things up and running, as I wanted to test different games to see how they ran on Linux with decent hardware. However, after uninstalling games I couldn’t get working (or working well), I’ve noticed something: my disk space remains filled, it doesn’t free up. I’m stuck at 96% disk usage because of this and I can’t figure out why.

I’ve installed all these games through Steam, by the way. Not sure if that makes a difference.

Does anyone have any advice on some things I can do to figure out why the disk space remains used even if I uninstall these games?

PS: I don’t think this is the correct category but seeing how it’s not only game related, I didn’t know if it really belonged in Gaming either. Mods, feel free to move the topic if it’s in the wrong spot.

SYSTEM INFO:

System:
  Kernel: 6.17.1-0-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 15.2.1
    clocksource: tsc avail: hpet,acpi_pm
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-6.17-x86_64
    root=UUID=017fe6b5-f3b9-4f21-aa1b-b3dd38239676 rw rootflags=subvol=@ quiet
    splash resume=UUID=44b1b4d6-489f-4e18-8a61-a119a0eb01d6
    udev.log_priority=3
  Desktop: KDE Plasma v: 6.3.6 tk: Qt v: N/A info: frameworks v: 6.18.0
    wm: kwin_wayland with: krunner vt: 1 dm: SDDM Distro: Manjaro
    base: Arch Linux
Machine:
  Type: Desktop System: ASUS product: N/A v: N/A serial: <superuser required>
  Mobo: ASUSTeK model: PRIME B450M-A II v: Rev X.0x
    serial: <superuser required> part-nu: SKU uuid: <superuser required>
    UEFI: American Megatrends v: 3002 date: 03/10/2021
CPU:
  Info: model: AMD Ryzen 5 5600G with Radeon Graphics bits: 64 type: MT MCP
    arch: Zen 3 gen: 3 level: v3 note: check built: 2021-22
    process: TSMC n7 (7nm) family: 0x19 (25) model-id: 0x50 (80) stepping: 0
    microcode: 0xA500012
  Topology: cpus: 1x dies: 1 clusters: 1 cores: 6 threads: 12 tpc: 2
    smt: enabled cache: L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 3 MiB
    desc: 6x512 KiB L3: 16 MiB desc: 1x16 MiB
  Speed (MHz): avg: 1400 min/max: 1400/4200 boost: enabled scaling:
    driver: acpi-cpufreq governor: schedutil cores: 1: 1400 2: 1400 3: 1400
    4: 1400 5: 1400 6: 1400 7: 1400 8: 1400 9: 1400 10: 1400 11: 1400 12: 1400
    bogomips: 100803
  Flags-basic: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3
    svm
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: ghostwrite status: Not affected
  Type: indirect_target_selection status: Not affected
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: old_microcode status: Not affected
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed status: Not affected
  Type: spec_rstack_overflow mitigation: Safe RET
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Retpolines; IBPB: conditional; IBRS_FW;
    STIBP: always-on; RSB filling; PBRSB-eIBRS: Not affected; BHI: Not
    affected
  Type: srbds status: Not affected
  Type: tsa mitigation: Clear CPU buffers
  Type: tsx_async_abort status: Not affected
  Type: vmscape mitigation: IBPB before exit to userspace
Graphics:
  Device-1: NVIDIA GA104 [GeForce RTX 3070 Lite Hash Rate] vendor: Gigabyte
    driver: nvidia v: 580.82.09 alternate: nouveau,nova_core,nvidia_drm
    non-free: 550-580.xx+ status: current (as of 2025-08; EOL~2026-12-xx)
    arch: Ampere code: GAxxx process: TSMC n7 (7nm) built: 2020-2023 pcie:
    gen: 3 speed: 8 GT/s lanes: 16 link-max: gen: 4 speed: 16 GT/s ports:
    active: DP-1,HDMI-A-2 empty: DP-2,HDMI-A-1 bus-ID: 01:00.0
    chip-ID: 10de:2488 class-ID: 0300
  Display: wayland server: X.org v: 1.21.1.18 with: Xwayland v: 24.1.8
    compositor: kwin_wayland driver: X: loaded: nvidia
    gpu: nv_platform,nvidia,nvidia-nvswitch d-rect: 3520x1980 display-ID: 0
  Monitor-1: DP-1 pos: bottom-r model: HP W2072a serial: <filter> built: 2013
    res: mode: 1600x900 hz: 60 scale: 100% (1) dpi: 92 gamma: 1.2
    size: 443x249mm (17.44x9.8") diag: 508mm (20") ratio: 16:9 modes:
    max: 1600x900 min: 640x480
  Monitor-2: HDMI-A-2 pos: primary,top-left model: MSI MP251 E2
    serial: <filter> built: 2024 res: mode: 1920x1080 hz: 120 scale: 100% (1)
    dpi: 90 gamma: 1.2 size: 540x310mm (21.26x12.2") diag: 623mm (24.5")
    ratio: 16:9 modes: max: 1920x1080 min: 640x480
  API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia device: 2
    drv: swrast gbm: drv: nvidia surfaceless: drv: nvidia wayland: drv: nvidia
    x11: drv: nvidia inactive: device-1
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 580.82.09
    glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce RTX 3070/PCIe/SSE2
    memory: 7.81 GiB display-ID: :1.0
  API: Vulkan v: 1.4.321 layers: 8 device: 0 type: discrete-gpu
    name: NVIDIA GeForce RTX 3070 driver: nvidia v: 580.82.09
    device-ID: 10de:2488 surfaces: N/A
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
    de: kscreen-console,kscreen-doctor gpu: nvidia-settings,nvidia-smi
    wl: wayland-info x11: xdpyinfo, xprop, xrandr
Audio:
  Device-1: NVIDIA GA104 High Definition Audio vendor: Gigabyte
    driver: snd_hda_intel v: kernel alternate: nova_core pcie: gen: 3
    speed: 8 GT/s lanes: 16 link-max: gen: 4 speed: 16 GT/s bus-ID: 01:00.1
    chip-ID: 10de:228b class-ID: 0403
  Device-2: Advanced Micro Devices [AMD/ATI] Renoir/Cezanne HDMI/DP Audio
    vendor: ASUSTeK driver: snd_hda_intel v: kernel pcie: gen: 3 speed: 8 GT/s
    lanes: 16 bus-ID: 0a:00.1 chip-ID: 1002:1637 class-ID: 0403
  Device-3: Advanced Micro Devices [AMD] Family 17h/19h/1ah HD Audio
    vendor: ASUSTeK PRIME B450M-A driver: snd_hda_intel v: kernel pcie: gen: 3
    speed: 8 GT/s lanes: 16 bus-ID: 0a:00.6 chip-ID: 1022:15e3 class-ID: 0403
  API: ALSA v: k6.17.1-0-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: JACK v: 1.9.22 status: off tools: N/A
  Server-2: PipeWire v: 1.4.8 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
    vendor: ASUSTeK RTL8111H driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s
    lanes: 1 port: e000 bus-ID: 08:00.0 chip-ID: 10ec:8168 class-ID: 0200
  IF: enp8s0 state: down mac: <filter>
  Device-2: NetGear A6100 AC600 DB Wireless Adapter [Realtek RTL8811AU]
    driver: rtw88_8821au type: USB rev: 2.1 speed: 480 Mb/s lanes: 1 mode: 2.0
    bus-ID: 3-2:2 chip-ID: 0846:9052 class-ID: 0000 serial: <filter>
  IF: wlp10s0f3u2 state: up mac: <filter>
  Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
Drives:
  Local Storage: total: 4.51 TiB used: 1.72 TiB (38.1%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung
    model: SSD 990 EVO Plus 2TB size: 1.82 TiB block-size: physical: 512 B
    logical: 512 B speed: 126 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: 2B2QKXG7 temp: 32.9 C scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: Kingston model: SA400S37480G
    size: 447.13 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    tech: SSD serial: <filter> fw-rev: 1103 scheme: GPT
  ID-3: /dev/sdb maj-min: 8:16 vendor: Kingston model: SA400S37480G
    size: 447.13 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    tech: SSD serial: <filter> fw-rev: 1103 scheme: GPT
  ID-4: /dev/sdc maj-min: 8:32 vendor: Seagate model: ST2000DM008-2FR102
    size: 1.82 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
    tech: HDD rpm: 7200 serial: <filter> fw-rev: 0001 scheme: GPT
Partition:
  ID-1: / raw-size: 1.81 TiB size: 1.81 TiB (100.00%) used: 1.72 TiB (94.9%)
    fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 632 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-3: /home raw-size: 1.81 TiB size: 1.81 TiB (100.00%)
    used: 1.72 TiB (94.9%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-4: /var/log raw-size: 1.81 TiB size: 1.81 TiB (100.00%)
    used: 1.72 TiB (94.9%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default) zswap: yes
    compressor: zstd max-pool: 20%
  ID-1: swap-1 type: partition size: 8.8 GiB used: 139.7 MiB (1.6%)
    priority: -2 dev: /dev/nvme0n1p3 maj-min: 259:3
Sensors:
  System Temperatures: cpu: 43.2 C mobo: N/A
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 16 GiB note: est. available: 15.41 GiB used: 6.06 GiB (39.3%)
  Processes: 404 Power: uptime: 7h 21m states: freeze,mem,disk suspend: deep
    avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 6.11 GiB services: org_kde_powerdevil,
    power-profiles-daemon, upowerd Init: systemd v: 257 default: graphical
    tool: systemctl
  Packages: 1734 pm: pacman pkgs: 1675 libs: 489 tools: pamac pm: flatpak
    pkgs: 59 Compilers: gcc: 15.2.1 Shell: Zsh v: 5.9 running-in: yakuake
    inxi: 3.3.39

Hi @FiveEyeTea, and welcome!

Without more information, this can/will only result in speculation. And I’ll start by saying I think I know what’s going on.

I think your system is installed with a btrfs file system. And the default commands for disk-related stuff doesn’t work on it. Check out the Manjaro wiki as well as the Arch wiki for more information:


In order for us, or anyone for that matter, to be able to provide assistance, more information is necessary. To that end, please see:

inxi --filter --verbosity=8 --color=0

Please also note and heed: Forum Rules - Manjaro

Those with privacy concerns: note that when -z, or --filter is used, all personally identifiable information is filtered out from the resulting inxi output. :eyes:

Hope you manage!


:bangbang: Tip for legibility: :bangbang:

To provide terminal output, copy the text you wish to share, and paste it here, surrounded by three (3) backticks, a.k.a grave accents. Like this:

```
pasted text
```

Or three (3) tilde signs, like this:

~~~
pasted text
~~~

This will just cause it to be rendered like this:

Portaest sed
elementum
cursus nisl nisi
hendrerit ac quis
sit
adipiscing
tortor sit leo commodo.

Instead of like this:

Portaest sed elementum cursus nisl nisi hendrerit ac quis sit adipiscing tortor sit leo commodo.

Alternatively, paste the text you wish to format as terminal output, select all pasted text, and click the </> button on the taskbar. This will indent the whole pasted section with one TAB, causing it to render the same way as described above.

Thereby improving legibility and making it much easier for those trying to be of assistance.


:bangbang::bangbang: Additionally

If your language isn’t English, please prepend any and all terminal commands with LC_ALL=C. For example:

LC_ALL=C bluetoothctl

This will just cause the terminal output to be in English, making it easier to understand and debug.

Please edit your post accordingly.

Note that the above text is partially pre-prepared as a general introduction for new forum users. Please take the time to follow links given and learn how to create effective support requests and encourage quality responses.

btrfs has some insanely useful features - some of those are utilised with the Manjaro Summit edition.

One has to remember - if you add and remove a lot of files the very nature of btrfs will quickly make use of the entire disk.

What may make it even more confusing is the fact that the usual diskspace utilities like du, df and ncdu will not be accurate - the same goes for the GUI utilities like baobab - in fact they may be misleading.

You will often have to resort to maintenance of the file system - please see the above referenced wiki pages.

This kind of topic has become more frequent since btrfs became the default file system with the installer ISO.

btrfs is a fantastic file system for everyday use - but for a gamer or a developer or just someone which moves a lot of files around - ext4 is a much better choice.

2 Likes

Ah I can definitely provide system info. I would’ve done that up front but didn’t see it in the sticky for this particular forum. My bad, I’ll try to remember to post it up-front next time! Anyway, here you go, I’ll add this to the initial post as well.

System:
  Kernel: 6.17.1-0-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 15.2.1
    clocksource: tsc avail: hpet,acpi_pm
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-6.17-x86_64
    root=UUID=017fe6b5-f3b9-4f21-aa1b-b3dd38239676 rw rootflags=subvol=@ quiet
    splash resume=UUID=44b1b4d6-489f-4e18-8a61-a119a0eb01d6
    udev.log_priority=3
  Desktop: KDE Plasma v: 6.3.6 tk: Qt v: N/A info: frameworks v: 6.18.0
    wm: kwin_wayland with: krunner vt: 1 dm: SDDM Distro: Manjaro
    base: Arch Linux
Machine:
  Type: Desktop System: ASUS product: N/A v: N/A serial: <superuser required>
  Mobo: ASUSTeK model: PRIME B450M-A II v: Rev X.0x
    serial: <superuser required> part-nu: SKU uuid: <superuser required>
    UEFI: American Megatrends v: 3002 date: 03/10/2021
CPU:
  Info: model: AMD Ryzen 5 5600G with Radeon Graphics bits: 64 type: MT MCP
    arch: Zen 3 gen: 3 level: v3 note: check built: 2021-22
    process: TSMC n7 (7nm) family: 0x19 (25) model-id: 0x50 (80) stepping: 0
    microcode: 0xA500012
  Topology: cpus: 1x dies: 1 clusters: 1 cores: 6 threads: 12 tpc: 2
    smt: enabled cache: L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 3 MiB
    desc: 6x512 KiB L3: 16 MiB desc: 1x16 MiB
  Speed (MHz): avg: 1400 min/max: 1400/4200 boost: enabled scaling:
    driver: acpi-cpufreq governor: schedutil cores: 1: 1400 2: 1400 3: 1400
    4: 1400 5: 1400 6: 1400 7: 1400 8: 1400 9: 1400 10: 1400 11: 1400 12: 1400
    bogomips: 100803
  Flags-basic: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3
    svm
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: ghostwrite status: Not affected
  Type: indirect_target_selection status: Not affected
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: old_microcode status: Not affected
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed status: Not affected
  Type: spec_rstack_overflow mitigation: Safe RET
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Retpolines; IBPB: conditional; IBRS_FW;
    STIBP: always-on; RSB filling; PBRSB-eIBRS: Not affected; BHI: Not
    affected
  Type: srbds status: Not affected
  Type: tsa mitigation: Clear CPU buffers
  Type: tsx_async_abort status: Not affected
  Type: vmscape mitigation: IBPB before exit to userspace
Graphics:
  Device-1: NVIDIA GA104 [GeForce RTX 3070 Lite Hash Rate] vendor: Gigabyte
    driver: nvidia v: 580.82.09 alternate: nouveau,nova_core,nvidia_drm
    non-free: 550-580.xx+ status: current (as of 2025-08; EOL~2026-12-xx)
    arch: Ampere code: GAxxx process: TSMC n7 (7nm) built: 2020-2023 pcie:
    gen: 3 speed: 8 GT/s lanes: 16 link-max: gen: 4 speed: 16 GT/s ports:
    active: DP-1,HDMI-A-2 empty: DP-2,HDMI-A-1 bus-ID: 01:00.0
    chip-ID: 10de:2488 class-ID: 0300
  Display: wayland server: X.org v: 1.21.1.18 with: Xwayland v: 24.1.8
    compositor: kwin_wayland driver: X: loaded: nvidia
    gpu: nv_platform,nvidia,nvidia-nvswitch d-rect: 3520x1980 display-ID: 0
  Monitor-1: DP-1 pos: bottom-r model: HP W2072a serial: <filter> built: 2013
    res: mode: 1600x900 hz: 60 scale: 100% (1) dpi: 92 gamma: 1.2
    size: 443x249mm (17.44x9.8") diag: 508mm (20") ratio: 16:9 modes:
    max: 1600x900 min: 640x480
  Monitor-2: HDMI-A-2 pos: primary,top-left model: MSI MP251 E2
    serial: <filter> built: 2024 res: mode: 1920x1080 hz: 120 scale: 100% (1)
    dpi: 90 gamma: 1.2 size: 540x310mm (21.26x12.2") diag: 623mm (24.5")
    ratio: 16:9 modes: max: 1920x1080 min: 640x480
  API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia device: 2
    drv: swrast gbm: drv: nvidia surfaceless: drv: nvidia wayland: drv: nvidia
    x11: drv: nvidia inactive: device-1
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 580.82.09
    glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce RTX 3070/PCIe/SSE2
    memory: 7.81 GiB display-ID: :1.0
  API: Vulkan v: 1.4.321 layers: 8 device: 0 type: discrete-gpu
    name: NVIDIA GeForce RTX 3070 driver: nvidia v: 580.82.09
    device-ID: 10de:2488 surfaces: N/A
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
    de: kscreen-console,kscreen-doctor gpu: nvidia-settings,nvidia-smi
    wl: wayland-info x11: xdpyinfo, xprop, xrandr
Audio:
  Device-1: NVIDIA GA104 High Definition Audio vendor: Gigabyte
    driver: snd_hda_intel v: kernel alternate: nova_core pcie: gen: 3
    speed: 8 GT/s lanes: 16 link-max: gen: 4 speed: 16 GT/s bus-ID: 01:00.1
    chip-ID: 10de:228b class-ID: 0403
  Device-2: Advanced Micro Devices [AMD/ATI] Renoir/Cezanne HDMI/DP Audio
    vendor: ASUSTeK driver: snd_hda_intel v: kernel pcie: gen: 3 speed: 8 GT/s
    lanes: 16 bus-ID: 0a:00.1 chip-ID: 1002:1637 class-ID: 0403
  Device-3: Advanced Micro Devices [AMD] Family 17h/19h/1ah HD Audio
    vendor: ASUSTeK PRIME B450M-A driver: snd_hda_intel v: kernel pcie: gen: 3
    speed: 8 GT/s lanes: 16 bus-ID: 0a:00.6 chip-ID: 1022:15e3 class-ID: 0403
  API: ALSA v: k6.17.1-0-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: JACK v: 1.9.22 status: off tools: N/A
  Server-2: PipeWire v: 1.4.8 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
    vendor: ASUSTeK RTL8111H driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s
    lanes: 1 port: e000 bus-ID: 08:00.0 chip-ID: 10ec:8168 class-ID: 0200
  IF: enp8s0 state: down mac: <filter>
  Device-2: NetGear A6100 AC600 DB Wireless Adapter [Realtek RTL8811AU]
    driver: rtw88_8821au type: USB rev: 2.1 speed: 480 Mb/s lanes: 1 mode: 2.0
    bus-ID: 3-2:2 chip-ID: 0846:9052 class-ID: 0000 serial: <filter>
  IF: wlp10s0f3u2 state: up mac: <filter>
  Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
Drives:
  Local Storage: total: 4.51 TiB used: 1.72 TiB (38.1%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung
    model: SSD 990 EVO Plus 2TB size: 1.82 TiB block-size: physical: 512 B
    logical: 512 B speed: 126 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: 2B2QKXG7 temp: 32.9 C scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: Kingston model: SA400S37480G
    size: 447.13 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    tech: SSD serial: <filter> fw-rev: 1103 scheme: GPT
  ID-3: /dev/sdb maj-min: 8:16 vendor: Kingston model: SA400S37480G
    size: 447.13 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    tech: SSD serial: <filter> fw-rev: 1103 scheme: GPT
  ID-4: /dev/sdc maj-min: 8:32 vendor: Seagate model: ST2000DM008-2FR102
    size: 1.82 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
    tech: HDD rpm: 7200 serial: <filter> fw-rev: 0001 scheme: GPT
Partition:
  ID-1: / raw-size: 1.81 TiB size: 1.81 TiB (100.00%) used: 1.72 TiB (94.9%)
    fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 632 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-3: /home raw-size: 1.81 TiB size: 1.81 TiB (100.00%)
    used: 1.72 TiB (94.9%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-4: /var/log raw-size: 1.81 TiB size: 1.81 TiB (100.00%)
    used: 1.72 TiB (94.9%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default) zswap: yes
    compressor: zstd max-pool: 20%
  ID-1: swap-1 type: partition size: 8.8 GiB used: 139.7 MiB (1.6%)
    priority: -2 dev: /dev/nvme0n1p3 maj-min: 259:3
Sensors:
  System Temperatures: cpu: 43.2 C mobo: N/A
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 16 GiB note: est. available: 15.41 GiB used: 6.06 GiB (39.3%)
  Processes: 404 Power: uptime: 7h 21m states: freeze,mem,disk suspend: deep
    avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 6.11 GiB services: org_kde_powerdevil,
    power-profiles-daemon, upowerd Init: systemd v: 257 default: graphical
    tool: systemctl
  Packages: 1734 pm: pacman pkgs: 1675 libs: 489 tools: pamac pm: flatpak
    pkgs: 59 Compilers: gcc: 15.2.1 Shell: Zsh v: 5.9 running-in: yakuake
    inxi: 3.3.39

Ah man… yes, I am using btrfs because I liked the idea of the snapshots but I didn’t expect this to be such an issue… am I really going to have to reinstall? Because I was down for almost two weeks preparing to move from Windows to Manjaro, and even after install, it took me half a week to get everything up and running again, with another half a week to restore my backups. I’m not against using ext4 but I’m trying to avoid reinstalling as much as I possibly can. Is there anything else I can do?

From that info - you are using btrfs.

Fire up btrfs-assistant from the menu - see what it tells you - possibly run a balance.

2 Likes

I don’t have btrfs-assistant installed, but I’ll give it a look.

EDIT: Running a balance at the moment.

1 Like

Sorry to bump, wasn’t my intention but I had to ask further: I use Timeshift to set up backups, should I just use btrfs-manager with the Snapper integration instead? I have 7 Timeshift snapshots at the moment.

I can’t help with that, as I don’t use btrfs, but no doubt there are some people here that will be able to.

1 Like

Generally speaking - as timeshift is a system restore utility - you should only ever need one at any given point.

For user data - it is recommeded to use dedicated backup applications.

If we want to give meaningfull help about your space isssue, you may need to provide the output of
sudo btrfs du /

sudo btrfs fi us /

Doing balances may not improve the situation at all.
If one of these 7 Snapshots contains parts of your games, you may need to remove this snapshot.(via timeshift gui)

Only after this, btrfs will slowly release the occupied space.(Please read the sections about “snapshots” and about “out of space” in tne manjaro-wiki)

3 Likes

Gotcha, I actually spent the time since the last reply testing a few things. Decided to switch over to Rsync backups within Timeshift for now, since I’m able to put my steamapps folder into exclusions, but if I go back to using Btrfs backups in Timeshift, I’ll make sure it’s only making one per month.

I took a look at the wiki, it definitely cleared some stuff up. Y’all have a very good wiki to follow along with, it broke stuff down very well!

As for the command you showed, I tried to run it but it gave me an error:

btrfs: unknown token 'du'

Sorry (for the wrong syntax). Please provide:

sudo btrfs fi us /

gives ==> btrfs filesystem usage info for / (subvolume /@)

There is an simple way to exclude some (steamapps-)folder when making snapshots (with timeshift or snapper).

  1. Create an additional subvomume for btrfs (maybe call it ‘/@nosnap’)
  2. Temporary mount the subvolume ‘/@nosnap’ at /mnt
  3. Move everything from the (steamapps-)folder you want to exclude to /mnt
  4. Unmount /mnt
  5. Mount the subvolume ‘/@nosnap’ inside the filesystem at the final point (onto the (steamapps-)folder you want to exclude)
  6. Do not forget to insert this as a line into /etc/fstab

After this, everything stored inside this (steamapps-)folder (subvolume ‘/@nosnap’) will be excluded from system-snapshots of ‘/@’.

With timeshift (or snapper) you have an extra snapshot-plan for every dedicated subvolume. (I do snaphots hourly, daily, weekly and monthly for ‘/@’, ‘/@home’ ‘/@nosnap’ ‘/@…’ on separate plans. And some folders are linked into dedicated subvolumes to be excluded in one plan, and included in another)

:footprints: This is the way btrfs subvolumes work.

1 Like

You could also copy your entire /home directory heirarchy to a safe location (an ext4 formatted USB disk, for example) and copy it back after reinstalling with ext4 as your main file system.

In doing so your User configuration – configuration for the majority of your applications, and user data (mail, documents, etc) – are restored without loss of information.

Only the applications themselves would then neeed to be installed again – there are also ways to make this less of a chore. Linux being Linux, at least you don’t need to install every application individually (if using the command-line).

This is a practical option that many use.

When installing again, I’d suggest allocating a separate partition for /home which makes the process even less demanding should you ever need to reinstall again…

In that case, your data wouldn’t have to be moved (a backup is still suggested) because when reinstalling, you choose to not format the /home partition.

The “manual partitioning” method would need to be used via Calamares.

There are always ways to minimise the effort; and there is always someone who can suggest a procedure or point you toward a tutorial that might help; if not guide you through it completely.

It’s always your choice, but whatever you decide, help is only a few questions away. That’s what community is for.

Regards.

1 Like

No, not at all. Just delete your oldest snapshots — as @linux-aarhus says, you really only need to keep one — and then run a full balance operation. You may even need to try a few successive balances with different parameters to further tweak the results and free up the most space.

Note: On a large volume, the balance operation may take quite some time, as it runs in the background.

1 Like

I am a tad late for this, and I see even a btrfs balance was recommended for this.

Btrfs does delayed block reclaiming in the background. If you want to flush all transactions (deletes do take the longest on any CoW file system), you run the command:

sudo btrfs filesystem sync /mnt

So this does make me sad. Btrfs does require some extra knowledge, but I wouldn’t consider it advanced. At least just to use it day to day (just never letting it get full!) is pretty easy, but only then the fun advanced things can happen.

There is nothing wrong with putting the steamapps directory in it’s own volume.

e.g. /etc/fstab: UUID=XXXXXXX-XXXX /home/…/steamapps btrfs subvol=/@steamapps,defaults 0 0

It won’t be included your snapshots, and amass data through updates. When I want full on performance for VMs or databases, I will throw it on ext4 or else-wise (but just actual data). Still, the above, keeping it on btrfs, is much easier to manage.

I see all these drives! Btrfs with multiple devices is where this file system really shines.

You can just add devices to a single file btrfs system, if you don’t care about redundancy. (Or put mirrors and/or stripes in there for RAID.) You can send snapshots and differences of snapshots between different btrfs file systems. (That revolutionized the way I use and backup my system.)

The list goes on, but you don’t have to jump in that deep. Just start using it to start.


Do not get me started on Timeshift rsync vs backing up or sending btrfs snapshots. :smirking_face:

2 Likes

Hey, apologies for the delay in response, been reasonably busy the past few days.

I wasn’t aware of the ability to exclude things in btrfs backups, I was under the impression it wasn’t possible. If/when I switch back to btrfs backups, I’ll absolutely be returning to this! Right now, the Rsync backup option seems to be a temporary solution I can use for now.

That said, if I’m creating a new volume for my games, wouldn’t that be limited unless I manually increase the partition size as I install more? Sorry, like I said, I’m not new to Linux per se but I’m still not an expert by any means.

Yes, I had considered this option but both of my backup drives are pretty full, they wouldn’t have room for copying over the whole home folder. I do know how to use the CLI for installing software but haven’t done much with scripting and such, so I’d need to learn that and build up a list of software I want installed by default.

I’m pretty settled on using ext4 for whenever I next install Linux on my main PC. Learned my lesson on the use cases of btrfs haha

Yes, I did this and switched to Rsync backups for the time being. If I’m using Rsync backups in Timeshift, I know I’m not getting the btrfs benefits but that’s alright since I plan to use ext4 on any future installations (at least on this PC). I think I misunderstood the benefits of btrfs, especially for a PC.

As for balance, the wiki says not to run a full-balance on a machine with a swap file. I don’t have swap-to-file set up, but I do have a swap set up (without hibernation). Would that be inadvisable in that case too?