Ubuntu toram - Make Ubuntu Boot to Ram

This tutorial explains how to fix the Ubuntu Boot to Ram or "toram" feature that was broken in Ubuntu 7.04. Boot to Ram will enable a user to copy the entire Ubuntu live environment to system ram and run the Ubuntu Operating System entirely from there.

You can then remove the CD or USB device and continue to do your work from system memory. BootToRam is also commonly referred to as CopyToRam.
Update: With recent Ubuntu distributions and derivatives based on it, you just append the toram boot parameter at startup.

Ubuntu Boot To Ram Prerequisites

  • Ubuntu Live CD
  • CD-Rom drive
  • 3-4GB USB storage device or hard drive (partitioned as ext2 or ext3) for storing the extracted filesystem

The following tutorial is for the intermediate Linux user. As of 10/15/2007 you cannot copy to ram and use casper persistent both during boot. Toram does not know how to handle the persistent partition. So you must choose one option over the other at boot.

Fixing the Boot to Ram "toram" feature in Ubuntu

The first step is extracting or decompressing filesystem.squashfs:

  1. Insert your Ubuntu 7.04 Live CD and reboot your PC.
  2. Insert a USB hard-drive or use a partition on your local hard drive.
  3. Open a terminal and type sudo su (to change to root).
  4. Type fdisk -l and locate the drive/partition you want to use.
  5. Then type the following commands, replacing sdxx with your actual drive/partition found in step 4:
    mkdir /c && mount /dev/sdxx /c
    mount -o loop -t squashfs /cdrom/casper/filesystem.squashfs /mnt
    mkdir /c/fix
    rsync -avx -P /mnt/. /c/fix/.
    umount /mnt
  6. To correct the casper boot script to allow booting to ram, type:
    wget pendrivelinux.com/downloads/casper
    cp -r casper /c/fix/usr/share/initramfs-tools/scripts/casper
  7. To regenerate the initrd.gz, type:
    chroot /c/fix /bin/bash
    mkinitramfs -o /new-initrd.gz 2.6.20-15-generic
    exit
    mv /c/fix/new-initrd.gz /c/initrd.gz
  8. To rebuild and compress the new filesystem.squashfs, type:
    apt-get install squashfs-tools
    mksquashfs /c/fix /c/filesystem.squashfs -noappend -always-use-fragments
  9. Insert your bootable USB Ubuntu pendrive and replace the old filesystem.squashfs and initrd.gz files with the new files from the "new" directory on your other USB drive or partition.
  10. Press f6 at startup and then append toram to boot Ubuntu into System Memory.

*Ubuntu is a product of Canonical Ltd