Breathing New Life into a 2007 iMac with an SSD Upgrade

The 2007 iMac is really a funny machine. On the one hand, it’s a relic. It’s nearly 7 years old, and in computer time, that’s an eternity. So many things have changed since 2007. Yet, at the same time, it has a 2.4ghz Core 2 Duo, which is dual core and 64 bit, plenty powerful for most tasks. It also has a beautiful 20” monitor. The disk situation is a different story. The default model came with a 500GB sata drive, and the DVD superdrive is actually connected via PATA. When my dad told me that the iMac was running slowly and needed a tune-up of sorts, my initial instinct was, “Dad, this thing is 7 years old. Let’s get you a new one.” However, when I played around with it, I found slow shutdown, slow bootup, slow opening of programs. This told me that the disk was the weakest link in the machine. I told my dad that I would try to replace it with an SSD to see how that would work. I told him that if it worked, it probably would breathe another couple years of life into the computer, and if it didn’t, I could eBay my recent purchase and he wouldn’t be out much cash for the attempt.

I got a great deal on the 480GB Crucial M500 SSD. I also ordered a bracket that would be used to mount the 2.5” SSD in the place of a standard 3.5” hard drive.

Screenless iMac

If you have ever taken apart an iMac, you know that it is a bit daunting. Unlike unscrewing a standard computer case, you have to use a suction cup to ply the screen off. Once you ply the screen off, you then use a torx screwedriver to get the rest of the thing apart. It can be quite stressful if you haven’t taken apart a bunch of electronics before. I finally got the thing pulled apart, though, and then I was able to remove the hard drive.

The good news was that the 2.5” drive fit inside of the 3.5” bracket perfectly, making it an easy replacement mount.



There was one piece of bad news… Take a look at the above picture. While it may appear to be a perfect match, it turns out that the SATA cable in the iMac extends JUST far enough to plug in a standard hard drive, which has the connector lined up completely on the right. My bracket places the SSD right in the center, which moves the connector over a half an inch or so. After trying to stretch the cable carefully to new avail, I resorted to another solution.


I bent one of the pieces of metal that holds the SSD to the bracket and slid the SSD all the way to the right of the bracket. From there, I used the world’s most convenient adhesive, duct tape, to make sure that the SSD was completely secured to the bracket. It worked! As I started rebuilding the machine, though, I couldn’t help think that Steve Jobs wouldn’t exactly have been proud of my solution, as a man who always insisted that the components on the inside be just as beautiful as those on the outside.

Every time I take apart an iMac, I’m always a bit nervous the first time I try to turn it on after reassembling it. I had it all put back together, I pressed the power button, and boom - I got that nice Mac ding, and from there, I used an external drive adaptor to copy the contents of the existing drive to the new SSD.

Once the transfer was done, it felt like a brand new computer. Everything was ultra snappy. Being 7 years old, it of course doesn’t have the most powerful GPU in there so you wouldn’t have to do too much graphically to bring this computer to its knees, but for my parents’ iPhoto / web browsing needs, this machine is perfect. It still runs OS X Mavericks, and thus, it’s not really limited in any way.

In fact, I still have one last upgrade left for this Mac. While it only officially supports 4GB of RAM, it can actually capacitate 6GB. I’ll soon order a 4GB module from OWC, and the machine will get a 50% boost in RAM.

This upgrade experience made me realize what great value there is left in these older iMacs. You can pick them up pretty cheap on eBay, and if you don’t mind swapping out the hard disk for an SSD and upgrading the RAM, you can have a VERY fast family web browsing machine on the cheap. Consider that Apple STILL sells machines with only 4GB of RAM. My hope is that this machine will actually be able to run the NEXT version of OS X, Syrah, as well. I feel like the only reason it wouldn’t be able to is if Apple were to put a GPU requirement on the new version, as the rest of the specs stack up decently with modern computers that Apple sells.



