Upgrading to 24.10.04 from 24.10.0

I’m using overlay filesystem with nvme mounted as storage for all apps. So i don’t want to lose settings or apps post upgrade what is the upgrade path ?

What hardware ubus call system board?

Nano Pi R6C



root@OpenWrt:~# df -T
Filesystem           Type       1K-blocks      Used Available Use% Mounted on
/dev/root            squashfs       12800     12800         0 100% /rom
tmpfs                tmpfs        4072092       428   4071664   0% /tmp
/dev/nvme0n1         ext4       239254324   4945704 222082308   2% /overlay
overlayfs:/overlay   overlay    239254324   4945704 222082308   2% /
tmpfs                tmpfs            512         0       512   0% /dev
root@OpenWrt:~# mount
/dev/root on /rom type squashfs (ro,relatime,errors=continue)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime)
/dev/nvme0n1 on /overlay type ext4 (rw,relatime)
overlayfs:/overlay on / type overlay (rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work)
tmpfs on /dev type tmpfs (rw,nosuid,noexec,noatime,size=512k,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,noatime,mode=600,ptmxmode=000)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,noatime)
bpffs on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,noatime,mode=700)
root@OpenWrt:~# ubus call system board
{
        "kernel": "6.6.73",
        "hostname": "OpenWrt",
        "system": "ARMv8 Processor rev 0",
        "model": "FriendlyElec NanoPi R6C",
        "board_name": "friendlyarm,nanopi-r6c",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "24.10.0",
                "revision": "r28427-6df0e3d02a",
                "target": "rockchip/armv8",
                "description": "OpenWrt 24.10.0 r28427-6df0e3d02a",
                "builddate": "1738624177"
        }
}

sysupgrade (including owut) will reset (WIPE ALL YOU GOT IN) /overlay and restore what you can see in downloaded config backup.

Do you need help with it?

So i just need to run owut upgrade and it will take care of preserving packages and upgrade and restore ?

Where is this located or do i have to create it

Im just concerned whether i will lose packages installed in nvme on /overlay

Got owut fixed but now while downloading its failing due to disk space but i have enough space

Downloading http://downloads.openwrt.org/releases/24.10.4/packages/aarch64_generic/telephony/Packages.sig
Signature check passed.
Downloading file:packages/Packages
Updated list of available packages in /builder/build_dir/target-aarch64_generic_musl/root-rockchip/../../../../builder/dl/imagebuilder
Downloading file:packages/Packages.sig
Signature check passed.
/builder/build_dir/target-aarch64_generic_musl/root-rockchip/etc/init.d/ntpdate: line 7: uci: command not found
./etc/init.d/ntpdate: line 7: uci: command not found
Pseudo file "dev" exists in source filesystem "/builder/build_dir/target-aarch64_generic_musl/root-rockchip/dev".
Ignoring, exclude it (-e/-ef) to override.
error: ext4_allocate_best_fit_partial: failed to allocate 426 blocks, out of space?
make[3]: *** [/builder/include/image.mk:399: /builder/build_dir/target-aarch64_generic_musl/linux-rockchip_armv8/root.ext4] Error 1
make[2]: *** [Makefile:268: build_image] Error 2
make[1]: *** [Makefile:163: _call_image] Error 2
make: *** [Makefile:337: image] Error 2

Owut includes all packages but no data but cloud server does not work now.

Config backup is in luci/system/firmware

You can see the list with sysupgrade -l (small L)

So there is no solution even with owut to keep packages and config intact unless manually copied and installed?

What do you mean by cloud server is not working

Openwrt sysupgrade image generating server has full disk. Not your fault.

It is supposed to generate new version squashfs image with all previously installed packages upgraded, then it can even be downloaded and used by normal sysupgrade or uploaded via web and all previous configuration restored.

If you have eg created database in /overlay then it will be wiped out - backup that and add extra partition and mount it for data.

As per the docs it does not says it will wipe the nvme ? Should it not remount the drive after second reboot

It will re-crete /overlay file system, on rotational disks, usb disks, firewire disks, whatever.
If not obvious extroot is not kept by sysupgrade.

If this is for owut its Really poor. Dont want to lose things so will stay on same version.

No idea what you are talking about. sysupgrade does this for dozen years. You can always have extra disks/partitions that go untouched.

Sucks when free stuff suck, you're more than welcome to write something better.

1 Like

I meant wouldnt this be a basic thing in upgrade.

Openwrt is a distribution intended to be used by "developers" or power users.
Sure basic users can use it too but should not expect it to be simple user friendly.
If you choose to configure and adjust your system then you need to take care of it.
For instance you can use the image builder (the tool behind the scenes of owut and friends) and declare all packages and configuration and what not, and prepare a ready to use image on your own.

Take the average router, there is no extra storage, it upgrades RO system image, wipes other 10MB rootfs. You can start data partition on NVME like 2GB from the start, mount it somewhere and enjoy, Like USB drives, just that no USB in the way. It is not documented loud enough that extroot excludes any subsequent sysupgrades. We are still offering you help, but we can give up if you are hapy that your router sux.

Im trying to build image for my device and it keeps failing since last night 


Downloading http://downloads.openwrt.org/releases/24.10.4/packages/aarch64_generic/telephony/Packages.gz
Updated list of available packages in /builder/build_dir/target-aarch64_generic_musl/root-rockchip/../../../../builder/dl/openwrt_telephony
Downloading http://downloads.openwrt.org/releases/24.10.4/packages/aarch64_generic/telephony/Packages.sig
Signature check passed.
Downloading file:packages/Packages
Updated list of available packages in /builder/build_dir/target-aarch64_generic_musl/root-rockchip/../../../../builder/dl/imagebuilder
Downloading file:packages/Packages.sig
Signature check passed.
/builder/build_dir/target-aarch64_generic_musl/root-rockchip/etc/init.d/ntpdate: line 7: uci: command not found
./etc/init.d/ntpdate: line 7: uci: command not found
Pseudo file "dev" exists in source filesystem "/builder/build_dir/target-aarch64_generic_musl/root-rockchip/dev".
Ignoring, exclude it (-e/-ef) to override.
error: ext4_allocate_best_fit_partial: failed to allocate 526 blocks, out of space?
make[3]: *** [/builder/include/image.mk:399: /builder/build_dir/target-aarch64_generic_musl/linux-rockchip_armv8/root.ext4] Error 1
make[2]: *** [Makefile:268: build_image] Error 2
make[1]: *** [Makefile:163: _call_image] Error 2
make: *** [Makefile:337: image] Error 2

Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/rq/worker.py", line 1659, in perform_job
    return_value = job.perform()
                   ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/rq/job.py", line 1318, in perform
    self._result = self._execute()
                   ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/rq/job.py", line 1376, in _execute
    result = self.func(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/asu/build.py", line 437, in build
    result = _build(build_request, job)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/asu/build.py", line 301, in _build
    container.kill()
  File "/usr/local/lib/python3.12/site-packages/podman/domain/containers.py", line 290, in kill
    response.raise_for_status()
  File "/usr/local/lib/python3.12/site-packages/podman/api/client.py", line 82, in raise_for_status
    raise APIError(cause, response=self._response, explanation=message)
podman.errors.exceptions.APIError: 409 Client Error: Conflict (can only kill running containers. 8ac4baa9987502dea93810c053e6de6c9d08cbed7db2186e877259fe33bfaec9 is in state stopped: container state improper

Did you followed https://openwrt.org/docs/guide-user/additional-software/imagebuilder ?