So as I already implied in the You Game, my LFS system has been obliterated!
You see, Monday night I finally got the NVIDIA driver working! Since Xorg/kernel/etc. updates would require me to remove the proprietary driver (at least temporarily), I then proceeded to write a Perl script that could automate switching between drivers at boot-time. This is non-trivial, since a lot of libraries need to be installed/uninstalled (despite my initial naïve notions of what GLVND was capable of).
From the very start, I have had a primitive package-management system, which I kept telling myself I needed to overhaul. I install packages into a subdirectory of /root (

) and then tarball them up. To (re)install a package the files are extracted from the tarball back into that directory, then copied out onto the system. This procedure plays havoc with symlinks for some reason, so I decided I would stop using it for Mesa and GLVND, since screwed-up symlinks cause the X Server (or Mutter on Wayland) not to start when the NVIDIA driver is installed. Instead I would keep the (separate 32-bit and 64-bit) build directories of Mesa and GLVND, and just run "make install" in each to reinstall them. It makes sense since I'm always updating Mesa to the latest Git anyway, and package tarballs are just a waste of time for that.
I incorporated this newer strategy into my Perl script. However, there is one library that NVIDIA's driver overwrites that is supplied neither by Mesa nor by GLVND. It is part of the X Server. So I decided, rather than switching strategies for the X-Server, I would just incorporate my old package-manager into the Perl script for that one package (i.e. call the shell script I wrote last Christmas). I left a comment about symlinks "not screwing us over too much" or something to that effect. I was half-right. The symlinks didn't screw me over. But calling that shell script from a boot-time job was a fatal mistake!
You see, the shell script was rather shoddily written, and contained a glaring security hole. See if you can spot it: (Hint: environment variables are not set in the script itself, but assumed to have been set prior to running it)
That's right, ${IMAGE_DIR} can be anything at all, and at boot time is, of course, nothing at all! So the line is read as "rm -r /*". When this script was running, there was no graphics driver loaded yet, so I couldn't see what was going on. I noticed a lot of disk activity, which I assumed was the NVIDIA driver uninstalling itself. Eventually I cut the power and rebooted into Debian to see if I could refactor my code. But then I discovered the code wasn't there anymore! Neither was my home directory! Of course, the shoddily-written package-management script survived, hence the annotated screenshot above; the irony is delicious.
Right now, I am running TestDisk to recover my data. There is no directory structure in the recovery, which means I can't rebuild the system, but I will hopefully at least be able to find all the decent Perl code I wrote, and cat pictures and stuff.
The plan now is to build a new LFS system starting on Saturday, and finally implement a better package-management solution (the principle will be the same, but the scripts will be more rigorous, and the storage locations won't be inside /root, and stuff like that). These improvements to package management will be the silver lining to this whole thing. I'm just hoping all the experience I've gained will mean it won't take as long to get up and running as it did last time!