How To: Set up Time Machine for Multiple Macs on FreeNAS (

FreeNAS is awesome. Also, FreeNAS is hard... I recently switched from a Synology device, and while I am already appreciating the increase in functionality and power, it's certainly not as easy to do some basic tasks. One of those tasks is setting up a Time Machine share where all of my household Macs can back up. Between reading the tutorials and giving some trial and error myself, I think I have come up with a good solution. And before I get started with the step by step guide, let me reiterate one thing: Permissions, Permissions, Permissions! If you ever find yourself banging your head against a wall because something in FreeNAS isn't working as you expect it to, the likely culprit is permissions. Once you wrap your brain around them, though, things become more simple. Hopefully this guide helps put a foundation around that.

The Default FreeNAS Home Screen

This article assumes that you have FreeNAS already up and running on your network and that you're able to connect to the main home screen with your web browser. I recommend setting it a static IP, as well. Our first step will be to create a group / user for Time Machine backups.


Under the "Account" section on the left, click "Groups," and then click "Add Group."


You don't need to change the default value for the group ID, and put something like "time-machine" for the group name. Leave everything as default and click OK.

The next step is to create a ZFS dataset where we're going to put the Time Machine backups. The dataset must be on a ZFS volume. I'm assuming you have already created a ZFS volume with your disks here, but if you haven't stop reading this guide and go read the FreeNAS ZFS documentation here. If you have already created the volume, create a dataset. Datasets can be nested inside of other datasets so I actually have one dataset called "Backup" and inside of that one, I have one callled "Time-Machine" ~ it really just depends on how you want things set up.


After you enter the name, "Time-Machine", leave all of the default values alone. The below screenshot shows how I have "Time-Machine" nested inside of my Backup dataset.


So now we have a dataset. This is going to be where all of our Time Machine backups get saved. The next step is the most important and the one that has bitten me before... so don't forget it. We need to change the permissions on the "Time-Machine" dataset. Recall that we initially created a group called "time-machine" - we are now going to set things up such that any user in the "time-machine" group can write to the "Time-Machine" dataset. Click on the "Time-Machine" dataset and then click on the icon with a key on it to change its permissions.


When you click that, a permissions dialog box will pop up.


I chose not to change the default user owner of "root." However, definitely change the group owner. In the drop down box, the "time-machine" group that we previously created should be selectable. Click that and then make sure to have the boxes checked as I have in the image above. We want any user in the group to have read / write / execute privileges.

Click the "Change" button to have the new permissions take effect. Now it's time to create a user for the Time Machine backup. I believe it is best to create a separate user for each computer (and I'll explain why at the end of the post) so just create users that reflect that computer. For example, the user I'm creating is called "kevinmacbookair."


Once again, you navigate over to the left column to create a new user. Leave the "User ID" field as the default. Give your username a simple lowercase name like mine. Uncheck the box about creating a new primary group for the user. Instead, go to the drop down list and select "time-machine" in there. In the full name, put a descriptive name. Type in a password, and then you're good to go.

So what we've done so far is created a group called "time-machine" which has full access to the "Time Machine" dataset. Next we added a user that is part of the "time-machine" group. Easy! The last thing we need to do is create an AFP (Apple Filing Protocol) share that will broadcast this over the network so your Mac can see it. To do this, click the "Sharing" link on the column on the far left and click the button to create a new AFP share.


Name your share something you like, and then use the file browser to make sure that the "Path" is set to the ZFS dataset that we created for our Time Machine backups. Next, for the "Allow List" and "Read-write Access" fields, we want to put the group that we created, "time-machine" ~ however, because it's a group and not a user, we need to put the "@" symbol in front of it: "@time-machine". Next make, sure the "Time Machine" box is checked. Finally, take a look at those check boxes of privileges and make sure they match what's listed above. Then click OK. At this point, we're done with everything on the FreeNAS system. It's now time to set up Time Machine on the Mac!


On the Mac, just open up the Time Machine preferences, and if you go to select a disk, you should find the one we created there! It will ask you for a username / password, and you want to make sure you enter the machine-specific one we created in FreeNAS, not your OS X username / password.


You should be golden! If you want to add more than one computer, you don't need to add any new AFP shares or anything like that. Just create new users for each machine, and make sure that each user is part of the "time-machine" group that we created earlier. The final improvement to make this work even better would be for us to cap how much space each computer has to back up. For example, my MacBook Air has 256GB of space, and anything on my MacBook Air is also on my other machines so I really wouldn't want to give it more than 300GB of usable space for historical backups. Time Machine will automatically delete the older ones if it runs out of room. On the contrary, my MacBook Pro is loaded up with all of my important data and I might want to give it 2x the space of its SSD. Right now there isn't a great way to do this for multiple Macs in FreeNAS, but a feature is coming soon that will make it easy! This feature is per-user quotas. This will allow us to specify the maximum amount of space each user is allowed.

I hope this guide was useful!



Why I'm Switching from Synology to FreeNAS

