/var/hack missing on my TiVo Series 1

I upgraded my TiVo Series 1 years ago, adding more storage, a network card, and a web server. Apart from having to replace two drives, everything else has worked smoothly, which is pretty good for a 10 year old computer. I haven't used the tivoweb server much, but today I went to try and use it to add a program recording while someone was watching a show. But no response.

So I telnet'ed into the server, successfully, and started to try and figure it out. First typed "ls" and got "command not found". I knew I had installed ls along with the web server and various other things. But I couldn't remember where, and without ls I was a little lost navigating the server.

I tried to ftp to the server, but that too was down. With the help of various forum posts and articles on the web I was able to recover my setup. Here's a few things that helped:

echo * will show you all the files and directories in the current directory, similar to ls, albeit without the formatting options.

echo $PATH shows you the path. If you previously installed things on your TiVo, then it will probably look something like: /bin:/sbin:/tvbin:/devbin:/var/hack:/var/hack/bin

So with that I was reminded that the various things were installed in /var/hack, and sure enough that folder was missing. I suspected that perhaps an upgrade had blown it away, but after some reading it seems that if the file system experiences a problem, then that directory is rebuilt, thus losing any folders created there. I poked around but hadn't kept any backups on the TiVo in any other directories. And without the ftp server, it was beginning to look like the only way to recover was to mount the drive back in a PC and copy it on from there.

But it turns out that the TiVo comes with a program called http_get which let's you download files from a web server. So the trick was finding a place where tivoftpd.ppc.gz was hosted. Several forum posts provided a particular url, but that was no longer active. I did find it on a web site, but you need to use an IP address, and when I converted the web url host name to an IP address it no longer worked (because the server was using virtual servers). So in the end I downloaded it and then uploaded it to my own server. I'll keep the file there in case anyone else needs it. To fetch it, first recreate your /var/hack directory (mkdir /var/hack) and then execute this command:

http_get -T 0 -C 0 -D /var/hack -U

Then you can unzip it, rename it and put it in a bin directory, make it executable, and finally launch it.

gzip -d tivoftpd.ppc.gz
mv tivoftpd.ppc bin/tivoftpd
chmod 755 bin/tivoftpd

If all that works, then you should now be able to ftp to the server, after which you can easily get across all the other files you might want, such as tivowebplus and the tivo-bin utilities. I referred to Steve's TiVo Network Hack How-To Guide to find the other files and the steps to install them.

It took a couple of hours, but the TiVo web server is back (I'm running the TivoWebPlus v2.1.b3), and thankfully without needing to take the TiVo apart.