Introduction

SquashFS

In order to put a JVM in a RAM disk we are going to use the tool SquashFS.

Use the following command to install the Squash FS tools.

 

sudo apt-get update
sudo apt-get install squashfs-tools

Make a squashfs file out of your desired JVM:

cd /usr/lib/jvm
sudo mkdir ramdisk
mksquashfs /usr/lib/jvm/java-8-oracle /usr/lib/jvm/ramdisk/java-1.8.0.91-oracle.sqsh

At this point you have an existing JVM squashed in .sqsh file with a roughly size of 176M:

user@machine:/media$ ls --block-size=M -al /usr/lib/jvm/ramdisk/java-1.8.0.91-oracle.sqsh 
-rw-r--r-- 1 user users 176M May 12 15:53 /usr/lib/jvm/ramdisk/java-1.8.0.91-oracle.sqsh

Mount Point

Create a mountpoint for the ramdisk:

sudo mkdir /media/ramdisk-java-8-oracle

Edit your /etc/fstab and define your mount point as a tmpfs by adding the following declarations:

# change the default size for the ramdisk
tmpfs /media/ramdisk-java-8-oracle tmpfs defaults,size=350M,mode=1777 0 0
/usr/lib/jvm/ramdisk/java-1.8.0.91-oracle.sqsh /media/ramdisk-java-8-oracle squashfs ro,defaults,loop 0 0

If you reboot at this point you will have a ramdisk of 350M defined at /media/ramdisk-java-8-oracle filled with your squashed JVM:

user@machine:/media$ du -hs ramdisk-java-8-oracle/
349M ramdisk-java-8-oracle/

That way we know how correctly size what we need for our ramdisk.

350M for a java-1.8.0.91 from Oracle.