4 min read

Using a tape drive in 2018

Yay, I’m back to blogging!

I’ve been away for a bit, and with everything that’s going on lately, I haven’t felt like blogging much. But writing is fun, so here’s a new post about something no one wants to read about: tape drives!

Tape drives have been around in one form or another since 1951. Those big spinning things in old-timey movies showing “computer rooms”?

Tape drives

Tape drives.

As with hard drives, tape storage capacity has increased over time as well. The tapes pictured in this image might have held a few megabytes, but current tape cartridges can hold several terabytes of data and record at speeds close to 300MB/second.

There was a short time in the late 80s and early 90s that tape, much like David Bowie, flirted with commercial appeal. QIC or Quarter-inch cartridge tape was popular with small offices and the like, and given the outrageous price of hard drives back then, were seen as a viable alternative.


Inevitably though, hard drives evolved faster, and tape became a strictly big business archival media. A brief standards war was fought in the 90s, with LTO coming out as the clear winner.

LTO has numbered generations, going from 2000’s LTO-1 with a capacity of 100GB to the most recent LTO-8 sporting 12TB. The most recent tapes are around 40$ a pop, but earlier generations hover around 20$ a piece. LTO drives, since they’re geared more for archival and the enterprise world, are solidly built to last, and that shows in their price. An LTO-8 drive hovers around 2,500$ since they’re brand new tech, but even an LTO-6 drive can reach 1,000$ refurbished on eBay.

I got lucky with my LTO-5 drive last year, and was able to get an external SAS Dell refurbished model for around 450£ from a UK seller.

my own tape drive

LTO drives can write their own and previous generation tapes, and read up to 2 generations prior tapes. I tend to stick to LTO-5 1.5 TB tapes. The tapes are still relatively easy to find, and they cost around 25 or so euros, which translates into 0.016 euro per gigabyte. My drive can do 140 MB/s so a full tape write takes around 3 hours. I don’t much care for how long it takes - the 20+ years shelf life for the tapes more than make up for it. I used to burn DVDs for backups, but they tend to “rot” much sooner than two decades.

So, how does one actually write data with these things? Traditionally, tape drives have had a command line tool called tar that you may not have known stands for “Tape ARchive”. Tapes don’t expose a filesystem like normal storage devices, so this utility is used to control tape drive motors with SCSI commands and marking segments of tape as markers and placing bytes in-between them. Then, to recover said file, the tape is rewound to the initial position marker and the byte stream is read until the end marker. One usually redirects tar’s output into a file to recover it.

But starting with LTO-5 drives, there’s a much easier way to use these devices: LTFS or Linear Tape File System.

LTFS is basically a FUSE filesystem that hides away the complexities of storing file streams on specific length markers on the tape and exposes a normal filesystem that any standard software tool can use.

It’s an open source standard, so you can just download the code and build it. The latest spec of the LTFS standard is v2.4, but I wasn’t able to find a version of it that I could compile. This v2.2 download is more than usable but beware: a drive running a higher version of the standard will upgrade it when modifying the data, and might make it unreadable on a drive running an earlier version.

I was able to build it with a recent version of GCC (7.3.1) and libXML 2.x, but it will only link successfully with an older version (50.1) of ICU, so you’ll need to download that and build it yourself since your Linux distro is probably packaging a newer version (Fedora 27 packages v57).

All in all, I’m pretty happy with it. It’s loud as hell, but sturdy and I’m confident my data will be readable in the future. If my drive breaks though, I’m completely screwed! :D