What you need:
* lots of RAM
* Debian based distribution or any that supports booting from initramfs
* mkinitramfs or a tool to build a new initramfs
* some linux knowledge
* no need to create an image
* no need for Grub4Dos
* no need for a "special driver"
Step 1:
Choose a distribution thats supports booting from initramfs. (like ubuntu)
Step 2:
Install to harddisk. Make sure you split it into multiple partitions (/, /boot, /home, swap, ...).
Step 3:
Boot your new system, install updates, drivers if neccessary (this will improve performance), strip it down to the minimum. Every file will be loaded to RAM ! A fresh install uses about 2 GB auf harddisk-space.
Step 4:
modify /etc/fstab :
* make a backup
cp /etc/fstab /etc/fstab.bak* find the line specifing the root partition and change it in:
none / tmpfs defaults 0 0* save
Step 5:
edit the local script in your initramfs:
cd /usr/share/initramfs-tools/scripts/* make a backup of /usr/share/initramfs-tools/scripts/local
cp local local.bak* modify local, find this line:
# FIXME This has no error checking # Mount root mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} ${rootmnt}* change it to:
# FIXME This has no error checking # Mount root #mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} ${rootmnt} mkdir /ramboottmp mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} /ramboottmp mount -t tmpfs -o size=100% none ${rootmnt} cd ${rootmnt} cp -rfa /ramboottmp/* ${rootmnt} umount /ramboottmp* save
* execute, or rebuild initramfs
mkinitramfs -o /boot/initrd.img-ramboot* replace modified local with original file
cp -f local.bak localStep 6:
* modify this file (needs a better solution)
/boot/grub/grub.cfg* copy the first boot entry and replace the /initrd line with this:
/initrd /initrd.img-ramdisk* label the new entrie as RAMBOOT
This will boot our generated initramfs instead the original one.
Step 7:
* reboot
* choose standart boot (no ramdisk)
* choose RAMBOOT and all your files on the root partition will be loaded to a tmpfs
Results:
Test setup:
*Kernel : Linux 2.6.38-8-generic (i686)
*Compiled : #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011
*Distribution : Ubuntu 11.04
*no graphics driver
*Desktop HP 8100E
*Core i7 860
*4GB Memory 2 Modules (DDR3)
*WDVeliciraptor 10k rpm 160GB
Tiotest results for 4 concurrent io threads: ,----------------------------------------------------------------------. | Item | Time | Rate | Usr CPU | Sys CPU | +-----------------------+----------+--------------+----------+---------+ | Write 800 MBs | 0.1489 s | 5372.806 MB/s | 2.80 % | 32.40 % | | Random Write 16 MBs | 0.0025 s | 6320.793 MB/s | 0.0 % | 0.0 % | | Read 800 MBs | 0.0928 s | 8616.790 MB/s | 11.7 % | 11.7 % | | Random Read 16 MBs | 0.0021 s | 7454.676 MB/s | 0.0 % | 0.0 % | `----------------------------------------------------------------------' Tiotest latency results: ,-------------------------------------------------------------------------. | Item | Average latency | Maximum latency | % >2 sec | % >10 sec | +--------------+-----------------+-----------------+----------+-----------+ | Write | 0.003 ms | 0.048 ms | 0.00000 | 0.00000 | | Random Write | 0.002 ms | 0.011 ms | 0.00000 | 0.00000 | | Read | 0.002 ms | 0.025 ms | 0.00000 | 0.00000 | | Random Read | 0.002 ms | 0.023 ms | 0.00000 | 0.00000 | |--------------+-----------------+-----------------+----------+-----------| | Total | 0.002 ms | 0.048 ms | 0.00000 | 0.00000 | `--------------+-----------------+-----------------+----------+-----------'
I hope this helps a bit

siro