转:Linux - Load your root partition to RAM and boot it
This tutorial will guide you through the steps to modify your initramfs to load all files from / to a tmpfs. This will only work with Debian or Ubuntu ? or any unix thats supports booting from a initramfs. Since this is a virtual filesystem in RAM, not a virtual harddisk, this has many advantages.
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 local
Step 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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。