Well that was stressful. Four years ago, I custom built a NAS for my in-laws. We took on a huge project of converting all of their classic vinyl records into MP3s. It was a massive undertaking and took us forever to get it all converted. 250 GB of music later, we had it all converted.
But then I had this idea – if we put all of this music on FreeNAS with 2 drives in RAID 1, we’ll have the drives securely stored on redundant storage. But even more, we can put Plex on FreeNAS and they can stream their music anywhere in the world.
Brilliant, right? So I built a small FreeNAS box with a small mini-ITX formfactor case.
It had a mini-ITX motherboard, an i5 processor, 16GB of RAM, and 2x 1TB WD Red drives. Pretty basic, and it did work great for awhile. But there was one weak link. The weak link was I installed FreeNAS on a USB thumb drive. Harmless, right?
Over the years, I would go over to their house, open the closet where the NAS was stored, and poof – it had magically turned off. At some point, I would hit power, and the NAS would never actually come online.
Well, long story short, we are gifting them an iPod for Christmas and we needed access to the music to load the iPod. And guess what? The USB drive that held FreeNAS was toast. Like completely toast. So this is what you get when you try to boot FreeNAS with no actual boot disk – it checks the ZFS volume and there is no actual boot sector.
SO LUCKY – ZFS volumes work exactly as advertised. But it wasn’t as obvious as I thought it would. First things first, you need to get FreeNAS installed on new media, root password set, and check out the IP address from the console.
Now you can login to the FreeNAS GUI frontend from the portal. This is the important part – pay attention!
Click on the Shell, and run “zpool import”
If all goes well, you should be able to see the ZFS Pool with the underlying disks and their health. Here’s the thing: the shell will tell you that you can run the command again and specify the pool to perform the import. You can’t. The pool would be mounted by the underlying Linux system, but it wouldnt actually be usable by the web frontend, and thus, you can’t access the data by setting up a share.
If you accidentally did do the zpool import <ZFS POOL NAME> command, you will need to do “zpool export <ZFS POOL NAME>.” The pool has to be unclaimed in order to be accessed by the Web GUI.
From the Web front end, go to storage and Pools, and begin the import process.
Next, we’ll choose to import an existing Pool.
I didn’t have disk encryption on my drives – it was just the in-laws music after all – so let’s skip this step by selecting no need to decrypt data.
Next, you will be able to see the pool from the drop down. Select that pool and click Next. Then confirm the import. It will take a few seconds to complete.
Tada! You have imported the old ZFS volume pool which is pretty cool if you ask me. Let’s confirm this real quick by jumping back to the shell and running “zpool status.”
Phew! There’s only one final step left in order to restore access to the share and on the FreeNAS pool. We need to enable SMB access.
And THAT is how you recover ZFS drives from an old FreeNAS box when the USB boot drive has died.