From 098d38e1d6d89ea505e1639be921c7401d051e4a Mon Sep 17 00:00:00 2001 From: Gitea Actions Date: Fri, 22 Aug 2025 19:12:29 +0000 Subject: [PATCH] Auto-update blog content from Obsidian: 2025-08-22 19:12:29 --- content/post/opnsense-crash.md | 189 +++++++++++++++++++++--- content/post/random-post.md | 2 +- static/img/opnsense-download-backup.png | Bin 0 -> 45594 bytes 3 files changed, 167 insertions(+), 24 deletions(-) create mode 100644 static/img/opnsense-download-backup.png diff --git a/content/post/opnsense-crash.md b/content/post/opnsense-crash.md index 571c7d5..dfb5d45 100644 --- a/content/post/opnsense-crash.md +++ b/content/post/opnsense-crash.md @@ -11,66 +11,209 @@ categories: This week, I experienced my first real problem on my homelab, which caused my whole home network to go down. -My OPNsense router crashed and after trying to recover , I finally had to reinstall it from scratch and restore almost all the configuration, thanks to a single XML file. +My OPNsense router crashed and after trying to recover , I finally had to reinstall it from scratch and restore almost all the configuration, thanks to a single XML file. In that story, I will tell you what happened, what I did to recover and what I shouldn't have done. -In that story, I will try to explain how +This kind of exercise is the worst thing you want to happen because it's never funny to have everything go boom, but this is, by far, the best way to learn. ## The Calm Before the Storm -My OPNsense setup before the incident +My OPNsense box had been running smoothly for months. Router, firewall, DNS, DHCP, VLANs, VPN, reverse proxy and even UniFi controller, all the pieces of my homelab network ran through it, but not only, it is also serving internet at home. -Confidence in my homelab +This is the heart of my network, I barely can't do anything without it now. I have detailed how this is working in my [Homelab]({{< ref "page/homelab" >}}) section. It was โ€œjust working,โ€ and I wasnโ€™t worried about it. I felt confident, its backup was living only inside the machine... + +Maybe too confident. ## The Unexpected Reboot -How I first noticed something was wrong +Out of nowhere, the box rebooted by itself just before midnight. By chance, I was just passing by my rack on my way to bed. I knew the box rebooted because I heard its little beep it is doing when the machine start. -The kernel panic that started it all +I wondered why the router restarted without my will. In my bed, I quickly checked if internet was working, and it was. But none of my services were available, my home automation or even this blog. I was tired, I would fix that the next day... + +In the morning, looking at the logs, I found the culprit +``` +panic: double fault +``` + +A kernel panic. My router had literally crashed at the hardware level. ## First Troubleshooting Attempts -Caddy refusing to start +At first, the impact seemed minor. Only one service wasnโ€™t coming back up: Caddy, my reverse proxy. That was making sense if my services weren't available. -Digging into logs and finding corrupted certs +Digging into the logs, I found the error: -Quick fixes to restore services +``` +caching certificate: decoding certificate metadata: unexpected end of JSON input +``` + +It turned out that one of the cached certificates had been corrupted during the crash. Deleting its cache folder fixed Caddy, and suddenly all my HTTPS services were back online. + +I thought I had dodged the bullet. I didn't investigate much on the root cause analysis, the kernel logs were polluted by one of the interfaces flapping, I thought it was just a bug, instead, I checked for any updates, my first mistake. + +My OPNsense instance was in version 25.1, and the newer 25.7 was available. Let's upgrade it, yay! + +The upgrade rolled out successfully, but something was wrong. When I tried to look for any update, I saw a corruption in `pkg`, the package manager database: +``` +pkg: sqlite error while executing iterator in file pkgdb_iterator.c:1110: database disk image is malformed +``` + +๐Ÿšจ My internal alarm sensor triggered, I wondered about backups, I immediately decided to download the latest backup: +![Backup configuration in OPNsense](img/opnsense-download-backup.png) + +Clicking the `Download configuration` button, I downloaded the current `config.xml` in use my the instance, I though it was enough. ## Filesystem Corruption -Upgrade attempt from 25.1 to 25.7 gone wrong +I decided to recover the pkg database the worst possible way, I backed up the `/var/db/pkg` folder and I tried to `bootstrap` it. +```bash +cp -a /var/db/pkg /var/db/pkg.bak +pkg bootstrap -f +``` +``` +The package management tool is not yet installed on your system. +Do you want to fetch and install it now? [y/N]: y +Bootstrapping pkg from https://pkg.opnsense.org/FreeBSD:14:amd64/25.7/latest, please wait... +Verifying signature with trusted certificate pkg.opnsense.org.20250710... done +Installing pkg-1.19.2_5... +Extracting pkg-1.19.2_5: 13% +pkg-static: Fail to extract /usr/local/lib/libpkg.a from package: Write error +Extracting pkg-1.19.2_5: 100% -pkg errors and a broken package database +Failed to install the following 1 package(s): /tmp//pkg.pkg.scQnQs +Bootstrapping pkg from https://opn-repo.routerperformance.net/repo/FreeBSD:14:amd64, please wait... +pkg: Attempted to fetch https://opn-repo.routerperformance.net/repo/FreeBSD:14:amd64/Latest/pkg.pkg +pkg: Attempted to fetch https://opn-repo.routerperformance.net/repo/FreeBSD:14:amd64/Latest/pkg.txz +pkg: Error: Not Found +A pre-built version of pkg could not be found for your system. +``` -Discovering the dirty filesystem with fsck +I saw a `Write error`, I suspect a filesystem problem, I run a check on `fsck`, the output was a flood of inconsistencies: +```bash +fsck -n +``` +``` +[...] +INCORRECT BLOCK COUNT I=13221121 (208384 should be 208192) +INCORRECT BLOCK COUNT I=20112491 (8 should be 0) +INCORRECT BLOCK COUNT I=20352874 (570432 should be 569856) +[...] +FREE BLK COUNT(S) WRONG IN SUPERBLK +[...] +SUMMARY INFORMATION BAD +[...] +BLK(S) MISSING IN BIT MAPS +[...] +***** FILE SYSTEM IS LEFT MARKED AS DIRTY ***** +``` + +The root filesystem was in bad shape. + +Since I only had SSH at this point and no console access, I set up a forced `fsck` for next reboot: +```bash +sysrc fsck_y_enable="YES" +sysrc background_fsck="NO" +reboot +``` + +On the next boot, the filesystem was repaired enough to let me bootstrap `pkg` again, but most of the system packages were gone. My earlier upgrade while the disk was dirty had left me with a half-installed, half-missing software. ## When Things Got Worse -Broken bootstrap and missing core components +I discovered the utility `opnsense-bootstrap`, which promises to reinstall all packages and reset the system to a clean release, exactly what I was looking for: +- Remove all installed packages. +- Fresh 25.7 base system and kernel will be downloaded and installed. +- All standard OPNsense packages will be reinstalled. +``` +opnsense-bootstrap +``` +``` +This utility will attempt to turn this installation into the latest OPNsense 25.7 release. All packages will be deleted, the base system and kernel will be replaced, and if all went well the system will automatically reboot. Proceed with this action? [y/N]: +``` -Realizing the system was half-upgraded and unstable +I pressed `y`. This started well, but then... no more signal -> no more internet. -The tough decision: reinstall vs. repair +๐Ÿ™ˆ Oops. + +After a while, I tried to reboot, but impossible to connect back via SSH. No other solution, I had to remove the router from the rack, put it on my desk and plug it a screen and a keyboard to see what is going on. ## Starting Over the Hard Way -Pulling the box out of the rack +This was bad: +``` +Fatal error: Uncaught Error: Class "OPNsense\Core\Config" not found +in /usr/local/etc/inc/config.inc:143 +``` -Preparing the installer USB +Checking the bootstrap logs, this was even worse: +``` +bad dir ino โ€ฆ mangled entry +Input/output error +``` -Fresh install of OPNsense 25.7 +The disk is in a bad shape, I can't do anything more for that instance, I'd better start from scratch now, I have backup, haven't it? (lol) -## The Lifesaver: config.xml +I downloaded the latest OPNsense ISO (v25.7) and put it into a USB stick. I reinstall OPNsense and overwrite the current installation, I kept everything as default. -Copying my configuration from backup +## The Lifesaver: `config.xml` -Restoring the system to its former self +OPNsense keeps the whole configuration in a single file: `/conf/config.xml`. That file was my lifeline. -Which services came back instantly +I copied the `config.xml`file saved earlier into the USB stick. When plugged into the fresh OPNsense box, I overwrite the file with this one: +```bash +mount -t msdosfs /dev/da0s1 /mnt +cp /mnt/config.xml /conf/config.xml +``` -Which ones didnโ€™t (goodbye UniFi controller backupโ€ฆ) +I placed the router back in the rack, powered it on and crossed my fingers. beep! + +The DHCP gave me an address, good start. I could reach its URL, awesome. My configuration is here, almost everything, but the plugins. I can't install them right away because they need another update, let's update it! + +DNS is KO because the AdGuard Home plugin is not installed, I temporary set the system DNS to `1.1.1.1` + +## The Last Breath + +During that upgrade, the system threw errors againโ€ฆ and then rebooted itself. Another crash, not turning back on... + +I can officially say that my NVMe drive is dead. + +๐Ÿชฆ Rest in peace. + +By chance, I have an unused NVMe Kingston drive of 512GB which was deliver with that box. I never used it because I preferred to use the one I was using before in my Vertex server. + +I redo the same steps to reinstall OPNsense on that disk. I could finally update OPNsense to 25.7.1 and reinstall all the official plugins that I was using. + +To install custom plugins (AdGuard Home and Unifi), I had to add the custom repository `/usr/local/etc/pkg/repos/mimugmail.conf` (documentation [here](https://www.routerperformance.net/opnsense-repo/)) +```json +mimugmail: { + url: "https://opn-repo.routerperformance.net/repo/${ABI}", + priority: 5, + enabled: yes +} +``` + +After a final reboot, the router is almost ready, but I still don't have DNS services. This is because AdGuard Home is not configured. + +โš ๏ธ Custom plugin configuration is not saved within the standard backup in `config.xml`, which makes sense. As this is the only file I saved, I don't have any backup configuration for these plugins. + +Reconfigure AdGuard Home is pretty straight forward, finally my DNS is working and everything is back to nominal, except the UniFi controller/ ## Lessons Learned the Hard Way +OPNsense Backups + +After a crash, healthcheck + +- **Donโ€™t reuse old hardware for critical services.** That NVMe was living on borrowed time. + +- **Always trust but verify storage.** Run `smartctl`, run `fsck`, and donโ€™t ignore write errors. + +- **`config.xml` is the crown jewel.** With it, a full reinstall is almost painless. Without it, I would have been rebuilding from scratch. + +- **Custom plugin configs are not in config.xml.** If you rely on AdGuard, UniFi, etc., back them up separately. + +- **Know when to stop repairing.** I wasted hours trying to nurse a dead disk. Installing on new hardware fixed everything in minutes. + + What I did wrong (and why it hurt) What I should have done differently diff --git a/content/post/random-post.md b/content/post/random-post.md index 22a60d7..a538938 100644 --- a/content/post/random-post.md +++ b/content/post/random-post.md @@ -13,4 +13,4 @@ I'm ==testing== ## Emoji -๐Ÿš€๐Ÿ’ก๐Ÿ”ง๐Ÿ”โš™๏ธ๐Ÿ“๐Ÿ“Œโœ…โš ๏ธ๐Ÿ’โŒโ„น๏ธโŒ› \ No newline at end of file +๐Ÿš€๐Ÿ’ก๐Ÿ”ง๐Ÿ”โš™๏ธ๐Ÿ“๐Ÿ“Œโœ…โš ๏ธ๐Ÿ’โŒโ„น๏ธโŒ›๐Ÿšจ \ No newline at end of file diff --git a/static/img/opnsense-download-backup.png b/static/img/opnsense-download-backup.png new file mode 100644 index 0000000000000000000000000000000000000000..bfd37d19058e87d1845a73645c30dcb40c59da91 GIT binary patch literal 45594 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 literal 0 HcmV?d00001