April 11, 2006

Damn Small Linux plus pendrive equals portable paradise

Author: Rui Lopes

I recently acquired a 256MB USB pendrive that I use for storing personal documents and work-related stuff. As a Linux fan who wanted to make the most of his new toy, I went looking for the simplest, smallest distro I could find that could boot from a pendrive. I found Debian-based Damn Small Linux, whose long list of bundled applications fits into a meager 50MB. The more I use it, the more I like it.

You can test DSL in a variety of ways: you can boot it from a business card CD, install it on the hard drive, run it from a USB pendrive, or even run it from within Windows (using Qemu). After a quick search on the project's wiki, I found the section related to booting from USB. The simplest way to create a bootable pendrive is to burn DSL to a CD, run a live CD session with it, and choose the desired install option from the desktop menu. I decided to download the .iso and instead try to install it directly on the pendrive. For guidance, I used the excellent guide on the Debian wiki.

The installation finished without problems. I had to play around with the various USB boot devices in the BIOS until I found one that worked. In my case, I had to choose USB-ZIP as a boot device; it may be a different option with other motherboards.

DSL offers a variety of boot parameters, and some of them are quite handy, such as "toram," which allows you to run DSL completely from memory -- which, according to some, makes it even faster. After changing the settings of the BIOS on my Shuttle system (running on an old 900MHz Celeron), I was rewarded with the boot screen of DSL.

The kernel version for the 2.2 release of DSL is 2.4.26. The project had kernel 2.4.31 in the 2.1 release but decided to changed it back: "For maximum hardware support on older computers, kernel and modules were changed back to 2.4.26 including legacy SCSI and zipdrive support." The reason for using the 2.4 kernel series instead of 2.6 is basically the same. For more information, check out the project FAQ.

DSL correctly recognized all my hardware, including that pest of a soundcard that gives me headaches with other Linux distributions, and booted directly into the X server. The window manager it runs by default is Fluxbox, an excellent choice for slower systems. If you want to, you can switch to the JWM window manager from within the Fluxbox session; just choose the corresponding option from the menu.

After running the distro for only five minutes I could already see a noticeable improvement compared to running it from a CD. It was faster, it had fewer glitches, and I could save all my data or change system options on the fly. (By the way, one important file for people running a live session with DSL from a pendrive is .filetool.lst, which is a hidden file in your home directory. It contains the directories for which changes made to content will be kept upon next boot; if you need to add a directory to the list, you can edit the file.)

I decided to give DSL a spin on the hard drive of a 266MHz Pentium II I had lying around, to see how fast it would run on old hardware, and to see the DSL hard drive installer. After a few basic steps I was done. DSL makes you install the root filesystem as Ext3, but I was pleasantly surprised that it recognized and allowed me to mount my XFS partition, where I keep all my personal data and media files.

DSL's developers have done a good job of walking the line between a cluttered workspace and an minimal one. DSL uses Xtdesk to manage the icons, torsmo to monitor the system resources, Fluxter to move windows between workspaces; and mount.app for mounting and unmounting devices. You'll find at least one application for each type of task, including Beaver for text editing, XPaint for image manipulation, Siag as a complete office package, XMMS for playing audio and video, Dillo for browsing (although Firefox is also available), Sylpheed for email, Emelfm or Midnight Commander for managing files, and CDW for burning CDs and DVDs. For a more complete list (with links), check this page. If you need to install more stuff, you can enable APT from the desktop menu and use Synaptic to install applications from the Debian package tree. You can also install applications and extensions pre-packaged specifically for DSL using myDSL.
Check the help page displayed when you open Dillo -- it's got tons of useful information about myDSL and other things related to the distro.

Another thing that distinguishes DSL from a typical Debian system is the custom scripts written by the developers to deal with many cumbersome tasks in the fastest and most practical way. They cover stuff such as enabling NFS, SSH, formating a diskette, configuring your network, changing your keyboard layout, and changing your X server settings or your wallpaper. All of the scripts are accessible through the desktop menu, just one or two clicks away. I usually do these kinds of tasks through the command line, but using these neat little tools considerably speeded up my workflow.

There is one downside to the extensive tweaking its developers have done to DSL. Most of the way DSL acts and looks is configured through custom scripts, most of which are either in the home directory or in /opt, and sometimes you can't know for sure if one of the settings you change in a regular configuration files isn't being overridden somewhere by a custom script.

If you need help with installing or configuring DSL, your main source of information will be the project's wiki and forums. If you really dig DSL, you can show your support either by donating or by buying some of their stuff. There's an option to buy a USB pendrive with DSL already installed on it, or the customary CD, or even a Mini-ITX system.

My conclusion: DSL is a great little distro. I can hardly imagine spending a day now without my trustworthy DSL-powered pendrive. Pendrive-based distros beat live CDs because they let you quickly save your session preferences and data on the same medium as the operating system. I won't use live CDs anymore except on older systems that don't support booting from a USB device, or for trying new distributions.

The distribution's quick release cycle shows that the developers working on the distribution non-stop. Their careful attention to details makes a world of a difference to users.


  • Linux