Upgrading X86 best practice


I've been running OpenWrt virtualized on proxmox for a while now and I would like to update from .4 to the most recent version .5.
When using the WebGUI it fails and then I thought: what the heck, just flash in via command line and it turns out my file system is too small even to just upload the file which is around 270 MiB uncompressed img. My root partition only has 218 MiB available so no wonder updating via WebGUI also fails.

Can someone tell me what's best practice here?
I once updated by making a backup, install freshly and restore my config. That method had a few caveats since I'm running the WebGUI on https only with ACME and after restoring the WebGUI is completely broken. In the end I had to install all the missing packages by hand for the system to work properly again. There must be a better way.
Then I tried to extend the ext4 file system live which didn't work. Luckily I had a image backup in Proxmox which I then restored.
Isn't there an easy way to make the filesystem bigger without having to boot a secondary OS and grow the FS with gparted or alike?
What is best practice to handle updates for X86 in general?

Thank you a lot.

sysupgrade -b /tmp/testbackup.tar.gz; ls -lah /tmp/testbackup.tar.gz
  • free space on disk is not relevant... only total space...
  • upload goes to tmp...

create new image with imagebuilder with packages already installed and larger rootfs size

Ok, I managed to update, thank you.
Now all my additionally installed packages are gone once again. What can I do in the future to prevent this? Is the only option to build the image myself via the image builder?
I used to build my own images with buildroot. I really like that environment. But this is no valid method for production systems since the packages become unavailable some day via opkg.

what do you mean by this? select the packages you need in the buildroot... then it does not matter if they become unavailable at a later date...

if they are not available 'now'... then you are not checking out the correct source version... or you need to handle that eventuality if it's a deliberate version jump...

you can also use 'sysupgrade -k' and include a script@/etc/uci-defaults(rc.local or late init.d are probably a better place for such an opertation though) that checks for /etc/backup/installed_packages.txt and then re-installs... or search the forum/wiki for the various other methods to handle package re-installation...

When I created my own images with buildroot I chose the packages needed in menuconfig process.
After using that very system for some time I also needed additional packages which I intended to install via opkg which failed because of some 404 error. IIRC it was because of some version directory name that diverges over time.

1 Like

Either do that or use something like

i never tried that script myself but sounds straightforward