Resolving "synology dsm insufficient system capacity for update"
Lately I’ve been having issues upgrading the DSM version on my Synology DS418 play. The updater refused to download/start the update with the error “Insufficient system capacity for update”.
The previous time I had this error I tried messing around with files on my root partition until the error disappeared. I can’t remember the details but it was a lot of trial and error, and in general shouldn’t be necessary.
But today I got the same error when trying to do another update. According to Synology support, the issue might be caused by third party packages that install files somewhere where they shouldn’t. I thought this might be because I installed docker, since that’s not “officially” supported but I really didn’t wanted to get rid of it (or remove it temporarily in the first place). And since it’s still sort of an official package, just not findable by default, I assumed it would behave properly.
Analyzing disk usage
The total space used on the root partition was near 2GB
root@/: # df -h Filesystem Size Used Avail Use% Mounted on /dev/md0 2.3G 1.9G 345M 85% / devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 236K 3.9G 1% /dev/shm tmpfs 3.9G 15M 3.8G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup tmpfs 3.9G 2.1M 3.9G 1% /tmp /dev/vg1000/lv 3.5T 965G 2.6T 28% /volume1
However, when summing up all directories in the root
root@/: # du -hs usr config dev etc etc.defaults initrd lost+found mnt opt root run tmp usr var var.defaults 996M usr 0 config 236K dev 3.6M etc 2.4M etc.defaults 4.0K initrd 4.0K lost+found 4.0K mnt 16K opt 28K root 15M run 2.1M tmp 145M var 5.8M var.defaults
Summing these values 996+1+4+3+15+2+145+6, I got 1.2GB at most. Over a gig, but not near 2 GB.
Then I realized I completely ignored .dotfiles
root@/: # du -hs .??* 677M .SynoUpgrade.tar 1.6M .log.junior 36K .old_patch_info 4.0K .rnd 32M .syno 20K .system_info
and I noticed a rather old
root@Sien:/ # ls -lh .SynoUpgrade.tar -rw-r--r-- 1 root root 681M Sep 13 2020 .SynoUpgrade.tar
So probably an old update that somehow didn’t get removed. Moving it to the storage partition I ended up with the expected 1.2GB of usage, and the install could continue :)
root@/: # df -h Filesystem Size Used Avail Use% Mounted on /dev/md0 2.3G 1.2G 1022M 54% / ...
Howver, after the update I noticed I was low on space again
root@/: # df -h Filesystem Size Used Avail Use% Mounted on /dev/md0 2.3G 1.7G 541M 76% / ...
Looking around for another install tarbal left behind, I quickly found a large file,
root@/usr/syno/synoinstall/: # ls -lh total 497M -rw-r--r-- 1 root root 513M Sep 11 10:26 space-preserve
but I suspect this file is actually meant to “claim” the space that’s required for upgrades so I’ll leave it for now and see if the error reappears during a later upgrade.
If you get the error “insufficient system capacity for update”, check if you have an old
.SynoUpdate.tar in your /