Ramdisk ubuntu 10.04
I'm using Ubuntu 10.04(64bit) for my desktop.
The machine has a 5GB RAM.
I want to use RAM disk(1G or 2G) but I don't know how can I do this.
Is there any opensource product of RAM disk?
The technology is built into the kernel, you don't need any extra tools. In fact, you already have a few RAM disks (which you shouldn't use, they're reserved for the system), which you can see by doing
grep -w tmpfs /proc/mounts
To set up a 2GB RAM disk mounted on /ramdisk
, add the following line to /etc/fstab
:
ramdisk /ramdisk tmpfs mode=1777,size=2g
Then mount the disk with the command mount /ramdisk
(this will be done automatically when you reboot).
The indicated size is a maximum, the disk only uses as much memory as the files that are on it.
You can change /tmp
to be a RAM disk. In the /etc/fstab
line above, put /tmp
rather than /ramdisk
, then reboot.
The first time you reboot after changing /tmp
to be a RAM disk, the files that were in /tmp
will be hidden. That's harmless, except that they're wasting a little disk space. You can clean them up (after you've rebooted with /tmp
on the RAM disk) by doing
mount --bind / /mnt
rm -r /mnt/tmp/* /mnt/tmp/.*
umount /mnt
The mount --bind
command makes /mnt
a duplicate view of your root filesystem; but while the RAM disk now obscures /tmp
on the root view, nothing is obscuring /mnt/tmp
.
ADDED: You can switch /tmp
to a RAM disk without rebooting, it's just a little more complicated. Add the line to /etc/fstab
as above, then run the following commands:
mkdir /tmp.old
mount --bind /tmp /tmp.old
mount /tmp
cd /tmp
ln -s /tmp.old/* /tmp/.* .
Then delete /tmp.old
after your next reboot.
The reason you can't just move files from /tmp.old
to /tmp
is that some critical programs have files open in /tmp
, for example /tmp/.X11-unix/X0
which the X server listens on and every GUI program opens when it starts. Moving a file to a different filesystem means copying it and deleting the old one, so you would end up with the X server still listening on /tmp.old/.X11-unix/X0
but X clients contacting /tmp/.X11-unix/X0
in vain. On a server, you might get away with a move if you're careful.