Billix: a Sysadmin's Swiss Army Knife

Turn that spare USB stick into a sysadmin's dream with Billix.

Damn Small Linux is a miniature version of Knoppix (it actually has much of the automatic hardware-detection routines of Knoppix in it). As such, it makes an excellent rescue environment, or it can be used as a quick “trusted desktop” in the event you need to “borrow” a friend's computer to do something. I have used DSL in the past to commandeer a system temporarily at a cybercafé, so I could log in to work and fix a sick server. I've even used DSL to boot and mount a corrupted Windows filesystem, and I was able to save some of the data. DSL is fairly full-featured for its size, and it comes with two window managers (JWM or Fluxbox). It can be configured to save its data back to the USB disk in a persistent fashion, so you always can be sure you have your critical files with you and that it's easily accessible.

All the Linux distribution installations have one thing in common: they are all network-based installs. Although this is a good thing for Billix, as they take up very little space (around 10MB for each distro), it can be a bad thing during installation as the installation time will vary with the speed of your Internet connection. There is one other upside to a network-based installation. In many cases, there is no need to update the newly installed operating system after installation, because the OS bits that are downloaded are typically up to date. Note that when using the Red Hat-based installers (CentOS 4.6, CentOS 5.1 and Fedora 8), the system may appear to hang during the download of a file called minstg2.img. The system probably isn't hanging; it's just downloading that file, which is fairly large (around 40MB), so it can take a while depending on the speed of the mirror and the speed of your connection. Take care not to specify the USB disk accidentally at the install target for the distribution you are attempting to install.

The memtest86 utility has been around for quite a few years, yet it's a key tool for a sysadmin when faced with a flaky computer. It does only one thing, but it does it very well: it tests the RAM of a system very thoroughly. Simply boot off the USB drive, select memtest from the menu, and press Enter, and memtest86 will load and begin testing the RAM of the system immediately. At this point, you can remove the USB drive from the computer. It's no longer needed as memtest86 is very small and loads completely into memory on startup.

The ntpwd Windows password “cracking” tool can be a controversial tool, but it is included in the Billix distribution because as a system administrator, I've been asked countless times to get into Windows systems (or accounts on Windows systems) where the password has been lost or forgotten. The ntpwd utility can be a bit daunting, as the UI is text-based and nearly nonexistent, but it does a good job of mounting FAT32- or NTFS-based partitions, editing the SAM account database and saving those changes. Be sure to read all the messages that ntpwd displays, and take care to select the proper disk partition to edit. Also, take the program's advice and nullify a password rather than trying to change it from within the interface—zeroing the password works much more reliably.

DBAN (otherwise known as Darik's Boot and Nuke) is a very good “nuke it from orbit” hard disk wiper. It provides various levels of wipe, from a basic “overwrite the disk with zeros” to a full DoD-certified, multipass wipe. Like memtest86, DBAN is small and loads completely into memory, so you can boot the utility, remove the USB drive, start a wipe and move on to another system. I've used to this to wipe clean disks on systems before handing them over to a recycler or before selling a system.


Bill Childers is the Virtual Editor for Linux Journal. No one really knows what that means.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Billix and FreeBSD

Mario Guerra's picture

I wonder if booting a netinstall FreeBSD 7 is possible.

Yes indeed

Onno's picture

That would really be great!
I modified billix already to use full installation ISO's, but we also use FreeBSD installation so it would be really really great if we can also include those installation on the USB.

Billix - a linux super tool

Alireza Aghamohammadi's picture

This is a very good tool to have on a USB/flash drive. I'll give it a try.

Alireza Aghamohammadi

needed options for Windows version of syslinux

cdharding's picture

while troubleshooting why my thumb drive wouldn't boot, I came across a forum post that was about installing
Ubuntu on a flash drive from windows, and there was mention of using the m and a options for syslinux if you were running it from Windows. It says it is not needed for the *nix version but is definitely needed for the Windows version. the post is here:


sigint's picture


I was extremely excited to read this article. I ran out and purchased a 512 Kingston DT games USB($9.99US), and get to
running this line >> syslinux -s {device},and syslinux is telling me that i don't have a valid FAT filesystem; when i do have a valid FAT filesystem. Where can i for help?

Have you tried reformatting

paulatthehug's picture

Have you tried reformatting it using 'mkfs.msdos' or 'mkfs.vfat'?

No valid FAT filesystem's picture

I have the same problem. Running Ubuntu 8.04 LTS, and have tried two different USB sticks, and both FAT16 and FAT32. syslinux will not recognise the file system, for some reason.

Lars Erik

Same problem

Cwolly's picture

I continue to have the same problem, and have not yet found a solid answer on how to fix it. when I run the install-mbr, it is doing something to the thumb drive that will not allow syslinux to see it as a valid partition anymore. I also get the "this doesn't look like a valid FAT filesystem" error.

Any help would be greatly appreciated.

billix and syslinux

mdeschane's picture

I was having the same problems; here are the steps I took that finally succeeded:

my USB device is sdc

cfdisk /dev/sdc; create partition and change type to FAT16
mkdosfs /dev/sdc1
mount -t msdos /dev/sdc1 /usbdrive (or where ever)
cd /usbdrive
cp billix-0.23.tar.gz
tar -zxvf billix-0.23.tar.gz (got a whole bunch of error messages "Cannot change ownership to uid 1000, gid 1000: Operation not permitted" even though I am root)
install-mbr -p1 /dev/sdc
cd ~
umount /usbdrive
syslinux -s /dev/sdc1

if you hold you mouth just right and clutch your favorite talisman firmly this should work.

permissions on fat16/32

linuxjnl's picture

FAT16/32 does not support file permissions. This is why you get the errors. These can be safely ignored.

ownership errors

cosmiclint's picture

I was getting the same errors. I think it's because of the way you mounted the drive. The UID and GID for /usbdrive would both be root, but I think the file wants be be untarred by a regular user.

When I included

-o uid=ubuntu,gid=root

in the mount command (I was using a live cd, so my username was ubuntu) then ran

tar -xzvf billix-0.23.tar.gz

as user ubuntu I didn't get the errors.

I've been able to boot dsl on a toshiba that supports booting from usb drive, but my Latitude doesn't make it past the menu.

Still playing with it, though and having a lot of fun. I routinely use live cds to fix borked windows boxes, so this is another handy tool.

Ownership errors

cosmiclint's picture

I should have added that I also copied the file in to the root of the drive as a regular user, so the file was also owned by user "ubuntu."