Well, that was somewhat frustrating. Last night, at pizza, Owen was talking about how he needed some files off Dan's computer, but the difficulty was that they were on an ext2 partition and Dan didn't have ext2 compiled into his current (*BSD) kernel. Normally this would have been cause to say "bummer", shrug, and get on with life, if I hadn't happened to remember that the bootloader I half-wrote four years ago contained a quick and simple piece of code capable of reading an ext2 filesystem. So when post-pizza went back to Relativity (coincidentally the house containing the computer in question), I spent a short while hacking a new front end on to the ext2 code and writing a standalone user-space ext2 reader, with which we hoped to be able to extract the files with minimum fuss. To my surprise and pleasure most of this program sputtered into life pretty fast and started producing plausible output. So we ran it on Dan's machine, found the filesystems in question, found a directory with the right name - and it turned out to be a symlink, which my code didn't support. After a concerted attempt to guess the link target, followed by a couple of half-hearted attempts to quickly implement symlinks in my ext2 reader, I gave the idea up as completely crazy and went home, feeling that I'd made a credible attempt to work a miracle and should feel no shame at having failed at the last hurdle. Of course, half way home I suddenly realised how I should have implemented symlinks, so I did so quickly before going to bed and (of course) it worked fine on my own ext2 filesystems. So now I have the code Owen needed last night, but since Owen was operating to a reasonably tight deadline and I'm booked up for most of the rest of the week, it's probably twelve hours too late to be any use. I hate it when that happens. Still, I suppose next time I need a user-space ext2 filesystem reader I'll have one. The only trouble is that I can't think of a single situation in which I might :-/ |