Updates to DiskDigger and FileSystemAnalyzer, October 2023

Usually I post updates about DiskDigger on its own website, but my most recent round of updates merits a slight technical digression.

Previous versions of DiskDigger and FileSystemAnalyzer have already had basic support for 4K-native disk drives, i.e. drives that have 4 KiB sectors instead of the usual 512 bytes. However, only recently have I been able to test this support more thoroughly, fixing a few bugs along the way. 4K-native drives have been around for a while, and in fact most modern drives already use 4K sectors natively under the hood, but simply emulate 512-byte sectors to the outside world. However, increasingly we’re seeing more drives that no longer emulate 512-byte sectors (exposing the native 4K sectors to the operating system), as well as users who are opting to reconfigure the firmware of their drive to use 4K sectors instead of 512-byte emulation. DiskDigger and FileSystemAnalyzer can now handle all of these cases when mounting and searching file systems that might be present on such disks (FAT, NTFS, ext4, etc).

I did most of my testing and experimenting using a real 4Kn drive, but some testing I did with emulated disk images. Here is how you can configure qemu to treat a disk image as a 4Kn drive:

qemu-system-x86_64.exe -machine q35 -m 8G -boot d -cdrom "linux.iso" -drive file=mydisk.vdi,if=none,format=vdi,id=D24 -device nvme,drive=D24,serial=1234,logical_block_size=4096,physical_block_size=4096

The above example boots qemu from an ISO file, which can be a Linux live DVD, and makes the hard disk become a NVMe device, which allows us to configure its physical and logical block size, which we set to 4096. Linux should detect this NVMe device automatically, which will then let you create partitions and file systems on it for experimentation.


The other interesting update has to do with ancient retro file systems that are supported by FileSystemAnalyzer (and by extension DiskDigger). By coincidence, I’ve been contacted by multiple people in a short span of time regarding recovering data from Xenix file systems which they’ve saved as binary disk images. One image is from an Intel System 320 Multibus System owned by Herb Johnson of retrotechnology.com, and another is from an owner of an Altos 586 system in New Zealand.

image

Each of these images used a slightly different version of the Xenix file system, each of which use a different structure for their superblock (and each of which is different from the Xenix/SysV support that’s built into the current version of the Linux kernel). This took a bit of effort to reverse-engineer, but ultimately wasn’t too difficult to crack and integrate into FileSystemAnalyzer. The nice thing about dealing with very old data formats is that they’re usually very simple, not to say primitive. Best of all, these Xenix images contain C header files that actually describe their own filesystem structure (can I call them eigenheaders?), which I was able to use for refining and solidifying support for these file systems.

image

I even learned something else that was new to me: in addition to little-endian and big-endian byte orders, there’s also something called “middle-endian” or “PDP-11-endian”, where 16-bit values are stored in native little-endian order, but 32-bit long integers are composed of two 16-bit words in big-endian order (while the numbers in both 16-bit halves are still little-endian). This was the encoding used by the PDP-11 system, and apparently also by the Altos 586 system which was running this version of Xenix. All of these variations are now supported in FileSystemAnalyzer.

Brain dump, September 2023

I finally did something I’ve been meaning to do for a long time: get the final version of the ftape driver to work on a Linux distro that I can use in my data recovery workstations. This is for the purpose of using Linux to dump the contents of QIC-80 and similar tapes, using “floppy tape” drives, i.e. tape drives that connect to the floppy disk controller on the motherboard.

Up until this point, I’ve been using an old version of Ubuntu that has ftape pre-packaged into the kernel. The problem with this is that this version of ftape is not the latest. Development of ftape seemed to continue independently of the version that was included with the kernel. And the “last” version of ftape that is available (version 4.04a, from around July 2000) contains many enhancements over the version that was in the kernel, which seems to be 3.04, specifically compatibility with parallel port tape drives such as the Iomega Ditto 2GB.

This meant that I needed to compile the driver from source. Sounds simple enough; the driver is just a couple of loadable kernel modules. However, I would need to compile it for a version of the kernel that can boot nicely on my workstation. Browsing the source code of the driver, it appears to be intended to be compiled for kernel version 2.4.x. As an amateur kernel hacker in a previous job, I knew that even patch version changes (the third version number) in the kernel can break compilation of custom kernel modules. So, I tried to find a Linux distro that uses the earliest possible patch version of the 2.4 kernel, and still runs well on my workstation.

image

CentOS 3.5 to the rescue! I was able to find ISO installation media that I used to install CentOS 3.5 flawlessly onto my recovery workstation. It uses kernel version 2.4.21, which still turned out to be “too new” for compiling ftape successfully. I got a number of compilation errors, but thankfully they were all errors that were comprehensible and easy to remedy by an amateur. After just a few hacky modifications, I got the driver to compile into a loadable module!

And would you look at that – it’s able to communicate successfully with all of my floppy tape drives, as well as my parallel port Ditto 2GB drive!

image

Here’s my repository on GitHub that has the source code for the ftape driver, with my modifications for getting it to build in CentOS 3.5.


In other news, I found and restored an old ThinkPad X131e, which came to me as a Chromebook, i.e. with ChromeOS installed. In order to remove ChromeOS and install a regular Linux distro, I had to overwrite it with custom firmware that allows installing other operating systems. And in order to overwrite the firmware, I had to disassemble it and flip a physical write-protect switch that allows the firmware to be written. Why do they do this?! Anyway, with the latest version of the lightweight Xubuntu installed, this tiny thing works beautifully, and can now have a second life.

image

Thoughts on UFOs