I had been thinking about getting a network attached storage system for years. Even before the Snowden controversy, I didn't love the idea of my files being stored in a cloud like Dropbox. I also wanted to have some kind of home theater strategy with my ripped media. I pondered the options for a long time, and my final decision came down to buying a Synology device or building my own device with FreeNAS. I chose Synology for a multitude of reasons

  • Their DSM software looked awesome.
  • I like to tinker. Having a commercial product would keep me from being able to constantly open the NAS up and mess with it.
  • They have a suite of applications that can run on DSM.
  • It's easy to set up, and Synology Hybrid RAID is auto-expanding and very cool, a la Drobo.

I've had my DS1513+ since it was first released, and while it has definitely done its job, there are some things that bother me about it. First of all, bugs...

There have been some major security bugs with Synology. For example, how about that time when everyone found bitcoin miners running on their boxes? Their CloudStation solution is great for sync'ing files, but there are still loads of bugs with it, especially on OS X. I have reported these bugs repeatedly, and they still don't get fixed. For example, iWork files are treated as folders, rather than files, and the internal package contents get updated separately, causing iWork to constantly ask you to re-save the document during use. Cloud Station creates conflict files all the time, it often freezes Finder, etc. They either ignore bugs or introduce new ones with every release, it seems. It's great that Synology has so many mobile applications, but these are buggy as well. They are supposed to keep me logged in, but I continue to have to re-login on my own. Their UIs aren't great, and the functionality isn't killer.

Speaking of security, all remote NAS access with Synology is being migrated to quickconnect, their solution of giving you a unique ID that lets you acccess your NAS wherever you are, without setting up port forwarding on your router. This is theoretically a great solution, but the service goes down from time to time. And furthermore, I got a NAS so I could get away from being dependent on a hosted vendor for my data. Even though all my data is on-prem with a Synology NAS, I still depend on their external service to access it via quickconnect. With the development process for DSM being closed source and them not fixing bugs I submit, I don't really feel like I can trust their device with my data. Synology still doesn't support volume-level encryption either. And if you do encrypt a shared folder, some features like NFS are disabled.

In terms of applications I run on my DiskStation, I really only use CloudStation for file syncing across all my devices. I tried to run Plex, but it requires transcoding to be super useful, and the CPU on the DiskStation isn't up to the task. Thus, I built my own dedicated Plex box. I also use my DiskStation as a TIme Machine destination for all the Macs in the house, but that can be done with any NAS.

So... Why FreeNAS? FreeNAS is open source, and I can build my own box. While being open source doesn't guarantee security, the open transparency and development process certainly makes me feel better about security. Because I can build my own box, I'll build one that is silent and uses less power than the combination of my Plex box + Synology NAS. It'll have more RAM and be faster. It will be fast enough to do the Plex transcoding. Furthermore, rather than depending on a black box Synology Hybrid Raid solution, I'll be on the tried and true ZFS, which I have far more trust in. For sync'ing my files, I'll use bittorrent sync, which is a P2P sync'ing solution. I won't need to depend on Synology's Quickconnect service.

Thus, it's decided! I'm excited to have a new geek project! I'll be buying all the parts for my new FreeNAS box, and then I'll sell my DS1513+ and my M93P Tiny machine soon after. Watch this space... I'll be documenting my build!



Using Lenovo’s M93P Tiny as a Plex Media Server

Are you familiar with Plex Media Server? If not, you should be… it’s awesome. Well, it’s awesome assuming that you either take the time to rip all of your media (me!) or you’re okay with pirating content from the internet. Once you get all of your movies, TV shows, music, pictures, etc, nicely organized, Plex Media Server is a tool to stream that content to a variety of devices, whether it’s the family TV in the house or an iPhone on the go. It has the ability to transcode media on the fly, adaptively taking a 1080p blu ray rip and streaming it at a lower resolution / bit-rate to your phone on the other side of the country. It can process multiple streams at once, assuming your hardware is capable of handling it. Plex makes clients for iOS, Mac, PC, Android, etc. I bought a Synology network attached storage device some while back, and I started experimenting with running Plex on the NAS itself, but the NAS doesn't have the CPU power to do any sort of intense real-time transcoding. I decided to build a small server to handle all of my Plex needs. I wanted the server to be small, I wanted the server to be silent, and I wanted it to be powerful. I spent some time putting together some potential custom mini-itx builds, but in the end, I couldn’t quite find the right combination of components that would be small and light enough and still powerful. None of the cases out there would fit just right in my small apartment. I somehow stumbled upon the Lenovo M93P Tiny. This is a pre-bulit machine, and it’s quite compact. It has room inside for a 2.5” drive and runs Intel’s most recent Haswell chips. The version I sprung for had an i5 4570T. I could have opted for an i7 CPU, but I thought that might be overkill for my needs.

