One man’s trash is another man’s treasure

I go out walking every morning. My usual route takes me around my apartment complex and the apartment complex next door. Last Wednesday’s walk was no different.

I was up stupid early – before 6:00 AM and out the door shortly thereafter.  When rounding the corner next door I saw a pile of hardware garbage near the dumpster on the other side of the garages.  There was a tower PC case, opened, that looked pretty gutted (although the hard drive was still in it – sigh).  There were a couple what looked to be older stereo components another computer that looked to be in pretty good condition and a nice (if not pretty well-used) desk lamp.

Well, I do not have the space for a tower PC, and it was pretty picked over anyway, but the other PC looked pretty nice.  It turned out to be a Dell Optiplex 390, and it was still loaded with hardware.  So I grabbed it, cut my walk short, and came home.  A quick survey showed it had a CD-ROM, a SATA hard drive and a couple of RAM chips.  It was also surprisingly clean inside. This machine had been well taken care of. Well, ok.  Let’s power it up!

At the initial boot I got the 1-3-2 beeps codes that said the RAM was bad.  So I took it apart and pulled out a 16 GB stick and a 4 GB stick.  The Optiplex 390 takes DDR3 and these were both PC3.  I tried every combination of each stick in each slot with no luck before I rummaged though my stash and found a couple DDR3 4 GB sticks.  It posted!

It still had problems booting however, just hanging after the Dell logo. So I removed the power cord, pulled the CMOS battery from the motherboard and went to take a shower.

When I got back to it, I was able to get it to post and access the BIOS. I reset the clock and tweaked the BIOS setting.  I flirted with trying to boot the existing OS, but I knew it was some version of Windows, and I wasn’t interested in cracking the password and all that, so I just formatted it and installed Ubuntu Server.  I needed smartmontools to get a peek at the hard drive health.

In the end I got Ubuntu 22 server installed on it.  It’s now got 8 GB of RAM, and a 1 TB SATA drive (Western Digital Blue) with under 2 years of use on it (tested OK with smart tools).

I’d just bought a new M.2 SSD for another project machine, but that project will have to wait.  I have a potential backup Docker app server sitting here!

I decided to let it sit for a few hours. Since I garbage-picked it, there was still a chance that it had some hidden critical problem that made the previous owner toss it in the first place. I tried to SSH into it that evening and found it unresponsive. I was bummed but not too surprised.  A part of me knew to expect the probability of unseen issues. 

Upon visual inspection, the computer was up and there were link lights on the network interface.  A forced reboot brought everything back and subsequent investigation showed nothing obvious.  Except one thing: the timestamps in the logs jumped backwards after I had reset the timezone earlier.  I did not reboot afterward, and I wonder if there was an issue renewing the IP lease since the system time changed?

It’s been almost a week and there has been no further unexpected downtime. I’ve loaded Docker onto it and I have it hosting a few apps for the local network. The new machine is not a beast resource-wise, by any means, but it’s fine for hosting local docker apps.

I have scripts backing up the important data nightly, and I am considering the possibility of migrating my production apps to it for the duration it would take to upgrade the main server. Until then, it sits quietly under my desk waiting for some new project.

This is much better than letting it rot in some landfill.


UPDATE: it froze up on me again while I was out of town. It was hours until I could get home to find the same symptoms: it was powered on and there were network link lights. I hooked up an external monitor, but there was no video. Hmmm. A hard reset later all was working again. No evidence of anything in the logs. So I did two things:

  1. I wrote a script to ping the gateway. I scheduled it in cron to run every half-hour. If it fails, it waits 60 seconds and tries again. If it fails twice, it writes a log entry and reboots the computer. If my “freeze up issue” is only network related, this should at least get the machine back on-line. If it’s a total system freeze, this won’t work. In that case…
  2. I bought another Optiplex 390 off eBay. Total outlay, including shipping, was less than $50 for a machine with 8 GB RAM and no hard drive. It should be a case of swap the hard drive and turn in on.

I didn’t know I wanted another computer until I found one in the garbage.

Leave a Comment