Stability of Web-Updating the Nano-BSD Build for Alix Boards

  • I noticed Web-Updating now "seem" to work. Since router stability is so very important, I always read back what was written to my CF card on my PC and do a checksum of it before being confident it's been properly written, because a few off-brand CF cards and a free one after rebate I had actually failed checksum checks afterwards even though they were successfully written, non were SanDisk, though.

    I'm wondering if it would be too much for a verification + checksumming routine be built into the upgrade script, especially for the Alix board as TOTAL DIS-ASSEMBLY is required to gain access to the CF card if something goes wrong.  If something goes wrong, it would use the good slice and perhaps copy the good slice back onto the upgrade-failed slice and ask the user to use/wait for a newer version of the update patch.  I and most others wouldn't mind the extra time it would entail as it is something that ensures reliability in updates.

    Thanks You!

  • In the context that the current 1.2.3 code base is beta+, I always upgrade to a different CF and put the old one aside in case there are problems.  I agree that any upgrade that requires a screwdriver is not fun.  I figured out today that web-based upgrade works if you manually download the image and "upload" it to the router through the web interface.  Auto-update is still broken it would appear, but the manual workaround will allow me to retire my screwdriver.  ;D

    If you write a disk image to a slice and then fsck and/or label the slice (what the pfSense upgrade logic does), you could get a different checksum than that of your original image.  The logic in the upgrade has you booting off the slice that got the upgrade.  The fall back is to boot from the known good slice.  How much effort is made to determine the success of the alternate slice upgrade could perhaps be a matter of debate.  IMHO, stability of the recent builds has been quite good.

    With ALIX, there's just no substitute for a serial connection at boot time.