Installing Linux on an old PC with only 256 MB RAM


This situation may be true in many offices where an old pc is lying around idle because a recent version of Windows (or Linux) is not working on it. In my case, my parents’ pc had Windows 2000 and it was useless for accessing a new digital camera because Canon no longer releases software (drivers) meant for Windows 2000. The only thing saving the day was the fact that the pc’s BIOS supported booting from a USB disk. This was important because the IDE CDROM on the pc had stopped working ages ago and new CDROMs are generally of the Serial ATA variety.

The Solution

I started reading up on Linux distributions that could work with 256 MB of RAM. One option (Slitaz) was a particularly attractive option since it required under 100 MB for basic installation. Required add-ons could be put in from the on-line software collection. However, this solution was for my parents and not myself. I could not expect them to use the command-line to access pictures from the camera.

I did try Lubuntu, but the installer was able to only boot to the Live environment and not start the installer. Then I tried out Xubuntu because some searching with Google suggested it. But my CDROM was not functional and the suggestions asked me to try out the alternate install CD; not the regular Live CD. I am aware of how to make a bootable flash disk from the Live environment of the Ubuntu CD. But the alternate install CD does not have any such option. So, to my rescue came this article on Ubuntu web site itself, that helped me to make a USB version of the alternate install CD. The article was not so easy to follow, so I have put all the steps I followed to get a working USB flash disk over here:


  • Administrative access on a pc running Linux.
  • Syslinux for the distribution.
  • USB Flash disk. (all existing data will be lost, so backup before use)
  • Internet connection.
  • Boot from USB in target pc.

The Steps

(all actions are shown as run in a command-line terminal)

  1. Download the installer ISO and other required images:
    $ cd
    $ wget --continue
    $ wget --continue
    $ wget --continue

  2. Insert a USB flash disk and find it’s drive letter assignment:
    $ sudo blkid
    /dev/sda1: UUID="954bb7f6-e3b6-4661-8e82-5cd62717edd9" TYPE="ext3" 
    /dev/sda2: UUID="by41yw-SD10-0WYD-pT35-NBMJ-ij2g-hnuV1H" TYPE="LVM2_member" 
    /dev/mapper/nandan-lv_swap: UUID="22009237-ccae-4b13-a789-ad1c83eb7f94" TYPE="swap" 
    /dev/mapper/nandan-lv_root: UUID="88c596e2-2f2b-4caa-8bbf-5c721947416b" TYPE="ext4" 
    /dev/mapper/nandan-lv_home: LABEL="HOME" UUID="c639a795-b8e6-4660-8e0e-45dce0acb052" TYPE="ext4" 
    /dev/sdb1: LABEL="SYSRESC" UUID="9556-69D7" TYPE="vfat" 

    My USB flash disk has a drive letter assignment of sdb and the only partition on it is sdb1.

  3. Prepare the USB flash disk:
    $ sudo umount /dev/sdb1
    $ sudo mkdosfs /dev/sdb1
    $ sudo syslinux /dev/sdb1
    $ sudo mkdir -p /mnt/usbdisk
    $ sudo mount -v -t vfat /dev/sdb1 /mnt/usbdisk
    $ cd /mnt/usbdisk

  4. Copy files to the USB flash disk:
    $ sudo cp ~/xubuntu-10.10-alternate-i386.iso /mnt/usbdisk
    $ sudo cp ~/vmlinuz /mnt/usbdisk
    $ sudo cp ~/initrd.gz /mnt/usbdisk

  5. Create a syslinux.cfg file with the following lines (these are not commands to be run):
    default vmlinuz
    append initrd=initrd.gz

  6. Finish any pending USB flash disk write operations and unmount it:
    $ sync
    $ sudo umount /dev/sdb1

  7. Detach the USB flash diskand boot the target pc with this USB flash disk inserted. The installer should automatically detect the presence of the iso file on the USB flash disk and continue with installation.