Fix a failed update

The issue I am facing:

I have attempted an update via pihole -up, and it failed at the end saying my Ubuntu 16.04 is not supported.
However, it left the pi.hole (and the system?) in a broken state:

  • the pi.hole web interface is extremely sluggish
  • the pi.hole web interface shows N/A for all component versions (but the web interface has changed)
  • the whole system is sometimes sluggish running apt-get update and apt-show-versions -i indefinitely

Details about my system:
Ubuntu 16.04
Previous PI Hole version: unknown
Current PI Hole versions:
Pi-hole core v5.17.3
Pi-hole Web Admin v5.21
FTL: N/A

What I have changed since installing Pi-hole:
Regular updates, but the latest Pi-hole update broke Pi-hole

At this point, I would just like to revert. My system was working fine, but wanted to keep up with the updates.

  1. How do I determine the previous version I was running so I can revert back to it?
  2. If my system is no longer supported, why did the upgrade even begin? It should have checked the OS version before upgrading any components and leaving a mess.

FWIW, this is the output of pihole -up

  [i] Checking for updates...
  [i] Pi-hole Core:     update available
  [i] Web Interface:    update available
  [i] FTL:              update available

  [i] Pi-hole core files out of date, updating local repo.
  [✓] Check for existing repository in /etc/.pihole
  [i] Update repo in /etc/.pihole...HEAD is now at 19bfa08 Pi-hole core v5.17.3 (#5520)
  [✓] Update repo in /etc/.pihole

  [i] If you had made any changes in '/etc/.pihole/', they have been stashed using 'git stash'

  [i] Pi-hole Web Admin files out of date, updating local repo.
  [✓] Check for existing repository in /var/www/html/admin
  [i] Update repo in /var/www/html/admin...HEAD is now at be05b0f v5.21 (#2860)
  [✓] Update repo in /var/www/html/admin

  [i] If you had made any changes in '/var/www/html/admin/', they have been stashed using 'git stash'

  [i] FTL out of date, it will be updated by the installer.

  [✓] Root user check

        .;;,.
        .ccccc:,.
         :cccclll:.      ..,,
          :ccccclll.   ;ooodc
           'ccll:;ll .oooodc
             .;cll.;;looo:.
                 .. ','.
                .',,,,,,'.
              .',,,,,,,,,,.
            .',,,,,,,,,,,,....
          ....''',,,,,,,'.......
        .........  ....  .........
        ..........      ..........
        ..........      ..........
        .........  ....  .........
          ........,,,,,,,'......
            ....',,,,,,,,,,,,.
               .',,,,,,,,,'.
                .',,,,,,'.
                  ..'''.

  [i] SELinux not detected
  [✓] Update local cache of available packages
  [i] Existing PHP installation detected : PHP version 7.0.33-0ubuntu0.16.04.16

  [✓] Checking apt-get for upgraded packages... 6 updates available
  [i] It is recommended to update your OS after installing the Pi-hole!

  [i] Checking for / installing Required dependencies for OS Check...
  [✓] Checking for grep
  [✓] Checking for dnsutils

  [✗] Unsupported OS detected: Ubuntu 16.04
      If you are seeing this message and you do have a supported OS, please contact support.

      https://docs.pi-hole.net/main/prerequisites/#supported-operating-systems

      If you wish to attempt to continue anyway, you can try one of the following commands to skip this check:

      e.g: If you are seeing this message on a fresh install, you can run:
             curl -sSL https://install.pi-hole.net | sudo PIHOLE_SKIP_OS_CHECK=true bash

           If you are seeing this message after having run pihole -up:
             sudo PIHOLE_SKIP_OS_CHECK=true pihole -r
           (In this case, your previous run of pihole -up will have already updated the local repository)

      It is possible that the installation will still fail at this stage due to an unsupported configuration.
      If that is the case, you can feel free to ask the community on Discourse with the Community Help category:
      https://discourse.pi-hole.net/c/bugs-problems-issues/community-help/


  Unable to complete update, please contact Pi-hole Support

I ran sudo PIHOLE_SKIP_OS_CHECK=true pihole -r a couple days later, but couldn't capture the output because the console got all messed up. There was a prompt to fix or reset the configuration and I chose fix.
Now lighttpd fails to start.:

Mar 09 23:38:23 server systemd[1]: Starting Lighttpd Daemon...
Mar 09 23:38:24 server lighttpd[10074]: 2024-03-09 23:38:24: (configfile.c.1003) opening configfile  /etc/lighttpd/external*.conf failed: No such file or directory
Mar 09 23:38:24 server lighttpd[10074]: 2024-03-09 23:38:24: (configfile.c.957) source: /etc/lighttpd/lighttpd.conf line: 72 pos: 14 parser failed somehow near here: (EOL)
Mar 09 23:38:24 server systemd[1]: lighttpd.service: Control process exited, code=exited status=255
Mar 09 23:38:24 server systemd[1]: Failed to start Lighttpd Daemon.
Mar 09 23:38:24 server systemd[1]: lighttpd.service: Unit entered failed state.
Mar 09 23:38:24 server systemd[1]: lighttpd.service: Failed with result 'exit-code'.

Ubuntu 16.04 is based on Debian Stretch. Pi-hole is incompatible with this version since mid-2022. Your Pi-hole must be a very old version which was compatible with this OS. Overriding the OS check means, I think, that some incompatible components may now be present.

The ideal approach would therefore be to move to a supported current version of the OS. Do you have a current Teleporter backup you can use with a new install to restore your lists, etc? This can be created via Settings > Teleporter > Backup or with the command pihole -a -t.

However, since your machine is in this state where the web server won't load, if the command line doesn't work, a dev may be able to advise on how to get the web server running again so you can perform a backup.

Thanks for confirming there is no way to rollback a PI-Hole update or install an older version.
I'm migrating to use Pi-hole in an Alpine Linux Container on Proxmox. This will make it easier do to snapshots and rollback.

See this link for a list of supported OS (Pi OS Bookworm is also supported).

Alpine Linux isn't supported. You might find a third-party install script, but there's still no confidence that an update to either the OS or Pi-hole won't break it.

For something as core as your DNS I would honestly just deploy a supported Linux into the container and use that for Pi-hole.

Thanks Chris. That's exactly what I'll do. A Debian 12 container isn't much heavier than Alpine, and having a supported OS is much more important for keeping up with updates.

1 Like

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.