... and I have a small hand!


The M93P Tiny doesn’t appear to use a standard motherboard / power supply, but that’s part of the reason it’s so small. And while it doesn’t use a standard mainboard, the components are still easily accessed and swapped. Rather than paying Lenovo to upgrade the internals, I purchased a Samsung 840 EVO SSD and 16GB of RAM. I chose that particular SSD because at the time of purchase, it was widely considered to be one of the fastest SSDs out there. As my media resides on a separate network attached storage unit, there’s no need for much storage space on my actual server. I just need an SSD for the operating system and any applications I add.


Opening up the M93P Tiny is quite easy, and thankfully once, open, all of the components can be easily accessed and removed.


Swapping the hard drive for an SSD and upgrading the RAM was easy. As much as I love the M93P Tiny hardware, I was annoyed that it didn’t include a manual. I had to go online to download the manual in order to learn all of the BIOS commands. I was also annoyed that it didn’t include a Windows 8 CD. I wasn’t planning on running Windows. I was going to run OpenSUSE on it, but I still technically paid for Windows 8. I need to follow up with Lenovo and see why a copy was not included.


After I swapped out the components, the unit booted up without issue. I created an OpenSUSE USB installer, and I installed the operating system from there. I plugged the system into my HDMI port on my TV, and I installed everything that way. This was just a temporary solution as once the operating system was installed, I planned on administering the system via SSH and VNC, rather than with an actual dedicated screen, keyboard, and mouse. This will be a headless server.


If you’re looking to build your own Plex Media Server, I really recommend taking a look at the Lenovo M93P Tiny. It won’t be cheaper than a DIY build, but there’s a good chance that it will be smaller, quieter, and more powerful. I’ll create future blog posts about how I configured this tiny machine to be my perfect little Plex Media Center.


Giving TEP Wireless Another Try

Last Christmas, my wife and I went with her family on a trip to Mexico. We wanted to make sure we had internet connectivity the whole time so we decided to give TEP Wireless a try. TEP Wireless is an international hotspot rental company. You let them know what country you're going to, you pay a fee, and a device gets sent to you. When you land in your international destination, you hook up to the device, rather than using your expensive cellular roaming, and just like that, you should have internet. Needless to say, I had a *very* rough experience the first time around. I won't recount the entire thing here, but the original post is here.

That experience happened almost a year ago exactly, and a few months ago, I was contacted by Jordan Frank of TEP Wireless. He told me how bad they felt for my original bad experience and asked me if I was willing to give the service another shot. At the time, I didn't have a need for the service, but when my wife and I ended up planning a trip to Australia, this seemed like the perfect time to give it another go.


Just like before, the device arrived in a little TEP carrying case. It arrived on time a couple days before the journey. We charged it up for the journey, and it was ready to go.



I appreciated the inclusion of an extra battery. I'm not sure if that's standard practice or if it was just part of the package I got, but it was nice to have. The hotspot I received this time was not the same model as the one I got when I went to Mexico. This one had a few extra LEDs.

Once we landed in Australia, we immediately wanted to check our e-mail and let our family know that we had landed safely. We fired up the device, and it worked like a charm! E-mails sent and received without issue and websites loaded. I did a speed test and got the following result:


You're not going to set any speed records with this thing. In fact, I actually purchased an Optus SIM card for my phone to use during my business trip. It was only $50 for the week, and I got wicked fast LTE speeds. As unlocked phones become more and more prevalent, I expect that buying local SIM cards will become more of a standard practice. Or heck - if you have T-Mobile, you don't need TEP or a local SIM card anymore, now that they allow for international roaming. The annoying thing about the speed wasn't the upload / download speeds, but rather than nearly 1 second latency. I tested the device throughout the week. The results were pretty consistent. Here's another speed test from later in the week.


As you can see, the results were pretty much the same. On the one hand, who cares? The point of these hot spots isn't to get you the fastest internet in the world, but rather to keep you connected when you're mobile and on the go in another country. That said, the difference between low latency and high latency is being able to have a good quality skype call with back home versus not.

All in all, I have much less to say this time than I did last time. Everything worked as expected. Jordan from TEP Wireless has told me that the company is under new management, working to take better care of customers. I gave TEP another go, and while the speeds were not lightning, it was functional and did exactly what we needed it to do.