Upgrade fails due to "No space left on device"

System:

Operating System: Bazzite 41 based on Fedora Atomic
KDE Plasma Version: 6.3.3
KDE Frameworks Version: 6.12.0
Qt Version: 6.8.2
Kernel Version: 6.13.7-108.bazzite.fc41.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 5600X 6-Core Processor
Memory: 15.5 GiB of RAM
Graphics Processor: AMD Radeon RX 6700 XT
Product Name: X570S PG Riptide

I’m stuck with this issue I’m struggling to find a solution for googling about it so I’d like to ask for some help, please.

So apparently the rpm-ostree upgrade fails due to “No space left on device” despite my system still having 62G of free disk space. The problem is temporary fixed when I delete some big files but keeps on coming back eventually - confirmed to immediately cause it when I try another ujust upgrade.
/dev/sda3 465G 401G 62G 87% /sysroot

What’s interesting is that this “No space left on device” issue is also affecting my flatpaks, particularly Chrome and Steam:

Steam Logs

i386-linux-gnu-capsule-capture-libs: warning: cannot create symlink /proc/self/fd/18/lib/i386-linux-gnu/libGL.so.1: No space left on device
i386-linux-gnu-capsule-capture-libs: warning: cannot create symlink /proc/self/fd/18/lib/i386-linux-gnu/libunistring.so.5: No space left on device
i386-linux-gnu-capsule-capture-libs: warning: cannot create symlink /proc/self/fd/18/lib/i386-linux-gnu/libnss_compat.so.2: No space left on device
i386-linux-gnu-capsule-capture-libs: warning: cannot create symlink /proc/self/fd/18/lib/i386-linux-gnu/libnss_compat.so.2: No space left on device
i386-linux-gnu-capsule-capture-libs: warning: cannot create symlink /proc/self/fd/18/lib/i386-linux-gnu/libnss_compat.so.2: No space left on device
i386-linux-gnu-capsule-capture-libs: warning: cannot create symlink /proc/self/fd/18/lib/i386-linux-gnu/libnss_dns.so.2: No space left on device
i386-linux-gnu-capsule-capture-libs: warning: cannot create symlink /proc/self/fd/18/lib/i386-linux-gnu/libnss_dns.so.2: No space left on device
i386-linux-gnu-capsule-capture-libs: warning: cannot create symlink /proc/self/fd/18/lib/i386-linux-gnu/libnss_dns.so.2: No space left on device
i386-linux-gnu-capsule-capture-libs: warning: cannot create symlink /proc/self/fd/18/lib/i386-linux-gnu/libnss_files.so.2: No space left on device
i386-linux-gnu-capsule-capture-libs: warning: cannot create symlink /proc/self/fd/18/lib/i386-linux-gnu/libnss_files.so.2: No space left on device
i386-linux-gnu-capsule-capture-libs: warning: cannot create symlink /proc/self/fd/18/lib/i386-linux-gnu/libnss_files.so.2: No space left on device
pressure-vessel-wrap[23008]: E: Unable to create symlink "/var/home/ll/.local/share/Steam/ubuntu12_64/steam-runtime-sniper/var/tmp-DT4Z52//lib/ld-linux.so.2" -> "/run/host/usr/lib/ld-linux.so.2": No space left on device

Forgot to copy the flatpak Chrome logs but it was definitely complaining about having no space when I tried to run it from the terminal cause it refused to run using the GUI.

A reboot appears to temporarily fix the issue but it comes back shortly after. For now I’ve prevented rpm-ostree from automatically upgrading by adding a 0.0.0.0 hosts file entry for ghcr.io

Below are logs that I encounter when I use the ujust upgrade command:

── 20:55:33 - System update ────────────────────────────────────────────────────
Pulling manifest: ostree-image-signed:docker://ghcr.io/ublue-os/bazzite:stable
error: Preparing import: Fetching manifest: Writing cached pending manifest: Unable to write detached metadata: renameat(7e/tmp.5BVcNL, 7e/cd0af554328210e06aea8f051d4e2c38adb500d25de612125014d28795615e.commitmeta): No space left on device
System update failed: 
   0: Command failed: `/usr/bin/rpm-ostree upgrade`
   1: `/usr/bin/rpm-ostree` failed: exit status: 1

Location:
   src/steps/os/linux.rs:228
Retry? (y)es/(N)o/(s)hell/(q)uit

