Installing WeBWorK on Live USB

From WeBWorK_wiki
Jump to navigation Jump to search
Construction.png This article is under construction. Use the information herein with caution until this message is removed.

WeBWorK on a USB memory drive

These instructions explain how to download and install a disk image of a fully functioning WeBWorK 2.4 system onto a 2 GB or larger USB flash memory drive.

Installing WeBWorK on a 2 GB or larger USB flash memory drive


After installing the disk image on a USB flash memory drive, you will have a full fledged Ubuntu 9.04 system with WeBWorK, Apache2, MySQL, etc. installed and configured. You just have to plug the USB drive in and boot your computer from your USB drive. The system is persistent (if you choose to set up a persistent system, see below), i.e. any changes you make (to Ubuntu, WeBWorK, anything) are saved and will be there the next time you boot the system. Also nothing on your computer's hard drive will be touched so there will be no change to your standard operating system. If you want to run everything locally as a test, nothing else is required. If you want to connect your system to the internet so that people (students, professors) can connect to WeBWorK and you can login remotely (via ssh) to Ubuntu, you may have to configure networking (see below). Also it is imperative that you CHANGE THE PASSWORDS for the OS users root and ubuntu (which has sudo privileges), for the MySQL users root and webworkWrite, and for the WeBWorK users admin and ubuntu which have professor privileges (see below).

There are more detailed instructions for Ubuntu 9.04 and WeBWorK 2.4 at Installation_Manual_for_2.4_on_Ubuntu_9.04


  1. You need a PC that can be booted from USB. This seems to exclude all Mac's and very old PC's. Most PC's less the 5 or 6 years old should be OK.
  2. You meed a 2GB or larger USB flash memory drive. For most purposes, any flash drive should work. If you plan to have a small production system with a number of people using WeBWorK simultaneously, you probably want a drive with decent read and write speeds. For example, the SanDisk Extreme Cruzer Contour with 25MB/sec read and 18MB/sec write speeds.


  1. Go to and download and install UNetbootin. UNetbootin runs on Windows and Linux. I have read reports the Windows version is more stable --- that is the version I used
  2. Go to and download WW2.4_Ubuntu10.04_64bit_Vanilla_LiveDVD.iso (it is a 1.18 GB file)
  3. gives
  4. Verify the MD5 checksum of your downloaded file

Install WeBWorK on USB drive

  1. Plug your 2 GB USB drive into the computer and make sure the computer recognizes it. You can also use larger USB memory drives but you will not get anymore usable space.
  2. Run UNetbootin and check "Diskimage". Then browse for the file WW2.4_Ubuntu9.04_LiveDVD.iso and select it
  3. Make sure your USD drive is selected (often drive D: but check before you write to it)
  4. Hit OK and sit back while the installation onto the USB drive takes place


If you don't do anything more you will have a non-persistent system meaning that when you reboot the USB flash memory drive everything will be in exactly the same state it was in originally (i.e. any changes you made to Ubuntu, WeBWorK, anything will not be saved).

A persistent system means that when you reboot the USB flash memory drive everything will be in exactly the same state it was when you last shut down the system (i.e. any changes you made to Ubuntu, WeBWorK, anything will be saved). If you want a persistent system (most people probably do especially if you are connecting to the web and want to save new passwords, etc) do the following

  1. Go to and download
  2. gives the instruction we repeat below we some slight amplifications.

Go to and download one of the files (,, or corresponding to the amount of persistent space you want (make sure the size of the persistent disk image is smaller than the free space you have on your USB drive). Since the .iso file is a 1.1GB file you need a 2GB flash memory card and this gives plenty of space for the extra 512 MB of persistent space so download the file.

Now extract the file "" from the zip file to your USB drive.

Now edit D:\syslinux.cfg (assuming D:\ is where your USB drive is) and add in "persistent" in two places at the end of the first two lines that begin with "append", and save the file, so your syslinux.cfg should look something like this:

default unetbootin
label unetbootin
kernel /ubnkern
append initrd=/ubninit file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash persistent --
label ubnentry0
menu label live
kernel /casper/vmlinuz
append initrd=/casper/initrd.gz file=/cdrom/preseed/custom.seed boot=casper  quiet splash persistent --

Don't forget the space before the --

Now you will have persistence if you boot the default or live options. For more info see

Boot from USB drive

  1. With the USD drive plugged in reboot your system and boot from USB. You will probably have to hold down a certain key (e.g. F12 or F11) to bring up a boot menu. Or possibly you may have to edit your BIOS to allow booting from USB. Select USB Storage Device as the boot device and boot.

You will be presented with a list of options. Select the first (default) or second (live) and log in. Use ubuntu as the Username and admin as the Password.

If you do not want to connect your server to the internet, you can just open firefox and access the URL: http://localhost/webwork2 . If you connect to a network using DHCP, networking will be set up automatically.

What to do next

The installation on your USB flash memory drive is identical to the installation given in the instructions Installing from WW2.4_Ubuntu9.04_LiveDVD except that the installation occured on your USB flash memory drive, not on your hard drive. All the sections on Passwords, Setting up networking using a static IP address, Global Configuration and File and Directory Locations and System Information apply and you should read them. If you set up a persistent system, all changes you make will be preserved the next time you boot from your USB flash memory drive. If you set up a non-persistent system, the changes will only last until you shut down the system.