Tips for using solid state drives on Linux.

I have a webserver with a 4GB CF card in a very very small computer. I was trying to come up with ways to reduce writes on this device and I remembered UnionFS. UnionFS can take 1 folder and make it read-only and have all the changes written to another folder. To the user, everything will look the same. This is very good when adding a disk to a computer and your not using LVM.

What I want to do? I want  /tmp,  /var/log, /var/home, and /root to have the changes written to my USB device that is mounted as  /mnt. These directories receive a lot of writes to them.

I copied the following commands to /etc/rc.local so that they are executed when the machine boots:


mount -t unionfs -o dirs=/mnt/logs=rw:/var/log=ro unionfs /var/log
mount -t unionfs -o dirs=/mnt/filesystem/root=rw:/root=ro unionfs /root
mount -t unionfs -o dirs=/mnt/filesystem/home=rw:/home=ro unionfs /home
mount -t unionfs -o dirs=/mnt/filesystem/tmp=rw:/tmp=ro unionfs /tmp


Lets make sure everything worked by doing `df -h`:


/dev/sda1             3.8G  1.6G  2.1G  44% /
unionfs               7.5G  3.3G  3.8G  47% /var/log
unionfs               7.5G  3.3G  3.8G  47% /root
unionfs               7.5G  3.3G  3.8G  47% /home
unionfs               7.5G  3.3G  3.8G  47% /tmp
If you want this to be mounted at boot time without
using /etc/rc.local, simply add the following to /etc/fstab:
unionfs /tmp unionfs dirs=/mnt/filesystem/tmp=rw:/tmp=ro 0 0
unionfs /home unionfs dirs=/mnt/filesystem/home=rw:/tmp=ro 0 0
unionfs /var/log unionfs dirs=/mnt/logs=rw:/var/log=ro 0 0
unionfs /root unionfs dirs=/mnt/filesystem/root=rw:/tmp=ro 0 0
Now all the changes will be written to my USB device and my main CF
cards will not be written to a lot.

3 thoughts on “Tips for using solid state drives on Linux.

  1. Dugg. Easy peasy suggested mounting certain directories to memory or tmpfs. But, I can’t seem to find the page anymore. EXT4 should also help – looks like they got the data loss mostly figured out.

Leave a Reply