Adventures in Linux Land

After the autobuilder hardware failure I was faced with the task of either fixing the PC or figuring out a new solution for Doomsday builds.

My first attempt was to simply replace the broken power supply. This managed to resurrect the machine for roughly 12 hours (and one build) after which it hung with the fans at full blast. Afterwards it would not boot any longer. It is likely that the motherboard was also damaged — even during the past several months, there had been occasional inexplicable boot failures where everything was powered on but the BIOS boot sequence simply wouldn’t begin. Oh well, the PC in question is a 10 year old Shuttle XPC and because of the custom form factor, it was incompatible with standard ATX components. The autobuilder runs a couple of build VMs and a web server, and for these purposes the CPU and memory were also quite lacking.

I briefly considered running the whole thing in a cloud service, but since this is a rather CPU, memory and disk space heavy system, the monthly costs would quickly have risen too high.

It was time to just get a new PC. I’m no stranger to messing around with PC hardware but I realized I hadn’t actually ever built a PC from components before. This was going to be exciting! I proceeded to acquire a set of microATX components and a Skylake Core i5 CPU — inexpensive but not cheap. This is a machine that is running 24/7 so it benefits from cool and silent operation. (The old PC had also had thermal issues, no doubt exacerbated by the hot summer months.)

I found the build procedure to be surprisingly easy. Perhaps this is a testament to the standards-compliance of modern PCs, or me simply picking the right parts. I locked the CPU into its socket, snapped on the CPU fan, inserted memory modules, screwed in the motherboard and PSU, connected the power cables and case wires, and finally attached the hard drives taken straight out of the old PC. With some trepidation I then pushed the power button and… everything started running perfectly!

The Ubuntu 16.04 host OS installed on the hard drives had zero problems dealing with the completely different hardware. Gotta hand it to Linux 👏 (that is btw having its 25th anniversary this week!).

The only little hiccup was that CPU virtualization had to be manually enabled in the BIOS; this is of course needed for running the VMs.

There was one further issue to deal with, however. For years now, the main hard drive (an aging 250GB Seagate HDD from 2006) has been making worrisome, loud clicking noises every now and then. I did not want to wait until it breaks down for good. Thankfully my collection of spare parts included an unused 1TB HDD from 2010 that would do nicely as the main drive.

The actual process of moving from the old drive to the new one was slightly trickier, but thanks to the magic of LVM I managed to do it without actually shutting down the system for more than a couple of reboots. It was actually quite impressive that you can physically move the entire operating system to another hard drive while the system is up and running. The tricky part came when I realized I needed a separate boot partition for the new drive. I ended up shuffling the partitions around for a bit so I could have a small boot partition as the first one in the new drive.

And there you have it: a new autobuilder PC with signicantly upgraded hardware, chugging along happily. Let it serve us well for the next 10 years.