TrueNAS is dead, long live FreeCORE

This moment feels like it’s been coming for some years now. I can’t remember exactly when iXsystems announced it was dropping support for TrueNAS Core, their FreeBSD-based NAS appliance, in favour of TrueNAS Scale, their newer Linux-based version. Having been using TrueNAS, and FreeNAS before that, for about 13 years, I wasn’t sure what to do.

The reality is I buried my head in the sand until that was no longer an option, thanks to the PHP vulnerability that’s been all over the news this week. It looks like that might have been a sensible strategy, given FreeCORE has only been an option for the last few months, although just typing that emphasises what an enormous leap of faith I’m taking by migrating this weekend. This blog is going to be that journey, along with some of the thinking that’s going along with it. Who knows, it might go horribly wrong and the blog this is intended for never comes back online (guess what, it did!)

I started writing this at 23:39 on Friday 23 October, and every service on my TrueNAS box is down. The box is running and set to snapshot all the critical things in about 20 minutes and then replicate those to the backup box overnight. Tomorrow morning I’ll check that backup ran successfully, the target has the latest files, and then switch the train from TrueNAS to FreeCORE and upgrade. Wish me luck….

I’M BACK

So, here we go. The first job was to check that replication worked, and it did. I used to run both machines 24×7, but when energy prices spiked because of the war in Ukraine, I reverted to monthly backups to the old FreeNAS1 box. I still have more regular backups running to CrashPlan, so this seemed like a reasonable trade-off. I re-read the instructions and put on my ‘big boy pants’ before starting the update (or is it an upgrade?)

First gotcha was DNS (surprise surprise), as I have a VM running on my TrueNAS box running Pi-hole and unbound. That’s off, so I needed to point it back to my router, and the router out to a secondary DNS server.  Easy enough.

Then I switched the TrueNAS update train to FreeCORE, which is pretty much the only config. After that, you just run the update as usual from TrueNAS and wait. It didn’t take as long as I’d expected, as I was going to head out to walk the dog so I didn’t feel the need to interrupt, but before I’d had a chance, it started back up looking exactly like TrueNAS, which I thought was strange. A quick refresh and some FreeCORE branding and some interface tweaks, but feeling very much the same.

I thought I’d stopped everything from auto-booting, but I’d missed a few jails, so I changed that and then thought I’d reboot so I was starting from where I’d planned.

The system is running FreeCORE-15.0-U2.4 on the FreeCORE-15.0-STABLE train. This is the recommended first step to check that everything is still working as expected.

I can connect to the SMB shares from my MacBook, which, given it’s a NAS, is pretty important. I checked the pools with zpool status (all 3 ONLINE) and the FreeBSD version with freebsd-version -ku, which reports 15.1-RELEASE-p5.

sysctl kern.features.compat_freebsd13 returns a 1 which means features are still compatible with 13, which is currently where all my jails are sitting. This is probably going to be the biggest job, updating them to 15.1

I tested one worked (Nextcloud) and I could access through the NPM proxy, but then quickly closed that down as this is one of the PHP issue jails.

Next was the big one – would the Portainer/Docker VM start? YES, and other than dropping the Portainer license, which I had saved in Bitwarden, it looks like most, but not all of the containers came up. Teslamate didn’t and it looks like all of the Stacks in Portainer are unavailable.

So with a little help from Claude I managed to get to the bottom of this. It turns out three of my fourteen NFS mounts hadn’t come up, because the VM booted faster than the NAS and nothing retried them. One of those was the share holding all my Docker data. That is also the answer to why everything else started: the other eleven mounts were fine, and when Docker found its directory missing it quietly created an empty one on the VM’s own disk, so the containers came up happily on nothing at all. Portainer started on a blank database, which is why it looked like a fresh install. Teslamate was the only one that couldn’t paper over it and actually said so. The fstab entries only had nfsvers=3 and now have _netdev, nofail and a retry, and Docker itself has been told to wait for its storage rather than invent it.

I also started up the Pi-hole VM and some of the jails and everything appears to be working just fine.

I was going to leave upgrading jails from 13.5 until Sunday, but given how well things are going I’m going to start now. I’d got Claude to create me a ‘playbook’ which included the jail migration, but the new FreeCORE forum also had a HOW TO guide for this, so I tried to use the best of both.

Nextcloud was first and the hop to 14.5 took well over an hour, with long stretches where it looked like it had hung. I’d been using Claude to check a few of the messages and mentioned the time it was taking. Claude suggested trimming freebsd-update's components, because it was reinstalling the entire FreeBSD source tree one file at a time. Nothing in these jails needs that, and trimming it brought the second hop, to 15.1, down to about fifteen minutes. WordPress then did both hops at the faster rate and updated perfectly, so the two jails actually affected by the PHP security flaw were both done on the first day. And since this blog runs on that WordPress jail, the thing I was most worried about on Friday night turned out fine — after all, you’re reading it!

LimeSurvey is the same, so I’m planning to do that one and then stop for the night, but I’m sure this results in a FreeCORE update blog in the not too distant future. Perhaps one to end 2026?

