CCR2004 upgrade failed “free XXX kB disk space for a (null)upgrade” – working upgrade path to 7.21

Hi all,

I want to share a working upgrade path for CCR2004 routers that fail upgrading from older RouterOS 7 versions with this error:

upgrade failed, free XXX kB disk space for a (null)upgrade
(example: free 297 kB)

Important: This is not a normal “delete files / remove packages” issue.

If you start from RouterOS older than 7.16.2, the upgrade to newer versions (7.20 / 7.21 etc.) can fail because the router cannot stage/unpack the newer RouterOS image in the current NAND layout.

Working upgrade path (confirmed on CCR2004):

  1. Upgrade to 7.16.2

  2. Then upgrade to 7.18.2

  3. Then upgrade to 7.21

After passing through 7.16.2 → 7.18.2, upgrading to 7.21 works normally.

So if you are on something like 7.12.x / 7.13 / 7.14 / 7.15, don’t try to jump directly to 7.21, use this path instead.

Hope this helps others who hit the same issue while upgrading CCR2004.

Request / question to MikroTik developers

This issue is very confusing for users, because the router only shows the “disk space / (null)upgrade” error, but does not explain the real reason or the required upgrade path.

Could MikroTik please improve this by adding:

1) Ability to upgrade directly to a specific RouterOS version from the Package Manager / update system

(e.g. select version 7.16.2 / 7.18.2 / 7.21 instead of only “stable/testing/…”)

2) Include the NAND resize / migration script automatically in all newer RouterOS builds

Before unpacking the RouterOS upgrade package:

  • check the current NAND partition/layout size

  • if it’s too small, run the resize/migration step automatically

  • show a clear message that a NAND layout upgrade/migration is needed

3) Built-in upgrade scheduler (with optional RouterBOARD firmware upgrade)

Please add a built-in scheduling option like:

  • “install updates daily at 01:00

  • optionally include /system/routerboard/upgrade + reboot
    So admins don’t need to create a manual scheduler script each time just to do safe automatic upgrades during a maintenance window.


Hope this helps others!

1 Like

Doesn't work for me

went back to 7.13.4 -> 7.16.2 -> 7.18.2 ->(tried) 7.21, fails with

log: ""upgrade failed, free 165 kB of kernel disk space""

Hmm. Officially the change to increase the reserved space for the kernel is in 7.18. The only thing I can imagine is that maybe an extra reboot would be needed?

Netinstall?

Following up, no ammount of reboots(keeping the same version), nor going back to 7.18 -> 7.18.1 -> 7.18.2 -> 7.{19,20,21} worked for me

Those will have to be removed from production (to allow for a netinstall)

I was stuck on 7.16.2, receiving an error like yours.

Try doing /system/routerboard/upgrade prior to upgrading to 7.18.2. It worked for me.

Just upgraded to 7.21.1 with no problems.

Thanks RcRaCk2k!