Wednesday, October 1, 2008

Rescue CD's

I like tools. Always have, whether it's a useful automotive repair item, a cool home repair gadget or an interesting piece of software designed for some specific use. PC utilities have always interested me too, so naturally I have followed the development of self-contained OS/utility packages like the many live CD's available for repairing your system or recovering data.

There are lots of them. Searching Distrowatch I came up with a rough count of 23 that sounded interesting. There are many more as well. I have tried several of these over the years and among the ones I like are:

System Rescue CD:
Very nice, but not so intuitive and does not use BASH as the default shell (though it is available). It is very complete in the applications it includes, but most of them I have never needed. Only provides a few programs in GUI mode.

Somewhat plain, Slackware based. You need at least 256MB of RAM and a 586 CPU to boot and use it. That is kind of limiting for a rescue CD in my opinion. There's a 32bit kernel and a 64bit kernel.

Trinity Rescue Kit:
Based on Mandriva. Lots of tools for Windows rescue, as well as Linux. Has several virus scanners for Windows.

Ubuntu Rescue Remix:
Command line only. Less than 200MB. Oriented to data recovery. This one got me thinking of doing my own.

Mostly forensics oriented, but very impressive. Has a Windows mode and a Linux live CD mode, so you can run some of the programs in Windows. Slick looking and professional. LOTS of software. 700MB.

Lately I have been playing around making my own, following generally the instructions here. This is relatively easy to do if you have no fear of the command line. After building a few versions though, and realizing that if the resulting CD was to be anything more than a one-off toy, I would have to constantly update it. So... I decided to write a BASH script to wrap the commands in and semi-automate the whole process. Shouldn't take more than a few hours I thought. Rrright... Anyway, after a few days of working on it off and on, I have a functioning script without too many bugs (I hope). I plan to burn the resulting iso's to CD-RW for easy updating without accumulating lots of obsolete CD's. I am thinking of calling it Rescue & Recovery Linux. Unimaginative, but no one will see it but me.

I plan on borrowing ideas (and maybe even some code) from the best ones already out there. That's the beauty of free software- you can take the best ideas, modify (and hopefully improve) them for your own use.
Since I am mostly using Ubuntu or Debian-based systems, I based my own CD on Ubuntu. I also wanted good hardware detection, easy updates, and lots of packages in the repositories.
Also, I love the command line, but sometimes it's just easier to use a GUI program for a particular task. I also like Fluxbox as a lightweight desktop, so that is what I am using for now. I think that fewer and fewer of us need to work on PC's with very low specs, so I don't see the logic in writting to the "lowest common denominator". It boots to the command line first though, so it should be usable even on system with slow CPU's and little RAM. (to be tested)

I wanted an easier to use live CD for system rescue and data recovery. I have used Linux for years, but even so, I don't use these types of rescue and data recovery programs often enough to keep all the use instructions and syntax in my head. Another thing I wanted to do is make it easier to see the programs available to use from the command line. Who can remember all the apps in /bin, /sbin, /usr/bin, /usr/sbin? I decided to try and write a shell script to show installed packages in a more compact and readable way than "dpkg -l". I call it and I alias it to just "lspkg". It shows a filtered list of the package name and descriptions, eliminating libraries, xorg servers, etc. I find it helpful, but not perfect of course. I am thinking of doing something similar, "lsbin" maybe, to show avalible applications in /bin, /sbin, /usr/bin, /usr/sbin and /usr/opt perhaps.

Presently, the iso is about 325MB. I wanted it under 200MB so that it would fit on the mini-CD's. Reflecting on it though, I decided that functionality should come before being pocket-size. Most of the really small distros don't include all the programs, man pages, program help, reference material, etc. that I wanted. It's only using about 50MB of RAM in GUI mode, so it should still be usable on older computers.

Eventually I plan to include programs to work on Windows systems as well since I know people still tied to the Evil Empire. There is at least one Windows-based Live CD for rescue, BartPE, though it seems to have gone dormant and you need a Windows CD to build it. I have used it, but I like the idea of a Linux Live CD better, even for working on Windows systems. Some others are mentioned here.

Even though my live CD is functional now, I can always think of improvements to make it better and easier to use. Anyway, its a fun project.
Check back for a progress report.

Continuing work on my rescue CD. It's at a pretty usable state now, but of course I have been so busy working on it that I have had little time to actually USE it! I continue to search for useful applications to include, but mostly now I want to just refine it. I have included the latest Phoronix Test Suite (with a wrapper script to run from the GUI), TrueCrypt, Searchmonkey, Brassero, GParted, Gsmartcontol, Meld, Autopsy and some Gnome system/network utilities. I would like to find a good GUI drive mount utility, but haven't yet. It has the ubiquity installer and I installed one of the first versions on a test machine. It seems to work fine there too.
It's grown to about 550MB, and is slow to boot - something I have to work on.

Link to today's post on my rescue CD, with updates and screenshot.