── 23:13:34 - System update ────────────────────────────────────────────────────
Pulling manifest: ostree-image-signed:docker://ghcr.io/ublue-os/bazzite:stable
Staging deployment... done
error: Staging deployment: Initializing deployment: Checking out deployment tree: Hardlinking bc/c06975f9552319ccf765680a88ca3f53afe40706108bf898b9c5f077a04654.file to QPdfOutputIntent: No space left on device
System update failed: 
   0: Command failed: `/usr/bin/rpm-ostree upgrade`
   1: `/usr/bin/rpm-ostree` failed: exit status: 1

Location:
   src/steps/os/linux.rs:228
Retry? (y)es/(N)o/(s)hell/(q)uit

What is the size of your boot partition?

And what is the output of rpm-ostree status

I too seem to have simliiar problem:
bazzite-gnome-asus-nvidia:stable (Bazzite 42)

df -h

Filesystem      Size  Used Avail Use% Mounted on
/dev/dm-0       930G  902G   22G  98% /sysroot
composefs        43M   43M     0 100% /
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs            12G   75M   12G   1% /dev/shm
efivarfs        128K   12K  112K  10% /sys/firmware/efi/efivars
tmpfs           4.7G  6.4M  4.7G   1% /run
tmpfs           1.0M     0  1.0M   0% /run/credentials/systemd-cryptsetup@luks\x2d1f645581\x2d1cd9\x2d4899\x2db886\x2d112f7a5c8f49.service
tmpfs           1.0M     0  1.0M   0% /run/credentials/systemd-journald.service
tmpfs            12G  592K   12G   1% /tmp
/dev/dm-0       930G  902G   22G  98% /var
/dev/nvme1n1p2  974M  297M  610M  33% /boot
/dev/dm-0       930G  902G   22G  98% /var/home
/dev/nvme1n1p1  599M   13M  587M   3% /boot/efi
tmpfs           1.0M     0  1.0M   0% /run/credentials/systemd-resolved.service
tmpfs           2.4G  256K  2.4G   1% /run/user/1000
dwarfs          759M  759M     0 100% /tmp/.mount_remp1168361715037699597

update