There’s some blogs about Omarchy too, as I’m picking up the EliteBook 6 G1a (now with 32GB RAM) more than I am my MacBook at the minute, and that’s definitely an OS preference over a hardware one. I’ve drafted this in LibreOffice on Omarchy!

But today has been a good ‘sysadmin’ day. Sad to leave Free/TrueNAS behind but happy to have found FreeCORE as a very familiar replacement.

 

MacBook Pro M5 Pro (amongst others)

I’M BACK!

This is another one of those blogs where I added a title and never got around to writing anything.  I’m waiting for the Bahrain Grand Prix in Malaysia to start (the first wet race in Bahrain!) so I thought I’d try to find some!

I bought the MacBook Pro M5 Pro back in March, only a few weeks after it was released.  The reality was that I really didn’t need to replace my MacBook Pro M1 that I’d blogged about here, but the MacBook Air from 2020 that my partner was using was beginning to cause her some issues, so I got a new laptop, and she got my old one.  Anyone following this blog will know that’s how technology upgrades work in this house!

The 2020 MacBook Air is the last one with an Intel processor (a 1.1GHz quad-core Intel Core i5) and was a decent enough config with 16GB RAM and a 512GB SSD, but 6 years is still 6 years, and the Apple M series processors really did change the CPU game back in 2021.  

That’s the real story here.  The M series processors have been released every year, and every year have upped the bar far beyond expectations.  Intel’s performance improvements in the previous 4-5 years had been pretty minimal, but Apple turned that on its head.  It was great for the market, as even though the M series is ARM and not x86-based, it was a real kick in the butt for Intel and also helped AMD, who had pretty much caught up and in many cases exceeded Intel’s performance, albeit for a similar price point.  A few years later, Qualcomm threw their hat into the ring too, with their Snapdragon X1 (now X2) processors, giving people some real viable options with both the traditional x86 instruction set and the newer ARM architecture.

I tested an HP EliteBook X with a Qualcomm processor for around 12 months, and generally enjoyed using the device, although I struggled a little with Windows for ARM, which still has most of the Microsoft Windows issues with an extra sprinkling of ARM-x86 incompatibility.  It was fun to pick up from time to time, but never really became a device I wanted to use over my M1 MacBook.

My job means I always have some of the latest laptops to play with, the current long-term one being an HP EliteBook 6G1a, with an AMD Ryzen 5 230 CPU.  I’d been using that initially with Ubuntu 24.04 and then upgraded to 26.04 when, through a strange quirk of timing, Ubuntu was at the cutting edge of the Linux kernel and one of the first distros to use 7.0.  

 

That was replaced with Omarchy in August, and there will be a few blogs over the coming weeks (probably months) about my journey with that, as I feel almost like a 10-year full circle from starting this blog back in 2016 (yes, it’s almost 10 years old!)

But what about the M5 Pro?  Is it any good?  Would you recommend it?  As I said at the start, I was quite happy using the M1 Pro for what I use the laptop for, but the M5 Pro is a huge improvement and genuinely feels faster in every way.  It’s still the same design, so other than the M5 Pro being a Space Black one (my M1 Pro was Space Grey – don’t you just love Apple’s colour branding), you wouldn’t know they were different.  The M5 Pro has more RAM (16 > 24GB and faster DDR5), the same 1TB SSD (but it’s about 3x faster in both read and write) and Thunderbolt 5 (although my Dock is only Thunderbolt 4, so not making full use of the 80GB throughput).  There are other improvements that you don’t always appreciate to begin with, too.  My Synology Router isn’t even making full use of Wi-Fi 6, so the Wi-Fi 7 isn’t used at home.  I hadn’t even thought about Bluetooth 5.4 until I went down to make a coffee with my AirPods Pro still in-ear and connecting when my laptop was left upstairs!  I’m sure there are more, but 5 years feels like a pretty good refresh cycle for a laptop these days, whereas as a contractor for almost 20 years (2002-2021) 3 years was my usual cadence.  There’s another sister blog around this in relation to mobile phones too!

 

I didn’t buy this one from Apple, as within less than a month Amazon were selling the £2199 laptop for just over £2000, and with a new Amazon Barclaycard and 6-month 0% interest, that became £1963.  Amazon made a complete dog’s breakfast of delivering it (I ended up ordering 3 of them!), so I also got a £50 gift card and qualified for over £19 of rewards from the credit card, so in reality it cost less than £1900.  A 13% discount on a less than 1-month-old device is pretty good anyway, but in a backdrop of memory prices increasing by 200-300% across the whole industry, it was too good a deal.  Apple increased the price to £2499 a few months later, so that 13% started to look more like 25%!

The crazy justification one comes up with when spending thousands of pounds on a new laptop 🙂  And with all that said, I’m still sat listening/waiting for the GP to start, typing this on the HP 6G1a running omarchy (the M5 Pro sat downstairs).

Anyway, the GP eventually restarted after a somewhat chaotic start, so that will do for my first blog back after another longer than I would have liked break!  Hopefully Omarchy will be some inspiration for another one in the next few weeks.  Here’s hoping…