Port 67 Pi-Hole / and DNS

Good questions, and yes, this behaviour fits filesystem damage after the power cut.

Can ZimaOS repair a damaged filesystem?

In practice: no, not reliably.

ZimaOS runs on an immutable / overlay filesystem. There is no supported way to run a proper fsck repair on the system disk from inside ZimaOS. If corruption happened, the system may boot but behave inconsistently, which is exactly what you are seeing.

If it could be repaired, would apps be lost?

  • System repair would not intentionally delete apps
  • But app data already damaged stays damaged
  • Docker containers may still fail even after a repair

So repair is not a clean reset.

What the Pi-hole screen means

“Starting, please wait” followed by “Service not available” means:

  • Container starts
  • Internal services fail (DNS, DB, web)
  • Usually caused by corrupted volumes or broken networking after crash

This is not a Pi-hole config mistake.

The honest solution

If power outages cause:

  • DNS failures
  • Apps stuck starting
  • Reinstalls not behaving cleanly

Then the only stable fix is:

  • Backup important data
  • Clean ZimaOS reinstall
  • Restore apps fresh

After that, use a small UPS. Without it, this will repeat.

You’re not doing anything wrong. This is a known limitation of embedded-style OSes when power is lost mid-write.

Quick integrity checks

1. Check kernel filesystem errors

SSH into ZimaOS and run:

dmesg | grep -i -E "ext4|i/o error|corrupt|overlay|fs error"

If you see messages like:

  • EXT4-fs error
  • I/O error
  • overlayfs: failed
  • buffer I/O error

That’s a strong indicator of filesystem damage from the power outage.


2. Check Docker state consistency

Run:

docker info | grep -i error

Then:

docker ps -a

Red flags:

  • Containers stuck in Created or Restarting
  • Containers that start but immediately exit
  • Errors about mounts or volumes not found

This points to broken Docker metadata or volumes.


3. Check the Pi-hole volume health

Run:

ls -la /DATA/AppData/pihole

Then:

ls -la /DATA/AppData/pihole/etc

If:

  • Folders randomly disappear
  • Permissions reset themselves
  • Files exist but services still fail

That’s not configuration, that’s storage inconsistency.


4. Check system overlay stability

Run:

mount | grep overlay

If overlay mounts exist but apps behave inconsistently after reboots, that confirms the base system is unstable.


How to interpret the result

  • Any filesystem or I/O errors > disk state is compromised
  • Docker behaving inconsistently after reboot > metadata corruption
  • Apps reinstall but still fail > confirms it’s not Pi-hole

At that point, reinstalling apps will never fully fix it.


Final truth (important)

ZimaOS has no supported in-place repair after filesystem corruption. Once this starts happening, the system may limp along but will keep breaking after reboots or power loss.

Oh man, starting all over again, that really sucks. Anyway, thanks.

Yeah, I know, that part really hurts. Unfortunately once a power cut causes filesystem or Docker metadata corruption, ZimaOS doesn’t have a clean in place repair path yet. At that stage it’s not Pi-hole anymore, it’s the underlying state.

The upside is that a fresh reinstall usually restores stability completely, especially if you add a small UPS going forward. If you want,

I tested it again, and the restart worked this time. That seems to be a good start. All apps loaded immediately.

However, the problem with Pi-hole still persists.

1 Like

For what it’s worth, I’ve reinstalled ZimaOS more times than I can count while learning and testing things. I broke it plenty of times myself before understanding where its limits are, especially around power loss and Docker state.

Once you know that boundary, it becomes much more predictable and stable. I also added proper power protection on my side (UPS + surge protection), and since then I haven’t seen this kind of corruption again after outages or reboots.

That’s actually good news. A clean restart with all apps loading immediately means ZimaOS itself is healthy again. So we can rule out OS or disk issues now.

At this point the problem is isolated to Pi-hole only, most likely leftover state from before the outage.

The next step is simple and targeted, not a full reinstall:

  1. Stop the Pi-hole container
  2. Delete only
    /media/ZimaOS-HD/AppData/pihole
  3. Start the Pi-hole container again and let it recreate everything

Do not change YAML, DNS flags, or permissions manually.

If Pi-hole works after that (especially after one more reboot), then it confirms this was just corrupted Pi-hole state, not a system issue.

I’ve attached some screenshots.

All the settings seem to be correct; I don’t understand why I’m getting a DNS error:

Fritzbox:

pihole.toml:

dnsmasq.conf:

So I don’t see any error now, or am I mistaken?

Nevertheless, the message appears when updating the blocklist.

[✗] DNS resolution is currently unavailable
[i] Waiting up to 120 seconds for DNS resolution… [✗] No DNS resolution available. Please contact support.

Terminal Message:
pihole | 2025-12-19 12:00:15.112 UTC [50/T94] WARNING: API: Gravity failed (key: server_error)

Pi-hole is broken because it’s trying to use itself as its upstream DNS. After the power outage, that creates a DNS loop and nothing can resolve.

The fix is simply this:

  1. Open Pi-hole > Settings > DNS
  2. Uncheck all existing upstream DNS servers
  3. Under Custom DNS servers, add one external IP
    1.1.1.1 (or 8.8.8.8)
  4. Save
  5. Restart the Pi-hole container

That’s it.

No blocklist issue, no permissions issue, no reinstall needed.

As long as Pi-hole is not pointing to its own IP for upstream DNS, the DNS error will disappear and updates will work again.

Unfortunately, it doesn’t work; the problem persists.

The settings were saved, but the DNS error is still there.

At this point Pi-hole itself is configured correctly. The DNS error is not coming from Pi-hole anymore.

After the power outage, Docker networking did not recover cleanly, so the Pi-hole container is running but cannot reach the network. That’s why changing DNS settings makes no difference.

The fix is simple and final:

  1. Uninstall Pi-hole
  2. Reboot ZimaOS
  3. Reinstall Pi-hole once
  4. Set upstream DNS to 1.1.1.1

Do not reuse the old container state without a reboot in between.

This is a Docker-after-power-loss issue, not a Pi-hole misconfiguration.

that doesn’t work, I’ll try an alternative. Maybe AdGuard.

I think we’re very close, but I’m missing one small detail to confirm the fix.

When you tried the reinstall, can you confirm exactly whether this sequence happened in this order?

  1. Pi-hole uninstalled
  2. ZimaOS fully rebooted
  3. Pi-hole installed again
  4. Tested before changing any DNS settings

The reason I ask is that after a power outage, Docker networking can stay broken until a full reboot clears it. If Pi-hole is reinstalled without that clean reset, it will look like nothing changes even though the config is correct.

If you’re open to it, we can fix this cleanly in one short pass without switching tools. Just want to make sure we’re solving the right layer.

No pressure either way, I just want to help you get a stable result.