── 18:34:27 - System update ────────────────────────────────────────────────────
Pulling manifest: ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-gnome-asus-nvidia:stable
Importing: ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-gnome-asus-nvidia:stable (digest: sha256:00351b24d7263782891ed2483d239c80181781a66c91ba041e4bd20f8118273b)
ostree chunk layers already present: 70
ostree chunk layers needed: 2 (279.6 MB)
[0/2] Fetching ostree chunk 814edd17b0d88362243 (271.7 MB)… done
[1/2] Fetching ostree chunk 18b285e7e0ed5f4e004 (7.9 MB)… done
Checking out tree 81f18df… done
Inactive requests:
qemu (already provided by qemu-2:9.2.3-1.fc42.x86_64)
firewall-config (already provided by firewall-config-2.3.0-5.fc42.noarch)
libvirt (already provided by libvirt-11.0.0-1.fc42.x86_64)
libvirt-daemon-config-network (already provided by libvirt-daemon-config-network-11.0.0-1.fc42.x86_64)
Enabled rpm-md repositories: copr:copr.fedorainfracloud.org:bazzite-org:vk_hdr_layer copr:copr.fedorainfracloud.org:ilyaz:LACT copr:copr.fedorainfracloud.org:rodoma92:kde-cdemu-manager copr:copr.fedorainfracloud.org:rodoma92:rmlint copr:copr.fedorainfracloud.org:rok:cdemu copr:copr.fedorainfracloud.org:ublue-os:packages charm fedora-rar fedora-steam updates fedora tailscale-stable terra-extras terra google-chrome rpmfusion-nonfree-nvidia-driver rpmfusion-nonfree-steam copr:copr.fedorainfracloud.org:phracek:PyCharm copr:copr.fedorainfracloud.org:nucleo:gocryptfs copr:copr.fedorainfracloud.org:bazzite-org:vk_hdr_layer:ml updates-archive
Updating metadata for ‘copr:copr.fedorainfracloud.org:bazzite-org:vk_hdr_layer’… done
Updating metadata for ‘copr:copr.fedorainfracloud.org:ilyaz:LACT’… done
Updating metadata for ‘copr:copr.fedorainfracloud.org:rodoma92:kde-cdemu-manager’… done
Updating metadata for ‘copr:copr.fedorainfracloud.org:rodoma92:rmlint’… done
Updating metadata for ‘copr:copr.fedorainfracloud.org:rok:cdemu’… done
Updating metadata for ‘copr:copr.fedorainfracloud.org:ublue-os:packages’… done
Updating metadata for ‘charm’… done
Updating metadata for ‘fedora-rar’… done
Updating metadata for ‘fedora-steam’… done
Updating metadata for ‘updates’… done
Updating metadata for ‘fedora’… done
Updating metadata for ‘tailscale-stable’… done
Updating metadata for ‘terra-extras’… done
Updating metadata for ‘terra’… done
Updating metadata for ‘google-chrome’… done
Updating metadata for ‘rpmfusion-nonfree-nvidia-driver’… done
Updating metadata for ‘rpmfusion-nonfree-steam’… done
Updating metadata for ‘copr:copr.fedorainfracloud.org:phracek:PyCharm’… done
Updating metadata for ‘copr:copr.fedorainfracloud.org:nucleo:gocryptfs’… done
Updating metadata for ‘copr:copr.fedorainfracloud.org:bazzite-org:vk_hdr_layer:ml’… done
Updating metadata for ‘updates-archive’… done
Importing rpm-md… done
rpm-md repo ‘copr:copr.fedorainfracloud.org:bazzite-org:vk_hdr_layer’; generated: 2025-03-24T06:15:22Z solvables: 4
rpm-md repo ‘copr:copr.fedorainfracloud.org:ilyaz:LACT’; generated: 2025-04-20T06:38:32Z solvables: 12
rpm-md repo ‘copr:copr.fedorainfracloud.org:rodoma92:kde-cdemu-manager’; generated: 2025-02-03T18:36:13Z solvables: 8
rpm-md repo ‘copr:copr.fedorainfracloud.org:rodoma92:rmlint’; generated: 2025-02-03T19:26:47Z solvables: 4
rpm-md repo ‘copr:copr.fedorainfracloud.org:rok:cdemu’; generated: 2025-03-30T05:57:52Z solvables: 33
rpm-md repo ‘copr:copr.fedorainfracloud.org:ublue-os:packages’; generated: 2025-04-29T03:45:37Z solvables: 388
rpm-md repo ‘charm’; generated: 2025-04-01T23:42:24Z solvables: 553
rpm-md repo ‘fedora-rar’; generated: 2025-03-11T08:10:23Z solvables: 1
rpm-md repo ‘fedora-steam’; generated: 2025-03-20T08:34:03Z solvables: 9
rpm-md repo ‘updates’; generated: 2025-04-29T01:04:57Z solvables: 8462
rpm-md repo ‘fedora’; generated: 2025-04-11T05:17:07Z solvables: 76879
rpm-md repo ‘tailscale-stable’; generated: 2025-04-24T18:51:35Z solvables: 120
rpm-md repo ‘terra-extras’; generated: 2025-04-29T17:09:48Z solvables: 159
rpm-md repo ‘terra’; generated: 2025-04-29T22:24:56Z solvables: 2134
rpm-md repo ‘google-chrome’; generated: 2025-04-29T18:11:30Z solvables: 4
rpm-md repo ‘rpmfusion-nonfree-nvidia-driver’; generated: 2025-04-25T10:42:21Z solvables: 17
rpm-md repo ‘rpmfusion-nonfree-steam’; generated: 2025-04-18T08:19:16Z solvables: 1
rpm-md repo ‘copr:copr.fedorainfracloud.org:phracek:PyCharm’; generated: 2025-04-24T11:58:20Z solvables: 33
rpm-md repo ‘copr:copr.fedorainfracloud.org:nucleo:gocryptfs’; generated: 2025-04-22T05:19:39Z solvables: 35
rpm-md repo ‘copr:copr.fedorainfracloud.org:bazzite-org:vk_hdr_layer:ml’; generated: 2025-03-24T06:15:23Z solvables: 4
rpm-md repo ‘updates-archive’; generated: 2025-04-29T20:50:10Z solvables: 8040
Resolving dependencies… done
Will download: 9 packages (15.9 MB)
Downloading from ‘updates’… done
Downloading from ‘updates-archive’… done
Importing packages… done
error: importing RPMs: Importing package ‘python3-numpy’: Importing archive: ostree-tar: Failed to handle file: ostree-tar: Failed to import file: Writing content object: min-free-space-percent ‘3%’ would be exceeded, at least 9.1 MB requested
System update failed:
0: Command failed: /usr/sbin/rpm-ostree upgrade
1: /usr/sbin/rpm-ostree failed: exit status: 1

Location:
src/steps/os/linux.rs:228
Retry? (y)es/(N)o/(s)hell/(q)uit

rpm-ostree status:

State: idle
Deployments:
● ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-gnome-asus-nvidia:stable
Digest: sha256:238953190bdbc7a3d1c39e5c174f80358337abcea6e3b4483c8d35cf6683c942
Version: 42.20250417 (2025-04-17T07:39:15Z)
LayeredPackages: adb alsa-lib-devel ansible bridge-utils cmake freerdp gocryptfs helm htop iotop libguestfs-tools mc nmon pandoc patchelf pipx powerline-fonts python3-wheel rclone seabios srm sshuttle strace tesseract-devel
virt-install virt-manager virt-top virt-v2v virt-viewer w3m wipe wol xclip xpra

Your /boot has 297MB free.

Do you have pinned images? Which image are you on?

The size of my boot partition is 465.8G / the whole 512 GB SSD

└─sda3        8:3    0 464.2G  0 part /var/home
                                      /var
                                      /sysroot/ostree/deploy/default/var
                                      /usr
                                      /etc
                                      /
                                      /sysroot

Here’s the output of rpm-ostree status

rpm-ostree status
State: idle
Deployments:
● (error fetching image metadata)
                Timestamp: 2025-03-31T05:06:20Z

  ostree-image-signed:docker://ghcr.io/ublue-os/bazzite:stable
                   Digest: sha256:c1056a20b97e2f74e97c3648026a9c276654643cca57bdd32c5ec34759b1bf12
                  Version: 41.20250301.1 (2025-03-03T05:05:01Z)

  ostree-image-signed:docker://ghcr.io/ublue-os/bazzite:stable
                   Digest: sha256:27a2080fa23ac2152ebaa61bbd3f504fc60e57a7f29f6e7ea1f77f8842a7b969
                  Version: 40.20240921.1 (2024-09-22T12:36:54Z)
                   Pinned: yes

/boot for you would likely be /dev/sda2. /dev/sda3 is your root partition.

Oh wait, yeah I do have pinned images.
Do I move the pin to the new one? iirc I pinned that because I originally did not have an intention to upgrade, and eventually I forgot about the pin.

/boot for you would likely be /dev/sda2. /dev/sda3 is your root partition.

Oh right, here’s my boot:

/dev/sda2       974M  628M  279M  70% /boot

Yepp. Likely the issue is that you have that pinned image. It is over 6 months old and likely doesn’t share anything with your other images at this point.

But you too have less than 30% available on /boot and likely the newest image just doesn’t fit.

Any thoughts on my similiar error?

Man, many thanks! I’ve unpinned the image which will hopefully fix the issue. Can’t reboot right now but I’ll see a few hours from now.

iirc I must’ve manually partitioned which caused me to have this size of /boot
What’s the recommended size for the /boot partition to serve as my reference in the future?

That’s a common error I encounter when my / partition is almost out of space - 97% used disk space and above.

Go delete/move some large files until you hit like 94% or lower then try it again.

likely the same issue. You also have less than 300 MB available in /boot

Turns out, recommended size of /boot is 1GB which is the installer’s default according to discussion in this thread:

In my case, looks like /boot has 610M free.

How much free space does your / have?
Do specify the percentage of Use% as shown when using the command:

df -h

df -h:

Filesystem      Size  Used Avail Use% Mounted on
/dev/dm-0       930G  902G   22G  98% /sysroot
composefs        43M   43M     0 100% /
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs            12G   75M   12G   1% /dev/shm
efivarfs        128K   12K  112K  10% /sys/firmware/efi/efivars
tmpfs           4.7G  6.4M  4.7G   1% /run
tmpfs           1.0M     0  1.0M   0% /run/credentials/systemd-cryptsetup@luks\x2d1f645581\x2d1cd9\x2d4899\x2db886\x2d112f7a5c8f49.service
tmpfs           1.0M     0  1.0M   0% /run/credentials/systemd-journald.service
tmpfs            12G  592K   12G   1% /tmp
/dev/dm-0       930G  902G   22G  98% /var
/dev/nvme1n1p2  974M  297M  610M  33% /boot
/dev/dm-0       930G  902G   22G  98% /var/home
/dev/nvme1n1p1  599M   13M  587M   3% /boot/efi
tmpfs           1.0M     0  1.0M   0% /run/credentials/systemd-resolved.service
tmpfs           2.4G  256K  2.4G   1% /run/user/1000
dwarfs          759M  759M     0 100% /tmp/.mount_remp1168361715037699597

Your /var is 98% full

It has 22G free, How many gigs would be needed for an rpm-ostree upgrade?

Your error message says must have a minimum of 3% free. You have 2% free.

I don’t think this is an amount of free space but a relative check.

Additionally. Btrfs like other CoW filesystems doesn’t behave well when almost completely full.