Seeing the congressional hearing about UAPs was a fun diversion. I prefer to use the original name “UFO”, because switching to “UAP” is clearly an attempt to dodge the stigma that “UFO” has accumulated, and I don’t think “UAP” deserves to get away with it so easily.

What’s funny about the current UFO discourse is just how unimaginative it is, even after all this time. We’re well into the 21st century, but UFO evangelists are still stuck in the 1950s Hollywood conception of UFOs, i.e. a literal flying saucer piloted by aliens that are basically humanoid with long limbs and an enlarged head. Oh sorry, it’s not a flying saucer, it’s a “tic-tac” now:

And, sorry, it’s no longer a saucer, but a “black cube inside of a clear sphere.” A huge improvement, to be sure.

I’m not an expert in aeronautics, and I don’t claim to have an “explanation” for the tic-tac footage, but I am an expert in bullshit (giving it and taking it), and can offer a rough guideline for inoculating yourself against these UFO claims:

  • Take the probability of extraterrestrial vehicles being able to travel interstellar distances and reaching our planet.
  • Multiply by the likelihood of them looking and behaving exactly like we’ve always wanted them to.
  • Multiply by the likelihood of them proceeding to clumsily float in mid-air, enough to be considered an airspace hazard by the military pilots who have “seen” them, but never seen by commercial pilots or anyone on the ground.
  • Multiply by the likelihood of them being clumsy enough to crash occasionally, so that their “biologic” tissues could be collected, without anyone else noticing.
  • Multiply by the likelihood of the U.S. government being competent enough to cover up anything related to these phenomena, for an indefinite amount of time, in a culture that’s desperate for these claims to be true.
  • And now, consider how powerful, how incontrovertible, how convincing the evidence for such a UFO would need to be, to make up for the infinitesimal likelihood of each of the above points. But what do we have instead? Verbal testimony, hearsay, and grainy sensor footage (of course!), in an age of ubiquitous smartphone cameras, quadcopters, and satellites.

This is why I’m squarely in the Michael Shermer camp of capital-S skepticism regarding UFOs. Extraordinary claims require extraordinary evidence, and telling everyone that “We know people who have seen things!” doesn’t quite meet the Sagan standard, even if it’s told under oath to Congress.

Brain dump, April 2023

Did you know: If you want to buy SD cards that have enhanced longevity (e.g. for use in a dash cam or any device with a lot of write cycles), do not purchase plain old SD cards that are readily available on Amazon, even if they are marketed as “high endurance” cards. These are merely marketing terms, and these SD cards still use MLC (multi-level cell) technology that packs more data at the expense of performance and longevity, making the cards cheaper. Instead, if you have the budget for it, you should splurge on industrial-grade SD cards, available from electronics suppliers like Mouser, which use SLC (single-level cells). These cards are quite a bit more expensive, but worth the peace of mind.


I’ve been watching a lot of Russian media lately, and been enjoying many long-form conversations (such as Tell Gordeeva on YouTube), many of which have an anti-war sentiment. Katerina Gordeeva has recently been labeled a “foreign agent” by the Russian government, which is what happens to any prominent figure who is critical of Russia’s actions in Ukraine (or Russia’s actions in anything, really), regardless of whether it’s a YouTube host, television personality, actor, artist, politician, and so on. Gordeeva is now legally required to preface her videos with a disclaimer that she is indeed a foreign agent, and now very likely has cause to fear for her safety. For all the faults of our life in the U.S., the First Amendment is something to be thankful for. I have also actively tried to seek out long-form content that speaks in defense of the invasion, but haven’t been able to find anything that isn’t rooted in the same propaganda and revisionist history as what Vladimir Vladimirovich himself lays out in his speeches.

Homeowner’s log, March 2023

I finally installed an outdoor spigot on the far side of the house for watering the garden, which is something I’ve been meaning to do for months, and needed to finish before the start of this year’s gardening season. I’ve never done proper “plumbing” before, and was fully preparing for the hassle of soldering copper pipes, but then stumbled on a much simpler solution: SharkBite connectors!

I located a cold-water supply line in the basement that was perfect for splicing into:

  • It’s close to my desired location of the outdoor spigot.
  • The pipe is totally exposed, which makes it perfect for experimenting with SharkBite fittings, in case something goes wrong, or it starts leaking, etc.
  • There are shutoff valves nearby on either side of the spot where I want to splice into, meaning that I won’t need to drain the water from the whole house.

SharkBite fittings don’t require any soldering, and simply slide over the pipe, securing themselves with a rubber o-ring inside the fitting. This seems almost too good to be true, which is why some professional plumbers seem to be distrustful of SharkBite fittings. But from what I can tell, as long as they’re installed properly, they’re every bit as reliable as regular soldered copper joints. Since the pipe on which I used these fittings is exposed, I’ll be able to monitor it for any problems in the future, and will report back if there is any leakage.

image

For the length of new piping that leads to the outdoor spigot, I used PEX tubing, which is a lighter, cheaper, and more durable alternative to copper. The only new tools I needed to purchase were a pipe cutter for cutting the copper pipe, a special tool for cutting the PEX pipe, and another tool for crimping the connectors that join together the different segments of the PEX tubing. The overall total cost of all the tools and materials was about $100, and the total installation time was no more than one hour! This is an enormous savings over hiring a professional plumber, and while I encourage everyone to hire local professionals to do jobs that are beyond your comfort level, if you’re considering doing simple plumbing work that doesn’t impact “critical” portions of your house, then SharkBite fittings and PEX tubing are great options.