Inert Detritus The Internet's dust bunnies

12 December 2007 @ 4pm

A Dissection of Roxio Toast 8’s Disc Spanning

Toast 8, a CD/DVD burn­ing util­i­ty for the Mac, intro­duced a new fea­ture: when you add files to a data CD above what a sin­gle disc can hold, it offers to burn them onto sep­a­rate discs. When I went to back up (and remove from my hard dri­ve) about 40 GB of ripped DVDs, this looked like a fan­tas­tic fea­ture. How­ev­er, I want­ed to make sure that, should I need to use the discs on a PC, on a Unix machine, or on a new­er or old­er Mac. I could­n’t let myself be tied to a plat­form, OS, or application.

For­tu­nate­ly, Rox­io has ensured that, short of los­ing one of the discs, you’ll be able to get at your data somehow.

First, Toast copies a text-editable Disc Index.plist to each disc, hid­den at the root lev­el of the dri­ve, gzipped to save space. It’s iden­ti­cal across all discs in the ses­sion, so any disc has a com­plete copy. It con­tains a dic­tio­nary of all the files in the ses­sion, includ­ing their size, whether they’re invis­i­ble, their date mod­i­fied, whether to copy them onto a PC, and for a spanned file, the discs on which to find the file.

I first test­ed the includ­ed Mac ver­sion of their disc span­ning util­i­ty: it sim­ply copies the pieces of the files and con­cate­nates them togeth­er (more on that in a minute). The discs also include a Win­dows exe, though I haven’t test­ed it. The spanned and remerged files emerg­ing from the util­i­ty are, as you would hope, bina­ry iden­ti­cal to the original.

Ini­tial­ly, I was wary of using disc span­ning: a pro­pri­etary util­i­ty to reassem­ble files? An unknown for­mat to recov­er them from? But it turns out that their util­i­ty is a very pret­ty inter­face for a cou­ple of sim­ple Unix com­mands. By con­cate­nat­ing togeth­er the two (or more) pieces of the files, in order, you pro­duce an exact copy of the orig­i­nal file. I test­ed this on a split AVI: cat file1.spanned > testfile; cat file2.spanned >> testfile; md5sum testfile originalfile; will pro­duce iden­ti­cal MD5 checksums.

So, at the end of the day, I went ahead and burned a 10 disc ses­sion of movies to DVDs. If I lose any of the discs, sure, the data is lost and the remain­der is unre­cov­er­able, but I have a list of what was lost in the Disc Index.plist, and can Bit­Tor­rent as need­ed to replace it. Would I span a disk image with a back­up across two pieces of media? Prob­a­bly not with­out burn­ing two or three copies of the ses­sion, and test­ing each. But for movies, it’s a great way to back them up.